[Kamailio-Users] Stupid softswitch sending a CANCEL with "To tag" in parallel forking

Iñaki Baz Castillo ibc at aliax.net
Tue Sep 22 18:38:02 CEST 2009


Hi, I've experimenting an absurd issue when a softswitch calls to
Kamailio and receives two 180 (with different To tags) due to parallel
forking made by Kamailio.

When the softswitch receives the second 180 (with the second To tag)
it sends a ridiculous CANCEL with To tag matching the second To tag
received (yes, a CANCEL with To tag !!!).

Of course Kamailio replies "403 Why do you send a CANCEL with To tag?
please read the RFC 3261". Unfortunatelly the softswitch didn't go to
the school and ignores the 403 by repeating the CANCEL. And the worst,
when *any* of the ringing phones answerw, the softswitch ignores the
200 so the call is never established.

IMHO there is nothing I can do to "fix" this stupid issue. I've tried
to reply 200 for the CANCEL but the softswitch is not happy (it seems
that it expects the 487 from the canceled branch). And of course, if I
do "t_relay()" for the CANCEL then Kamailio cancels both branches (the
correct behavior).

The only hyper exotic "solution" I can imagine is the following:

- Kamailio receives the wrong CANCEL with To tag "2".
- Reply 200 for the CANCEL to make the softswitch happy.
- Reply 487 with To tag "2" to make the softswitch happy (IMHO this is
not possible).
- Generate a spoofed BYE for the second branch (that with To tag "2").

Of course, this is not possible with dialog module as it doesn't
handle parallel forking.

Any suggestion? (yes, I would like to kill the softswitch).

Thanks.

-- 
Iñaki Baz Castillo
<ibc at aliax.net>



More information about the Users mailing list