-
Notifications
You must be signed in to change notification settings - Fork 565
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
[BUG] loose_route() can not match pre-loaded route set setted by add_path_received() #1756
Comments
@tangshiixang , I agree, according to the logs, it seems that OpenSIPS is trying to search for an UDP listener, not for a TLS one. And this is happening because the the |
@bogdan-iancu yes, I added the log. This is freeswitch bug(Someone has reported this problem, but it has not been fixed yet.). Can I use some functions in opensips fixing the error header(add missing angle brackets)? |
I see - could you post the REGISTER request (as sent out by OpenSIPS) and the INVITE request (as received by OpenSIPS) to see the inserted |
@bogdan-iancu REGISTER request (as received by freeswitch) is same as above, here is 200 ok (opensips received from freeswitch): |
@bogdan-iancu I take the liberty of saying that opensips can provide a beautiful way to bypass this problem?I'm sorry, this is not opensips' fault. I have used remove_hf ("Route") instead of loose_route () to work around this problem in the initial request. But it seems to me that this is not the right thing in any case. |
Any updates here? No progress has been made in the last 15 days, marking as stale. Will close this issue if no further updates are made in the next 30 days. |
Well, it is not so simple (and even explaining why is not simple is not so simple :) ). |
My opensips version is 3.0, information related transports in config file(X.X.X.X is public ip):
auto_aliases=no
alias=tcp:192.168.1.2:5060
alias=udp:192.168.1.2:5060
alias=tls:192.168.1.2:5061
alias=tls:192.168.1.2:5065
alias=tls:X.X.X.X:5061
listen=udp:192.168.1.2:5060
listen=tcp:192.168.1.2:5060
listen=tls:192.168.1.2:5061 as X.X.X.X:5061
listen=tls:192.168.1.2:5065
The part of processing message is:
INVITE sip:1000@112.31.212.45:36227;transport=TLS;ob SIP/2.0
Via: SIP/2.0/TLS 192.168.1.2:45061;rport;branch=z9hG4bK75F4ygDaQ0XZr
Route: sip:opensips@192.168.1.2:5065;transport=tls;lr
Max-Forwards: 70
From: "" sip:0000000000@X.X.X.X;tag=QgHaKZBQZ9cre
To: sip:1000@112.31.212.45:36227;transport=TLS;ob
Call-ID: 4e6e0be6-1c95-1238-829a-b8ca3a62ce44
CSeq: 6766126 INVITE
Contact: sip:mod_sofia@192.168.1.2:45061;transport=tls
the key log:
Jul 9 10:37:16 [34888] DBG:sipmsgops:has_totag: no totag
Jul 9 10:37:16 [34888] DBG:core:parse_headers: flags=78
Jul 9 10:37:16 [34888] DBG:core:get_hdr_field: cseq : <6766126>
Jul 9 10:37:16 [34888] DBG:tm:t_lookup_request: start searching: hash=2668, isACK=0
Jul 9 10:37:16 [34888] DBG:tm:matching_3261: RFC3261 transaction matching failed
Jul 9 10:37:16 [34888] DBG:tm:t_lookup_request: no transaction found
Jul 9 10:37:16 [34888] DBG:core:parse_headers: flags=200
Jul 9 10:37:16 [34888] DBG:core:parse_params: Parsing params for:[transport=tls;lr]
Jul 9 10:37:16 [34888] DBG:rr:is_preloaded: Yes
Jul 9 10:37:16 [34888] DBG:core:grep_sock_info_ext: proto: 1
Jul 9 10:37:16 [34888] DBG:core:grep_sock_info_ext: checking if host==us: 11==11 && [192.168.1.2] == [192.168.1.2]
Jul 9 10:37:16 [34888] DBG:core:grep_sock_info_ext: checking if port 5060 matches port 5065
Jul 9 10:37:16 [34888] DBG:core:check_self: host != me
Jul 9 10:37:16 [34888] DBG:rr:after_loose: Topmost URI is NOT myself
Jul 9 10:37:16 [34888] DBG:rr:after_loose: URI to be processed: 'sip:opensips@192.168.1.2:5065'
Jul 9 10:37:16 [34888] DBG:rr:after_loose: Next URI is a strict router
Jul 9 10:37:16 [34888] DBG:core:parse_headers: flags=ffffffffffffffff
Jul 9 10:37:16 [34888] DBG:core:get_hdr_field: content_length=740
Jul 9 10:37:16 [34888] DBG:core:get_hdr_field: found end of header
Jul 9 10:37:16 [34888] DBG:rr:save_ruri: New header: 'Route: sip:1000@112.31.212.45:36227;transport=TLS;ob
I think the problem is that in the grep_sock_info_ext() function, the protocol is taken as udp rather than tls. Did I configure something wrong?
The text was updated successfully, but these errors were encountered: