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:[EMAIL PROTECTED] and from OpenSER to B it's sip:[EMAIL PROTECTED]
>
> If the call is cancelled, the From-header isn't altered, so the From
> from A to OpenSER is sip:[EMAIL PROTECTED] and from OpenSER to B it's
> sip:[EMAIL PROTECTED] 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
[email protected]
http://lists.openser.org/cgi-bin/mailman/listinfo/users