-
Notifications
You must be signed in to change notification settings - Fork 93
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
[SEMS] Missing to tag in outgoing PRACK (181) #181
Comments
All these PRACK/to-tag problems caused by f931ab7 that broke state machine. It is not clear why exemption for some responses was added there. |
So we need to revert f931ab7. OK? |
@juha-h looks like you tried to fix something by this commit(at least from comment "Do not go to Early state if To tag can still change. // Otherwise reply check will fail") so may be this something should be fixed in other way. Could you remember why this commit was added? |
Dmitry Sinina writes:
@juha-h looks like you tried to fix something by this commit(at least
from comment **"Do not go to Early state if To tag can still
change. // Otherwise reply check will fail"**) so may be this
something should be fixed in other way. Could you remember why this
commit was added?
I can't remember, it was too long time ago (2017).
Regarding 181, it is sent by the server, not by the UAS and thus to tag
can change. Was there to tag in the example call shown above?
Is it according to the standards, to send PRACK before final response
has arrived?
|
|
There is no difference between UAS and server from SIP protocol point of view. Actually UAS and UAC are terms related to initiator of SIP transaction and responder so server is same UAS + UAC as end-user SIP phone - because both able to initiate transactions and respond on them
This is why PRACK exists, to acknowledge receiving of provisioning replies. |
Denys Pozniak writes:
>Was there to tag in the example call shown above?
![image](https://user-images.githubusercontent.com/22612345/165070845-ff0d4c1e-677c-4219-9331-a6c29907cbf7.png)
OK, so the question is: if sems goes to early state when it receives 181
with to-tag, is it able to handle the possible change of to-tag in the
final response?
|
could you explain this "possible change of to-tag in the final response" case? Do you mean case with call forking when multiple early-dialogs are possible? |
Dmitry Sinina writes:
could you explain this "possible change of to-tag in the final
response" case?
In case 181 was sent by proxy that is doing the forwarding, then there
will be some other to-tag in the final response from the uas.
An element that can act as a proxy can also send reliable provisional
responses. In this case, it acts as a UAS for purposes of that
transaction.
|
juha-h writes:
In case 181 was sent by proxy that is doing the forwarding, then there
will be some other to-tag in the final response from the uas.
An element that can act as a proxy can also send reliable provisional
responses. In this case, it acts as a UAS for purposes of that
transaction.
Same case when proxy parallel forks invite to several uas. They all
reply with 181 ringing.
|
In this case SEMS have to handle multiple early-dialogs for call leg in same time(at least to be able support 100rel), I can't say exactly right now, but I think there is no such feature, so it should be fixed by implementing multiple early-dialogs support. |
juha-h writes:
Same case when proxy parallel forks invite to several uas. They all
reply with 181 ringing.
Sorry, with 180 ringing.
|
Perhaps it would be possible to check if response has Rseq header and if
so, go to Early state.
|
Try with this patch:
|
There are lot other problems were introduced by f931ab7 - for example UPDATE request construction, routeset changes will not be applied. Right way - rollback it and investigate why second instance of AmSipDialog is not created when response with other to-tag received. |
Rolled back commit f931ab7 due to several issues (including this one). Test and close if prack now has to tag. |
@dmitry-sinina Thanks for noticing it in #183 |
Made some basic tests with the latest build from the master, and the problem with the absence of the to tag in the outgoing PRACK is gone. I need some more time to test the rest of the functionality. |
Denys Pozniak writes:
Made some basic tests with the latest build from the master, and the
problem with the absence of the to tag in the outgoing PRACK is
gone. I need some more time to test the rest of the functionality.
Good to learn that.
|
I can as well confirm this reversal fixes PRACK for 181 responses. |
Good. Should we create a new branch 1.6.0? Latest commit to 1.5.0 was done in 2014. |
There was lots of stale branches, which I deleted. Now only master is remaining. Since rpm has version 1.7.0 and debian has 1.7.0-dev, I'll create new branch 1,7.0. Bug fixes should go to that and new features to master. |
Re-open if new problems occur. |
Hello!
I would like to ask for help in explaining why this commit does not take into account the response code 181?
96ea442#diff-662a586075af062e252bef12fdb1f16a7b2fd6b40eba3083d43aa19263b94e5cR370
I stumbled upon this problem again: [SEMS] Missing to tag in outgoing PRACK #100:
The text was updated successfully, but these errors were encountered: