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:

Reply via email to