[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