2009/3/4 mayamatakeshi mayamatakeshi@gmail.com:
Hello, I'm using the module carrierroute. I'm setting the carrierfailureroute table to try a second route if the first one times out. The first route is a GW that sends 183 Ringing with SDP and to-tag. But when the failure_route is called due to timeout and the second route is resolved I see kamailio sending a CANCEL without a to-tag and the GW replies with "481 Call Leg/Transaction Does No Exist". So, This fails to cancel the first request. How can I make kamailio send the to-tag in the CANCEL request?
Don't trust that GW. A CANCEL MUST NOT containg To tag (except if it's a CANCEL for a re-INVITE, but it's not common and it's not your case).
Also, I noticed kamailio sends the INVITE to the second route before sending the CANCEL to the first one. Was this coded on purpose? (I believe this doesn't go against the RFC, but it is something curious).
It's faster in this way :) Why to wait until the CANCEL is sent?