[OpenSER-Users] uac_replace_from and CANCEL

Andreas Granig agranig at sipwise.com
Wed Mar 12 19:54:20 CET 2008


Hi Thomas,

Yes, I'm doing it that way now (without that "append_branch()" though), 
but if you have an uuid-based setup where you fetch the uuid from the 
subscriber table during authentication of the INVITE and then with that 
uuid fetch dynamic data from the usr_preferences table to be used for 
"uac_rewrite_host()", then you have to do some work-arounds and hacks to 
get that data for the CANCEL as well, which could be quite a pain.

So yes, it would be really great if this could be done automatically 
*hint hint* :)

Andreas

Thomas Gelf wrote:
> Applying uac_replace_from() to the CANCEL request should do the job,
> it sadly doesn't happen automagically :'-(
> 
> Try something like:
> 
>      if(is_method("CANCEL") && uri =~ "^sip:...")
>      {
>          if(t_check_trans())
>          {
>              rewritehostport("...");
>              uac_replace_from("...");
>              append_branch();
>          }
>          if(!t_relay())
>          {
>              sl_reply_error();
>          }
>      }
> 
> Cheers,
> Thomas Gelf
> 
> Andreas Granig schrieb:
>> Hi,
>>
>> I hit another problem with a Cisco PGW in combination with CANCEL, and 
>> I'm not sure which fault it is. If I do uac_replace_from in the INVITE, 
>> the From-Header is altered somehow and sent to the PGW. So if A calls B 
>> where B is a PGW, the From from A to OpenSER is for example 
>> sip:a at somedomain and from OpenSER to B it's sip:other-a at somedomain.
>>
>> If the call is cancelled, the From-header isn't altered, so the From 
>> from A to OpenSER is sip:a at somedomain and from OpenSER to B it's 
>> sip:a at somedomain as well.
>>
>> Now the PGW seems to ignore this CANCEL, and I guess it's because of the 
>> different From-usernames, since it works if I don't do any uac_replace_from.
>>
>> RFC3261 says in §9.1:
>> The Request-URI, Call-ID, To, the numeric part of CSeq, and From header
>> fields in the CANCEL request MUST be identical to those in the
>> request being cancelled, including tags.
>>
>> So is it correct behavior of the PGW because the From header in the 
>> CANCEL is different from the From header in the INVITE? Should OpenSER 
>> alter the From in the CANCEL as well? Or should the PGW just check the 
>>  From tags, but not the From URI?
>>
>> Andreas
>>
> 
> 
> _______________________________________________
> Users mailing list
> Users at lists.openser.org
> http://lists.openser.org/cgi-bin/mailman/listinfo/users




More information about the Users mailing list