I'm hot sure I understood your last question. The trick is to let some RTP-aware device on the flow hangup the call. In the general section of your sip.conf (asterisk) you can config rtptimeout and rtpholdtimeout parameters to 30 seconds; if no RTP is coming for that period of time, the call will be dropped.
On Thu, Jun 11, 2009 at 1:05 PM, David <[email protected]>wrote: > Hey, > > Thanks for the answer. If I did not have Kamailio, how would I do this? > > David > > Uriel Rozenbaum wrote: > >> Hi David, >> >> Maybe you can set rtptimeout on Asterisk peer, so when no RTP is flowing, >> Asterisk will hang up the call and you'll have the CDR "closed" in Kamailio. >> >> Be sure your Kamailio is redundant, you can use heartbeat or something >> like that. >> >> Rgds, >> Uriel >> >> On Thu, Jun 11, 2009 at 10:08 AM, David <kamailio.org < >> http://kamailio.org>@spam.lublink.net <http://spam.lublink.net>> wrote: >> >> Hi, >> >> I am using Kamailio as my ACC, Dispatcher, far end nat and >> presence server in front of a farm of asterisk boxes. >> >> Most calls are being properly added into my acc table and using a >> join between the INVITEs, CANCELs, and BYEs I am able to get what >> seems like accurate call detail records. >> >> The trouble is that every so often a BYE does not make it back to >> my server. In my simulation this morning, I simply unplugged ( >> electric ) the two phones that were having a pleasant >> conversation. Now I have asterisk that thinks the call is still >> running and I have Kamailio which has no ending 'BYE' message. For >> the most part this is not a big deal, but when I can a cellular >> phone in European countries, my provider thinks I am still >> talking. At 30 cents a minute, that's a lot. >> >> Here are some snippets from my code : >> >> loadmodule("dialog.so") >> loadmodule("acc.so") >> loadmodule("sst.so") >> >> modparam("acc", "early_media", 1) >> modparam("acc", "report_ack", 1) >> modparam("acc", "report_cancels", 1) >> modparam("acc", "failed_transaction_flag", 3) >> modparam("acc", "log_flag", 1) >> modparam("acc", "log_missed_flag", 2) >> modparam("acc", "db_flag", 1) >> modparam("acc", "db_missed_flag", 2) >> # There is also a parameter for the DB, but I can't give you my >> password >> modparam("acc", "db_url", "some://valid:u...@to/db") >> >> # Note $avp(i:10) always ends up being 14400 ( less than the value >> on the help page ) >> modparam("dialog", "timeout_avp", "$avp(i:10)") >> modparam("sst", "timeout_avp", "$avp(i:10)") >> modparam("sst", "sst_flag", 5) >> >> >> >> Relevant snippets from my routing : >> >> if ( has_totag()) { >> if ( loose_route() ) { >> if ( is_method("CANCEL|BYE") { >> setflag(1); >> setflag(3); >> >> } >> } >> >> # Routing of INVITEs >> setflag(2) >> if ( !is_method("ACK")) >> { >> setflag(1); >> } >> >> >> >> setflag(4); >> >> setflag(5); >> >> >> For invites, I have a onreply_route and failure_route which I use >> only for RTP Stuff. >> >> On reply route checks if rtpproxy is needed, if it is it is >> activated. failure_route checks if rtpproxy was activated and if >> it was deactives it. The only other code in the failure route is >> this : >> >> if ( t_was_cancelled() ){ >> exit ; >> } >> >> So, the problem is, when phones do not send BYE, what do I do? I >> need resources freed up from Asterisk, RTP Proxy, and Kamailio >> Dialog, and I need the call to be canceled with my provider and I >> need for my ACC to recieve some indication as to when the call >> ended. Obviously it won't be exact to the second, but I kind of >> thought that the SIP Session Timers would notice the phone was >> gone and would generate a BYE or something? >> >> What do I do? >> >> Thanks, >> >> David >> >> >> >> >> _______________________________________________ >> Kamailio (OpenSER) - Users mailing list >> [email protected] <mailto:[email protected]> >> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users >> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users >> >> >> >
_______________________________________________ Kamailio (OpenSER) - Users mailing list [email protected] http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
