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
200 OK & ACK & topoh issues #1541
Comments
Can you try with the patch from commit 5a0086f and then grab again the debug messages printed for the bad handling ACK? I want to see if the r-uri is the same as in the ngrep trace, not altered somehow before. |
Thank you. This is one of the problems we have. We are running in GKE with a container built using .deb packages, this being the reason we've "tested" with a small C app. Is there a way to quickly test If not, we may need to build a custom SIP message sender and feed just the ACK to kamailio with one and two parameters, to check topoh & parser messages. If we reproduce, then we can test with the patch you have provided to get more insight. |
Probably you can setup quickly a testbed to reproduce. For example, you can make a test unit using docker container and out recent testing framework: Then you can use sipsak or the internal misc/tools/protoshoot to send the packet. |
Any update with new data on this one? |
Hi, still didn't have time to check how to reproduce this. |
- when UA adds user=phone, turns the uri type in tel mapped over sip uri, default params pointing to tel params - reported by GH #1541
Should be fixed by the commit reference above (to be backported). The addition of user=phone turns the uri type in tel mapped over sip and params were stored in different field. |
Description
A certain inbound provider does not return ACK R-URI as an exact copy of contact. A parameter is appended to it, like below:
200 OK Contact:
Contact: <sip:35.197.205.XXX:5060;line=sr-N6IAzJd4WxFLWxVlz.jwWB0yM.y7MlV7zGZlMlvuMx3A>
ACK R-URI:
ACK sip:35.197.205.XXX:5060;line=sr-N6IAzJd4WxFLWxVlz.jwWB0yM.y7MlV7zGZlMlvuMx3A;user=phone SIP/2.0
As you can see, the
user=phone
is appended along withline=
put by topoh.Troubleshooting
Reproduction
I am not sure how this can be reproductible. I've put the URI with and without
user=phone
part in a small C app that calls kamailio'sparse_params
function and both resolved to one and two params, as expected, so the problem must come fromparse_uri
.See the debug logs below that show the difference between a "good" ACK and a "bad" ACK.
topoh
doesn't get itsline=
param, so it doesn't perform theContact
header rewrite. The ACK does not match a dialog/transaction and it is forwarded to itself (from internal IP to external IP, this being a kamailio behind NAT, but that's not the problem).Debugging Data
Log Messages
This is the "good" call, with ACK R-URI identical to Contact header. See the "+decoded" line:
This is the "bad" call, with ACK R-URI having a
user=phone
param appended to original Contact contents:SIP Traffic
Possible Solutions
Changed the provider to avoid downtime, but the
empty uri params, skipping
error fromparse_params2
is strange, considering that we do not have a single param but 2.Additional Information
kamailio -v
The text was updated successfully, but these errors were encountered: