[SR-Users] Trying to drop invite 200ok reply in onreply_route

Daniel-Constantin Mierla miconda at gmail.com
Fri Dec 3 11:44:18 CET 2010


Hello,

On 12/2/10 4:15 PM, nikita wrote:
> Hello,
>
> Sorry for the late reply, I was a little busy by something else.
>
> On 30/11/2010 22:24, Daniel-Constantin Mierla wrote:
>> Hello,
>>
>> do you have
>>
>> #!KAMAILIO
>>
>> as first line in config file? This is required only for kamailio 3.0,
>> next versions has the feature of dropping replies by default.
> Yes I have #!KAMAILIO at the beginning of my kamailio.cfg.

is your config that you pasted located in a tm onreply route or the 
default onreply route? TM onreply route can drop only provisional 
replies (100-199).

> Also, someone notided me that it could be a better idea to do a proper
> dialog establishment and try to end it after that, for example with
> dlg_bye("all");
> So I think I will try to use something like :
>
> #!ifdef WITH_MEDIA_PROXY
>
>          if (is_method("INVITE")&&  status == "200") {
>                  use_media_proxy();
>                  if($rc<  0) {
>                          xlog("L_ERR", "invite reply error,
> use_media_proxy() failed with $rc \n");
>                          if (dlg_get("$ci", "$ft", "$tt"))
>                          {
>                                  xlog("L_DBG", "ending a new dialog\n");
>                                  dlg_bye("all");
>                          }
>                  }
>          }
> #!endif
>
> Anyone has ever tried something like that ?

You will send the BYE before the 200ok is sent to caller, so it will get 
rejected most probably.

Cheers,
Daniel

> Thanks,
>
>> Cheers,
>> Daniel
>>
>> On 11/26/10 12:55 PM, nikita wrote:
>>> Hello,
>>>
>>> I'm using kamailio 3.0 with mediaproxy and I want to cancel calls if
>>> I have no mediaproxy relay connected to my mediaproxy dispatcher.
>>>
>>> In my request route I'm checking if "use_media_proxy()" is returning
>>> me a positive result and it's working fine :
>>>
>>>           use_media_proxy();
>>>           if($rc<   0) {
>>>                    sl_send_reply("480","Temporarily Unavailable");
>>>                    exit;
>>>           }
>>>
>>>
>>> But I'm also want check in my onreply_route If I still have an active
>>> relay because I need to rewrite the sdp in the 200/OK reply.
>>> My problem is that I don't know how to end the transaction, I have
>>> tried :
>>>
>>>           if (is_method("INVITE")&&   status == "200") {
>>> #!ifdef WITH_MEDIA_PROXY
>>>                   use_media_proxy();
>>>                   if($rc<   0) {
>>>                           xlog("L_ERR", "invite reply error $rc \n");
>>>                           dlg_bye("all");
>>>                   }
>>> #!endif
>>>           }
>>>
>>> and also :
>>>
>>>           if (is_method("INVITE")&&   status == "200") {
>>> #!ifdef WITH_MEDIA_PROXY
>>>                   use_media_proxy();
>>>                   if($rc<   0) {
>>>                           xlog("L_ERR", "invite reply error $rc \n");
>>>                           drop();
>>>                   }
>>> #!endif
>>>           }
>>>
>>> In both case I'm seeing in my log file that use_media_proxy()
>>> returned me -1, but the reply is routed to the caller ...
>>>
>>> Any idea on how I can cancel my call in the onreply_route ?
>>> Also, I don't know if it's a good thing to make a second call to
>>> "use_media_proxy" in the onreply_route, mediaproxy module couldn't
>>> reply me with a different relay address if I have multiple mediaproxy
>>> relay?
>>>
>>> Regards,
>>>

-- 
Daniel-Constantin Mierla
Kamailio (OpenSER) Advanced Training
Jan 24-26, 2011, Irvine, CA, USA
http://www.asipto.com




More information about the sr-users mailing list