[Kamailio-Users] Problems in ACC with missing BYE

Uriel Rozenbaum uriel.rozenbaum at gmail.com
Thu Jun 11 18:10:40 CEST 2009


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 <kamailio.org at spam.lublink.net>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:url@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
>>    Users at lists.kamailio.org <mailto:Users at lists.kamailio.org>
>>    http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>>    http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/users/attachments/20090611/9e2e17ba/attachment.htm>


More information about the Users mailing list