[OpenSER-Users] uac_replace_from and CANCEL

Thomas Gelf thomas at gelf.net
Wed Mar 12 19:35:17 CET 2008


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
> 





More information about the sr-users mailing list