-
Notifications
You must be signed in to change notification settings - Fork 84
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
SIP BYE not possible - Protocol mix during a SIP dialog #143
Comments
A SIP dialog which was initiated by a peer did not remember the transport protocol. Following requests selected their transport protocol independently. This lead in situations where the default protocol was selected differently on two User-Agents to a protocol mix during a dialog. For UDP and TLS mix this further lead to unprocessed BYE, re-INVITE, ...
A SIP dialog which was initiated by a peer did not remember the transport protocol. Following requests selected their transport protocol independently. This lead in situations where the default protocol was selected differently on two User-Agents to a protocol mix during a dialog. For UDP and TLS mix this further lead to unprocessed BYE, re-INVITE, ...
A SIP dialog which was initiated by a peer did not remember the transport protocol. Following requests selected their transport protocol independently. This lead in situations where the default protocol was selected differently on two User-Agents to a protocol mix during a dialog. For UDP and TLS mix this further lead to unprocessed BYE, re-INVITE, ...
A SIP dialog which was initiated by a peer did not remember the transport protocol. Following requests selected their transport protocol independently. This lead in situations where the default protocol was selected differently on two User-Agents to a protocol mix during a dialog. For UDP and TLS mix this further lead to unprocessed BYE, re-INVITE, ...
* sip: reuse transport protocol of first request in dialog (#143) A SIP dialog which was initiated by a peer did not remember the transport protocol. Following requests selected their transport protocol independently. This lead in situations where the default protocol was selected differently on two User-Agents to a protocol mix during a dialog. For UDP and TLS mix this further lead to unprocessed BYE, re-INVITE, ... * sip: in sip_request_send() fix clang warning
Hi, I hope I can ask a question associated with this fix. I am in the process of evaluating a sip-stack for a project, and baresip/re looks really interresting. Does this mean the sip-stack will NOT perform transport selection according to sip-rules, when sending in-dialog requests, since it seems to "remember" the transport selected during initiation?? IMHO, sending an indialog request SHOULD perform the full transport selection logic based on the route-set or contact-uri, and not just use what was decided for the initial invite. The initial invite was probably sent to an AoR like user@domain.com, where size, and DNS could point to any protocol, while while a contact or RecRoute in the 1xx/2xx could contain both ;transport parameters, ip-addresses, and a different packet-size, causing that request to use another transport protocol, which is completely according to the rules. |
The |
Ok, that sounds at least somewhat better, but only the transport-parameter? After all, if default starts/selects TCP (maybe to a local outgoing proxy that doesn't record-route), and the contact in the 1xx/2xx contains ip and/or port we SHOULD use UDP, and with a pure fqdn then naptr could select something else (providing we dont have RecRoutes). |
Setup
Instance A sets UDP as default transport protocol via
sip_transp_set_default()
.Instance B sets TLS as default.
Start a dialog by INVITE from A to B.
Call termination by BYE from B to A.
Issue
The BYE is sent via TLS to port 5060. Then A is not able to process the TLS/SIP BYE at port 5060.
Questions
Background
;transport=
parameter is given.Possible Solution
Currently already e.g. the port number of the dialog route is used as target port number for the BYE. Should we also store the transport protocol in the
sip_dialog
and use this for following SIP requests during a dialog?The text was updated successfully, but these errors were encountered: