[Serusers] Handling CANCELS when a UAC doesn't answer and t_relay has maintained state
Evan Borgström
evan.borgstrom at ca.mci.com
Thu Jun 16 21:38:47 CEST 2005
Hello All,
Looking for some input if anyone else has run into this situation
and/or figured a way around it.
- Call comes in from PSTN gateway to a local user
- SER finds the user in the location table and t_relay pushes the
request off to them
- The user is behind an ACL and is not sending keep-alives (yes I know
the client is broken) so the INVITE never makes it to them and hence no
180/183 Ringing message comes back
- PSTN user gives up and hangs up the phone after 3 seconds of no ringing
- PSTN gateway forwards the CANCEL message in and SER cancels the branch
- However since t_relay is stateful and re-tries transmissions the
INVITE is sent another time or two
- Finally the connection times out and the failure_route set for the
t_relay kicks in and the INVITE gets pushed off to the voicemail server.
- Voicemail server OK's the INVITE and starts retransmitting the OK over
and over and over since the PSTN GW doesn't ACK the OK since it knows
that call-id as being cancelled.
So, should I handle cancel's a little more explicitly by doing
something similar to:
if ((method=="CANCEL") && (t_lookup_request())) {
t_release();
};
What side effects, if any, would this cause? Is there a better way to
handle it?
Thanks,
-Evan
More information about the sr-users
mailing list