[OpenSIPS-Users] Change SIP response code

Josip Djuricic josip.djuricic at voljatel.hr
Wed Sep 23 23:11:41 CEST 2009


Yeap I think it should work great with opensips, will test it first thing
in the morning, we are also having one old ser 0.9.6 machine and I need to
do the same on this machine.

With ser ofcourse I cant use: 
     $var(s:reply_status) = $rs;...
and all other things.

I thought about this:

failure_route[1] {

        if (t_check_status("500")) {
                if (search("^Expire*")) {
                        t_reply("480", "Temporarily Unavailable");
                        break;
                }
        }
}

but the problem is I am not sure how to search trough Status-Line to find
"Expired". Does anyone know any other way to get reason phrase or the way
to use search to search trough entire SIP message?

I know this is off topic, but for now I cant move this machine from ser to
opensips :( ...will be able to move it in few months but until then need to
resolve this issue.

Best regards,

Josip




On Wed, 23 Sep 2009 16:37:42 +0200, Mauro Davì <mauro.davi at acotel.com>
wrote:
> Hi Josip,
> 
> you can try with something like this:
> 
> before to sent the INVITE
> 
> route[0] {
> 
> ....
> ....
> ....
> 
> t_on_reply("1");
> t_on_failure("1");
> t_relay();
> ....
> ....
> ....
> 
> }
> 
> in the on reply_route
> 
> onreply_route[1] {
>          # In the on_reply route I can store the reply status and reply 
> reason values
>         $var(s:reply_status) = $rs;
>         $var(s:reply_reason) = $rr;
> }
> 
> failure_route[1] {
>         if (t_was_cancelled()) {
>                 exit();
>         }
> 
>         # Here I can check the status reply and reason reply values 
> stored into the $var(s:reply_status) and $var(s:reply_reason)
>         if 
> (($var(s:reply_status)=="200")&&($var(s:reply_reason)=="Expired")){
>            send_reply("480", "Temporarily Unavailable");
> 
>            break;
> 
>     }
> }
> 
> Regards,
>    
>     MD
> 
> 
> Josip Djuricic ha scritto:
>>
>> So I guess this would not work?
>>
>>  
>>
>> if (t_check_status("500") && search("^Expired*")) {
>>
>>                 sl_send_reply("480", "Temporarily Unavailable");
>>
>>                 break;
>>
>> };
>>
>>  
>>
>> I should probably use it somewhere in onreply_route instead?
>>
>>  
>>
>> I am sorry I am still relatively new to opensips and ser
>>
>>  
>>
>> Josip
>>
>>  
>>
>> *From:* users-bounces at lists.opensips.org 
>> [mailto:users-bounces at lists.opensips.org] *On Behalf Of *Mauro Davi
>> *Sent:* Wednesday, September 23, 2009 12:48 PM
>> *To:* OpenSIPS users mailling list
>> *Subject:* Re: [OpenSIPS-Users] Change SIP response code
>>
>>  
>>
>> Hi Josip,
>>
>> I think that the below answer could be the solution:
>>
>> http://www.openser.org/pipermail/users/2006-January/002692.html
>>
>> Regards
>>     MD
>>
>> Josip Djuricic ha scritto:
>>
>> Dear,
>>
>>  
>>
>> What would be the best way to change SIP response message from 5xx to 
>> 4xx. The problem is we have client with a broken b2bua which sends SIP 
>> 500 Expired after the user does not answer the phone, so I would like 
>> to change it to SIP 480 Temporarily unavailable message before sending 
>> it back.
>>
>>  
>>
>> if (search("^Expired*")) {
>>
>> sl_send_reply("480", "Temporarily Unavailable");
>>
>> break;
>>
>> };
>>
>>  
>>
>> I thought about something like that but that would match also the 
>> initial invite that has Expired valule in it, so I would need to match 
>> only SIP 500 message with string Expired in it.
>>
>>  
>>
>> Thank you
>>
>>  
>>
>> Josip
>>
>>  
>> ------------------------------------------------------------------------
>>
>>
>>   
>>  
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>   
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>




More information about the Users mailing list