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

Consider session terminated on 408 and 481 response #3457

Merged
merged 1 commit into from
Mar 27, 2023

Conversation

ODCA117
Copy link
Contributor

@ODCA117 ODCA117 commented Mar 21, 2023

Client must consider session terminated as soon as BYE is passed to the transaction client. On reseption of 408 or 481, the UAC MUST consider the session and the dialog terminated.

@sauwming
Copy link
Member

This failed pjsua test.

@sauwming
Copy link
Member

If you have the test case for this one, please let us know.

@ODCA117
Copy link
Contributor Author

ODCA117 commented Mar 22, 2023

Yes we do have the test case:https://www.etsi.org/deliver/etsi_ts/102000_102099/10202702/04.01.01_60/ts_10202702v040101p.pdf
Two tests are failing: SIP_CC_OE_CR_V_008 and SIP_CC_OE_CR_V_009
The error we have is the following.

The pjsip based application is the UAC

UAC UAS
INVITE ->
<- TRYING
<- RINGING
<- OK
ACK ->
BYE -> 
<- OK
<- BYE
OK -> 

The error is that first the UAC (pjsip based application) sends a BYE and receives an OK. Then the UAS (test software) sends a BYE on which UAC reply OK. According to the test, it should send 481 Call Leg/Transaction Does Not Exist.

@ODCA117
Copy link
Contributor Author

ODCA117 commented Mar 22, 2023

More details is that the second BYE sent by the test software have CSeq: 1 BYE
While the pjsip sends a BYE with CSeq: 4662 BYE

@sauwming
Copy link
Member

I think you may have mistaken this with the other PR #3456

@ODCA117
Copy link
Contributor Author

ODCA117 commented Mar 22, 2023

yeah sorry about that. They are similar but not the same.

UAC UAS
INVITE ->
<- TRYING
<- RINGING
<- OK
ACK ->
BYE -> 
<- 481 Call Leg/Transaction Does Not Exist
<- BYE
OK -> 

Compared to the other where a new BYE is sent from the test software, a 481 is sent and after that a BYE. According to the test it should be terminated. The actual test is this: SIP_CC_OE_CR_V_009

@ODCA117
Copy link
Contributor Author

ODCA117 commented Mar 22, 2023

The difference is therefore that #3456 Terminates correctly, While this should get terminated with due to a 481. Also, the second BYE is again sent with CSeq: 1 BYE

@sauwming
Copy link
Member

The failed test is because the patch also affects other method as well (such as UPDATE during early state). Since the issue is only for BYE, I think it's better to add check for the method.

Please check the modified patch:
sip_tsx_bye_408_481.txt

Client must consider session terminated as soon as BYE is passed to
the transaction client. On reseption of 408 or 481, the UAC MUST
consider the session and the dialog terminated.
@ODCA117 ODCA117 force-pushed the terminate_on_408_481_response branch from 069d7d3 to c0fa171 Compare March 23, 2023 06:32
@ODCA117
Copy link
Contributor Author

ODCA117 commented Mar 23, 2023

Applied the modified patch

@sauwming
Copy link
Member

Btw, would you be able to immediately confirm whether any of our proposed patches work? Or do you need to wait some time, for example you have to resubmit to them and wait for the test results back?

@ODCA117
Copy link
Contributor Author

ODCA117 commented Mar 23, 2023

We can retest them, but it may take some time for us to get the time to go through the test. The original patches do work.

@sauwming sauwming merged commit 2ec664f into pjsip:master Mar 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants