Interesting, thanks for the info! On Fri, 24 Nov 2023 at 03:50, Ihor Olkhovskyi via sr-users < sr-users@lists.kamailio.org> wrote:
> Just to add for a history. > > I've found that Asterisk normally accepts sips schema over UDP and keeps > sending responses regardless on schema specified also in UDP. > > So, in my case only thing that was needed is to change the $du, smth like > > request_route{ > > ... > if (is_method("CANCEL")) { > if (t_check_trans()) { > route(SIPS_PROCESS); > if (!t_relay()) { > send_reply("500", "Relay failed"); > } > } > exit; > } > > } > > route[RELAY] { > > route(SIPS_PROCESS); > > t_relay(); > > } > > route[SIPS_PROCESS] { > # If device is using "sips:" dialing scheme, force it with $du > pointing to "sip:" scheme > # so Kamailio will not try to send it over TLS to internal services. > # Applies to requests coming FROM external devices, like Poly OBI ATA's > if (route(FROMASTERISK)) { > return; > } > if ($du == $null && $rz != 'sips') { > return; > } > if ($du != $null) { > if ($(du{uri.scheme}) == 'sips') { > xlog("$var(debug_level)", "[SIPS_PROCESS]: Modifying <$du> to > sip scheme"); > > $du = 'sip:' + $dd + ':' + $dp; > } > return; > } > if ($rz != 'sips') { > return; > } > $du = 'sip:' + $rd + ':' + $rp; > > xlog("$var(debug_level)", "[SIPS_PROCESS]: Setting <$du> for packet to > <$ru> to avoid sips routing"); > } > > Le 22/11/2023 à 01:53, David Villasmil via sr-users a écrit : > > thanks all, i figured it out with help from Alfonso who found > https://github.com/fredposner/scripts/blob/master/kamailio/kamailio-tls_srtp-bridge.cfg > Regards, > > David Villasmil > email: david.villasmil.w...@gmail.com > phone: +34669448337 > > > On Tue, Nov 21, 2023 at 2:34 PM Henning Westerholt <h...@gilawa.com> wrote: > >> Hi David, >> >> >> >> at least from the logs the dialog is matched: >> >> >> >> DEBUG: dialog [dlg_hash.c:885]: internal_get_dlg(): dialog >> callid='aa157c08df1109c4655ca64d0ed67' found on entry 1431, dir=2 >> to-tag='ZDDN09pNH37XB' >> DEBUG: dialog [dlg_profile.c:541]: set_current_dialog(): setting current >> dialog [1431:511] >> DEBUG: dialog [dlg_handlers.c:343]: dlg_iuid_sfree(): freeing dlg iuid >> [3314:1253] (0x7f6d9b2afe20) >> DEBUG: dialog [dlg_hash.c:1293]: next_state_dlg(): dialog 0x7f6d9b2f8240 >> changed from state 5 to state 5, due event 7 (ref 2) >> >> >> >> The dialog is already deleted at this point, not sure why. >> >> >> >> Please note that your rewrite method can cause problems in dialogs, as >> for example the From/To header will be not matching to the expectations of >> the UAs. Consider using the methods I mentioned earlier to prevent this. >> >> >> >> Cheers, >> >> >> >> Henning >> >> >> >> *From:* David Villasmil <david.villasmil.w...@gmail.com> >> *Sent:* Dienstag, 21. November 2023 13:58 >> *To:* Henning Westerholt <h...@gilawa.com> >> *Cc:* Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org> >> *Subject:* Re: [SR-Users] sips to sip >> >> >> >> thanks Henning, >> >> >> >> Already tried that with: >> >> >> >> >> if (is_method("INVITE")) { >> $var(fline) = $msg(fline); >> $var(hdrs) = $msg(hdrs); >> $var(body) = $msg(body); >> >> $var(fline) = $(var(fline){s.replace,sips,sip}); >> #{s.replace,;transport=TLS,}{s.replace,;transport=tls,}); >> $var(hdrs) = $(var(hdrs){s.replace,sips,sip}); >> #{s.replace,;transport=TLS,}{s.replace,;transport=tls,}); >> $var(body) = $(var(body){s.replace,sips,sip}); >> #{s.replace,;transport=TLS,}{s.replace,;transport=tls,}); >> >> msg_set_buffer("$var(fline)\r\n$var(hdrs)\r\n\r\n$var(body)"); >> msg_apply_changes(); >> } >> >> >> >> but then the BYE doesn't work, kamailio can't match it to a dialog >> >> >> >> 2023/11/21 12:48:41.962062 FREESWITCH-IP:5080 -> 10.0.3.141:5060 >> BYE sip:+FROM-NUMBER@CLIENT-IP;transport=TLS SIP/2.0 >> Via: SIP/2.0/UDP FREESWITCH-IP:5080;rport;branch=z9hG4bK34FNtg4e31B8K >> Route: <sip:KAMAILIO-IP-INTERNAL:5060;r2=on;lr;did=389.b1e> >> Route: <sip:KAMAILIO-IP-EXTERNAL;transport=tls;r2=on;lr;did=389.b1e> >> Max-Forwards: 70 >> From: <sip:+TO-NUMBER@KAMAILIO-DOMAIN>;tag=133B764ZS9QvD >> To: <sip:+FROM-NUMBER@CLIENT-IP>;tag=df6b235d >> Call-ID: 75fc6fcaaa32bcd7655ca72452eac >> CSeq: 75731668 BYE >> User-Agent: C3S-v1.1 >> Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, >> REGISTER, REFER, NOTIFY >> Supported: timer, path, replaces >> Reason: Q.850;cause=16;text="NORMAL_CLEARING" >> Content-Length: 0 >> >> >> >> DEBUG: <core> [core/receive.c:392]: receive_msg(): --- received sip >> message - request - call-id: [aa157c08df1109c4655ca64d0ed67] - cseq: >> [75731561 BYE] >> DEBUG: <core> [core/receive.c:263]: ksr_evrt_pre_routing(): event route >> core:pre-routing not defined >> DEBUG: <core> [core/receive.c:474]: receive_msg(): preparing to run >> routing scripts... >> ERROR: <script>: [RTPENGINE] BYE >> DEBUG: <core> [core/parser/parse_hname2.c:314]: parse_sip_header_name(): >> parsed header name [User-Agent] type 28 >> DEBUG: <core> [core/parser/parse_hname2.c:314]: parse_sip_header_name(): >> parsed header name [Allow] type 21 >> DEBUG: <core> [core/parser/parse_hname2.c:314]: parse_sip_header_name(): >> parsed header name [Supported] type 17 >> DEBUG: <core> [core/parser/parse_hname2.c:314]: parse_sip_header_name(): >> parsed header name [Reason] type 54 >> DEBUG: <core> [core/parser/parse_hname2.c:314]: parse_sip_header_name(): >> parsed header name [Content-Length] type 12 >> DEBUG: <core> [core/parser/msg_parser.c:187]: get_hdr_field(): >> content_length=0 >> DEBUG: <core> [core/parser/msg_parser.c:91]: get_hdr_field(): found end >> of header >> DEBUG: pv [pv_core.c:1471]: pv_get_authattr(): no [Proxy-]Authorization >> header >> DEBUG: pv [pv_core.c:1471]: pv_get_authattr(): no [Proxy-]Authorization >> header >> DEBUG: htable [ht_var.c:83]: pv_set_ht_cell(): set value for >> $sht(f2b=><null>::auth_count) >> ERROR: <script>: [REQUEST]: aa157c08df1109c4655ca64d0ed67: got BYE#012BYE >> sip:+FROM-NUMBER@CLIENT-IP;transport=TLS SIP/2.0#015#012Via: SIP/2.0/UDP >> FREESWITCH-IP:5080;rport;branch=z9hG4bK2UpvrNKB6rNNr#015#012Route: < >> sip:KAMAILIO-IP:5060;r2=on;lr;did=795.ff1>#015#012Route: < >> sip:KAMAILIO-PUBLIC-DOMAIN:5061;transport=tls;r2=on;lr;did=795.ff1>#015#012Max-Forwards: >> 70#015#012From: <sip:+TO-NUMBER@KAMAILIO-DOMAIN>;tag=ZDDN09pNH37XB#015#012To: >> <sip:+FROM-NUMBER@CLIENT-IP>;tag=a8379a09#015#012Call-ID: >> aa157c08df1109c4655ca64d0ed67#015#012CSeq: 75731561 BYE#015#012User-Agent: >> C3S-v1.1#015#012Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, >> UPDATE, REGISTER, REFER, NOTIFY#015#012Supported: timer, path, >> replaces#015#012Reason: >> Q.850;cause=16;text="NORMAL_CLEARING"#015#012Content-Length: >> 0#015#012#015#012 >> DEBUG: <core> [core/parser/parse_addr_spec.c:185]: parse_to_param(): add >> param: tag=ZDDN09pNH37XB >> DEBUG: <core> [core/parser/parse_addr_spec.c:904]: parse_addr_spec(): >> end of header reached, state=29 >> DEBUG: dialog [dlg_hash.c:881]: internal_get_dlg(): ref dlg >> 0x7f6d9b2f8240 with 1 -> 2 >> DEBUG: dialog [dlg_hash.c:885]: internal_get_dlg(): dialog >> callid='aa157c08df1109c4655ca64d0ed67' found on entry 1431, dir=2 >> to-tag='ZDDN09pNH37XB' >> DEBUG: dialog [dlg_profile.c:541]: set_current_dialog(): setting current >> dialog [1431:511] >> DEBUG: dialog [dlg_handlers.c:343]: dlg_iuid_sfree(): freeing dlg iuid >> [3314:1253] (0x7f6d9b2afe20) >> DEBUG: dialog [dlg_hash.c:1293]: next_state_dlg(): dialog 0x7f6d9b2f8240 >> changed from state 5 to state 5, due event 7 (ref 2) >> DEBUG: dialog [dlg_hash.c:1088]: dlg_unref_helper(): unref op on >> 0x7f6d9b2f8240 with 1 from dlg_hash.c:1106 >> DEBUG: dialog [dlg_hash.c:1092]: dlg_unref_helper(): unref dlg >> 0x7f6d9b2f8240 with 1 -> 1 >> DEBUG: maxfwd [mf_funcs.c:74]: is_maxfwd_present(): value = 70 >> DEBUG: sanity [sanity.c:253]: check_ruri_sip_version(): >> check_ruri_sip_version entered >> DEBUG: sanity [sanity.c:277]: check_ruri_sip_version(): >> check_ruri_sip_version passed >> DEBUG: sanity [sanity.c:285]: check_ruri_scheme(): check_ruri_scheme >> entered >> DEBUG: sanity [sanity.c:304]: check_ruri_scheme(): check_ruri_scheme >> passed >> DEBUG: sanity [sanity.c:326]: check_required_headers(): >> check_required_headers entered >> DEBUG: sanity [sanity.c:349]: check_required_headers(): >> check_required_headers passed >> DEBUG: sanity [sanity.c:518]: check_cseq_method(): check_cseq_method >> entered >> DEBUG: sanity [sanity.c:552]: check_cseq_method(): check_cseq_method >> passed >> DEBUG: sanity [sanity.c:562]: check_cseq_value(): check_cseq_value >> entered >> DEBUG: sanity [sanity.c:590]: check_cseq_value(): check_cseq_value passed >> DEBUG: sanity [sanity.c:600]: check_cl(): check_cl entered >> DEBUG: sanity [sanity.c:625]: check_cl(): check_cl passed >> DEBUG: sanity [sanity.c:638]: check_expires_value(): check_expires_value >> entered >> DEBUG: sanity [sanity.c:674]: check_expires_value(): no expires header >> found >> DEBUG: sanity [sanity.c:771]: check_parse_uris(): check_parse_uris >> entered >> DEBUG: sanity [sanity.c:775]: check_parse_uris(): parsing ruri >> DEBUG: sanity [sanity.c:788]: check_parse_uris(): looking up From header >> DEBUG: sanity [sanity.c:803]: check_parse_uris(): looking up To header >> DEBUG: sanity [sanity.c:853]: check_parse_uris(): check_parse_uris passed >> DEBUG: sanity [sanity_mod.c:252]: w_sanity_check(): sanity checks >> result: 1 >> DEBUG: <core> [core/msg_translator.c:161]: check_via_address(): >> (FREESWITCH-IP, FREESWITCH-IP, 0) >> DEBUG: <core> [core/proxy.c:268]: mk_proxy(): doing DNS lookup... >> DEBUG: siptrace [siptrace_hep.c:523]: pipport2su(): the port string is >> 5080 >> DEBUG: siptrace [siptrace_hep.c:523]: pipport2su(): the port string is >> 5060 >> DEBUG: <core> [core/proxy.c:268]: mk_proxy(): doing DNS lookup... >> DEBUG: siptrace [siptrace_hep.c:185]: trace_send_hep3_duplicate(): >> setting up the socket_info >> DEBUG: <core> [core/forward.c:176]: get_out_socket(): socket determined: >> 0x7f6d9f91a280 >> DEBUG: <core> [core/socket_info.c:724]: grep_sock_info(): checking if >> host==us: 13==10 && [CLIENT-IP] == [10.0.3.141] >> DEBUG: <core> [core/socket_info.c:728]: grep_sock_info(): checking if >> port 5060 (advertise 5060) matches port 5061 >> DEBUG: <core> [core/socket_info.c:724]: grep_sock_info(): checking if >> host==us: 13==10 && [CLIENT-IP] == [10.0.3.141] >> DEBUG: <core> [core/socket_info.c:728]: grep_sock_info(): checking if >> port 5066 (advertise 5060) matches port 5061 >> DEBUG: <core> [core/socket_info.c:724]: grep_sock_info(): checking if >> host==us: 13==10 && [CLIENT-IP] == [10.0.3.141] >> DEBUG: <core> [core/socket_info.c:728]: grep_sock_info(): checking if >> port 5666 (advertise 0) matches port 5061 >> DEBUG: <core> [core/socket_info.c:724]: grep_sock_info(): checking if >> host==us: 13==10 && [CLIENT-IP] == [10.0.3.141] >> DEBUG: <core> [core/socket_info.c:728]: grep_sock_info(): checking if >> port 5061 (advertise 5061) matches port 5061 >> DEBUG: <core> [core/socket_info.c:750]: grep_sock_info(): checking >> advertise if host==us: 13==22 && [CLIENT-IP] == [KAMAILIO-PUBLIC-DOMAIN] >> DEBUG: <core> [core/name_alias.h:63]: grep_aliases(): matching (0: >> CLIENT-IP:5061) vs. (3:ip-10-0-3-141.ec2.internal:5061) >> DEBUG: <core> [core/name_alias.h:63]: grep_aliases(): matching (0: >> CLIENT-IP:5061) vs. (2:ip-10-0-3-141.ec2.internal:5666) >> DEBUG: <core> [core/name_alias.h:63]: grep_aliases(): matching (0: >> CLIENT-IP:5061) vs. (2:ip-10-0-3-141.ec2.internal:5066) >> DEBUG: <core> [core/name_alias.h:63]: grep_aliases(): matching (0: >> CLIENT-IP:5061) vs. (1:ip-10-0-3-141.ec2.internal:5060) >> DEBUG: <core> [core/name_alias.h:63]: grep_aliases(): matching (0: >> CLIENT-IP:5061) vs. (0:KAMAILIO-PUBLIC-DOMAIN:0) >> DEBUG: <core> [core/name_alias.h:63]: grep_aliases(): matching (0: >> CLIENT-IP:5061) vs. (0:KAMAILIO-IP:0) >> DEBUG: <core> [core/name_alias.h:63]: grep_aliases(): matching (0: >> CLIENT-IP:5061) vs. (0:10.0.2.65:0) >> DEBUG: <core> [core/name_alias.h:63]: grep_aliases(): matching (0: >> CLIENT-IP:5061) vs. (0:domain.com:0) >> DEBUG: corex [corex_lib.c:199]: corex_check_self(): check self for: 0: >> CLIENT-IP:5061 >> DEBUG: corex [corex_lib.c:227]: corex_check_self(): no match found >> DEBUG: <core> [core/forward.c:449]: check_self(): host (0:CLIENT-IP:5061) >> != me >> >> >> >> >> >> Regards, >> >> >> >> David Villasmil >> >> email: david.villasmil.w...@gmail.com >> >> phone: +34669448337 >> >> >> >> >> >> On Tue, Nov 21, 2023 at 8:54 AM Henning Westerholt <h...@gilawa.com> wrote: >> >> Hello, >> >> >> >> if you like you can rewrite the respective headers to use only sip uri >> scheme of course. >> >> >> >> - Record-Route: ignore_sips in rr >> - From/To: uac_replace_from/_to >> - Contacts: textops etc.. >> >> >> >> Cheers, >> >> >> >> Henning >> >> >> >> *From:* David Villasmil via sr-users <sr-users@lists.kamailio.org> >> *Sent:* Montag, 20. November 2023 19:44 >> *To:* Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org> >> *Cc:* David Villasmil <david.villasmil.w...@gmail.com> >> *Subject:* [SR-Users] sips to sip >> >> >> >> Hello guys, >> >> >> >> I have this setup where one side is TLS and the other UDP. Normally this >> works fine, but we have this provider sending sips as the schema everywhere >> (from, to, rr, contacts), kamailio sends the same sips to the upstream usp >> freeswitch. >> >> >> >> My problem is when FS sends back a 200OK and kamailio forwards it back to >> the provider, the provider sends an ACK and kamailio can't match it with >> the dialog and doesn't know where to forward it. >> >> >> >> i think this is happening because FS when is sees SIPS is setting the >> contact port as 5081 instead of the usual 5080... >> >> >> >> >> Regards, >> >> >> >> David Villasmil >> >> email: david.villasmil.w...@gmail.com >> >> phone: +34669448337 >> >> >> >> > __________________________________________________________ > Kamailio - Users Mailing List - Non Commercial Discussions > To unsubscribe send an email to sr-users-le...@lists.kamailio.org > Important: keep the mailing list in the recipients, do not reply only to the > sender! > Edit mailing list options or unsubscribe: > > __________________________________________________________ > Kamailio - Users Mailing List - Non Commercial Discussions > To unsubscribe send an email to sr-users-le...@lists.kamailio.org > Important: keep the mailing list in the recipients, do not reply only to > the sender! > Edit mailing list options or unsubscribe: >
__________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions To unsubscribe send an email to sr-users-le...@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: