-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
strans/accept: fix cancel/rejection #423
Conversation
The solution was to not re-use the server transaction of the initial INVITE when replying to a PRACK. The function |
In sipsess_reply_2xx, the reply is sent using a server transaction which sets the st to NULL when replying with scode >=200. This is problematic when sending 2xx responses to PRACKs after which sess->st was NULL. Now, st is not passed to sip_treplyf if the request was PRACK, so st is not set to NULL.
85c11e9
to
acbe394
Compare
20c7f26
to
a7f4611
Compare
This PR fixes an issue introduced with PR #419. It prevented a call from being canceled during early media/ringing if a 100rel/PRACK exchange happened in the transaction.
Without the changes insrc/sipsess/accept.c
, the SIP 4xx responses were being retransmitted until T2 fired even though the 4xx responses were being ACKed. I haven't been able to figure out why that happened, maybe there is a better solution than the one I propose in this PR.Update: The server transactions are now being correctly used. The changes in this PR provide a clean solution.