Skip to content
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

JAIN SIP HA CORE support for UAS CANCEL transaction #3013

Open
gidxl03 opened this issue Dec 30, 2020 · 0 comments
Open

JAIN SIP HA CORE support for UAS CANCEL transaction #3013

gidxl03 opened this issue Dec 30, 2020 · 0 comments

Comments

@gidxl03
Copy link

gidxl03 commented Dec 30, 2020

/kind bug

What happened:
CANCEL request is received at a newly recovered stack and is not presented to the application because the corresponding INVITE transaction is not found. The UAC received a 481 response to the CANCEL request.

What you expected to happen:
The transaction-to-be-cancelled is recovered, associated with the new CANCEL transaction and presented to the application.

How to reproduce it (as minimally and precisely as possible):
UAC sends INVITE to HA-stack
HA-stack sends provisional response.
HA-stack is stopped. If no other stack exits in the cluster then it is restarted.
UAC waits for first provisional response and sends CANCEL
CANCEL is received at new stack

Anything else we need to know?:
Simplest solution appears to be for ClusteredSipStackImpl to override findCancelTransaction(SIPRequest cancelRequest, boolean isServer), derive the ID of the server transaction to be cancelled (see SIPMessage.getTransactionId() Line 922 ), trigger HA recovery by invoking ClusteredSipStackImpl .findTransaction(txnId, isServer)

Environment:
Reproducible in a Unit Test that I can provide in a PR used to reproduce the issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant