From Johan at democon.be Thu Feb 1 16:55:27 2024 From: Johan at democon.be (Johan De Clercq) Date: Thu, 1 Feb 2024 17:55:27 +0100 Subject: [OpenSIPS-Users] dialog termination. Message-ID: Is there a way to configure dialog module so that it upon timeout it flushes the dialog without sending bye ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From voransoy at gmail.com Fri Feb 2 08:49:50 2024 From: voransoy at gmail.com (Volkan Oransoy) Date: Fri, 2 Feb 2024 08:49:50 +0000 Subject: [OpenSIPS-Users] Implementation of RFC 8599 Message-ID: Hi all, I am working on implementing RFC 8599 and have an architectural question. I followed the blog post https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration. I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc? Thanks Volkan -------------- next part -------------- An HTML attachment was scrubbed... URL: From johan at democon.be Fri Feb 2 09:01:09 2024 From: johan at democon.be (johan) Date: Fri, 2 Feb 2024 10:01:09 +0100 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: References: Message-ID: send a query directly to apple or to google for waking them up. I did something like that in an external lua script. On 2/02/2024 09:49, Volkan Oransoy wrote: > Hi all, > > I am working on implementing RFC 8599 and have an architectural > question. I followed the blog post > https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ > and it works. Based on the rfc and the implementation of Opensips, the > UA should have a valid registration throughout the process. When a > lookup performed, opensips finds the pn-enabled record, triggers the > PN and after a re-registration of the UA, it proxies the call. This > process works without an issue. But when we kill the UA on the client > device (the client is connected via WSS), after the registration > expires, the call can't be proxied since there is no registration. > I want to wake up the UA even if there is no registration on the proxy > and suspend the call until the UA registers to the system. Should I > handle this scenario with a custom setup? How do you handle this > scenario on your setups? Or do I misinterpret the rfc? > > Thanks > > Volkan > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Fri Feb 2 14:14:22 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 2 Feb 2024 16:14:22 +0200 Subject: [OpenSIPS-Users] dialog termination. In-Reply-To: References: Message-ID: <399b7a98-a3a5-4ff3-b891-b1d518147717@opensips.org> Hi Johan, That's actually the default behavior if you do not use the "B" flag upon creating the dialog - when the dialog times out, it will be silently discarded from memory. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 01.02.2024 18:55, Johan De Clercq wrote: > Is there a way to configure dialog module so that it upon timeout it > flushes the dialog without sending bye ? > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users From bogdan at opensips.org Fri Feb 2 14:37:30 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 2 Feb 2024 16:37:30 +0200 Subject: [OpenSIPS-Users] load_balancer usage counter In-Reply-To: References: Message-ID: <16fa71c0-b328-495d-bf24-4891f7c7eafe@opensips.org> Hi Callum, I can confirm the module increments its internal load with each call, so you are good to go. Still, I do not understand why using the FS heartbeat here? are the FS servers receiving calls from other destination than OpenSIPS too ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 30.01.2024 16:27, Callum Guy wrote: > Hi All, > > I'm implementing the load_balancer module on a very busy system where > thousands of calls may arrive in a matter of seconds. The module is > configured to receive heartbeats every 1 second from many freeswitch > servers, I have this set as a low value to try and keep OpenSIPs up to > date with the real call load, as close to real time as possible. > > All servers exist in a single group "channels" to keep the initial > implementation simple. When I kick off the session I use lb_start(1, > "channels", "rs") and if that destination fails I use lb_is_started() > and lb_next() to select the next destination. > > With the high call rate I'm concerned that the load values acquired 1 > second ago will be used for the entirety of the following second which > would likely lead to a highly imbalanced load. If 1000 calls arrive in > that second I need them spread evenly over the freeswitch servers > which can only happen if OpenSIPs is counting each call as its > allocated. > > My hope is that the module increments its counters each time a call is > allocated to a destination; however I have been unable to isolate the > line of code which performs this operation so I'm reaching out for > confirmation. I can see the module adding the dialogs to profiles and > that a separate lb_count_call() method is provided for counting calls > but I'm unclear on the exact usage although it certainly encourages me > that this counting is taking place somewhere. > > Thanks for reading, > > Callum > From rvg at rvgeerligs.nl Fri Feb 2 14:48:35 2024 From: rvg at rvgeerligs.nl (rvg at rvgeerligs.nl) Date: Fri, 02 Feb 2024 14:48:35 +0000 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: References: Message-ID: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> Hi Volkan, I implemented the scripting from sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ in opensips 3.4.0. As the send pn to apple or googlei s not defined I fail to get the parameters passed to the send pn to apns script which I also have. I seem to have lost the device-ID in opensips or in any INVITE somewhere as I do not understand the RFC certainly not towards the device_ID or token. Or this ID is stored on registration at the proxy? srcipt to directly talk to apple: https://medium.com/@egzon.arifi/sending-a-push-notification-to-an-ios-device-using-a-bash-script-96c056c1544c Please keep me posted on what you find. Regards, Ronald February 2, 2024 at 6:01 AM, "johan" wrote: > > send a query directly to apple or to google for waking them up. I did something like that in an external lua script. > > > On 2/02/2024 09:49, Volkan Oransoy wrote: > > > > > > Hi all, > > > > I am working on implementing RFC 8599 and have an architectural question. I followed the blog posthttps://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration.  > > I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc?  > > > > Thanks > > > > > > > > > > > > > > Volkan > > > > > > > > > > _______________________________________________ > > Users mailing list > > Users at lists.opensips.org > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From voransoy at gmail.com Sat Feb 3 12:19:50 2024 From: voransoy at gmail.com (Volkan Oransoy) Date: Sat, 3 Feb 2024 12:19:50 +0000 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> References: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> Message-ID: Hi there @Ronald we use that tool for notification tests and it does the job. https://github.com/flutter-webrtc/callkeep/tree/master/tools We managed to work the setup mentioned at the official blog post but that requires the UA to stay registered. This needs periodic communication between the UA and the registrar proxy as the RFC describes. We want the call to be initiated even if the UA is offline but has a valid token stored. I think we will use the msilo method with a bunch of custom configs and scripts. Let me know if you have any comments, tips etc. Have a great weekend. Volkan Oransoy On 2 Feb 2024 at 14:51 +0000, rvg at rvgeerligs.nl, wrote: > Hi Volkan, > > I implemented the scripting from sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ in opensips 3.4.0. > As the send pn to apple or googlei s not defined I fail to get the parameters passed to the send pn to apns script which I also have. > > I seem to have lost the device-ID in opensips or in any INVITE somewhere as I do not understand the RFC certainly not towards the device_ID or token. Or this ID is stored on registration at the proxy? > > srcipt to directly talk to apple: > https://medium.com/@egzon.arifi/sending-a-push-notification-to-an-ios-device-using-a-bash-script-96c056c1544c > > Please keep me posted on what you find. > > Regards, Ronald > > February 2, 2024 at 6:01 AM, "johan" wrote: > > send a query directly to apple or to google for waking them up. I did something like that in an external lua script. > > On 2/02/2024 09:49, Volkan Oransoy wrote: > > > Hi all, > > > I am working on implementing RFC 8599 and have an architectural question. I followed the blog post https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration. > > > I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc? > > > Thanks > > > > > > Volkan > > > _______________________________________________ > > > Users mailing list > > > Users at lists.opensips.org > > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From rvg at rvgeerligs.nl Sat Feb 3 19:39:55 2024 From: rvg at rvgeerligs.nl (rvg at rvgeerligs.nl) Date: Sat, 03 Feb 2024 19:39:55 +0000 Subject: [OpenSIPS-Users] pn opensips 3.4 Message-ID: <3307adf42e981dfdfdd8cd07a62b00b3ee71fc76@rvgeerligs.nl> Hi, I managed to integrate pn in opensips 3.4 as I get as reply to register from my opensips server: SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.14:57993;received=x.x.x.x;branch=z9hG4bK.wxwvFfCSG;rport=57993 To: sip:xx;tag=eeba.752562b862ac8bd9236fb7979b3044b6 From: ;tag=mFddPGSw6 Call-ID: UFVVRWp5rN CSeq: 23 REGISTER **Feature-Caps: +sip.pns="apns";+sip.pnsreg="130";+sip.pnspurr="3fa.a1d4c.c3fbd0c8"** **** Server: OpenSIPS (3.4.0 (aarch64/linux)) Content-Length: 0 Also I have a bash script getting token and sending pn to apns developement. I have pn-prid, pn-param, pn-provider I want to connect the in the function  route[pm_send] { exit; } questions: How do I get opensips to call a bash script with arguments? Arguments being pn-prid, pn-param, pn-provider. Where do I place the script? would that be in my module path? mpath="/usr/local/lib64/opensips/modules/" I tried a marg.sh doing: #!/bin/bash echo "The first argument is: $1" echo "The second argument is: $2" echo "The third argument is: $3" But I got: ERROR:core:parse_opensips_cfg: bad config file (4 errors) Any advise appreciated. Regards, -------------- next part -------------- An HTML attachment was scrubbed... URL: From rvg at rvgeerligs.nl Sat Feb 3 20:51:26 2024 From: rvg at rvgeerligs.nl (rvg at rvgeerligs.nl) Date: Sat, 03 Feb 2024 20:51:26 +0000 Subject: [OpenSIPS-Users] pn opensips 3.4 In-Reply-To: <3307adf42e981dfdfdd8cd07a62b00b3ee71fc76@rvgeerligs.nl> References: <3307adf42e981dfdfdd8cd07a62b00b3ee71fc76@rvgeerligs.nl> Message-ID: <640e554a7df92925f6409c389aa280a259f86af8@rvgeerligs.nl> Hi, Currently experimenting with the EXEC module. Still all advice is welcome. Regards, Ronald February 3, 2024 at 4:39 PM, rvg at rvgeerligs.nl wrote: > > Hi, > > I managed to integrate pn in opensips 3.4 as I get as reply to register from my opensips server: > > SIP/2.0 200 OK > > Via: SIP/2.0/UDP 192.168.1.14:57993;received=x.x.x.x;branch=z9hG4bK.wxwvFfCSG;rport=57993 > > To: sip:xx;tag=eeba.752562b862ac8bd9236fb7979b3044b6 > > From: ;tag=mFddPGSw6 > > Call-ID: UFVVRWp5rN > > CSeq: 23 REGISTER > > **Feature-Caps: +sip.pns="apns";+sip.pnsreg="130";+sip.pnspurr="3fa.a1d4c.c3fbd0c8"** > > Server: OpenSIPS (3.4.0 (aarch64/linux)) > > Content-Length: 0 > > Also I have a bash script getting token and sending pn to apns developement. > I have pn-prid, pn-param, pn-provider > I want to connect the in the function  > > route[pm_send] > > { > > exit; > > } > > questions: > How do I get opensips to call a bash script with arguments? Arguments being pn-prid, pn-param, pn-provider. > Where do I place the script? > > would that be in my module path? > > mpath="/usr/local/lib64/opensips/modules/" > > I tried a marg.sh doing: > > #!/bin/bash > > echo "The first argument is: $1" > > echo "The second argument is: $2" > > echo "The third argument is: $3" > > But I got: > > ERROR:core:parse_opensips_cfg: bad config file (4 errors) > > Any advise appreciated. > > Regards, > -------------- next part -------------- An HTML attachment was scrubbed... URL: From voransoy at gmail.com Sun Feb 4 10:22:24 2024 From: voransoy at gmail.com (Volkan Oransoy) Date: Sun, 4 Feb 2024 10:22:24 +0000 Subject: [OpenSIPS-Users] pn opensips 3.4 In-Reply-To: <640e554a7df92925f6409c389aa280a259f86af8@rvgeerligs.nl> References: <3307adf42e981dfdfdd8cd07a62b00b3ee71fc76@rvgeerligs.nl> <640e554a7df92925f6409c389aa280a259f86af8@rvgeerligs.nl> Message-ID: Hi Ronald For our case, we use exec on development environment too. For the production, we will use rabbitmq and custom events to decouple pn delivery from the script. Volkan Oransoy On 3 Feb 2024 at 20:54 +0000, rvg at rvgeerligs.nl, wrote: > Hi, > > Currently experimenting with the EXEC module. Still all advice is welcome. > > Regards, > > Ronald > > February 3, 2024 at 4:39 PM, rvg at rvgeerligs.nl wrote: > > Hi, > > > > I managed to integrate pn in opensips 3.4 as I get as reply to register from my opensips server: > > > > SIP/2.0 200 OK > > Via: SIP/2.0/UDP 192.168.1.14:57993;received=x.x.x.x;branch=z9hG4bK.wxwvFfCSG;rport=57993 > > To: sip:xx;tag=eeba.752562b862ac8bd9236fb7979b3044b6 > > From: ;tag=mFddPGSw6 > > Call-ID: UFVVRWp5rN > > CSeq: 23 REGISTER > > Feature-Caps: +sip.pns="apns";+sip.pnsreg="130";+sip.pnspurr="3fa.a1d4c.c3fbd0c8" > > Server: OpenSIPS (3.4.0 (aarch64/linux)) > > Content-Length: 0 > > > > > > Also I have a bash script getting token and sending pn to apns developement. > > I have pn-prid, pn-param, pn-provider > > I want to connect the in the function > > > > route[pm_send] > > { > > exit; > > } > > > > questions: > > How do I get opensips to call a bash script with arguments? Arguments being pn-prid, pn-param, pn-provider. > > Where do I place the script? > > > > would that be in my module path? > > mpath="/usr/local/lib64/opensips/modules/" > > > > I tried a marg.sh doing: > > #!/bin/bash > > echo "The first argument is: $1" > > echo "The second argument is: $2" > > echo "The third argument is: $3" > > > > But I got: > > ERROR:core:parse_opensips_cfg: bad config file (4 errors) > > > > Any advise appreciated. > > > > Regards, > > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From ag at ag-projects.com Sun Feb 4 14:55:58 2024 From: ag at ag-projects.com (Adrian Georgescu) Date: Sun, 4 Feb 2024 11:55:58 -0300 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: References: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> Message-ID: <0C9348AB-4A3D-426B-A406-77473D12AFE2@ag-projects.com> Push notifications were designed exactly for the case when the UA is not registered. — Adrian > On 3 Feb 2024, at 09:19, Volkan Oransoy wrote: > > Hi there > > @Ronald we use that tool for notification tests and it does the job. > https://github.com/flutter-webrtc/callkeep/tree/master/tools > > We managed to work the setup mentioned at the official blog post but that requires the UA to stay registered. This needs periodic communication between the UA and the registrar proxy as the RFC describes. We want the call to be initiated even if the UA is offline but has a valid token stored. I think we will use the msilo method with a bunch of custom configs and scripts. > > Let me know if you have any comments, tips etc. > > Have a great weekend. > > Volkan Oransoy > On 2 Feb 2024 at 14:51 +0000, rvg at rvgeerligs.nl, wrote: >> Hi Volkan, >> >> I implemented the scripting from sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ in opensips 3.4.0. >> As the send pn to apple or googlei s not defined I fail to get the parameters passed to the send pn to apns script which I also have. >> >> I seem to have lost the device-ID in opensips or in any INVITE somewhere as I do not understand the RFC certainly not towards the device_ID or token. Or this ID is stored on registration at the proxy? >> >> srcipt to directly talk to apple: >> https://medium.com/@egzon.arifi/sending-a-push-notification-to-an-ios-device-using-a-bash-script-96c056c1544c >> >> Please keep me posted on what you find. >> >> Regards, Ronald >> >> February 2, 2024 at 6:01 AM, "johan" > wrote: >> >> send a query directly to apple or to google for waking them up. I did something like that in an external lua script. >> >> On 2/02/2024 09:49, Volkan Oransoy wrote: >> Hi all, >> I am working on implementing RFC 8599 and have an architectural question. I followed the blog post https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration. >> I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc? >> Thanks >> >> Volkan >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From voransoy at gmail.com Mon Feb 5 08:54:39 2024 From: voransoy at gmail.com (Volkan Oransoy) Date: Mon, 5 Feb 2024 08:54:39 +0000 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: <0C9348AB-4A3D-426B-A406-77473D12AFE2@ag-projects.com> References: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> <0C9348AB-4A3D-426B-A406-77473D12AFE2@ag-projects.com> Message-ID: <06b6f632-1f90-46f7-b752-84201636b58f@Spark> Yes they are but the implementation looks for a valid registration record to initiate pn. The route snippet at the blog post looks for the pn enabled registrations with return code 2 then pops up the E_UL_CONTACT_REFRESH event, and waits for a registration from the UA to proxy the call. # do lookup with method filtering lookup("location", "m"); $var(rc) = $retcode; switch ($var(rc)) { case 1: # we found at least 1 non-PN contact! $var(do_relay) = true; break; case 2: # success, but all contacts are PN-enabled, so we're # sending PNs / awaiting re-registrations from them $var(do_relay) = false; break; default: xlog("L_INFO", "DBG: no contacts found ($var(rc))\n"); t_reply(404, "Not Found"); exit; } ... if ($var(do_relay) && !t_relay()) send_reply(500, "Internal Server Error"); ... So practically, UA should keeps its registered state active, so needs a registration refresh in regular intervals. That is not the ideal case for a mobile app I believe. So the main idea is to keep power consumption at minimum. Thanks Volkan Oransoy On 4 Feb 2024 at 15:01 +0000, Adrian Georgescu , wrote: > Push notifications were designed exactly for the case when the UA is not registered. > > — > Adrian > > > > > > On 3 Feb 2024, at 09:19, Volkan Oransoy wrote: > > > > Hi there > > > > @Ronald we use that tool for notification tests and it does the job. > > https://github.com/flutter-webrtc/callkeep/tree/master/tools > > > > We managed to work the setup mentioned at the official blog post but that requires the UA to stay registered. This needs periodic communication between the UA and the registrar proxy as the RFC describes. We want the call to be initiated even if the UA is offline but has a valid token stored. I think we will use the msilo method with a bunch of custom configs and scripts. > > > > Let me know if you have any comments, tips etc. > > > > Have a great weekend. > > > > Volkan Oransoy > > On 2 Feb 2024 at 14:51 +0000, rvg at rvgeerligs.nl, wrote: > > > Hi Volkan, > > > > > > I implemented the scripting from sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ in opensips 3.4.0. > > > As the send pn to apple or googlei s not defined I fail to get the parameters passed to the send pn to apns script which I also have. > > > > > > I seem to have lost the device-ID in opensips or in any INVITE somewhere as I do not understand the RFC certainly not towards the device_ID or token. Or this ID is stored on registration at the proxy? > > > > > > srcipt to directly talk to apple: > > > https://medium.com/@egzon.arifi/sending-a-push-notification-to-an-ios-device-using-a-bash-script-96c056c1544c > > > > > > Please keep me posted on what you find. > > > > > > Regards, Ronald > > > > > > February 2, 2024 at 6:01 AM, "johan" wrote: > > > > send a query directly to apple or to google for waking them up. I did something like that in an external lua script. > > > > On 2/02/2024 09:49, Volkan Oransoy wrote: > > > > > Hi all, > > > > > I am working on implementing RFC 8599 and have an architectural question. I followed the blog post https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration. > > > > > I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc? > > > > > Thanks > > > > > > > > > > Volkan > > > > > _______________________________________________ > > > > > Users mailing list > > > > > Users at lists.opensips.org > > > > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > > > _______________________________________________ > > > Users mailing list > > > Users at lists.opensips.org > > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > > Users mailing list > > Users at lists.opensips.org > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Mon Feb 5 09:19:13 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Mon, 5 Feb 2024 11:19:13 +0200 Subject: [OpenSIPS-Users] pn opensips 3.4 In-Reply-To: References: <3307adf42e981dfdfdd8cd07a62b00b3ee71fc76@rvgeerligs.nl> <640e554a7df92925f6409c389aa280a259f86af8@rvgeerligs.nl> Message-ID: <0691be3d-391c-4dbb-a6ac-919eceb55996@opensips.org> Hi, you can consider using exec in async way, with launch() for example: https://opensips.org/html/docs/modules/3.4.x/exec.html#afunc_exec But imho anything else (non-blocking) may be better than exec, to avoid the penalty for forking new processes ; rest_client, in async way is also an option, for example, raising events (with external subscriber) too, message queue, etc. Regards Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 04.02.2024 12:22, Volkan Oransoy wrote: > Hi Ronald > > For our case, we use exec on development environment too. For the > production, we will use rabbitmq and custom events to decouple pn > delivery from the script. > > Volkan Oransoy > On 3 Feb 2024 at 20:54 +0000, rvg at rvgeerligs.nl, wrote: >> Hi, >> >> Currently experimenting with the EXEC module. Still all advice is >> welcome. >> >> Regards, >> >> Ronald >> >> February 3, 2024 at 4:39 PM, rvg at rvgeerligs.nl wrote: >> >> Hi, >> >> I managed to integrate pn in opensips 3.4 as I get as reply to >> register from my opensips server: >> >> SIP/2.0 200 OK >> Via: SIP/2.0/UDP >> 192.168.1.14:57993;received=x.x.x.x;branch=z9hG4bK.wxwvFfCSG;rport=57993 >> To: sip:xx;tag=eeba.752562b862ac8bd9236fb7979b3044b6 >> From: ;tag=mFddPGSw6 >> Call-ID: UFVVRWp5rN >> CSeq: 23 REGISTER >> *Feature-Caps: >> +sip.pns="apns";+sip.pnsreg="130";+sip.pnspurr="3fa.a1d4c.c3fbd0c8"* >> Server: OpenSIPS (3.4.0 (aarch64/linux)) >> Content-Length: 0 >> >> >> Also I have a bash script getting token and sending pn to apns >> developement. >> I have pn-prid, pn-param, pn-provider >> I want to connect the in the function >> >> route[pm_send] >> >> { >> >> exit; >> >> } >> >> >> questions: >> How do I get opensips to call a bash script with arguments? >> Arguments being pn-prid, pn-param, pn-provider. >> Where do I place the script? >> >> would that be in my module path? >> >> mpath="/usr/local/lib64/opensips/modules/" >> >> >> I tried a marg.sh doing: >> >> #!/bin/bash >> >> echo "The first argument is: $1" >> >> echo "The second argument is: $2" >> >> echo "The third argument is: $3" >> >> >> But I got: >> >> ERROR:core:parse_opensips_cfg: bad config file (4 errors) >> >> >> Any advise appreciated. >> >> Regards, >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From ag at ag-projects.com Mon Feb 5 10:00:50 2024 From: ag at ag-projects.com (Adrian Georgescu) Date: Mon, 5 Feb 2024 07:00:50 -0300 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: <06b6f632-1f90-46f7-b752-84201636b58f@Spark> References: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> <0C9348AB-4A3D-426B-A406-77473D12AFE2@ag-projects.com> <06b6f632-1f90-46f7-b752-84201636b58f@Spark> Message-ID: <017A1073-3694-4FF3-AF58-4C85BEF12F8B@ag-projects.com> You should fork to any registered contact and send push and later fork to any new devices that registered before a predefined timeout. The only flaw with this logic is that there is jo real progress indicator in SIP, you only know a push was sent but not the SIP device status like 180 Ringing, until the app comes to the foreground. If no device is registered you should still send the push otherwise it defies the purpose. — Adrian > On 5 Feb 2024, at 05:54, Volkan Oransoy wrote: > > Yes they are but the implementation looks for a valid registration record to initiate pn. The route snippet at the blog post looks for the pn enabled registrations with return code 2 then pops up the E_UL_CONTACT_REFRESH event, and waits for a registration from the UA to proxy the call. > # do lookup with method filtering > lookup("location", "m"); > $var(rc) = $retcode; > switch ($var(rc)) { > case 1: > # we found at least 1 non-PN contact! > $var(do_relay) = true; > break; > case 2: > # success, but all contacts are PN-enabled, so we're > # sending PNs / awaiting re-registrations from them > $var(do_relay) = false; > break; > default: > xlog("L_INFO", "DBG: no contacts found ($var(rc))\n"); > t_reply(404, "Not Found"); > exit; > } > ... > if ($var(do_relay) && !t_relay()) > send_reply(500, "Internal Server Error"); > ... > > So practically, UA should keeps its registered state active, so needs a registration refresh in regular intervals. That is not the ideal case for a mobile app I believe. So the main idea is to keep power consumption at minimum. > > Thanks > > Volkan Oransoy > On 4 Feb 2024 at 15:01 +0000, Adrian Georgescu , wrote: >> Push notifications were designed exactly for the case when the UA is not registered. >> >> — >> Adrian >> >> >> >> >>> On 3 Feb 2024, at 09:19, Volkan Oransoy wrote: >>> >>> Hi there >>> >>> @Ronald we use that tool for notification tests and it does the job. >>> https://github.com/flutter-webrtc/callkeep/tree/master/tools >>> >>> We managed to work the setup mentioned at the official blog post but that requires the UA to stay registered. This needs periodic communication between the UA and the registrar proxy as the RFC describes. We want the call to be initiated even if the UA is offline but has a valid token stored. I think we will use the msilo method with a bunch of custom configs and scripts. >>> >>> Let me know if you have any comments, tips etc. >>> >>> Have a great weekend. >>> >>> Volkan Oransoy >>> On 2 Feb 2024 at 14:51 +0000, rvg at rvgeerligs.nl, wrote: >>>> Hi Volkan, >>>> >>>> I implemented the scripting from sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ in opensips 3.4.0. >>>> As the send pn to apple or googlei s not defined I fail to get the parameters passed to the send pn to apns script which I also have. >>>> >>>> I seem to have lost the device-ID in opensips or in any INVITE somewhere as I do not understand the RFC certainly not towards the device_ID or token. Or this ID is stored on registration at the proxy? >>>> >>>> srcipt to directly talk to apple: >>>> https://medium.com/@egzon.arifi/sending-a-push-notification-to-an-ios-device-using-a-bash-script-96c056c1544c >>>> >>>> Please keep me posted on what you find. >>>> >>>> Regards, Ronald >>>> >>>> February 2, 2024 at 6:01 AM, "johan" > wrote: >>>> >>>> send a query directly to apple or to google for waking them up. I did something like that in an external lua script. >>>> >>>> On 2/02/2024 09:49, Volkan Oransoy wrote: >>>> Hi all, >>>> I am working on implementing RFC 8599 and have an architectural question. I followed the blog post https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration. >>>> I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc? >>>> Thanks >>>> >>>> Volkan >>>> _______________________________________________ >>>> Users mailing list >>>> Users at lists.opensips.org >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>> >>>> _______________________________________________ >>>> Users mailing list >>>> Users at lists.opensips.org >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> _______________________________________________ >>> Users mailing list >>> Users at lists.opensips.org >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nzdealshelp at gmail.com Mon Feb 5 10:07:53 2024 From: nzdealshelp at gmail.com (nz deals) Date: Mon, 5 Feb 2024 23:07:53 +1300 Subject: [OpenSIPS-Users] auth_db connection to multiple dbs Message-ID: Hi all, I'm exploring the possibility of connecting the auth_db module to more than one database. Currently, I have authentication records in two distinct databases. While I am successfully connected to one database.table, I am seeking a solution to connect to another database2.table. Is there a method or approach to achieve this? Regards, Jason -------------- next part -------------- An HTML attachment was scrubbed... URL: From voransoy at gmail.com Mon Feb 5 10:15:15 2024 From: voransoy at gmail.com (Volkan Oransoy) Date: Mon, 5 Feb 2024 10:15:15 +0000 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: <017A1073-3694-4FF3-AF58-4C85BEF12F8B@ag-projects.com> References: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> <0C9348AB-4A3D-426B-A406-77473D12AFE2@ag-projects.com> <06b6f632-1f90-46f7-b752-84201636b58f@Spark> <017A1073-3694-4FF3-AF58-4C85BEF12F8B@ag-projects.com> Message-ID: <97937acb-0249-4214-ab00-72a501c07de4@Spark> Hi Adrian Thanks for your comment. I got your point. Can you give a hint to handle the the call forking for freshly registered devices? I need to keep calls in a queue until the UA registers. Is msilo right approach? Thanks Volkan Oransoy On 5 Feb 2024 at 10:02 +0000, Adrian Georgescu , wrote: > You should fork to any registered contact and send push and later fork to any new devices that registered before a predefined timeout. The only flaw with this logic is that there is jo real progress indicator in SIP, you only know a push was sent but not the SIP device status like 180 Ringing, until the app comes to the foreground. > > If no device is registered you should still send the push otherwise it defies the purpose. > > — > Adrian > > > > > > On 5 Feb 2024, at 05:54, Volkan Oransoy wrote: > > > > Yes they are but the implementation looks for a valid registration record to initiate pn. The route snippet at the blog post looks for the pn enabled registrations with return code 2 then pops up the E_UL_CONTACT_REFRESH event, and waits for a registration from the UA to proxy the call. > > # do lookup with method filtering > > lookup("location", "m"); > > $var(rc) = $retcode; > > switch ($var(rc)) { > > case 1: > > # we found at least 1 non-PN contact! > > $var(do_relay) = true; > > break; > > case 2: > > # success, but all contacts are PN-enabled, so we're > > # sending PNs / awaiting re-registrations from them > > $var(do_relay) = false; > > break; > > default: > > xlog("L_INFO", "DBG: no contacts found ($var(rc))\n"); > > t_reply(404, "Not Found"); > > exit; > > } > > ... > > if ($var(do_relay) && !t_relay()) > > send_reply(500, "Internal Server Error"); > > ... > > > > So practically, UA should keeps its registered state active, so needs a registration refresh in regular intervals. That is not the ideal case for a mobile app I believe. So the main idea is to keep power consumption at minimum. > > > > Thanks > > > > Volkan Oransoy > > On 4 Feb 2024 at 15:01 +0000, Adrian Georgescu , wrote: > > > Push notifications were designed exactly for the case when the UA is not registered. > > > > > > — > > > Adrian > > > > > > > > > > > > > > > > On 3 Feb 2024, at 09:19, Volkan Oransoy wrote: > > > > > > > > Hi there > > > > > > > > @Ronald we use that tool for notification tests and it does the job. > > > > https://github.com/flutter-webrtc/callkeep/tree/master/tools > > > > > > > > We managed to work the setup mentioned at the official blog post but that requires the UA to stay registered. This needs periodic communication between the UA and the registrar proxy as the RFC describes. We want the call to be initiated even if the UA is offline but has a valid token stored. I think we will use the msilo method with a bunch of custom configs and scripts. > > > > > > > > Let me know if you have any comments, tips etc. > > > > > > > > Have a great weekend. > > > > > > > > Volkan Oransoy > > > > On 2 Feb 2024 at 14:51 +0000, rvg at rvgeerligs.nl, wrote: > > > > > Hi Volkan, > > > > > > > > > > I implemented the scripting from sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ in opensips 3.4.0. > > > > > As the send pn to apple or googlei s not defined I fail to get the parameters passed to the send pn to apns script which I also have. > > > > > > > > > > I seem to have lost the device-ID in opensips or in any INVITE somewhere as I do not understand the RFC certainly not towards the device_ID or token. Or this ID is stored on registration at the proxy? > > > > > > > > > > srcipt to directly talk to apple: > > > > > https://medium.com/@egzon.arifi/sending-a-push-notification-to-an-ios-device-using-a-bash-script-96c056c1544c > > > > > > > > > > Please keep me posted on what you find. > > > > > > > > > > Regards, Ronald > > > > > > > > > > February 2, 2024 at 6:01 AM, "johan" wrote: > > > > > > send a query directly to apple or to google for waking them up. I did something like that in an external lua script. > > > > > > On 2/02/2024 09:49, Volkan Oransoy wrote: > > > > > > > Hi all, > > > > > > > I am working on implementing RFC 8599 and have an architectural question. I followed the blog post https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration. > > > > > > > I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc? > > > > > > > Thanks > > > > > > > > > > > > > > Volkan > > > > > > > _______________________________________________ > > > > > > > Users mailing list > > > > > > > Users at lists.opensips.org > > > > > > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > > > > > > > _______________________________________________ > > > > > Users mailing list > > > > > Users at lists.opensips.org > > > > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > _______________________________________________ > > > > Users mailing list > > > > Users at lists.opensips.org > > > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > > > _______________________________________________ > > > Users mailing list > > > Users at lists.opensips.org > > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ag at ag-projects.com Mon Feb 5 10:33:28 2024 From: ag at ag-projects.com (Adrian Georgescu) Date: Mon, 5 Feb 2024 07:33:28 -0300 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: <97937acb-0249-4214-ab00-72a501c07de4@Spark> References: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> <0C9348AB-4A3D-426B-A406-77473D12AFE2@ag-projects.com> <06b6f632-1f90-46f7-b752-84201636b58f@Spark> <017A1073-3694-4FF3-AF58-4C85BEF12F8B@ag-projects.com> <97937acb-0249-4214-ab00-72a501c07de4@Spark> Message-ID: <368C8D70-D3BE-43ED-9489-6B42C0CC6CD6@ag-projects.com> You must register at least once, so that the server can collect the push token. Then, later you just wait during the Invite for the devices to get the push with t_wait_for_new_branches(). When any device registers again, you will get notified and can add a new branch to fork to. Msilo has no role into such arrangement. See an example here: https://github.com/AGProjects/sylk-pushserver/blob/master/config/opensips.cfg — Adrian > On 5 Feb 2024, at 07:15, Volkan Oransoy wrote: > > Hi Adrian > > Thanks for your comment. I got your point. Can you give a hint to handle the the call forking for freshly registered devices? I need to keep calls in a queue until the UA registers. Is msilo right approach? > > Thanks > > Volkan Oransoy > On 5 Feb 2024 at 10:02 +0000, Adrian Georgescu , wrote: >> You should fork to any registered contact and send push and later fork to any new devices that registered before a predefined timeout. The only flaw with this logic is that there is jo real progress indicator in SIP, you only know a push was sent but not the SIP device status like 180 Ringing, until the app comes to the foreground. >> >> If no device is registered you should still send the push otherwise it defies the purpose. >> >> — >> Adrian >> >> >> >> >>> On 5 Feb 2024, at 05:54, Volkan Oransoy wrote: >>> >>> Yes they are but the implementation looks for a valid registration record to initiate pn. The route snippet at the blog post looks for the pn enabled registrations with return code 2 then pops up the E_UL_CONTACT_REFRESH event, and waits for a registration from the UA to proxy the call. >>> # do lookup with method filtering >>> lookup("location", "m"); >>> $var(rc) = $retcode; >>> switch ($var(rc)) { >>> case 1: >>> # we found at least 1 non-PN contact! >>> $var(do_relay) = true; >>> break; >>> case 2: >>> # success, but all contacts are PN-enabled, so we're >>> # sending PNs / awaiting re-registrations from them >>> $var(do_relay) = false; >>> break; >>> default: >>> xlog("L_INFO", "DBG: no contacts found ($var(rc))\n"); >>> t_reply(404, "Not Found"); >>> exit; >>> } >>> ... >>> if ($var(do_relay) && !t_relay()) >>> send_reply(500, "Internal Server Error"); >>> ... >>> >>> So practically, UA should keeps its registered state active, so needs a registration refresh in regular intervals. That is not the ideal case for a mobile app I believe. So the main idea is to keep power consumption at minimum. >>> >>> Thanks >>> >>> Volkan Oransoy >>> On 4 Feb 2024 at 15:01 +0000, Adrian Georgescu , wrote: >>>> Push notifications were designed exactly for the case when the UA is not registered. >>>> >>>> — >>>> Adrian >>>> >>>> >>>> >>>> >>>>> On 3 Feb 2024, at 09:19, Volkan Oransoy wrote: >>>>> >>>>> Hi there >>>>> >>>>> @Ronald we use that tool for notification tests and it does the job. >>>>> https://github.com/flutter-webrtc/callkeep/tree/master/tools >>>>> >>>>> We managed to work the setup mentioned at the official blog post but that requires the UA to stay registered. This needs periodic communication between the UA and the registrar proxy as the RFC describes. We want the call to be initiated even if the UA is offline but has a valid token stored. I think we will use the msilo method with a bunch of custom configs and scripts. >>>>> >>>>> Let me know if you have any comments, tips etc. >>>>> >>>>> Have a great weekend. >>>>> >>>>> Volkan Oransoy >>>>> On 2 Feb 2024 at 14:51 +0000, rvg at rvgeerligs.nl, wrote: >>>>>> Hi Volkan, >>>>>> >>>>>> I implemented the scripting from sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ in opensips 3.4.0. >>>>>> As the send pn to apple or googlei s not defined I fail to get the parameters passed to the send pn to apns script which I also have. >>>>>> >>>>>> I seem to have lost the device-ID in opensips or in any INVITE somewhere as I do not understand the RFC certainly not towards the device_ID or token. Or this ID is stored on registration at the proxy? >>>>>> >>>>>> srcipt to directly talk to apple: >>>>>> https://medium.com/@egzon.arifi/sending-a-push-notification-to-an-ios-device-using-a-bash-script-96c056c1544c >>>>>> >>>>>> Please keep me posted on what you find. >>>>>> >>>>>> Regards, Ronald >>>>>> >>>>>> February 2, 2024 at 6:01 AM, "johan" wrote: >>>>>> send a query directly to apple or to google for waking them up. I did something like that in an external lua script. >>>>>> On 2/02/2024 09:49, Volkan Oransoy wrote: >>>>>> Hi all, >>>>>> I am working on implementing RFC 8599 and have an architectural question. I followed the blog post https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration. >>>>>> I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc? >>>>>> Thanks >>>>>> >>>>>> Volkan >>>>>> _______________________________________________ >>>>>> Users mailing list >>>>>> Users at lists.opensips.org >>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Users mailing list >>>>>> Users at lists.opensips.org >>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>>> _______________________________________________ >>>>> Users mailing list >>>>> Users at lists.opensips.org >>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>> >>>> _______________________________________________ >>>> Users mailing list >>>> Users at lists.opensips.org >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> From voransoy at gmail.com Mon Feb 5 10:45:25 2024 From: voransoy at gmail.com (Volkan Oransoy) Date: Mon, 5 Feb 2024 10:45:25 +0000 Subject: [OpenSIPS-Users] Implementation of RFC 8599 In-Reply-To: <368C8D70-D3BE-43ED-9489-6B42C0CC6CD6@ag-projects.com> References: <8a52fa44afa78ddd73f552498e0494031f46ebe8@rvgeerligs.nl> <0C9348AB-4A3D-426B-A406-77473D12AFE2@ag-projects.com> <06b6f632-1f90-46f7-b752-84201636b58f@Spark> <017A1073-3694-4FF3-AF58-4C85BEF12F8B@ag-projects.com> <97937acb-0249-4214-ab00-72a501c07de4@Spark> <368C8D70-D3BE-43ED-9489-6B42C0CC6CD6@ag-projects.com> Message-ID: That is exactly what I was looking for :) Thank you Adrian. Volkan Oransoy On 5 Feb 2024 at 10:34 +0000, Adrian Georgescu , wrote: > You must register at least once, so that the server can collect the push token. Then, later you just wait during the Invite for the devices to get the push with t_wait_for_new_branches(). When any device registers again, you will get notified and can add a new branch to fork to. Msilo has no role into such arrangement. > > See an example here: > > https://github.com/AGProjects/sylk-pushserver/blob/master/config/opensips.cfg > > — > Adrian > > > > > > On 5 Feb 2024, at 07:15, Volkan Oransoy wrote: > > > > Hi Adrian > > > > Thanks for your comment. I got your point. Can you give a hint to handle the the call forking for freshly registered devices? I need to keep calls in a queue until the UA registers. Is msilo right approach? > > > > Thanks > > > > Volkan Oransoy > > On 5 Feb 2024 at 10:02 +0000, Adrian Georgescu , wrote: > > > > You should fork to any registered contact and send push and later fork to any new devices that registered before a predefined timeout. The only flaw with this logic is that there is jo real progress indicator in SIP, you only know a push was sent but not the SIP device status like 180 Ringing, until the app comes to the foreground. > > > > > > > > If no device is registered you should still send the push otherwise it defies the purpose. > > > > > > > > — > > > > Adrian > > > > > > > > > > > > > > > > > > > > >> On 5 Feb 2024, at 05:54, Volkan Oransoy wrote: > > > > >> > > > > >> Yes they are but the implementation looks for a valid registration record to initiate pn. The route snippet at the blog post looks for the pn enabled registrations with return code 2 then pops up the E_UL_CONTACT_REFRESH event, and waits for a registration from the UA to proxy the call. > > > > >> # do lookup with method filtering > > > > >> lookup("location", "m"); > > > > >> $var(rc) = $retcode; > > > > >> switch ($var(rc)) { > > > > >> case 1: > > > > >> # we found at least 1 non-PN contact! > > > > >> $var(do_relay) = true; > > > > >> break; > > > > >> case 2: > > > > >> # success, but all contacts are PN-enabled, so we're > > > > >> # sending PNs / awaiting re-registrations from them > > > > >> $var(do_relay) = false; > > > > >> break; > > > > >> default: > > > > >> xlog("L_INFO", "DBG: no contacts found ($var(rc))\n"); > > > > >> t_reply(404, "Not Found"); > > > > >> exit; > > > > >> } > > > > >> ... > > > > >> if ($var(do_relay) && !t_relay()) > > > > >> send_reply(500, "Internal Server Error"); > > > > >> ... > > > > >> > > > > >> So practically, UA should keeps its registered state active, so needs a registration refresh in regular intervals. That is not the ideal case for a mobile app I believe. So the main idea is to keep power consumption at minimum. > > > > >> > > > > >> Thanks > > > > >> > > > > >> Volkan Oransoy > > > > >> On 4 Feb 2024 at 15:01 +0000, Adrian Georgescu , wrote: > > > > > >>> Push notifications were designed exactly for the case when the UA is not registered. > > > > > >>> > > > > > >>> — > > > > > >>> Adrian > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > > > >>>> On 3 Feb 2024, at 09:19, Volkan Oransoy wrote: > > > > > > >>>> > > > > > > >>>> Hi there > > > > > > >>>> > > > > > > >>>> @Ronald we use that tool for notification tests and it does the job. > > > > > > >>>> https://github.com/flutter-webrtc/callkeep/tree/master/tools > > > > > > >>>> > > > > > > >>>> We managed to work the setup mentioned at the official blog post but that requires the UA to stay registered. This needs periodic communication between the UA and the registrar proxy as the RFC describes. We want the call to be initiated even if the UA is offline but has a valid token stored. I think we will use the msilo method with a bunch of custom configs and scripts. > > > > > > >>>> > > > > > > >>>> Let me know if you have any comments, tips etc. > > > > > > >>>> > > > > > > >>>> Have a great weekend. > > > > > > >>>> > > > > > > >>>> Volkan Oransoy > > > > > > >>>> On 2 Feb 2024 at 14:51 +0000, rvg at rvgeerligs.nl, wrote: > > > > > > > >>>>> Hi Volkan, > > > > > > > >>>>> > > > > > > > >>>>> I implemented the scripting from sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ in opensips 3.4.0. > > > > > > > >>>>> As the send pn to apple or googlei s not defined I fail to get the parameters passed to the send pn to apns script which I also have. > > > > > > > >>>>> > > > > > > > >>>>> I seem to have lost the device-ID in opensips or in any INVITE somewhere as I do not understand the RFC certainly not towards the device_ID or token. Or this ID is stored on registration at the proxy? > > > > > > > >>>>> > > > > > > > >>>>> srcipt to directly talk to apple: > > > > > > > >>>>> https://medium.com/@egzon.arifi/sending-a-push-notification-to-an-ios-device-using-a-bash-script-96c056c1544c > > > > > > > >>>>> > > > > > > > >>>>> Please keep me posted on what you find. > > > > > > > >>>>> > > > > > > > >>>>> Regards, Ronald > > > > > > > >>>>> > > > > > > > >>>>> February 2, 2024 at 6:01 AM, "johan" wrote: > > > > > > > >>>>> send a query directly to apple or to google for waking them up. I did something like that in an external lua script. > > > > > > > >>>>> On 2/02/2024 09:49, Volkan Oransoy wrote: > > > > > > > >>>>> Hi all, > > > > > > > >>>>> I am working on implementing RFC 8599 and have an architectural question. I followed the blog post https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ and it works. Based on the rfc and the implementation of Opensips, the UA should have a valid registration throughout the process. When a lookup performed, opensips finds the pn-enabled record, triggers the PN and after a re-registration of the UA, it proxies the call. This process works without an issue. But when we kill the UA on the client device (the client is connected via WSS), after the registration expires, the call can't be proxied since there is no registration. > > > > > > > >>>>> I want to wake up the UA even if there is no registration on the proxy and suspend the call until the UA registers to the system. Should I handle this scenario with a custom setup? How do you handle this scenario on your setups? Or do I misinterpret the rfc? > > > > > > > >>>>> Thanks > > > > > > > >>>>> > > > > > > > >>>>> Volkan > > > > > > > >>>>> _______________________________________________ > > > > > > > >>>>> Users mailing list > > > > > > > >>>>> Users at lists.opensips.org > > > > > > > >>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > > > > >>>>> > > > > > > > >>>>> > > > > > > > >>>>> _______________________________________________ > > > > > > > >>>>> Users mailing list > > > > > > > >>>>> Users at lists.opensips.org > > > > > > > >>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > > > >>>> _______________________________________________ > > > > > > >>>> Users mailing list > > > > > > >>>> Users at lists.opensips.org > > > > > > >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > > >>> > > > > > >>> _______________________________________________ > > > > > >>> Users mailing list > > > > > >>> Users at lists.opensips.org > > > > > >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Mon Feb 5 10:58:41 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Mon, 5 Feb 2024 12:58:41 +0200 Subject: [OpenSIPS-Users] load_balancer usage counter In-Reply-To: References: <16fa71c0-b328-495d-bf24-4891f7c7eafe@opensips.org> Message-ID: <5c938db6-b244-40b4-89d5-4304a94b60b1@opensips.org> Hi Callum, Just to be 100% sure I got this right - the exact issue you report here is also (in a more detailed way) reported in 3297 HG ticket, right ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 02.02.2024 16:53, Callum Guy wrote: > Hi Bogdan, > > Thanks for taking a look. > > I'm still working on this and was in the process of writing a second > issue to discuss my findings from looking at the module. In essence we > can see the profiles potentially being counted multiple times - both > in the max_load calculation (lb_update_max_loads) and then again in > the balancing code itself (get_dst_load). > > You are correct that I have multiple OpenSIPs in front of these > freeswitch instances. I operate separate registrars and SBCs and these > do not replicate data to each other. The main complication arises as I > am gradually releasing this onto a busy system - callers are currently > allocated to a specific freeswitch server using manually controlled > logic and am aiming to use the load balancer to automatically > distribute the calls, allowing instances to be easily added and > removed without reallocating callers to devices. As the vast majority > are not initially enrolled in the load balancer the calls are not > being counted and therefore the test accounts all have zero calls in > the profile and the call is being distributed to any instance rather > than the instance which has the most available channels > proportionally. > > I've just gone ahead and posted the issue > (https://github.com/OpenSIPS/opensips/issues/3297) as you've responded > - that might add confusion or clarity, I'm not sure yet! > > I think I need to take some more time to review the module and propose > a solution that will work for my scenario but I'm happy to share more > details of the setup if you are interested in helping me to find a > solution that would work for both me and the community. > > Many thanks, > > Callum > > On Fri, 2 Feb 2024 at 14:37, Bogdan-Andrei Iancu wrote: >> Hi Callum, >> >> I can confirm the module increments its internal load with each call, so >> you are good to go. Still, I do not understand why using the FS >> heartbeat here? are the FS servers receiving calls from other >> destination than OpenSIPS too ? >> >> Regards, >> >> Bogdan-Andrei Iancu >> >> OpenSIPS Founder and Developer >> https://www.opensips-solutions.com >> https://www.siphub.com >> >> On 30.01.2024 16:27, Callum Guy wrote: >>> Hi All, >>> >>> I'm implementing the load_balancer module on a very busy system where >>> thousands of calls may arrive in a matter of seconds. The module is >>> configured to receive heartbeats every 1 second from many freeswitch >>> servers, I have this set as a low value to try and keep OpenSIPs up to >>> date with the real call load, as close to real time as possible. >>> >>> All servers exist in a single group "channels" to keep the initial >>> implementation simple. When I kick off the session I use lb_start(1, >>> "channels", "rs") and if that destination fails I use lb_is_started() >>> and lb_next() to select the next destination. >>> >>> With the high call rate I'm concerned that the load values acquired 1 >>> second ago will be used for the entirety of the following second which >>> would likely lead to a highly imbalanced load. If 1000 calls arrive in >>> that second I need them spread evenly over the freeswitch servers >>> which can only happen if OpenSIPs is counting each call as its >>> allocated. >>> >>> My hope is that the module increments its counters each time a call is >>> allocated to a destination; however I have been unable to isolate the >>> line of code which performs this operation so I'm reaching out for >>> confirmation. I can see the module adding the dialogs to profiles and >>> that a separate lb_count_call() method is provided for counting calls >>> but I'm unclear on the exact usage although it certainly encourages me >>> that this counting is taking place somewhere. >>> >>> Thanks for reading, >>> >>> Callum >>> From callum.guy at x-on.co.uk Mon Feb 5 11:09:22 2024 From: callum.guy at x-on.co.uk (Callum Guy) Date: Mon, 5 Feb 2024 11:09:22 +0000 Subject: [OpenSIPS-Users] load_balancer usage counter In-Reply-To: <5c938db6-b244-40b4-89d5-4304a94b60b1@opensips.org> References: <16fa71c0-b328-495d-bf24-4891f7c7eafe@opensips.org> <5c938db6-b244-40b4-89d5-4304a94b60b1@opensips.org> Message-ID: Yes, that is correct. My apologies in advance for the half formed issue - my implementation with multiple OpenSIPs instances in front of the freeswitches isn't ideal for the module and I'm just looking for the best solution for such a scenario. I'm happy to share more details if that's useful but the main goal is to ensure that channels are used "somewhat" evenly as a percentage of the maximum sessions reported by each freeswitch instance. On Mon, 5 Feb 2024 at 10:58, Bogdan-Andrei Iancu wrote: > > Hi Callum, > > Just to be 100% sure I got this right - the exact issue you report here > is also (in a more detailed way) reported in 3297 HG ticket, right ? > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 02.02.2024 16:53, Callum Guy wrote: > > Hi Bogdan, > > > > Thanks for taking a look. > > > > I'm still working on this and was in the process of writing a second > > issue to discuss my findings from looking at the module. In essence we > > can see the profiles potentially being counted multiple times - both > > in the max_load calculation (lb_update_max_loads) and then again in > > the balancing code itself (get_dst_load). > > > > You are correct that I have multiple OpenSIPs in front of these > > freeswitch instances. I operate separate registrars and SBCs and these > > do not replicate data to each other. The main complication arises as I > > am gradually releasing this onto a busy system - callers are currently > > allocated to a specific freeswitch server using manually controlled > > logic and am aiming to use the load balancer to automatically > > distribute the calls, allowing instances to be easily added and > > removed without reallocating callers to devices. As the vast majority > > are not initially enrolled in the load balancer the calls are not > > being counted and therefore the test accounts all have zero calls in > > the profile and the call is being distributed to any instance rather > > than the instance which has the most available channels > > proportionally. > > > > I've just gone ahead and posted the issue > > (https://github.com/OpenSIPS/opensips/issues/3297) as you've responded > > - that might add confusion or clarity, I'm not sure yet! > > > > I think I need to take some more time to review the module and propose > > a solution that will work for my scenario but I'm happy to share more > > details of the setup if you are interested in helping me to find a > > solution that would work for both me and the community. > > > > Many thanks, > > > > Callum > > > > On Fri, 2 Feb 2024 at 14:37, Bogdan-Andrei Iancu wrote: > >> Hi Callum, > >> > >> I can confirm the module increments its internal load with each call, so > >> you are good to go. Still, I do not understand why using the FS > >> heartbeat here? are the FS servers receiving calls from other > >> destination than OpenSIPS too ? > >> > >> Regards, > >> > >> Bogdan-Andrei Iancu > >> > >> OpenSIPS Founder and Developer > >> https://www.opensips-solutions.com > >> https://www.siphub.com > >> > >> On 30.01.2024 16:27, Callum Guy wrote: > >>> Hi All, > >>> > >>> I'm implementing the load_balancer module on a very busy system where > >>> thousands of calls may arrive in a matter of seconds. The module is > >>> configured to receive heartbeats every 1 second from many freeswitch > >>> servers, I have this set as a low value to try and keep OpenSIPs up to > >>> date with the real call load, as close to real time as possible. > >>> > >>> All servers exist in a single group "channels" to keep the initial > >>> implementation simple. When I kick off the session I use lb_start(1, > >>> "channels", "rs") and if that destination fails I use lb_is_started() > >>> and lb_next() to select the next destination. > >>> > >>> With the high call rate I'm concerned that the load values acquired 1 > >>> second ago will be used for the entirety of the following second which > >>> would likely lead to a highly imbalanced load. If 1000 calls arrive in > >>> that second I need them spread evenly over the freeswitch servers > >>> which can only happen if OpenSIPs is counting each call as its > >>> allocated. > >>> > >>> My hope is that the module increments its counters each time a call is > >>> allocated to a destination; however I have been unable to isolate the > >>> line of code which performs this operation so I'm reaching out for > >>> confirmation. I can see the module adding the dialogs to profiles and > >>> that a separate lb_count_call() method is provided for counting calls > >>> but I'm unclear on the exact usage although it certainly encourages me > >>> that this counting is taking place somewhere. > >>> > >>> Thanks for reading, > >>> > >>> Callum > >>> > -- *0333 332 0000  |  x-on.co.uk   | **  |   **Practice Index Reviews * *Our new office address: 22 Riduna Park, Melton IP12 1QT.* X-on is a trading name of X-on Health Ltd a limited company registered in England and Wales. Registered Office : Glebe Farm, Down Street, Dummer, Basingstoke, Hampshire, England RG25 2AD. Company Registration No. 2578478. The information in this e-mail is confidential and for use by the addressee(s) only. If you are not the intended recipient, please notify X-on immediately on +44(0)333 332 0000 and delete the message from your computer. If you are not a named addressee you must not use, disclose, disseminate, distribute, copy, print or reply to this email. Views or opinions expressed by an individual within this email may not necessarily reflect the views of X-on or its associated companies. Although X-on routinely screens for viruses, addressees should scan this email and any attachments for viruses. X-on makes no representation or warranty as to the absence of viruses in this email or any attachments. From bogdan at opensips.org Mon Feb 5 15:41:37 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Mon, 5 Feb 2024 17:41:37 +0200 Subject: [OpenSIPS-Users] auth_db connection to multiple dbs In-Reply-To: References: Message-ID: <5ec48e1b-c252-4d0f-8767-7e595b9a7eee@opensips.org> Hi Jason, Not really, the module supports only one DB URL. An option here will be use the pv_xxxx_authorize() functions [1] from the auth module and do take care of the DB part at script level (like via avp_db_query which supports multiple db urls [2]) [1] https://opensips.org/html/docs/modules/3.4.x/auth.html#func_pv_www_authorize [2] https://opensips.org/html/docs/modules/3.4.x/avpops.html#param_db_scheme Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 05.02.2024 12:07, nz deals wrote: > Hi all, > > I'm exploring the possibility of connecting the auth_db module to more > than one database. Currently, I have authentication records in two > distinct databases. While I am successfully connected to one > database.table, I am seeking a solution to connect to another > database2.table. Is there a method or approach to achieve this? > > > Regards, > Jason > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users From Li.Cai at comtech.com Tue Feb 6 19:06:23 2024 From: Li.Cai at comtech.com (Li Cai) Date: Tue, 6 Feb 2024 19:06:23 +0000 Subject: [OpenSIPS-Users] How to get to-tag from the dialog between the remote and B2B server entity Message-ID: Hi, Can anyone help to get the to-tag from the dialog between the remote caller and the B2B server entity? I have tried with these two methods - 1. ACK in route{}, route { If (is_method("ACK")) { ------------------- the code is not reachable even there is ACK came from the remote caller to the B2B server entity }; } 1. 200OK in onreply_route{}, onreply_route() { ---------- the to-tag only came from the dialog between the B2B client entity and the remote callee } The OpenSIPs version I'm on is V2.4.6. Your help is highly appreciated. Thanks, Li -------------- next part -------------- An HTML attachment was scrubbed... URL: From Li.Cai at comtech.com Wed Feb 7 02:02:57 2024 From: Li.Cai at comtech.com (Li Cai) Date: Wed, 7 Feb 2024 02:02:57 +0000 Subject: [OpenSIPS-Users] How to get to-tag from the dialog between the remote and B2B server entity In-Reply-To: References: Message-ID: Hi, Pls ignore the previous email, the problem has been solved. Thank you so much. Best Regards, Li From: Li Cai Sent: Tuesday, February 6, 2024 2:06 PM To: users at lists.opensips.org Subject: How to get to-tag from the dialog between the remote and B2B server entity Hi, Can anyone help to get the to-tag from the dialog between the remote caller and the B2B server entity? I have tried with these two methods - 1. ACK in route{}, route { If (is_method("ACK")) { ------------------- the code is not reachable even there is ACK came from the remote caller to the B2B server entity }; } 1. 200OK in onreply_route{}, onreply_route() { ---------- the to-tag only came from the dialog between the B2B client entity and the remote callee } The OpenSIPs version I'm on is V2.4.6. Your help is highly appreciated. Thanks, Li -------------- next part -------------- An HTML attachment was scrubbed... URL: From slackway2me at gmail.com Wed Feb 7 10:31:58 2024 From: slackway2me at gmail.com (Alexey) Date: Wed, 7 Feb 2024 15:31:58 +0500 Subject: [OpenSIPS-Users] variable/avp value check Message-ID: Hi list, what is the best way in 3.2 to push multiple values from DB query to an avp and then check if other variable or other avp value is among one of those values ? There is some simple table, like 1234 customer1 5678 customer2 ... etc I'd like to fetch some integer from From: header of INVITE (not a problem), and check if this integer is in that table. And implement some caching, not to do SQL query for each INVITE. Maybe one of solutions is to use avp_db_query [1] and then store all results which were obtained from the table into some single AVP with multiple values? (if it can be unlimited? I need several dozens, no more, but the total count may be dynamic) If so, what is the best way to check if some variable's value is one from all values of a single AVP? An example to make my question more clear: INVITE sip:995322807050 at 1.2.3.4:5060 SIP/2.0 ... From: "customer-1234 995322807050" ; ... some script magic to fetch "1234" and assign it to some variable/AVP ... And now I'd like to check if "1234" is in some table (or is not). GROUP [2] module seems to be appropriate, but strict membership checking needs an SQL query each time (no caching support), and regular expression based checking uses cache but is not able to be reloaded without OpenSIPS restart. And we need both caching and reloading. [1] https://opensips.org/docs/modules/3.2.x/avpops.html#func_avp_db_query [2] https://opensips.org/docs/modules/3.2.x/group.html -- best regards, Alexey https://alexeyka.zantsev.com/ From slackway2me at gmail.com Wed Feb 7 19:11:15 2024 From: slackway2me at gmail.com (Alexey) Date: Thu, 8 Feb 2024 00:11:15 +0500 Subject: [OpenSIPS-Users] variable/avp value check In-Reply-To: References: Message-ID: for each [1] statement seems to be what I need [1] https://www.opensips.org/Documentation/Script-Statements-3-2#toc4 -- best regards, Alexey https://alexeyka.zantsev.com/ From Ben.Newlin at genesys.com Wed Feb 7 23:41:08 2024 From: Ben.Newlin at genesys.com (Ben Newlin) Date: Wed, 7 Feb 2024 23:41:08 +0000 Subject: [OpenSIPS-Users] variable/avp value check In-Reply-To: References: Message-ID: You should look at the SQL Cacher module: https://opensips.org/docs/modules/3.2.x/sql_cacher.html Ben Newlin From: Users on behalf of Alexey Date: Wednesday, February 7, 2024 at 11:13 AM To: users at lists.opensips.org Subject: Re: [OpenSIPS-Users] variable/avp value check EXTERNAL EMAIL - Please use caution with links and attachments for each [1] statement seems to be what I need [1] https://www.opensips.org/Documentation/Script-Statements-3-2#toc4 -- best regards, Alexey https://alexeyka.zantsev.com _______________________________________________ Users mailing list Users at lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From prathibhab.tvm at gmail.com Thu Feb 8 05:49:06 2024 From: prathibhab.tvm at gmail.com (Prathibha B) Date: Thu, 8 Feb 2024 11:19:06 +0530 Subject: [OpenSIPS-Users] OpenSIPS - Asterisk Integration Message-ID: Has anyone done the integration of Opensips 3.4 with Asterisk 18.20? -- Regards, B.Prathibha -------------- next part -------------- An HTML attachment was scrubbed... URL: From slackway2me at gmail.com Thu Feb 8 18:54:11 2024 From: slackway2me at gmail.com (Alexey) Date: Thu, 8 Feb 2024 23:54:11 +0500 Subject: [OpenSIPS-Users] OpenSIPS - Asterisk Integration In-Reply-To: References: Message-ID: Hello, What exact kind of integration do you mean? Any peculiarities of the 18.20 release? There is a tutorial [1] but for OpenSIPS 1.8 and Asterisk 1.8. So, the main difference according to Asterisk is moving from chan_sip towards chan_pjsip. [1] https://www.opensips.org/Documentation/Tutorials-OpenSIPSAsteriskIntegration-1-8 -- best regards, Alexey https://alexeyka.zantsev.com/ From prathibhab.tvm at gmail.com Fri Feb 9 00:19:49 2024 From: prathibhab.tvm at gmail.com (Prathibha B) Date: Fri, 9 Feb 2024 00:19:49 +0000 Subject: [OpenSIPS-Users] OpenSIPS - Asterisk Integration In-Reply-To: References: Message-ID: I want to setup a call center. Sent from Outlook for Android ________________________________ From: Users on behalf of Alexey Sent: Friday, February 9, 2024 12:24:11 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] OpenSIPS - Asterisk Integration Hello, What exact kind of integration do you mean? Any peculiarities of the 18.20 release? There is a tutorial [1] but for OpenSIPS 1.8 and Asterisk 1.8. So, the main difference according to Asterisk is moving from chan_sip towards chan_pjsip. [1] https://www.opensips.org/Documentation/Tutorials-OpenSIPSAsteriskIntegration-1-8 -- best regards, Alexey https://alexeyka.zantsev.com/ _______________________________________________ Users mailing list Users at lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From slackway2me at gmail.com Fri Feb 9 08:31:46 2024 From: slackway2me at gmail.com (Alexey) Date: Fri, 9 Feb 2024 13:31:46 +0500 Subject: [OpenSIPS-Users] OpenSIPS - Asterisk Integration In-Reply-To: References: Message-ID: Is it possible to cache not exact number of table row but all values from concrete column from all rows? The total amount of rows in table is not big, several rows or several dozens. -- best regards, Alexey https://alexeyka.zantsev.com/ From slackway2me at gmail.com Fri Feb 9 10:00:48 2024 From: slackway2me at gmail.com (Alexey) Date: Fri, 9 Feb 2024 15:00:48 +0500 Subject: [OpenSIPS-Users] OpenSIPS - Asterisk Integration In-Reply-To: References: Message-ID: excuse me, posted message to wrong thread -- best regards, Alexey https://alexeyka.zantsev.com/ From social at bohboh.info Fri Feb 9 11:46:41 2024 From: social at bohboh.info (Social Boh) Date: Fri, 9 Feb 2024 06:46:41 -0500 Subject: [OpenSIPS-Users] OpenSIPs generate PRACK Message-ID: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> Hello list, can OpenSIPs generate a PRACK message to reply a 180/183 message? Thank you Regards --- I'm SoCIaL, MayBe From slackway2me at gmail.com Fri Feb 9 20:44:31 2024 From: slackway2me at gmail.com (Alexey) Date: Sat, 10 Feb 2024 01:44:31 +0500 Subject: [OpenSIPS-Users] variable/avp value check In-Reply-To: References: Message-ID: Hi list, the problem was solved. Highlights: 1. Select data from DB using timer_route with timeout (for regular data updates) and store it in AVP. This AVP is seen in timer_route only. So, put all its values into the local_cache (with the same timeout), to be able to use it in the main route. timer_route[id_update, 300] { # get all IDs of customers who have some feature (our inner logic) # and store all them in a single AVP. avp_db_query("select customer_id from customers","$avp(goldencustomers)"); # put each AVP's index value into a separate local_cache attribute (record) with value "1". for ($var(blahblah) in $(avp(goldencustomers)[*])) cache_store ("local","goldencustomers_$var(blahblah)","1",300); } -------------------------------------------------------------------------------- 2. Get needed parts of SIP-headers according to our inner logic... Don't forget to reset variables before applying the value! (See "Hints" section: https://www.opensips.org/Documentation/Script-CoreVar-3-2#varscript ) # main route route { ... # initial INVITES section ... $var(customerfullid) = NULL; $var(customerfullid) = $(fn{s.select,0, }); # get "Customer-1234 from full CallerID. index 0, separator is space. $var(customerid) = NULL; $var(customerid) = $(var(customerfullid){s.select,1,-}); # get 1234 from "Customer-1234 $var(ret) = NULL; cache_fetch("local", "goldencustomers_$var(blahblah)", $var(ret)); # check if there is a local_cache attribute value for INVITE with such ID in 'From:' header if ($var(ret) == "1") { xlog("L_INFO", "[$ci] attr value from cache_local is: $var(ret) . $var(customerfullid) has privileges. goto route customers_gold"); route(customers_gold); } else { xlog("L_INFO", "[$ci] attr value from cache_local is: $var(ret) . $var(customerfullid) has no privileges. goto route customers_all"); route(customers_all); } ... } #main route END -------------------------------------------------------------------------------- 3. Additional routes. # do not apply global call-limits here route[customers_gold] { xlog("L_INFO", "[$ci] This is $route . This $var(customerfullid) has privileges. Global call-limits not applied."); ... } # apply global call-limits here route[customers_all] { xlog("L_INFO", "[$ci] This is $route . This $var(customerfullid) has no privileges. Global call-limits applied."); ... # call-limit logic } -- best regards, Alexey https://alexeyka.zantsev.com/ From Ben.Newlin at genesys.com Fri Feb 9 23:37:59 2024 From: Ben.Newlin at genesys.com (Ben Newlin) Date: Fri, 9 Feb 2024 23:37:59 +0000 Subject: [OpenSIPS-Users] variable/avp value check In-Reply-To: References: Message-ID: The SQL Cacher module I mentioned does exactly this already. It seems you’ve just created a very simplified version of that module in your script. I’d recommend checking it out: https://opensips.org/docs/modules/3.2.x/sql_cacher.html Ben Newlin From: Users on behalf of Alexey Date: Friday, February 9, 2024 at 12:46 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] variable/avp value check EXTERNAL EMAIL - Please use caution with links and attachments Hi list, the problem was solved. Highlights: 1. Select data from DB using timer_route with timeout (for regular data updates) and store it in AVP. This AVP is seen in timer_route only. So, put all its values into the local_cache (with the same timeout), to be able to use it in the main route. timer_route[id_update, 300] { # get all IDs of customers who have some feature (our inner logic) # and store all them in a single AVP. avp_db_query("select customer_id from customers","$avp(goldencustomers)"); # put each AVP's index value into a separate local_cache attribute (record) with value "1". for ($var(blahblah) in $(avp(goldencustomers)[*])) cache_store ("local","goldencustomers_$var(blahblah)","1",300); } -------------------------------------------------------------------------------- 2. Get needed parts of SIP-headers according to our inner logic... Don't forget to reset variables before applying the value! (See "Hints" section: https://www.opensips.org/Documentation/Script-CoreVar-3-2#varscript ) # main route route { ... # initial INVITES section ... $var(customerfullid) = NULL; $var(customerfullid) = $(fn{s.select,0, }); # get "Customer-1234 from full CallerID. index 0, separator is space. $var(customerid) = NULL; $var(customerid) = $(var(customerfullid){s.select,1,-}); # get 1234 from "Customer-1234 $var(ret) = NULL; cache_fetch("local", "goldencustomers_$var(blahblah)", $var(ret)); # check if there is a local_cache attribute value for INVITE with such ID in 'From:' header if ($var(ret) == "1") { xlog("L_INFO", "[$ci] attr value from cache_local is: $var(ret) . $var(customerfullid) has privileges. goto route customers_gold"); route(customers_gold); } else { xlog("L_INFO", "[$ci] attr value from cache_local is: $var(ret) . $var(customerfullid) has no privileges. goto route customers_all"); route(customers_all); } ... } #main route END -------------------------------------------------------------------------------- 3. Additional routes. # do not apply global call-limits here route[customers_gold] { xlog("L_INFO", "[$ci] This is $route . This $var(customerfullid) has privileges. Global call-limits not applied."); ... } # apply global call-limits here route[customers_all] { xlog("L_INFO", "[$ci] This is $route . This $var(customerfullid) has no privileges. Global call-limits applied."); ... # call-limit logic } -- best regards, Alexey https://alexeyka.zantsev.com _______________________________________________ Users mailing list Users at lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From medeanwz at gmail.com Sat Feb 10 02:00:59 2024 From: medeanwz at gmail.com (M S) Date: Sat, 10 Feb 2024 03:00:59 +0100 Subject: [OpenSIPS-Users] SDP reroute and rewrite Message-ID: Hi list, When using rtpproxy_offer/answer, how can I rewrite SDP media IP/port if for example the first route rejects the calls and I have to send the call (in failure_route) to the next destination (where second destination uses different media ip/port/rtpproxy set)? If I just call rtpproxy_offer again, on second try it changes IPs to something like: m=audio 1106210576 RTP/AVP 8 0 101 c=IN IP4 172.17.182.213172.17.182.210 a=rtcp:11063 IN IP4 172.17.182.21310577 IN IP4 172.17.182.210 I tried unforce and it didn't work. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From social at bohboh.info Mon Feb 12 00:10:36 2024 From: social at bohboh.info (Social Boh) Date: Sun, 11 Feb 2024 19:10:36 -0500 Subject: [OpenSIPS-Users] enable and disable debug from opensips-cli Message-ID: <073583eb-3aec-4f75-8ad5-ce561fac051e@bohboh.info> Hello list, is there a way to enable and disable DEBUG mode using opensips-cli? with debug=yes in opensips.cfg the proxy don't restart I have to debug B2B_ENTITIES module Thank you Regards -- --- I'm SoCIaL, MayBe From social at bohboh.info Mon Feb 12 00:18:44 2024 From: social at bohboh.info (Social Boh) Date: Sun, 11 Feb 2024 19:18:44 -0500 Subject: [OpenSIPS-Users] enable and disable debug from opensips-cli [SOLVED] In-Reply-To: <073583eb-3aec-4f75-8ad5-ce561fac051e@bohboh.info> References: <073583eb-3aec-4f75-8ad5-ce561fac051e@bohboh.info> Message-ID: sorry for the noise log_level=4 Regards --- I'm SoCIaL, MayBe El 11/02/2024 a las 7:10 p. m., Social Boh escribió: > Hello list, > > is there a way to enable and disable DEBUG mode using opensips-cli? > > with debug=yes in opensips.cfg the proxy don't restart > > I have to debug B2B_ENTITIES module > > Thank you > > Regards > From social at bohboh.info Mon Feb 12 01:27:01 2024 From: social at bohboh.info (Social Boh) Date: Sun, 11 Feb 2024 20:27:01 -0500 Subject: [OpenSIPS-Users] OpenSIPs generate PRACK In-Reply-To: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> References: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> Message-ID: Maybe someone can help me. This is the scenario. OpenSIPs receive a INVITE and send it to a server that reply with a 302 message (always) Then OpenSIPs, in the failure route, take the user part present in the 302 contact header, change the destination IP and send with t_relay The destination reply with a 183 with Require: 100rel header so OpenSIPs have to reply with a PRACK. This is my problem. I don't know which is the best way to handle this (the PRACK) Thank you Regards --- I'm SoCIaL, MayBe El 9/02/2024 a las 6:46 a. m., Social Boh escribió: > Hello list, > > can OpenSIPs generate a PRACK message to reply a 180/183 message? > > Thank you > > Regards > > --- > I'm SoCIaL, MayBe > > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users From razvan at opensips.org Mon Feb 12 08:55:11 2024 From: razvan at opensips.org (=?UTF-8?Q?R=C4=83zvan_Crainea?=) Date: Mon, 12 Feb 2024 10:55:11 +0200 Subject: [OpenSIPS-Users] IMS Authentication Scheme Message-ID: <20dece1a-2f97-45ed-9220-3a9e0c62a3db@opensips.org> Hello, Everyone! According to the latest ETSI specifications [1], IMS supports the following authentication schemes: * Digest-AKAv1-MD5 / Digest-AKAv2-SHA-256 * SIP Digest * NASS-Bundled * Early-IMS-Security We already support SIP Digest, and as far as I know the most widely used one is the AKAv1 authentication, thus this is our main focus now. However, I was wondering whether the other ones are still in use (i.e. phones still supports them), or they have been completely dropped, either by phones, either by the OS they are running on. We were basically trying to figure out whether we should be focusing on implementing them as well, or they have been somehow obsoleted and nowadays most of the phones do support AKA/SIP Digest. [1] https://www.etsi.org/deliver/etsi_ts/129200_129299/129229/17.02.00_60/ts_129229v170200p.pdf Looking forward for your feedback! -- Răzvan Crainea OpenSIPS Core Developer / SIPhub CTO http://www.opensips-solutions.com / https://www.siphub.com From slackway2me at gmail.com Mon Feb 12 09:22:15 2024 From: slackway2me at gmail.com (Alexey) Date: Mon, 12 Feb 2024 14:22:15 +0500 Subject: [OpenSIPS-Users] variable/avp value check Message-ID: Hi list, We implemented next config: # cachedb module loadmodule "cachedb_local.so" modparam("cachedb_local", "cachedb_url", "local:///my_cache") modparam("cachedb_local", "cache_collections", "my_cache") # sql_cacher module loadmodule "sql_cacher.so" modparam("sql_cacher", "cache_table", "id=my_cache db_url=mysql://opensips:opensipsrw at x.x.x.x/opensips cachedb_url=local:///my_cache table=test key=base_id on_demand=0 ") $avp(list) = $sql_cached_value(my_cache:base_id:key1); xlog(" local_cash id = $(avp(list)[*])\n"); avp_print(); The DB is something like that: +----+------------+-----------+---+ | id | base_id | comment | +----+------------+-----------+---+ | 1 | 111 | id_111 | | 2 | 222 | id_222 | | 3 | 333 | id_333 | | 4 | ... | id_... | +----+------------+-----------+---+ It seems the $sql_cached_value can extract the only one row which is mentioned in the ‘key’ value from the cached DB. But our goal is to extract the whole column (array) from the DB and store that array to $avp. Is there any way to extract the whole column (base_id in my sample) from the cached DB ? Maybe you can provide right way to make request via $avp(a) = $sql_cached_value(caching_name:column_name_1:key1); ? We expect something similar to avp_db_query("select base_id from test","$avp(list)"); xlog("avp(list)=$(avp(list)[*])\n"); Thanks in advance ! -- best regards, Alexey https://alexeyka.zantsev.com/ From igorolhovskiy at gmail.com Mon Feb 12 09:31:58 2024 From: igorolhovskiy at gmail.com (Ihor Olkhovskyi) Date: Mon, 12 Feb 2024 10:31:58 +0100 Subject: [OpenSIPS-Users] SDP reroute and rewrite In-Reply-To: References: Message-ID: Usually you work in failure_route with packet that was in a state when you called t_relay. Best practice would be to work with rtp-related procedures in branch routes, so you will get in failure_rroute unaltered packet, before rtp_offer manipulations from previous time. Cheers, Ihor Le sam. 10 févr. 2024 à 03:03, M S a écrit : > Hi list, > When using rtpproxy_offer/answer, how can I rewrite SDP media IP/port if > for example the first route rejects the calls and I have to send the call > (in failure_route) to the next destination (where second destination uses > different media ip/port/rtpproxy set)? > If I just call rtpproxy_offer again, on second try it changes IPs to > something like: > m=audio 1106210576 RTP/AVP 8 0 101 > c=IN IP4 172.17.182.213172.17.182.210 > a=rtcp:11063 IN IP4 172.17.182.21310577 IN IP4 172.17.182.210 > > I tried unforce and it didn't work. > Thanks! > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -- Best regards, Ihor (Igor) -------------- next part -------------- An HTML attachment was scrubbed... URL: From igorolhovskiy at gmail.com Mon Feb 12 09:33:22 2024 From: igorolhovskiy at gmail.com (Ihor Olkhovskyi) Date: Mon, 12 Feb 2024 10:33:22 +0100 Subject: [OpenSIPS-Users] enable and disable debug from opensips-cli In-Reply-To: <073583eb-3aec-4f75-8ad5-ce561fac051e@bohboh.info> References: <073583eb-3aec-4f75-8ad5-ce561fac051e@bohboh.info> Message-ID: Hello, Have you tried https://www.opensips.org/Documentation/Interface-CoreMI-3-2#log_level ? Le lun. 12 févr. 2024 à 01:13, Social Boh a écrit : > Hello list, > > is there a way to enable and disable DEBUG mode using opensips-cli? > > with debug=yes in opensips.cfg the proxy don't restart > > I have to debug B2B_ENTITIES module > > Thank you > > Regards > > -- > --- > I'm SoCIaL, MayBe > > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -- Best regards, Ihor (Igor) -------------- next part -------------- An HTML attachment was scrubbed... URL: From igorolhovskiy at gmail.com Mon Feb 12 09:36:38 2024 From: igorolhovskiy at gmail.com (Ihor Olkhovskyi) Date: Mon, 12 Feb 2024 10:36:38 +0100 Subject: [OpenSIPS-Users] OpenSIPs generate PRACK In-Reply-To: References: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> Message-ID: You should relay 183 to original source (ione that is sending INVITE) and got PRACK from there. That would be the most correct way of handling this Le lun. 12 févr. 2024 à 02:29, Social Boh a écrit : > Maybe someone can help me. > > This is the scenario. > > OpenSIPs receive a INVITE and send it to a server that reply with a 302 > message (always) > > Then OpenSIPs, in the failure route, take the user part present in the > 302 contact header, change the destination IP and send with t_relay > > The destination reply with a 183 with Require: 100rel header so OpenSIPs > have to reply with a PRACK. This is my problem. > > I don't know which is the best way to handle this (the PRACK) > > Thank you > > Regards > > --- > I'm SoCIaL, MayBe > > El 9/02/2024 a las 6:46 a. m., Social Boh escribió: > > Hello list, > > > > can OpenSIPs generate a PRACK message to reply a 180/183 message? > > > > Thank you > > > > Regards > > > > --- > > I'm SoCIaL, MayBe > > > > > > _______________________________________________ > > Users mailing list > > Users at lists.opensips.org > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -- Best regards, Ihor (Igor) -------------- next part -------------- An HTML attachment was scrubbed... URL: From medeanwz at gmail.com Mon Feb 12 09:51:32 2024 From: medeanwz at gmail.com (M S) Date: Mon, 12 Feb 2024 10:51:32 +0100 Subject: [OpenSIPS-Users] SDP reroute and rewrite In-Reply-To: References: Message-ID: Hi Igor, You are absolutely right. For anybody reading this in future, I figured it works from branch_route because as Igor explained, that's where you have access to unaltered packet. Thanks! On Mon, Feb 12, 2024 at 10:35 AM Ihor Olkhovskyi wrote: > Usually you work in failure_route with packet that was in a state when you > called t_relay. > > Best practice would be to work with rtp-related procedures in branch > routes, so you will get in failure_rroute unaltered packet, before > rtp_offer manipulations from previous time. > > Cheers, > Ihor > > Le sam. 10 févr. 2024 à 03:03, M S a écrit : > >> Hi list, >> When using rtpproxy_offer/answer, how can I rewrite SDP media IP/port if >> for example the first route rejects the calls and I have to send the call >> (in failure_route) to the next destination (where second destination uses >> different media ip/port/rtpproxy set)? >> If I just call rtpproxy_offer again, on second try it changes IPs to >> something like: >> m=audio 1106210576 RTP/AVP 8 0 101 >> c=IN IP4 172.17.182.213172.17.182.210 >> a=rtcp:11063 IN IP4 172.17.182.21310577 IN IP4 172.17.182.210 >> >> I tried unforce and it didn't work. >> Thanks! >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> > > > -- > Best regards, > Ihor (Igor) > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From social at bohboh.info Mon Feb 12 12:12:02 2024 From: social at bohboh.info (Social Boh) Date: Mon, 12 Feb 2024 07:12:02 -0500 Subject: [OpenSIPS-Users] OpenSIPs generate PRACK In-Reply-To: References: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> Message-ID: Hello, the flow chart is this: -> INVITE (to OpensiSIP) Relay to Redirect Server Redirect server reply with a 302 and a contact that OpenSIPs use to create INVITE (OpenSIPs) -> <- 183 (provider) with  Require: 100rel PRACK (from OpenSIPs) I don't know how create this PRACK I have: modparam("b2b_entities", "passthru_prack", 0) but this is not enough and I have to use (I think) b2b_init_request("top hiding"); but this function works only on Request Route and I catch the 302 in the failure route. Thank you Regards --- I'm SoCIaL, MayBe El 12/02/2024 a las 4:36 a. m., Ihor Olkhovskyi escribió: > You should relay 183 to original source (ione that is sending INVITE) > and got PRACK from there. > That would be the most correct way of handling this > > Le lun. 12 févr. 2024 à 02:29, Social Boh a écrit : > > Maybe someone can help me. > > This is the scenario. > > OpenSIPs receive a INVITE and send it to a server that reply with > a 302 > message (always) > > Then OpenSIPs, in the failure route, take the user part present in > the > 302 contact header, change the destination IP and send with t_relay > > The destination reply with a 183 with Require: 100rel header so > OpenSIPs > have to reply with a PRACK. This is my problem. > > I don't know which is the best way to handle this (the PRACK) > > Thank you > > Regards > > --- > I'm SoCIaL, MayBe > > El 9/02/2024 a las 6:46 a. m., Social Boh escribió: > > Hello list, > > > > can OpenSIPs generate a PRACK message to reply a 180/183 message? > > > > Thank you > > > > Regards > > > > --- > > I'm SoCIaL, MayBe > > > > > > _______________________________________________ > > Users mailing list > > Users at lists.opensips.org > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > -- > Best regards, > Ihor (Igor) > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From medeanwz at gmail.com Mon Feb 12 14:39:49 2024 From: medeanwz at gmail.com (M S) Date: Mon, 12 Feb 2024 15:39:49 +0100 Subject: [OpenSIPS-Users] OpenSIPs generate PRACK In-Reply-To: References: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> Message-ID: After 302, when you receive 183 from the provider (that expects PRACK), you forward that 183 to the other side of conversation - and that side is responsible for generating PRACK and sending it to opensips to forward to the provider. On Mon, Feb 12, 2024 at 1:16 PM Social Boh wrote: > Hello, > > the flow chart is this: > > -> INVITE (to OpensiSIP) > > Relay to Redirect Server > > Redirect server reply with a 302 and a contact that OpenSIPs use to create > > INVITE (OpenSIPs) -> > > <- 183 (provider) with Require: 100rel > > PRACK (from OpenSIPs) > > I don't know how create this PRACK > > I have: > > modparam("b2b_entities", "passthru_prack", 0) > > but this is not enough and I have to use (I think) > > b2b_init_request("top hiding"); > > but this function works only on Request Route and I catch the 302 in the > failure route. > > Thank you > > Regards > > --- > I'm SoCIaL, MayBe > > El 12/02/2024 a las 4:36 a. m., Ihor Olkhovskyi escribió: > > You should relay 183 to original source (ione that is sending INVITE) and > got PRACK from there. > That would be the most correct way of handling this > > Le lun. 12 févr. 2024 à 02:29, Social Boh a écrit : > >> Maybe someone can help me. >> >> This is the scenario. >> >> OpenSIPs receive a INVITE and send it to a server that reply with a 302 >> message (always) >> >> Then OpenSIPs, in the failure route, take the user part present in the >> 302 contact header, change the destination IP and send with t_relay >> >> The destination reply with a 183 with Require: 100rel header so OpenSIPs >> have to reply with a PRACK. This is my problem. >> >> I don't know which is the best way to handle this (the PRACK) >> >> Thank you >> >> Regards >> >> --- >> I'm SoCIaL, MayBe >> >> El 9/02/2024 a las 6:46 a. m., Social Boh escribió: >> > Hello list, >> > >> > can OpenSIPs generate a PRACK message to reply a 180/183 message? >> > >> > Thank you >> > >> > Regards >> > >> > --- >> > I'm SoCIaL, MayBe >> > >> > >> > _______________________________________________ >> > Users mailing list >> > Users at lists.opensips.org >> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> > > > -- > Best regards, > Ihor (Igor) > > _______________________________________________ > Users mailing listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Ben.Newlin at genesys.com Mon Feb 12 15:42:45 2024 From: Ben.Newlin at genesys.com (Ben Newlin) Date: Mon, 12 Feb 2024 15:42:45 +0000 Subject: [OpenSIPS-Users] variable/avp value check In-Reply-To: References: Message-ID: Alexey, You have not provided the list of columns you want to the sql_cacher config. Please review https://opensips.org/docs/modules/3.2.x/sql_cacher.html#param_cache_table. You need to add something like: columns=column_1 column_2 column_3 Ben Newlin From: Users on behalf of Alexey Date: Monday, February 12, 2024 at 1:23 AM To: users at lists.opensips.org Subject: Re: [OpenSIPS-Users] variable/avp value check EXTERNAL EMAIL - Please use caution with links and attachments Hi list, We implemented next config: # cachedb module loadmodule "cachedb_local.so" modparam("cachedb_local", "cachedb_url", "local:///my_cache") modparam("cachedb_local", "cache_collections", "my_cache") # sql_cacher module loadmodule "sql_cacher.so" modparam("sql_cacher", "cache_table", "id=my_cache db_url=mysql://opensips:opensipsrw at x.x.x.x/opensips cachedb_url=local:///my_cache table=test key=base_id on_demand=0 ") $avp(list) = $sql_cached_value(my_cache:base_id:key1); xlog(" local_cash id = $(avp(list)[*])\n"); avp_print(); The DB is something like that: +----+------------+-----------+---+ | id | base_id | comment | +----+------------+-----------+---+ | 1 | 111 | id_111 | | 2 | 222 | id_222 | | 3 | 333 | id_333 | | 4 | ... | id_... | +----+------------+-----------+---+ It seems the $sql_cached_value can extract the only one row which is mentioned in the ‘key’ value from the cached DB. But our goal is to extract the whole column (array) from the DB and store that array to $avp. Is there any way to extract the whole column (base_id in my sample) from the cached DB ? Maybe you can provide right way to make request via $avp(a) = $sql_cached_value(caching_name:column_name_1:key1); ? We expect something similar to avp_db_query("select base_id from test","$avp(list)"); xlog("avp(list)=$(avp(list)[*])\n"); Thanks in advance ! -- best regards, Alexey https://alexeyka.zantsev.com _______________________________________________ Users mailing list Users at lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From prathibhab.tvm at gmail.com Tue Feb 13 03:26:22 2024 From: prathibhab.tvm at gmail.com (Prathibha B) Date: Tue, 13 Feb 2024 08:56:22 +0530 Subject: [OpenSIPS-Users] opensips database Message-ID: How to use encrypted password in opensips? -- Regards, B.Prathibha -------------- next part -------------- An HTML attachment was scrubbed... URL: From slackway2me at gmail.com Tue Feb 13 09:27:12 2024 From: slackway2me at gmail.com (Alexey) Date: Tue, 13 Feb 2024 14:27:12 +0500 Subject: [OpenSIPS-Users] opensips database In-Reply-To: References: Message-ID: Hello, isn't it what you need? https://www.opensips.org/Documentation/TipsFAQ#toc7 -- best regards, Alexey https://alexeyka.zantsev.com/ From slackway2me at gmail.com Tue Feb 13 09:53:07 2024 From: slackway2me at gmail.com (Alexey) Date: Tue, 13 Feb 2024 14:53:07 +0500 Subject: [OpenSIPS-Users] variable/avp value check In-Reply-To: References: Message-ID: Hi Ben, thank you for your response but this is not the case. Documentation says: 'columns : If not present, all the columns from the table will be cached'. So in our case all columns from the DB are cached. Our main question - How does '$sql_cached_value(id{sep}col{sep}key)' work ? We want that this PV exports the full column 'base_id" from the cached DB. But now it seems that the PV can export only one row which is limited by the 'key' value. Could you kindly provide us an example of the string '$sql_cached_value(id{sep}col{sep}key)' which lets us extract the full column (array) from the cached DB ? -- best regards, Alexey https://alexeyka.zantsev.com/ From Ben.Newlin at genesys.com Wed Feb 14 06:43:14 2024 From: Ben.Newlin at genesys.com (Ben Newlin) Date: Wed, 14 Feb 2024 06:43:14 +0000 Subject: [OpenSIPS-Users] variable/avp value check In-Reply-To: References: Message-ID: Alexey, Apologies, you are correct about the columns setting. I also did not understand your use case. Unfortunately the answer is that as far as I know this cannot be done, at least not directly using the DB model you have. The OpenSIPS cache interface is fundamentally designed to be a key/value store. You can query any data for a specific key, but you cannot query data for all keys. This is a limitation of converting the data from SQL to a key/value store. There are cachedb implementations that support wildcards in the key – e.g. redis – but sql_cacher only works with OpenSIPS local cache, which makes sense as it is intended to cache the data locally. If you were caching the data between 2 external systems you would not want/need OpenSIPS to do that for you. And afaik OpenSIPS local cache implementation does not support wildcards, so you can only look up a specific key. A workaround for this could be to create an SQL view in your database, and direct OpenSIPS sql_cacher module to query the view, rather than the table directly. You can use the view to reformat the data in any way you would like, so that the cache query can return the data you want given whatever key makes sense. We use views in this way in our system, though not to achieve this specific use case of getting all values. For example, you could create a view that formats the data into two columns: “original column name” and “all values” (or something like that). The original column name would be the key, and would be “base_id”. The second column would be a list or set of all the values of “base_id”. The sql_cacher query would use “base_id” as the key and would return all the base_id values. You could do this with any or all columns of the original table. The view would return only a single row for each column of the original table included. There are probably other ways to solve this as well, though I must admit it’s not clear to me the use case for having the list of values without knowing which key they were associated with in the original data. Ben Newlin From: Users on behalf of Alexey Date: Tuesday, February 13, 2024 at 1:55 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] variable/avp value check EXTERNAL EMAIL - Please use caution with links and attachments Hi Ben, thank you for your response but this is not the case. Documentation says: 'columns : If not present, all the columns from the table will be cached'. So in our case all columns from the DB are cached. Our main question - How does '$sql_cached_value(id{sep}col{sep}key)' work ? We want that this PV exports the full column 'base_id" from the cached DB. But now it seems that the PV can export only one row which is limited by the 'key' value. Could you kindly provide us an example of the string '$sql_cached_value(id{sep}col{sep}key)' which lets us extract the full column (array) from the cached DB ? -- best regards, Alexey https://alexeyka.zantsev.com _______________________________________________ Users mailing list Users at lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From social at bohboh.info Wed Feb 14 19:10:18 2024 From: social at bohboh.info (Social Boh) Date: Wed, 14 Feb 2024 14:10:18 -0500 Subject: [OpenSIPS-Users] SIPMSGOPS changes Message-ID: Hello list, after manipulating SDP annex, is there a function to apply the changes before to use rtpengine_manage? In debug mode I can see the module reorder the codec but after use rtpengine_amange the exit INVITE use the same original order. Thank's Regards -- --- I'm SoCIaL, MayBe From rvg at rvgeerligs.nl Thu Feb 15 20:24:14 2024 From: rvg at rvgeerligs.nl (rvg at rvgeerligs.nl) Date: Thu, 15 Feb 2024 20:24:14 +0000 Subject: [OpenSIPS-Users] opensips 3.4 push notification Message-ID: <91c44150441c8743c23bd31138adc929b55b112d@rvgeerligs.nl> Hi, I kind of followed the article SIP Push Notification with OpenSIPS 3.1 LTS [RFC 8599 support][Part II] as I connot find anything related to opensips 3.4.x. When I disable (commenting by #) modparam("registrar", "pn_enable", true), the call actually works. When I enable modparam("registrar", "pn_enable", true) the call does not come through. It gets rerouted internally to external ip address after the authentication, second INVITE with answer to nonce, and giving it a try. Opensips keeps asking for Proxy Authentication required which was allready accepted. Anyone an idea? Regards, Ronald Geerligs -------------- next part -------------- An HTML attachment was scrubbed... URL: From vinayak.makwana at ecosmob.com Fri Feb 16 12:41:00 2024 From: vinayak.makwana at ecosmob.com (Vinayak Makwana) Date: Fri, 16 Feb 2024 18:11:00 +0530 Subject: [OpenSIPS-Users] Sometime opensips sends 477 reply for BYE packet in TLS Message-ID: Hello all, I am facing an issue when opensips gets BYE from the freeswitch side. At that time, opensips sent 477 reply to the BYE request. Here's the call scenario : when we dial the call from softphone to opensips, it's TLS call flow, and from opensips to Freeswitch, it's UDP call flow. So when we disconnect a call from Softphone at that time, the call disconnects properly, but when we disconnect a call from FreeSwitch at that time, opensips sends 477 sending failed to Freeswitch. but sometimes OpenSIP sends 200 OK successfully to Freeswitch, and calls get disconnected also. *opensips logs at the time of 477 reply send:* ERROR:core:tcp_connect_blocking_timeout: connect timed out, 99171 us elapsed out of 100000 us ERROR:core:tcp_sync_connect_fd: tcp_blocking_connect failed ERROR:proto_tls:proto_tls_send: connect failed ERROR:tm:msg_send: send() to a.b.c.d:53722 for proto tls/3 failed ERROR:tm:t_forward_nonack: sending request failed DBG:tm:t_relay_to: t_forward_nonack returned error DBG:sl:sl_reply_error: error text is Send failed (477/SL) Please suggest if anything needs to be configured on the opensips side. -- Regards, *Vinayak Makwana* -- *Disclaimer* In addition to generic Disclaimer which you have agreed on our website, any views or opinions presented in this email are solely those of the originator and do not necessarily represent those of the Company or its sister concerns. Any liability (in negligence, contract or otherwise) arising from any third party taking any action, or refraining from taking any action on the basis of any of the information contained in this email is hereby excluded. *Confidentiality* This communication (including any attachment/s) is intended only for the use of the addressee(s) and contains information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading, dissemination, distribution, or copying of this communication is prohibited. Please inform originator if you have received it in error. *Caution for viruses, malware etc.* This communication, including any attachments, may not be free of viruses, trojans, similar or new contaminants/malware, interceptions or interference, and may not be compatible with your systems. You shall carry out virus/malware scanning on your own before opening any attachment to this e-mail. The sender of this e-mail and Company including its sister concerns shall not be liable for any damage that may incur to you as a result of viruses, incompleteness of this message, a delay in receipt of this message or any other computer problems.  -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Fri Feb 16 16:31:29 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 16 Feb 2024 18:31:29 +0200 Subject: [OpenSIPS-Users] OpenSIPs generate PRACK In-Reply-To: References: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> Message-ID: <49eb93af-dd10-4fae-82bd-1d19edca403a@opensips.org> I agree here, the 183 must be relayed back to the original caller (which generate the received INVITE) and let it do the PRACK - this confirmation must be end-2-end in the dialog. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 12.02.2024 11:36, Ihor Olkhovskyi wrote: > You should relay 183 to original source (ione that is sending INVITE) > and got PRACK from there. > That would be the most correct way of handling this > > Le lun. 12 févr. 2024 à 02:29, Social Boh a écrit : > > Maybe someone can help me. > > This is the scenario. > > OpenSIPs receive a INVITE and send it to a server that reply with > a 302 > message (always) > > Then OpenSIPs, in the failure route, take the user part present in > the > 302 contact header, change the destination IP and send with t_relay > > The destination reply with a 183 with Require: 100rel header so > OpenSIPs > have to reply with a PRACK. This is my problem. > > I don't know which is the best way to handle this (the PRACK) > > Thank you > > Regards > > --- > I'm SoCIaL, MayBe > > El 9/02/2024 a las 6:46 a. m., Social Boh escribió: > > Hello list, > > > > can OpenSIPs generate a PRACK message to reply a 180/183 message? > > > > Thank you > > > > Regards > > > > --- > > I'm SoCIaL, MayBe > > > > > > _______________________________________________ > > Users mailing list > > Users at lists.opensips.org > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > -- > Best regards, > Ihor (Igor) > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Fri Feb 16 16:35:05 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 16 Feb 2024 18:35:05 +0200 Subject: [OpenSIPS-Users] SIPMSGOPS changes In-Reply-To: References: Message-ID: Search and you will find it: https://opensips.org/html/docs/modules/3.3.x/sipmsgops.html#func_get_updated_body_part In regards to rtpengine, afaik the function may get the SDP (and return it) via script vars too, not only from the actual msg. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 14.02.2024 21:10, Social Boh wrote: > Hello list, > > after manipulating SDP annex, is there a function to apply the changes > before to use rtpengine_manage? > > In debug mode I can see the module reorder the codec but after use > rtpengine_amange the exit INVITE use the same original order. > > Thank's > > Regards > From bogdan at opensips.org Fri Feb 16 16:37:29 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 16 Feb 2024 18:37:29 +0200 Subject: [OpenSIPS-Users] opensips 3.4 push notification In-Reply-To: <91c44150441c8743c23bd31138adc929b55b112d@rvgeerligs.nl> References: <91c44150441c8743c23bd31138adc929b55b112d@rvgeerligs.nl> Message-ID: <11e0bc8b-1437-4498-87d0-9ea239fb584c@opensips.org> Hi, Could you share a pcap or trace so we can understand the routing you have ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 15.02.2024 22:24, rvg at rvgeerligs.nl wrote: > Hi, > > I kind of followed the article SIP Push Notification with OpenSIPS 3.1 > LTS [RFC 8599 support][Part II] as I connot find anything related to > opensips 3.4.x. > > When I disable (commenting by #) modparam("registrar", "pn_enable", > true), the call actually works. > When I enable modparam("registrar", "pn_enable", true) the call does > not come through. > > It gets rerouted internally to external ip address after the > authentication, second INVITE with answer to nonce, and giving it a try. > Opensips keeps asking for Proxy Authentication required which was > allready accepted. > > > Anyone an idea? > > Regards, > > > Ronald Geerligs > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Fri Feb 16 16:39:52 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 16 Feb 2024 18:39:52 +0200 Subject: [OpenSIPS-Users] Sometime opensips sends 477 reply for BYE packet in TLS In-Reply-To: References: Message-ID: Hi, 477 is an intern error meaning some transport level err happened - like in your case, OpenSIPS did not find and was not able to open a new TLS connection back to softphone. Probably some times, depending on the call duration, the TLS conn is still up and the BYE is routed. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 16.02.2024 14:41, Vinayak Makwana via Users wrote: > > Hello all, > I am facing an issue when opensips gets BYE from the freeswitch side. > At that time, opensips sent 477 reply to the BYE request. > > Here's the call scenario : when we dial the call from softphone to > opensips, it's TLS call flow, and from opensips to Freeswitch, it's > UDP call flow. So when we disconnect a call from Softphone at that > time, the call disconnects properly, but when we disconnect a call > from FreeSwitch at that time, opensips sends 477 sending failed to > Freeswitch. but sometimes OpenSIP sends 200 OK successfully to > Freeswitch, and calls get disconnected also. > > *opensips logs at the time of 477 reply send:* >  ERROR:core:tcp_connect_blocking_timeout: connect timed out, 99171 us > elapsed out of 100000 us >  ERROR:core:tcp_sync_connect_fd: tcp_blocking_connect failed >  ERROR:proto_tls:proto_tls_send: connect failed >  ERROR:tm:msg_send: send() to a.b.c.d:53722 for proto tls/3 failed >  ERROR:tm:t_forward_nonack: sending request failed >  DBG:tm:t_relay_to: t_forward_nonack returned error >  DBG:sl:sl_reply_error: error text is Send failed (477/SL) > > Please suggest if anything needs to be configured on the opensips side. > > -- > Regards, > *Vinayak Makwana > * > > > *Disclaimer* > In addition to generic Disclaimer which you have agreed on our > website, any views or opinions presented in this email are solely > those of the originator and do not necessarily represent those of the > Company or its sister concerns. Any liability (in negligence, contract > or otherwise) arising from any third party taking any action, or > refraining from taking any action on the basis of any of the > information contained in this email is hereby excluded. > > *Confidentiality* > This communication (including any attachment/s) is intended only for > the use of the addressee(s) and contains information that is > PRIVILEGED AND CONFIDENTIAL. Unauthorized reading, dissemination, > distribution, or copying of this communication is prohibited. Please > inform originator if you have received it in error. > > *Caution for viruses, malware etc.* > This communication, including any attachments, may not be free of > viruses, trojans, similar or new contaminants/malware, interceptions > or interference, and may not be compatible with your systems. You > shall carry out virus/malware scanning on your own before opening any > attachment to this e-mail. The sender of this e-mail and Company > including its sister concerns shall not be liable for any damage that > may incur to you as a result of viruses, incompleteness of this > message, a delay in receipt of this message or any other computer > problems. > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From gmaruzz at gmail.com Mon Feb 19 09:00:32 2024 From: gmaruzz at gmail.com (Giovanni Maruzzelli) Date: Mon, 19 Feb 2024 10:00:32 +0100 Subject: [OpenSIPS-Users] [WG-IMS] IMS Authentication Scheme In-Reply-To: <20dece1a-2f97-45ed-9220-3a9e0c62a3db@opensips.org> References: <20dece1a-2f97-45ed-9220-3a9e0c62a3db@opensips.org> Message-ID: On Mon, Feb 12, 2024 at 9:55 AM Răzvan Crainea wrote: > > We already support SIP Digest, and as far as I know the most widely used > one is the AKAv1 authentication, thus this is our main focus now. > However, I was wondering whether the other ones are still in use (i.e. > phones still supports them), or they have been completely dropped, > either by phones, either by the OS they are running on. We were > basically trying to figure out whether we should be focusing on > implementing them as well, or they have been somehow obsoleted and > nowadays most of the phones do support AKA/SIP Digest. > Yep, seems to me AKA is the required one -giovanni -- Sincerely, Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18 -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Mon Feb 19 09:57:39 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Mon, 19 Feb 2024 11:57:39 +0200 Subject: [OpenSIPS-Users] opensips 3.4 push notification In-Reply-To: <937fa2e29d929a63bfe4406a993947014f93757f@rvgeerligs.nl> References: <11e0bc8b-1437-4498-87d0-9ea239fb584c@opensips.org> <91c44150441c8743c23bd31138adc929b55b112d@rvgeerligs.nl> <937fa2e29d929a63bfe4406a993947014f93757f@rvgeerligs.nl> Message-ID: <3177d17d-a593-43bb-9e30-0087a6e7fd91@opensips.org> Hi Ronald, Do you check in the cfg the return code of the lookup() [1] function for retcode (2)? you should not perform any SIP relay in this case, as it will result into a loop. [1] https://opensips.org/html/docs/modules/3.4.x/registrar.html#func_lookup Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 16.02.2024 18:44, rvg at rvgeerligs.nl wrote: > here you are. > > February 16, 2024 at 1:37 PM, "Bogdan-Andrei Iancu" > > > wrote: > > Hi, > > Could you share a pcap or trace so we can understand the routing > you have ? > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 15.02.2024 22:24, rvg at rvgeerligs.nl wrote: > > Hi, > I kind of followed the article SIP Push Notification with > OpenSIPS 3.1 LTS [RFC 8599 support][Part II] as I connot find > anything related to opensips 3.4.x. > When I disable (commenting by #) modparam("registrar", > "pn_enable", true), the call actually works. > When I enable modparam("registrar", "pn_enable", true) the > call does not come through. > It gets rerouted internally to external ip address after the > authentication, second INVITE with answer to nonce, and giving > it a try. > Opensips keeps asking for Proxy Authentication required which > was allready accepted. > Anyone an idea? > Regards, > Ronald Geerligs > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sj6502621 at gmail.com Tue Feb 20 13:03:32 2024 From: sj6502621 at gmail.com (James Seer) Date: Tue, 20 Feb 2024 14:03:32 +0100 Subject: [OpenSIPS-Users] stir_shaken date header discrepancy Message-ID: Hello, I have a question regarding Date Header Verification in our setup: Server Timezone: Central European Time Configuration: require_date_hdr: false verify_date_freshness : 300 seconds SIP INVITE Date Header: Tue, 20 Feb 2024 00:26:05 GMT Server time: 2024-02-20T00:26:06 CET Identity header payload "iat" value: 1708385165 Despite the Date header being in the future, OpenSIPS proceeded with verification. While I can see there's an existing error code (-6: Date header value is older than local policy for freshness), it only addresses cases where the header is "older" than the local policy. This could be easily handled in script code, but shouldn't opensips trigger a distinct failure with a new error code, considering the discrepancy between the Date header and server time ? (More than 300 seconds of difference) Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: From liviu at opensips.org Tue Feb 20 13:52:48 2024 From: liviu at opensips.org (Liviu Chircu) Date: Tue, 20 Feb 2024 15:52:48 +0200 Subject: [OpenSIPS-Users] stir_shaken date header discrepancy In-Reply-To: References: Message-ID: Hi James, Make sure you're running a recent OpenSIPS build, I recall this bug was caught a few months ago . Best regards, Liviu Chircu www.twitter.com/liviuchircu |www.opensips-solutions.com OpenSIPS Summit 2024 Valencia, May 14-17 |www.opensips.org/events On 20.02.2024 15:03, James Seer wrote: > Hello, > > I have a question regarding Date Header Verification in our setup: > > Server Timezone: Central European Time > Configuration: > require_date_hdr: false > verify_date_freshness : 300 seconds > SIP INVITE Date Header: Tue, 20 Feb 2024 00:26:05 GMT > Server time: 2024-02-20T00:26:06 CET > Identity header payload "iat" value: 1708385165 > > Despite the Date header being in the future, OpenSIPS proceeded with > verification. While I can see there's an existing error code (-6: Date > header value is older than local policy for freshness), it only > addresses cases where the header is "older" than the local policy. > > This could be easily handled in script code, but shouldn't opensips > trigger a distinct failure with a new error code, considering the > discrepancy between the Date header and server time ? (More than 300 > seconds of difference) > > Thank you > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From sj6502621 at gmail.com Tue Feb 20 14:06:43 2024 From: sj6502621 at gmail.com (James Seer) Date: Tue, 20 Feb 2024 15:06:43 +0100 Subject: [OpenSIPS-Users] stir_shaken date header discrepancy In-Reply-To: References: Message-ID: Hello Liviu, I am already running the last version of OpenSIPS. opensips -V version: opensips 3.4.3 (x86_64/linux) deb https://apt.opensips.org bookworm 3.4-releases In my example, the "iat" PASSporT value is correct. The only issue lies with the Date header field. Le mar. 20 févr. 2024 à 14:55, Liviu Chircu a écrit : > Hi James, > > Make sure you're running a recent OpenSIPS build, I recall this bug was > caught a few months ago > . > > Best regards, > > Liviu Chircuwww.twitter.com/liviuchircu | www.opensips-solutions.com > OpenSIPS Summit 2024 Valencia, May 14-17 | www.opensips.org/events > > On 20.02.2024 15:03, James Seer wrote: > > Hello, > > I have a question regarding Date Header Verification in our setup: > > Server Timezone: Central European Time > Configuration: > require_date_hdr: false > verify_date_freshness : 300 seconds > SIP INVITE Date Header: Tue, 20 Feb 2024 00:26:05 GMT > Server time: 2024-02-20T00:26:06 CET > Identity header payload "iat" value: 1708385165 > > Despite the Date header being in the future, OpenSIPS proceeded with > verification. While I can see there's an existing error code (-6: Date > header value is older than local policy for freshness), it only addresses > cases where the header is "older" than the local policy. > > This could be easily handled in script code, but shouldn't opensips > trigger a distinct failure with a new error code, considering the > discrepancy between the Date header and server time ? (More than 300 > seconds of difference) > > Thank you > > _______________________________________________ > Users mailing listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Tue Feb 20 17:10:22 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Tue, 20 Feb 2024 19:10:22 +0200 Subject: [OpenSIPS-Users] [Blog] IMS status in OpenSIPS 3.5 Message-ID: <75c4bc53-4f8c-4ff2-b874-ec5018cf8de6@opensips.org> Hi all, With OpenSIPS 3.5 we embarked in an IMS journey 🙂. What are the goals (and deliverables) and also the status of this journey, they are all summarized in this new blog post. https://blog.opensips.org/2024/02/20/ims-status-in-opensips-3-5/ Enjoy, -- Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com From liviu at opensips.org Wed Feb 21 14:29:24 2024 From: liviu at opensips.org (Liviu Chircu) Date: Wed, 21 Feb 2024 16:29:24 +0200 Subject: [OpenSIPS-Users] [Minor Release] OpenSIPS 3.4.4 and 3.2.17 Minor Releases In-Reply-To: <43793703-664e-4dff-90fb-86a43998ea52@opensips.org> References: <43793703-664e-4dff-90fb-86a43998ea52@opensips.org> Message-ID: Hi, everyone! A new round of stable minor releases is now out: *3.4.4 *and *3.2.17*.  As an exception, we've also pushed a final *3.3.10* release for *3.3*, which takes care of a couple regressions specific to *3.3.9 *(specifically: in /tracer/ and /rest_client/). Do make sure to schedule an update as soon as possible. Full changelogs: https://opensips.org/pub/opensips/3.4.4/ChangeLog https://opensips.org/pub/opensips/3.3.10/ChangeLog https://opensips.org/pub/opensips/3.2.17/ChangeLog Please enjoy! OpenSIPS Team On 29.01.2024 11:12, Liviu Chircu wrote: > > > The 3.4.4 and 3.2.17 OpenSIPS minor versions are scheduled for release > on *Wednesday, Feb 21st*. > > In preparation for the releases, starting *Wednesday, Feb 7th*, we > will impose the usual *freeze* on any significant fixes (as > complexity) on these stable branches, in order to ensure a /two-week > safe window/ for testing. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Wed Feb 21 17:42:17 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Wed, 21 Feb 2024 19:42:17 +0200 Subject: [OpenSIPS-Users] opensips 3.4 push notification In-Reply-To: <6fe794ff361088506b8666f067c2b268e39df1c4@rvgeerligs.nl> References: <3177d17d-a593-43bb-9e30-0087a6e7fd91@opensips.org> <11e0bc8b-1437-4498-87d0-9ea239fb584c@opensips.org> <91c44150441c8743c23bd31138adc929b55b112d@rvgeerligs.nl> <937fa2e29d929a63bfe4406a993947014f93757f@rvgeerligs.nl> <6fe794ff361088506b8666f067c2b268e39df1c4@rvgeerligs.nl> Message-ID: <88d194a2-5ae5-4c75-aedb-b06c9b17765c@opensips.org> Check with https://blog.opensips.org/2020/06/03/sip-push-notification-with-opensips-3-1-lts-rfc-8599-supportpart-ii/ If setting $var(do_relay) to "false", be sure you do not hit any t_relay() later in your script. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 20.02.2024 17:44, rvg at rvgeerligs.nl wrote: > As far as I can see I do not do a relay in case 2: > > lookup("location", "method-filtering"); > $var(rc) = $retcode; > switch ($var(rc)) { > case 1: >     # we found at least 1 non-PN contact! >     $var(do_relay) = true; >     break; > case 2: >     # success, but all contacts are PN-enabled, so we're >     # sending PNs / awaiting re-registrations from them > *    $var(do_relay) = false;* > #     $var(do_relay) = true; > >     break; > default: >     xlog("L_INFO", "DBG: no contacts found ($var(rc))\n"); >     t_reply(404, "Not Found"); >     exit; > } > > Please advise again, > > Regards, > > Ronald > > > February 19, 2024 at 6:57 AM, "Bogdan-Andrei Iancu" > > > wrote: > > Hi Ronald, > > Do you check in the cfg the return code of the lookup() [1] > function for retcode (2)? you should not perform any SIP relay in > this case, as it will result into a loop. > > > [1] > https://opensips.org/html/docs/modules/3.4.x/registrar.html#func_lookup > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 16.02.2024 18:44, rvg at rvgeerligs.nl wrote: > > here you are. > > February 16, 2024 at 1:37 PM, "Bogdan-Andrei Iancu" > > > wrote: > > Hi, > > Could you share a pcap or trace so we can understand the > routing you have ? > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 15.02.2024 22:24, rvg at rvgeerligs.nl wrote: > > Hi, > I kind of followed the article SIP Push Notification > with OpenSIPS 3.1 LTS [RFC 8599 support][Part II] as I > connot find anything related to opensips 3.4.x. > When I disable (commenting by #) modparam("registrar", > "pn_enable", true), the call actually works. > When I enable modparam("registrar", "pn_enable", true) > the call does not come through. > It gets rerouted internally to external ip address > after the authentication, second INVITE with answer to > nonce, and giving it a try. > Opensips keeps asking for Proxy Authentication > required which was allready accepted. > Anyone an idea? > Regards, > Ronald Geerligs > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From typypypym at gmail.com Thu Feb 22 05:34:08 2024 From: typypypym at gmail.com (Denis Lyubimov) Date: Thu, 22 Feb 2024 08:34:08 +0300 Subject: [OpenSIPS-Users] unicode characters in dlg_list caller_contact field on re-invite Message-ID: Hi all, My network scheme is softphone <-nat-external network-nat-> opensips <-local network-> sip servers <-local network-> softphone No b2b or topology_hiding modules are used. Opensips versions I tried: 3.4.4-1 and 3.4.3-1. I make a call from a phone behind nat to sip server via opensips, so I use the fix_contact function from nat_traversal/fix_nated_contact from nathelper for each request. On the first invite I get "caller_contact": "sip:1002 at 3.3.3.1:49682;transport=TCP;ob" in "opensips-cli -x mi dlg_list". If caller side makes re-invite, then i see this "caller_contact": "\u0001" for nat_traversal, and this "caller_contact": "sip:1002 at 3.3.3.1\ufffd" with nathelper in dlg_list. In that case dlg_send_sequential mi dialog function cannot be used cause caller contact cannot be read. Also if i make a re-invite from the caller side then the caller_contact field in dlg_list starts looking normal. Am I doing something wrong with fixing the nated contact field? -------------- next part -------------- An HTML attachment was scrubbed... URL: From akogan at 5gfuture.com Thu Feb 22 19:43:40 2024 From: akogan at 5gfuture.com (Alexander Kogan) Date: Thu, 22 Feb 2024 23:43:40 +0400 Subject: [OpenSIPS-Users] infinite loop in rtpengine rtpe_function_call() Message-ID: <67fa0653-6d23-4db4-abfe-6fa25afce3fd@5gfuture.com> Hi, The OpenSIPS process gets stack in infinite loop when the rtpengine module runs out of memory in send_rtpe_command() Please review the following piece of code in rtpengine.c:     RTPE_START_READ();     do {         if (snode && snode->s) {             if ((node = get_rtpe_node(snode, set)) == NULL && op == OP_OFFER)                 node = select_rtpe_node(ng_flags.call_id, 1, set);             snode = NULL;         } else {             node = select_rtpe_node(ng_flags.call_id, 1, set);         }         if (!node) {             LM_ERR("no available proxies\n");             RTPE_STOP_READ();             goto error;         }         cp = send_rtpe_command(node, ng_flags.dict, &ret);     } *while (cp == NULL);*     RTPE_STOP_READ();     LM_DBG("proxy reply: %.*s\n", ret, cp); When send_rtpe_command() returns NULL due to memory absence here:     v = bencode_iovec(dict, &vcnt, 1, 0);     if (!v) {         LM_ERR("error converting bencode to iovec\n");         return NULL;     } the mentioned loop ( *do {....} while(cp == NULL)* ) won't stop indefinitely causing the opensips process to become stuck. Best regards, Alexander Kogan, Director of R&D 5g Future http://5gfuture.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nzdealshelp at gmail.com Thu Feb 22 21:08:53 2024 From: nzdealshelp at gmail.com (nz deals) Date: Fri, 23 Feb 2024 10:08:53 +1300 Subject: [OpenSIPS-Users] Via header IP Message-ID: Hello everyone, I have a weird issue, when i send the invite i force the following. set_advertised_address("192.168.XX.XX"); so it is using my internal IP in the VIA. When i send CANCEL, it is using my Public IP which is also defined in the config as a global. advertised_address=202.xx.xx.xx alias= 202.xx.xx.xx Anyway to fix my CANCEL's VIA so it starts using my internal ip i.e 192.168.xx.xx ? I tried it manually via setting set_advertised but it does not get changed on CANCEL. Thanks. Regards, Jason -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris.warr at dubber.net Fri Feb 23 08:21:14 2024 From: chris.warr at dubber.net (Chris Warr) Date: Fri, 23 Feb 2024 19:21:14 +1100 Subject: [OpenSIPS-Users] $var variable scope Message-ID: Hi, I see in the documentation for $var below. Regarding point 3. Does a single opensips process handle a single message at a time? Or are they multi-threaded processing many messages at one time? My concern being if I'm using $var for message processing, will my messages corrupt each other's variables? Naming: **$var(name)** Hints: 1. if you want to start using a script variable in a route, better initialize it with same value (or reset it), otherwise you may inherit a value from a previous route that was executed by the same process. 2. script variables are faster than AVPs, as they directly reference a memory location. 3. the value of script variables persists over a OpenSIPS process. Thanks, Chris. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Fri Feb 23 11:15:52 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 23 Feb 2024 13:15:52 +0200 Subject: [OpenSIPS-Users] $var variable scope In-Reply-To: References: Message-ID: <75052a4a-1eac-4dec-9619-9e28dec0cfdb@opensips.org> Hi Chris, Only one msg per process at a time, but my advice, do not make plans based on (3), it may be a bad, risky practice. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 23.02.2024 10:21, Chris Warr via Users wrote: > Hi, I see in the documentation for $var below. Regarding point 3.  > Does a single opensips process handle a single message at a time?  Or > are they multi-threaded processing many messages at one time?  My > concern being if I'm using $var for message processing, will my > messages corrupt each other's variables? > > Naming: **$var(name)** > Hints: > 1. if you want to start using a script variable in a route, better > initialize it with same value (or reset it), otherwise you may inherit > a value from a previous route that was executed by the same process. > 2. script variables are faster than AVPs, as they directly reference a > memory location. > 3. the value of script variables persists over a OpenSIPS process. > > Thanks, > Chris. > > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Fri Feb 23 11:53:23 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 23 Feb 2024 13:53:23 +0200 Subject: [OpenSIPS-Users] Via header IP In-Reply-To: References: Message-ID: <30107db7-3b34-4e62-b8d4-f1638f28bc50@opensips.org> Hi Jason So you advertise fro m script the 192.x address and also have the global advertise with 202.x ? is you opensips listening on a totally different IP? And for the INVITE and CANCEL, you use t_relay(), right ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 22.02.2024 23:08, nz deals wrote: > Hello everyone, > > I have a weird issue, when i send the invite i force the following. > set_advertised_address("192.168.XX.XX"); > so it is using my internal IP in the VIA. > > When i send CANCEL, it is using my Public IP which is also defined in > the config as a global. advertised_address=202.xx.xx.xx > alias= 202.xx.xx.xx > > Anyway to fix my CANCEL's VIA so it starts using my internal ip i.e > 192.168.xx.xx ? > I tried it manually via setting set_advertised but it does not get > changed on CANCEL. > > Thanks. > > Regards, > Jason > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users From bogdan at opensips.org Fri Feb 23 11:56:27 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 23 Feb 2024 13:56:27 +0200 Subject: [OpenSIPS-Users] infinite loop in rtpengine rtpe_function_call() In-Reply-To: <67fa0653-6d23-4db4-abfe-6fa25afce3fd@5gfuture.com> References: <67fa0653-6d23-4db4-abfe-6fa25afce3fd@5gfuture.com> Message-ID: Hi Alexander, Thank for your report - it will be better to push this via the github tracker, the right place for coding issues: https://github.com/OpenSIPS/opensips/issues Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 22.02.2024 21:43, Alexander Kogan wrote: > > Hi, > > The OpenSIPS process gets stack in infinite loop when the rtpengine > module runs out of memory in send_rtpe_command() > > Please review the following piece of code in rtpengine.c: > >     RTPE_START_READ(); >     do { >         if (snode && snode->s) { >             if ((node = get_rtpe_node(snode, set)) == NULL && op == > OP_OFFER) >                 node = select_rtpe_node(ng_flags.call_id, 1, set); >             snode = NULL; >         } else { >             node = select_rtpe_node(ng_flags.call_id, 1, set); >         } >         if (!node) { >             LM_ERR("no available proxies\n"); >             RTPE_STOP_READ(); >             goto error; >         } > >         cp = send_rtpe_command(node, ng_flags.dict, &ret); >     } *while (cp == NULL);* >     RTPE_STOP_READ(); >     LM_DBG("proxy reply: %.*s\n", ret, cp); > > When send_rtpe_command() returns NULL due to memory absence here: > >     v = bencode_iovec(dict, &vcnt, 1, 0); >     if (!v) { >         LM_ERR("error converting bencode to iovec\n"); >         return NULL; >     } > > the mentioned loop ( *do {....} while(cp == NULL)* ) won't stop > indefinitely causing the opensips process to become stuck. > > Best regards, > Alexander Kogan, > Director of R&D > 5g Future > http://5gfuture.com > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Fri Feb 23 11:59:24 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 23 Feb 2024 13:59:24 +0200 Subject: [OpenSIPS-Users] unicode characters in dlg_list caller_contact field on re-invite In-Reply-To: References: Message-ID: <5d2640bf-d962-431b-9bbf-92f9f4f9b4cd@opensips.org> Hi Denis, Could post the actual Contact hdr as received (network level like pcap or trace) by OpenSIPS from both caller and callee parties ? Regards Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 22.02.2024 07:34, Denis Lyubimov wrote: > Hi all, > > My network scheme is > softphone <-nat-external network-nat-> opensips <-local network-> sip > servers <-local network-> softphone > No b2b or topology_hiding modules are used. > Opensips versions I tried: 3.4.4-1 and 3.4.3-1. > > I make a call from a phone behind nat to sip server via opensips, so I > use the fix_contact function from nat_traversal/fix_nated_contact from > nathelper for each request. > On the first invite I get "caller_contact": > "sip:1002 at 3.3.3.1:49682;transport=TCP;ob" in "opensips-cli -x mi > dlg_list". > If caller side makes re-invite, then i see this "caller_contact": > "\u0001" for nat_traversal, > and this "caller_contact": "sip:1002 at 3.3.3.1 > \ufffd" with nathelper in dlg_list. > In that case dlg_send_sequential mi dialog function cannot be used > cause caller contact cannot be read. > > Also if i make a re-invite from the caller side then the > caller_contact field in dlg_list starts looking normal. > > Am I doing something wrong with fixing the nated contact field? > > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nzdealshelp at gmail.com Fri Feb 23 12:02:21 2024 From: nzdealshelp at gmail.com (nz deals) Date: Sat, 24 Feb 2024 01:02:21 +1300 Subject: [OpenSIPS-Users] Via header IP In-Reply-To: <30107db7-3b34-4e62-b8d4-f1638f28bc50@opensips.org> References: <30107db7-3b34-4e62-b8d4-f1638f28bc50@opensips.org> Message-ID: Hi Bogdan, The opensips is only listening on 192.xx. internal ip. It is Google VM so the public IP 202.x is assigned. Yes, that is correct. I advertise from a script like set_advertised_address("192.x") but I have the following in the config. advertised_address=202.x alias=202.x Yes, I use t_relay for INVITE and CANCEL. Just more detail for CANCEL. I use the following:- if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; } Thanks Regards, Jason On Sat, 24 Feb 2024 at 00:53, Bogdan-Andrei Iancu wrote: > Hi Jason > > So you advertise fro m script the 192.x address and also have the global > advertise with 202.x ? is you opensips listening on a totally different IP? > > And for the INVITE and CANCEL, you use t_relay(), right ? > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 22.02.2024 23:08, nz deals wrote: > > Hello everyone, > > > > I have a weird issue, when i send the invite i force the following. > > set_advertised_address("192.168.XX.XX"); > > so it is using my internal IP in the VIA. > > > > When i send CANCEL, it is using my Public IP which is also defined in > > the config as a global. advertised_address=202.xx.xx.xx > > alias= 202.xx.xx.xx > > > > Anyway to fix my CANCEL's VIA so it starts using my internal ip i.e > > 192.168.xx.xx ? > > I tried it manually via setting set_advertised but it does not get > > changed on CANCEL. > > > > Thanks. > > > > Regards, > > Jason > > > > _______________________________________________ > > Users mailing list > > Users at lists.opensips.org > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Fri Feb 23 12:53:26 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Fri, 23 Feb 2024 14:53:26 +0200 Subject: [OpenSIPS-Users] Via header IP In-Reply-To: References: <30107db7-3b34-4e62-b8d4-f1638f28bc50@opensips.org> Message-ID: <909d8010-fcd0-4abb-868b-ed8279111e9f@opensips.org> What version / revision (opensips -v) do you have there ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 23.02.2024 14:02, nz deals wrote: > Hi Bogdan, > > The opensips is only listening on 192.xx. internal ip. It is Google VM > so the public IP 202.x is assigned. > > Yes, that is correct. I advertise from a script > like set_advertised_address("192.x") > but I have the following in the config. > > advertised_address=202.x > alias=202.x > > Yes, I use t_relay for INVITE and CANCEL. > > Just more detail for CANCEL. I use the following:- > if (is_method("CANCEL")) { >                 if (t_check_trans()) >                 t_relay(); >                 exit; > } > > Thanks > > Regards, > Jason > > On Sat, 24 Feb 2024 at 00:53, Bogdan-Andrei Iancu > wrote: > > Hi Jason > > So you advertise fro m script the 192.x address and also have the > global > advertise with 202.x ? is you opensips listening on a totally > different IP? > > And for the INVITE and CANCEL, you use t_relay(), right ? > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 22.02.2024 23:08, nz deals wrote: > > Hello everyone, > > > > I have a weird issue, when i send the invite i force the following. > > set_advertised_address("192.168.XX.XX"); > > so it is using my internal IP in the VIA. > > > > When i send CANCEL, it is using my Public IP which is also > defined in > > the config as a global. advertised_address=202.xx.xx.xx > > alias= 202.xx.xx.xx > > > > Anyway to fix my CANCEL's VIA so it starts using my internal ip i.e > > 192.168.xx.xx ? > > I tried it manually via setting set_advertised but it does not get > > changed on CANCEL. > > > > Thanks. > > > > Regards, > > Jason > > > > _______________________________________________ > > Users mailing list > > Users at lists.opensips.org > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nzdealshelp at gmail.com Fri Feb 23 21:09:37 2024 From: nzdealshelp at gmail.com (nz deals) Date: Sat, 24 Feb 2024 10:09:37 +1300 Subject: [OpenSIPS-Users] Via header IP In-Reply-To: <909d8010-fcd0-4abb-868b-ed8279111e9f@opensips.org> References: <30107db7-3b34-4e62-b8d4-f1638f28bc50@opensips.org> <909d8010-fcd0-4abb-868b-ed8279111e9f@opensips.org> Message-ID: Here it is version: opensips 3.4.2 (x86_64/linux) git revision: 8a6e78dde Regards, Jason On Sat, 24 Feb 2024 at 01:53, Bogdan-Andrei Iancu wrote: > What version / revision (opensips -v) do you have there ? > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 23.02.2024 14:02, nz deals wrote: > > Hi Bogdan, > > The opensips is only listening on 192.xx. internal ip. It is Google VM so > the public IP 202.x is assigned. > > Yes, that is correct. I advertise from a script > like set_advertised_address("192.x") > but I have the following in the config. > > advertised_address=202.x > alias=202.x > > Yes, I use t_relay for INVITE and CANCEL. > > Just more detail for CANCEL. I use the following:- > if (is_method("CANCEL")) { > if (t_check_trans()) > t_relay(); > exit; > } > > Thanks > > Regards, > Jason > > On Sat, 24 Feb 2024 at 00:53, Bogdan-Andrei Iancu > wrote: > >> Hi Jason >> >> So you advertise fro m script the 192.x address and also have the global >> advertise with 202.x ? is you opensips listening on a totally different >> IP? >> >> And for the INVITE and CANCEL, you use t_relay(), right ? >> >> Regards, >> >> Bogdan-Andrei Iancu >> >> OpenSIPS Founder and Developer >> https://www.opensips-solutions.com >> https://www.siphub.com >> >> On 22.02.2024 23:08, nz deals wrote: >> > Hello everyone, >> > >> > I have a weird issue, when i send the invite i force the following. >> > set_advertised_address("192.168.XX.XX"); >> > so it is using my internal IP in the VIA. >> > >> > When i send CANCEL, it is using my Public IP which is also defined in >> > the config as a global. advertised_address=202.xx.xx.xx >> > alias= 202.xx.xx.xx >> > >> > Anyway to fix my CANCEL's VIA so it starts using my internal ip i.e >> > 192.168.xx.xx ? >> > I tried it manually via setting set_advertised but it does not get >> > changed on CANCEL. >> > >> > Thanks. >> > >> > Regards, >> > Jason >> > >> > _______________________________________________ >> > Users mailing list >> > Users at lists.opensips.org >> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From typypypym at gmail.com Sat Feb 24 03:35:43 2024 From: typypypym at gmail.com (Denis Lyubimov) Date: Sat, 24 Feb 2024 06:35:43 +0300 Subject: [OpenSIPS-Users] unicode characters in dlg_list caller_contact field on re-invite In-Reply-To: <5d2640bf-d962-431b-9bbf-92f9f4f9b4cd@opensips.org> References: <5d2640bf-d962-431b-9bbf-92f9f4f9b4cd@opensips.org> Message-ID: Hi, I will put here an example of what I get in caller_contact with re-INVITE. This is incoming INVITE: ------------------------ INVITE sip:7654321 at 192.168.224.50;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 172.17.17.55:49677 ;rport;branch=z9hG4bKPj0c5e8cf59ad645119867f42d06c77a9f;alias Max-Forwards: 70 From: ;tag=b8b13e3376954c7dbaff8da68ee1d44a To: Contact: Call-ID: 5e97161dba344eeeab00d40bc883e4e3 CSeq: 17799 INVITE Route: .... ------------------------ This is forwarded INVITE: ------------------------ INVITE sip:7654321 at 192.168.224.50;transport=tcp SIP/2.0 Record-Route: Record-Route: Via: SIP/2.0/TCP 192.168.224.91:5090 ;branch=z9hG4bK86c6.385ee382.0;i=a51f1803 Via: SIP/2.0/TCP 172.17.17.55:49677 ;received=4.4.4.1;rport=49677;branch=z9hG4bKPj0c5e8cf59 ad645119867f42d06c77a9f;alias Max-Forwards: 69 From: ;tag=b8b13e3376954c7dbaff8da68ee1d44a To: Contact: Call-ID: 5e97161dba344eeeab00d40bc883e4e3 CSeq: 17799 INVITE ... ------------------------ dlg_list: ------------------------ { "Dialogs": [ { "ID": "61f.b845fdd7", "db_id": "16589275485323", "state": 4, "user_flags": "DISPATCHED_FLG", "timestart": 1708744350, "datestart": "2024-02-24 06:12:30", "timeout": 1708787549, "dateout": "2024-02-24 18:12:29", "callid": "5e97161dba344eeeab00d40bc883e4e3", "from_uri": "sip:1002 at 192.168.224.50", "to_uri": "sip:7654321 at 192.168.224.50", "caller_tag": "b8b13e3376954c7dbaff8da68ee1d44a", "caller_contact": "sip:1002 at 4.4.4.1:49677;transport=TCP;ob", "callee_cseq": "0", ... ------------------------ For now caller_contact has the value "sip:1002 at 4.4.4.1:49677 ;transport=TCP;ob". Then i do re-INVITE from caller: ------------------------ INVITE sip:192.168.224.50:5060;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 172.17.17.55:49677 ;rport;branch=z9hG4bKPjdfcc1bcad866428c8d43d1fbcfeaba54;alias Max-Forwards: 70 From: ;tag=b8b13e3376954c7dbaff8da68ee1d44a To: ;tag=008162B2-5CFB-15D9-810C-32E0A8C0AA77-3 Contact: Call-ID: 5e97161dba344eeeab00d40bc883e4e3 CSeq: 17800 INVITE ... ------------------------ forwarded re-INVITE: ------------------------ INVITE sip:192.168.224.50:5060;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 192.168.224.91:5090 ;branch=z9hG4bKbb97.f5810342.0;i=a51f1803 Via: SIP/2.0/TCP 172.17.17.55:49677 ;received=4.4.4.1;rport=49677;branch=z9hG4bKPjdfcc1bcad 866428c8d43d1fbcfeaba54;alias Max-Forwards: 69 From: ;tag=b8b13e3376954c7dbaff8da68ee1d44a To: ;tag=008162B2-5CFB-15D9-810C-32E0A8C0AA77-3 Contact: Call-ID: 5e97161dba344eeeab00d40bc883e4e3 CSeq: 17800 INVITE ... ------------------------ dlg_list: ------------------------ { "Dialogs": [ { "ID": "61f.b845fdd7", "db_id": "16589275485323", "state": 4, "user_flags": "DISPATCHED_FLG", "timestart": 1708744350, "datestart": "2024-02-24 06:12:30", "timeout": 1708787549, "dateout": "2024-02-24 18:12:29", "callid": "5e97161dba344eeeab00d40bc883e4e3", "from_uri": "sip:1002 at 192.168.224.50", "to_uri": "sip:7654321 at 192.168.224.50", "caller_tag": "b8b13e3376954c7dbaff8da68ee1d44a", "caller_contact": "sip:1002 at 4.4.4.1\ufffd", "callee_cseq": "0", ... } ------------------------ Now caller_contact has the value "sip:1002 at 4.4.4.1\ufffd". If i do re-INVITE from callee side: ------------------------ INVITE sip:1002 at 4.4.4.1:49677;transport=TCP;ob SIP/2.0 From: ;tag=008162B2-5CFB-15D9-810C-32E0A8C0AA77-3 To: ;tag=b8b13e3376954c7dbaff8da68ee1d44a Call-ID: 5e97161dba344eeeab00d40bc883e4e3 CSeq: 1 INVITE Content-Length: 310 Content-Type: application/sdp Via: SIP/2.0/TCP 192.168.224.50:5060 ;branch=z9hG4bK008162BC-5CFB-15D9-810C-32E0A8C0AA77-7 Contact: ------------------------ forwarded re-INVITE: ------------------------ INVITE sip:1002 at 4.4.4.1:49677;transport=TCP;ob SIP/2.0 From: ;tag=008162B2-5CFB-15D9-810C-32E0A8C0AA77-3 To: ;tag=b8b13e3376954c7dbaff8da68ee1d44a Call-ID: 5e97161dba344eeeab00d40bc883e4e3 CSeq: 1 INVITE Content-Length: 302 Content-Type: application/sdp Via: SIP/2.0/TCP 4.4.4.2:5060;branch=z9hG4bKd4ff.c838c3a3.0;i=881f1803 Via: SIP/2.0/TCP 192.168.224.50:5060 ;rport=36702;received=192.168.224.50;branch=z9hG4bK008162BC-5CFB-15D9-810C-32E0A8C0AA77-7 Contact: ------------------------ dlg_list ------------------------ { "Dialogs": [ { "ID": "61f.b845fdd7", "db_id": "16589275485323", "state": 4, "user_flags": "DISPATCHED_FLG", "timestart": 1708744350, "datestart": "2024-02-24 06:12:30", "timeout": 1708787549, "dateout": "2024-02-24 18:12:29", "callid": "5e97161dba344eeeab00d40bc883e4e3", "from_uri": "sip:1002 at 192.168.224.50", "to_uri": "sip:7654321 at 192.168.224.50", "caller_tag": "b8b13e3376954c7dbaff8da68ee1d44a", "caller_contact": "sip:1002 at 4.4.4.1:49677;transport=TCP;ob", "callee_cseq": "2", ... ------------------------ caller_contact value in dlg_list starts to look like it should be: "sip:1002 at 4.4.4.1:49677;transport=TCP;ob" . пт, 23 февр. 2024 г. в 14:59, Bogdan-Andrei Iancu : > Hi Denis, > > Could post the actual Contact hdr as received (network level like pcap or > trace) by OpenSIPS from both caller and callee parties ? > > Regards > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 22.02.2024 07:34, Denis Lyubimov wrote: > > Hi all, > > My network scheme is > softphone <-nat-external network-nat-> opensips <-local network-> sip > servers <-local network-> softphone > No b2b or topology_hiding modules are used. > Opensips versions I tried: 3.4.4-1 and 3.4.3-1. > > I make a call from a phone behind nat to sip server via opensips, so I use > the fix_contact function from nat_traversal/fix_nated_contact from > nathelper for each request. > On the first invite I get "caller_contact": > "sip:1002 at 3.3.3.1:49682;transport=TCP;ob" in "opensips-cli -x mi > dlg_list". > If caller side makes re-invite, then i see this "caller_contact": "\u0001" > for nat_traversal, > and this "caller_contact": "sip:1002 at 3.3.3.1\ufffd" with nathelper in > dlg_list. > In that case dlg_send_sequential mi dialog function cannot be used cause > caller contact cannot be read. > > Also if i make a re-invite from the caller side then the caller_contact > field in dlg_list starts looking normal. > > Am I doing something wrong with fixing the nated contact field? > > > _______________________________________________ > Users mailing listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From akogan at 5gfuture.com Sat Feb 24 15:17:08 2024 From: akogan at 5gfuture.com (Alexander Kogan) Date: Sat, 24 Feb 2024 19:17:08 +0400 Subject: [OpenSIPS-Users] infinite loop in rtpengine rtpe_function_call() In-Reply-To: References: <67fa0653-6d23-4db4-abfe-6fa25afce3fd@5gfuture.com> Message-ID: <667f6d3d-6e85-4054-a10e-a5ef53772ece@5gfuture.com> Hi, it's submitted as https://github.com/OpenSIPS/opensips/issues/3314 Best regards, Alexander Kogan, Director of R&D 5g Future http://5gfuture.com On 23.02.2024 15:56, Bogdan-Andrei Iancu wrote: > Hi Alexander, > > Thank for your report - it will be better to push this via the github > tracker, the right place for coding issues: > https://github.com/OpenSIPS/opensips/issues > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > On 22.02.2024 21:43, Alexander Kogan wrote: >> >> Hi, >> >> The OpenSIPS process gets stack in infinite loop when the rtpengine >> module runs out of memory in send_rtpe_command() >> >> Please review the following piece of code in rtpengine.c: >> >>     RTPE_START_READ(); >>     do { >>         if (snode && snode->s) { >>             if ((node = get_rtpe_node(snode, set)) == NULL && op == >> OP_OFFER) >>                 node = select_rtpe_node(ng_flags.call_id, 1, set); >>             snode = NULL; >>         } else { >>             node = select_rtpe_node(ng_flags.call_id, 1, set); >>         } >>         if (!node) { >>             LM_ERR("no available proxies\n"); >>             RTPE_STOP_READ(); >>             goto error; >>         } >> >>         cp = send_rtpe_command(node, ng_flags.dict, &ret); >>     } *while (cp == NULL);* >>     RTPE_STOP_READ(); >>     LM_DBG("proxy reply: %.*s\n", ret, cp); >> >> When send_rtpe_command() returns NULL due to memory absence here: >> >>     v = bencode_iovec(dict, &vcnt, 1, 0); >>     if (!v) { >>         LM_ERR("error converting bencode to iovec\n"); >>         return NULL; >>     } >> >> the mentioned loop ( *do {....} while(cp == NULL)* ) won't stop >> indefinitely causing the opensips process to become stuck. >> >> Best regards, >> Alexander Kogan, >> Director of R&D >> 5g Future >> http://5gfuture.com >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From social at bohboh.info Sun Feb 25 12:54:41 2024 From: social at bohboh.info (Social Boh) Date: Sun, 25 Feb 2024 07:54:41 -0500 Subject: [OpenSIPS-Users] OpenSIPs generate PRACK In-Reply-To: <49eb93af-dd10-4fae-82bd-1d19edca403a@opensips.org> References: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> <49eb93af-dd10-4fae-82bd-1d19edca403a@opensips.org> Message-ID: I know the best way is the original caller handle and reply the 183, but I HAVE to do this at OpenSIPs level. Can I use B2B_Entities and B2B_logic to do this? Is there a scenario to use tu parse and reply the 183? Thank you --- I'm SoCIaL, MayBe El 16/02/2024 a las 11:31 a. m., Bogdan-Andrei Iancu escribió: > I agree here, the 183 must be relayed back to the original caller > (which generate the received INVITE) and let it do the PRACK - this > confirmation must be end-2-end in the dialog. > > Regards, > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > On 12.02.2024 11:36, Ihor Olkhovskyi wrote: >> You should relay 183 to original source (ione that is sending INVITE) >> and got PRACK from there. >> That would be the most correct way of handling this >> >> Le lun. 12 févr. 2024 à 02:29, Social Boh a écrit : >> >> Maybe someone can help me. >> >> This is the scenario. >> >> OpenSIPs receive a INVITE and send it to a server that reply with >> a 302 >> message (always) >> >> Then OpenSIPs, in the failure route, take the user part present >> in the >> 302 contact header, change the destination IP and send with t_relay >> >> The destination reply with a 183 with Require: 100rel header so >> OpenSIPs >> have to reply with a PRACK. This is my problem. >> >> I don't know which is the best way to handle this (the PRACK) >> >> Thank you >> >> Regards >> >> --- >> I'm SoCIaL, MayBe >> >> El 9/02/2024 a las 6:46 a. m., Social Boh escribió: >> > Hello list, >> > >> > can OpenSIPs generate a PRACK message to reply a 180/183 message? >> > >> > Thank you >> > >> > Regards >> > >> > --- >> > I'm SoCIaL, MayBe >> > >> > >> > _______________________________________________ >> > Users mailing list >> > Users at lists.opensips.org >> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> >> >> -- >> Best regards, >> Ihor (Igor) >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Mon Feb 26 12:34:33 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Mon, 26 Feb 2024 14:34:33 +0200 Subject: [OpenSIPS-Users] unicode characters in dlg_list caller_contact field on re-invite In-Reply-To: References: <5d2640bf-d962-431b-9bbf-92f9f4f9b4cd@opensips.org> Message-ID: Denis, I do not see any unicode chars to be present in the received contact URIs. What you see in the dlg_list output looks like garbage to me - maybe the update was not properly done and the len of the contact is longer than the actual value, leading to to memory garbage to be printed (printing out of buffer). Do you use from script any functions that may change the contact, like fix_nated_contact() or so ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 24.02.2024 05:35, Denis Lyubimov wrote: > Hi, > > I will put here an example of what I get in caller_contact with re-INVITE. > > This is incoming INVITE: > ------------------------ > INVITE sip:7654321 at 192.168.224.50 > ;transport=tcp SIP/2.0 > Via: SIP/2.0/TCP > 172.17.17.55:49677;rport;branch=z9hG4bKPj0c5e8cf59ad645119867f42d06c77a9f;alias > Max-Forwards: 70 > From: >;tag=b8b13e3376954c7dbaff8da68ee1d44a > To: > > Contact: > Call-ID: 5e97161dba344eeeab00d40bc883e4e3 > CSeq: 17799 INVITE > Route: > .... > ------------------------ > This is forwarded INVITE: > ------------------------ > INVITE sip:7654321 at 192.168.224.50 > ;transport=tcp SIP/2.0 > Record-Route: > 68ee1d44a;nat=yes;did=61f.b845fdd7> > Record-Route: > 4a;nat=yes;did=61f.b845fdd7> > Via: SIP/2.0/TCP > 192.168.224.91:5090;branch=z9hG4bK86c6.385ee382.0;i=a51f1803 > Via: SIP/2.0/TCP > 172.17.17.55:49677;received=4.4.4.1;rport=49677;branch=z9hG4bKPj0c5e8cf59 > ad645119867f42d06c77a9f;alias > Max-Forwards: 69 > From: >;tag=b8b13e3376954c7dbaff8da68ee1d44a > To: > > Contact: > Call-ID: 5e97161dba344eeeab00d40bc883e4e3 > CSeq: 17799 INVITE > ... > ------------------------ > dlg_list: > ------------------------ > { >     "Dialogs": [ >         { >             "ID": "61f.b845fdd7", >             "db_id": "16589275485323", >             "state": 4, >             "user_flags": "DISPATCHED_FLG", >             "timestart": 1708744350, >             "datestart": "2024-02-24 06:12:30", >             "timeout": 1708787549, >             "dateout": "2024-02-24 18:12:29", >             "callid": "5e97161dba344eeeab00d40bc883e4e3", >             "from_uri": "sip:1002 at 192.168.224.50 > ", >             "to_uri": "sip:7654321 at 192.168.224.50 > ", >             "caller_tag": "b8b13e3376954c7dbaff8da68ee1d44a", >             "caller_contact": "sip:1002 at 4.4.4.1:49677;transport=TCP;ob", >             "callee_cseq": "0", >             ... > ------------------------ > For now caller_contact has the value > "sip:1002 at 4.4.4.1:49677;transport=TCP;ob". > > > Then i do re-INVITE from caller: > ------------------------ > INVITE sip:192.168.224.50:5060;transport=tcp SIP/2.0 > Via: SIP/2.0/TCP > 172.17.17.55:49677;rport;branch=z9hG4bKPjdfcc1bcad866428c8d43d1fbcfeaba54;alias > Max-Forwards: 70 > From: >;tag=b8b13e3376954c7dbaff8da68ee1d44a > To: >;tag=008162B2-5CFB-15D9-810C-32E0A8C0AA77-3 > Contact: > Call-ID: 5e97161dba344eeeab00d40bc883e4e3 > CSeq: 17800 INVITE > ... > ------------------------ > forwarded re-INVITE: > ------------------------ > INVITE sip:192.168.224.50:5060;transport=tcp SIP/2.0 > Via: SIP/2.0/TCP > 192.168.224.91:5090;branch=z9hG4bKbb97.f5810342.0;i=a51f1803 > Via: SIP/2.0/TCP > 172.17.17.55:49677;received=4.4.4.1;rport=49677;branch=z9hG4bKPjdfcc1bcad > 866428c8d43d1fbcfeaba54;alias > Max-Forwards: 69 > From: >;tag=b8b13e3376954c7dbaff8da68ee1d44a > To: >;tag=008162B2-5CFB-15D9-810C-32E0A8C0AA77-3 > Contact: > Call-ID: 5e97161dba344eeeab00d40bc883e4e3 > CSeq: 17800 INVITE > ... > ------------------------ > dlg_list: > ------------------------ > { >     "Dialogs": [ >         { >             "ID": "61f.b845fdd7", >             "db_id": "16589275485323", >             "state": 4, >             "user_flags": "DISPATCHED_FLG", >             "timestart": 1708744350, >             "datestart": "2024-02-24 06:12:30", >             "timeout": 1708787549, >             "dateout": "2024-02-24 18:12:29", >             "callid": "5e97161dba344eeeab00d40bc883e4e3", >             "from_uri": "sip:1002 at 192.168.224.50 > ", >             "to_uri": "sip:7654321 at 192.168.224.50 > ", >             "caller_tag": "b8b13e3376954c7dbaff8da68ee1d44a", >             "caller_contact": "sip:1002 at 4.4.4.1 > \ufffd", >             "callee_cseq": "0", > ... > } > ------------------------ > Now caller_contact has the value "sip:1002 at 4.4.4.1 > \ufffd". > > If i do re-INVITE from callee side: > ------------------------ > INVITE sip:1002 at 4.4.4.1:49677;transport=TCP;ob SIP/2.0 > From: >;tag=008162B2-5CFB-15D9-810C-32E0A8C0AA77-3 > To: >;tag=b8b13e3376954c7dbaff8da68ee1d44a > Call-ID: 5e97161dba344eeeab00d40bc883e4e3 > CSeq: 1 INVITE > Content-Length: 310 > Content-Type: application/sdp > Via: SIP/2.0/TCP > 192.168.224.50:5060;branch=z9hG4bK008162BC-5CFB-15D9-810C-32E0A8C0AA77-7 > Contact: > ------------------------ > forwarded re-INVITE: > ------------------------ > INVITE sip:1002 at 4.4.4.1:49677;transport=TCP;ob SIP/2.0 > From: >;tag=008162B2-5CFB-15D9-810C-32E0A8C0AA77-3 > To: >;tag=b8b13e3376954c7dbaff8da68ee1d44a > Call-ID: 5e97161dba344eeeab00d40bc883e4e3 > CSeq: 1 INVITE > Content-Length: 302 > Content-Type: application/sdp > Via: SIP/2.0/TCP 4.4.4.2:5060;branch=z9hG4bKd4ff.c838c3a3.0;i=881f1803 > Via: SIP/2.0/TCP > 192.168.224.50:5060;rport=36702;received=192.168.224.50;branch=z9hG4bK008162BC-5CFB-15D9-810C-32E0A8C0AA77-7 > Contact: > ------------------------ > dlg_list > ------------------------ > { >     "Dialogs": [ >         { >             "ID": "61f.b845fdd7", >             "db_id": "16589275485323", >             "state": 4, >             "user_flags": "DISPATCHED_FLG", >             "timestart": 1708744350, >             "datestart": "2024-02-24 06:12:30", >             "timeout": 1708787549, >             "dateout": "2024-02-24 18:12:29", >             "callid": "5e97161dba344eeeab00d40bc883e4e3", >             "from_uri": "sip:1002 at 192.168.224.50 > ", >             "to_uri": "sip:7654321 at 192.168.224.50 > ", >             "caller_tag": "b8b13e3376954c7dbaff8da68ee1d44a", >             "caller_contact": "sip:1002 at 4.4.4.1:49677;transport=TCP;ob", >             "callee_cseq": "2", > ... > ------------------------ > caller_contact value in dlg_list starts to look like it should be: > "sip:1002 at 4.4.4.1:49677;transport=TCP;ob" . > > пт, 23 февр. 2024 г. в 14:59, Bogdan-Andrei Iancu : > > Hi Denis, > > Could post the actual Contact hdr as received (network level like > pcap or trace) by OpenSIPS from both caller and callee parties ? > > Regards > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 22.02.2024 07:34, Denis Lyubimov wrote: >> Hi all, >> >> My network scheme is >> softphone <-nat-external network-nat-> opensips <-local network-> >> sip servers <-local network-> softphone >> No b2b or topology_hiding modules are used. >> Opensips versions I tried: 3.4.4-1 and 3.4.3-1. >> >> I make a call from a phone behind nat to sip server via opensips, >> so I use the fix_contact function from >> nat_traversal/fix_nated_contact from nathelper for each request. >> On the first invite I get "caller_contact": >> "sip:1002 at 3.3.3.1:49682;transport=TCP;ob" in "opensips-cli -x mi >> dlg_list". >> If caller side makes re-invite, then i see this "caller_contact": >> "\u0001" for nat_traversal, >> and this "caller_contact": "sip:1002 at 3.3.3.1 >> \ufffd" with nathelper in dlg_list. >> In that case dlg_send_sequential mi dialog function cannot be >> used cause caller contact cannot be read. >> >> Also if i make a re-invite from the caller side then the >> caller_contact field in dlg_list starts looking normal. >> >> Am I doing something wrong with fixing the nated contact field? >> >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Mon Feb 26 12:35:09 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Mon, 26 Feb 2024 14:35:09 +0200 Subject: [OpenSIPS-Users] infinite loop in rtpengine rtpe_function_call() In-Reply-To: <667f6d3d-6e85-4054-a10e-a5ef53772ece@5gfuture.com> References: <67fa0653-6d23-4db4-abfe-6fa25afce3fd@5gfuture.com> <667f6d3d-6e85-4054-a10e-a5ef53772ece@5gfuture.com> Message-ID: <55dea0e2-9b8d-46b0-be83-eb1348ac7058@opensips.org> Thanks Alexander, let's continue over there. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 24.02.2024 17:17, Alexander Kogan wrote: > > Hi, > > it's submitted as https://github.com/OpenSIPS/opensips/issues/3314 > > Best regards, > Alexander Kogan, > Director of R&D > 5g Future > http://5gfuture.com > On 23.02.2024 15:56, Bogdan-Andrei Iancu wrote: >> Hi Alexander, >> >> Thank for your report - it will be better to push this via the github >> tracker, the right place for coding issues: >> https://github.com/OpenSIPS/opensips/issues >> Bogdan-Andrei Iancu >> >> OpenSIPS Founder and Developer >> https://www.opensips-solutions.com >> https://www.siphub.com >> On 22.02.2024 21:43, Alexander Kogan wrote: >>> >>> Hi, >>> >>> The OpenSIPS process gets stack in infinite loop when the rtpengine >>> module runs out of memory in send_rtpe_command() >>> >>> Please review the following piece of code in rtpengine.c: >>> >>>     RTPE_START_READ(); >>>     do { >>>         if (snode && snode->s) { >>>             if ((node = get_rtpe_node(snode, set)) == NULL && op == >>> OP_OFFER) >>>                 node = select_rtpe_node(ng_flags.call_id, 1, set); >>>             snode = NULL; >>>         } else { >>>             node = select_rtpe_node(ng_flags.call_id, 1, set); >>>         } >>>         if (!node) { >>>             LM_ERR("no available proxies\n"); >>>             RTPE_STOP_READ(); >>>             goto error; >>>         } >>> >>>         cp = send_rtpe_command(node, ng_flags.dict, &ret); >>>     } *while (cp == NULL);* >>>     RTPE_STOP_READ(); >>>     LM_DBG("proxy reply: %.*s\n", ret, cp); >>> >>> When send_rtpe_command() returns NULL due to memory absence here: >>> >>>     v = bencode_iovec(dict, &vcnt, 1, 0); >>>     if (!v) { >>>         LM_ERR("error converting bencode to iovec\n"); >>>         return NULL; >>>     } >>> >>> the mentioned loop ( *do {....} while(cp == NULL)* ) won't stop >>> indefinitely causing the opensips process to become stuck. >>> >>> Best regards, >>> Alexander Kogan, >>> Director of R&D >>> 5g Future >>> http://5gfuture.com >>> >>> _______________________________________________ >>> Users mailing list >>> Users at lists.opensips.org >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Mon Feb 26 12:43:20 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Mon, 26 Feb 2024 14:43:20 +0200 Subject: [OpenSIPS-Users] OpenSIPs generate PRACK In-Reply-To: References: <476be849-afbe-4d69-9218-f80bd27022ad@bohboh.info> <49eb93af-dd10-4fae-82bd-1d19edca403a@opensips.org> Message-ID: yes, you can use the b2b_logic (together with b2b_entities) for that, but it may be a too heavy tool for the purpose. Maybe you can try to generate the PRACK from OpenSIPS level by using the t_uac_dlg MI function [1] via the mi_script module [2] - basically to trigger that MI cmd from the onreply_route, when receiving the 180 reply. [1] https://opensips.org/html/docs/modules/3.4.x/tm.html#mi_t_uac_dlg [2] https://opensips.org/html/docs/modules/3.4.x/mi_script.html#afunc_mi Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 25.02.2024 14:54, Social Boh wrote: > > I know the best way is the original caller handle and reply the 183, > but I HAVE to do this at OpenSIPs level. > > Can I use B2B_Entities and B2B_logic to do this? Is there a scenario > to use tu parse and reply the 183? > > Thank you > > --- > I'm SoCIaL, MayBe > El 16/02/2024 a las 11:31 a. m., Bogdan-Andrei Iancu escribió: >> I agree here, the 183 must be relayed back to the original caller >> (which generate the received INVITE) and let it do the PRACK - this >> confirmation must be end-2-end in the dialog. >> >> Regards, >> Bogdan-Andrei Iancu >> >> OpenSIPS Founder and Developer >> https://www.opensips-solutions.com >> https://www.siphub.com >> On 12.02.2024 11:36, Ihor Olkhovskyi wrote: >>> You should relay 183 to original source (ione that is sending >>> INVITE) and got PRACK from there. >>> That would be the most correct way of handling this >>> >>> Le lun. 12 févr. 2024 à 02:29, Social Boh a écrit : >>> >>> Maybe someone can help me. >>> >>> This is the scenario. >>> >>> OpenSIPs receive a INVITE and send it to a server that reply >>> with a 302 >>> message (always) >>> >>> Then OpenSIPs, in the failure route, take the user part present >>> in the >>> 302 contact header, change the destination IP and send with t_relay >>> >>> The destination reply with a 183 with Require: 100rel header so >>> OpenSIPs >>> have to reply with a PRACK. This is my problem. >>> >>> I don't know which is the best way to handle this (the PRACK) >>> >>> Thank you >>> >>> Regards >>> >>> --- >>> I'm SoCIaL, MayBe >>> >>> El 9/02/2024 a las 6:46 a. m., Social Boh escribió: >>> > Hello list, >>> > >>> > can OpenSIPs generate a PRACK message to reply a 180/183 message? >>> > >>> > Thank you >>> > >>> > Regards >>> > >>> > --- >>> > I'm SoCIaL, MayBe >>> > >>> > >>> > _______________________________________________ >>> > Users mailing list >>> > Users at lists.opensips.org >>> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> _______________________________________________ >>> Users mailing list >>> Users at lists.opensips.org >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >>> >>> -- >>> Best regards, >>> Ihor (Igor) >>> >>> _______________________________________________ >>> Users mailing list >>> Users at lists.opensips.org >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> >> _______________________________________________ >> Users mailing list >> Users at lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users -------------- next part -------------- An HTML attachment was scrubbed... URL: From nzdealshelp at gmail.com Mon Feb 26 20:36:02 2024 From: nzdealshelp at gmail.com (nz deals) Date: Tue, 27 Feb 2024 09:36:02 +1300 Subject: [OpenSIPS-Users] Via header IP In-Reply-To: References: <30107db7-3b34-4e62-b8d4-f1638f28bc50@opensips.org> <909d8010-fcd0-4abb-868b-ed8279111e9f@opensips.org> Message-ID: Hi Bogdan, Do you believe that removing the 'advertised_address' from the global configuration will solve the issue? Regards, Jason On Sat, 24 Feb 2024 at 10:09, nz deals wrote: > Here it is > version: opensips 3.4.2 (x86_64/linux) > git revision: 8a6e78dde > > > Regards, > Jason > > On Sat, 24 Feb 2024 at 01:53, Bogdan-Andrei Iancu > wrote: > >> What version / revision (opensips -v) do you have there ? >> >> Regards, >> >> Bogdan-Andrei Iancu >> >> OpenSIPS Founder and Developer >> https://www.opensips-solutions.com >> https://www.siphub.com >> >> On 23.02.2024 14:02, nz deals wrote: >> >> Hi Bogdan, >> >> The opensips is only listening on 192.xx. internal ip. It is Google VM so >> the public IP 202.x is assigned. >> >> Yes, that is correct. I advertise from a script >> like set_advertised_address("192.x") >> but I have the following in the config. >> >> advertised_address=202.x >> alias=202.x >> >> Yes, I use t_relay for INVITE and CANCEL. >> >> Just more detail for CANCEL. I use the following:- >> if (is_method("CANCEL")) { >> if (t_check_trans()) >> t_relay(); >> exit; >> } >> >> Thanks >> >> Regards, >> Jason >> >> On Sat, 24 Feb 2024 at 00:53, Bogdan-Andrei Iancu >> wrote: >> >>> Hi Jason >>> >>> So you advertise fro m script the 192.x address and also have the global >>> advertise with 202.x ? is you opensips listening on a totally different >>> IP? >>> >>> And for the INVITE and CANCEL, you use t_relay(), right ? >>> >>> Regards, >>> >>> Bogdan-Andrei Iancu >>> >>> OpenSIPS Founder and Developer >>> https://www.opensips-solutions.com >>> https://www.siphub.com >>> >>> On 22.02.2024 23:08, nz deals wrote: >>> > Hello everyone, >>> > >>> > I have a weird issue, when i send the invite i force the following. >>> > set_advertised_address("192.168.XX.XX"); >>> > so it is using my internal IP in the VIA. >>> > >>> > When i send CANCEL, it is using my Public IP which is also defined in >>> > the config as a global. advertised_address=202.xx.xx.xx >>> > alias= 202.xx.xx.xx >>> > >>> > Anyway to fix my CANCEL's VIA so it starts using my internal ip i.e >>> > 192.168.xx.xx ? >>> > I tried it manually via setting set_advertised but it does not get >>> > changed on CANCEL. >>> > >>> > Thanks. >>> > >>> > Regards, >>> > Jason >>> > >>> > _______________________________________________ >>> > Users mailing list >>> > Users at lists.opensips.org >>> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From bogdan at opensips.org Wed Feb 28 13:47:56 2024 From: bogdan at opensips.org (Bogdan-Andrei Iancu) Date: Wed, 28 Feb 2024 15:47:56 +0200 Subject: [OpenSIPS-Users] Via header IP In-Reply-To: References: <30107db7-3b34-4e62-b8d4-f1638f28bc50@opensips.org> <909d8010-fcd0-4abb-868b-ed8279111e9f@opensips.org> Message-ID: Hi Jason, Not sure about that, as time as I'm not sure about the misbehavior here. Usually the "advertising" per message is tricky to use because there is no persistence (across sip packages) of the advertising you did on the request. The best / safer way to go is with advertising per socket/listener, if possible. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer https://www.opensips-solutions.com https://www.siphub.com On 26.02.2024 22:36, nz deals wrote: > Hi Bogdan, > > Do you believe that removing the 'advertised_address' from the global > configuration will solve the issue? > > > > Regards, > Jason > > On Sat, 24 Feb 2024 at 10:09, nz deals wrote: > > Here it is > version: opensips 3.4.2 (x86_64/linux) > git revision: 8a6e78dde > > > Regards, > Jason > > On Sat, 24 Feb 2024 at 01:53, Bogdan-Andrei Iancu > wrote: > > What version / revision (opensips -v) do you have there ? > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > https://www.opensips-solutions.com > https://www.siphub.com > > On 23.02.2024 14:02, nz deals wrote: >> Hi Bogdan, >> >> The opensips is only listening on 192.xx. internal ip. It is >> Google VM so the public IP 202.x is assigned. >> >> Yes, that is correct. I advertise from a script >> like set_advertised_address("192.x") >> but I have the following in the config. >> >> advertised_address=202.x >> alias=202.x >> >> Yes, I use t_relay for INVITE and CANCEL. >> >> Just more detail for CANCEL. I use the following:- >> if (is_method("CANCEL")) { >>                 if (t_check_trans()) >>                 t_relay(); >>                 exit; >> } >> >> Thanks >> >> Regards, >> Jason >> >> On Sat, 24 Feb 2024 at 00:53, Bogdan-Andrei Iancu >> wrote: >> >> Hi Jason >> >> So you advertise fro m script the 192.x address and also >> have the global >> advertise with 202.x ? is you opensips listening on a >> totally different IP? >> >> And for the INVITE and CANCEL, you use t_relay(), right ? >> >> Regards, >> >> Bogdan-Andrei Iancu >> >> OpenSIPS Founder and Developer >> https://www.opensips-solutions.com >> https://www.siphub.com >> >> On 22.02.2024 23:08, nz deals wrote: >> > Hello everyone, >> > >> > I have a weird issue, when i send the invite i force >> the following. >> > set_advertised_address("192.168.XX.XX"); >> > so it is using my internal IP in the VIA. >> > >> > When i send CANCEL, it is using my Public IP which is >> also defined in >> > the config as a global. advertised_address=202.xx.xx.xx >> > alias= 202.xx.xx.xx >> > >> > Anyway to fix my CANCEL's VIA so it starts using my >> internal ip i.e >> > 192.168.xx.xx ? >> > I tried it manually via setting set_advertised but it >> does not get >> > changed on CANCEL. >> > >> > Thanks. >> > >> > Regards, >> > Jason >> > >> > _______________________________________________ >> > Users mailing list >> > Users at lists.opensips.org >> > http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From liviu at opensips.org Wed Feb 28 18:12:35 2024 From: liviu at opensips.org (Liviu Chircu) Date: Wed, 28 Feb 2024 20:12:35 +0200 Subject: [OpenSIPS-Users] stir_shaken date header discrepancy In-Reply-To: References: Message-ID: <856d54aa-ae56-4856-90e7-7a08196a22fb@opensips.org> Hi James, On 20.02.2024 16:06, James Seer wrote: > > I am already running the last version of OpenSIPS. > opensips -V > version: opensips 3.4.3 (x86_64/linux) > deb https://apt.opensips.org bookworm 3.4-releases' Strange, so indeed you have the Date fix, so it should correctly detect timestamps "in the future". So, the only explanation for the check still passing seems to revolve around us assuming a different *server time* than what OpenSIPS actually reads. Some ideas to gather more info on the problem: * first of all, check for any "silly" reasons for the error such as, but not limited to:   - upgrading the OpenSIPS package to 3.4.2+, but forgetting to restart the instance, which is still running 3.4.1   - an extra line somewhere "lower" in the config file by mistake, resembling modparam("stir_shaken", "verify_date_freshness", 7200) or similar * double-check for any unwanted "TZ" environment variable being set as OpenSIPS starts (ideally, this var is not set) * double-check the system's timezone is really CET, using: $ date +%s # to match what UNIX timestamp OpenSIPS is pulling from the OS as well $ cat /etc/timezone Finally, if you still can't get it to reject that Date header, please open up a bug report on GitHub with some examples on and I'll take a closer look. Best regards, Liviu Chircu www.twitter.com/liviuchircu |www.opensips-solutions.com OpenSIPS Summit 2024 Valencia, May 14-17 |www.opensips.org/events -------------- next part -------------- An HTML attachment was scrubbed... URL: From liviu at opensips.org Wed Feb 28 18:30:45 2024 From: liviu at opensips.org (Liviu Chircu) Date: Wed, 28 Feb 2024 20:30:45 +0200 Subject: [OpenSIPS-Users] stir_shaken date header discrepancy In-Reply-To: References: Message-ID: <38b05668-4110-4bb0-88e8-9c918182a09c@opensips.org> On 20.02.2024 16:06, James Seer wrote: > > In my example, the "iat" PASSporT value is correct. The only issue > lies with the Date header field. It is also worth noting that there are already some automated SIPssert tests for both past and future Date hfs, which are *passing* as of latest commit.  And nothing major has changed in /stir_shaken/ since *3.4.2*. -------------- next part -------------- An HTML attachment was scrubbed... URL: From social at bohboh.info Thu Feb 29 21:05:04 2024 From: social at bohboh.info (Social Boh) Date: Thu, 29 Feb 2024 16:05:04 -0500 Subject: [OpenSIPS-Users] Best way to call with prefix and trunks Message-ID: <36ce99b7-67bd-401c-a5e3-668eda1c91e2@bohboh.info> Hello list, I have to make calls to PSTN using trunks con IP auth y trunks with user and password I'd like use DROUTING module but I don't know how solve user/password auth trunk Any idea? Thank you Regards -- --- I'm SoCIaL, MayBe From social at bohboh.info Thu Feb 29 23:21:07 2024 From: social at bohboh.info (Social Boh) Date: Thu, 29 Feb 2024 18:21:07 -0500 Subject: [OpenSIPS-Users] Best way to call with prefix and trunks In-Reply-To: <36ce99b7-67bd-401c-a5e3-668eda1c91e2@bohboh.info> References: <36ce99b7-67bd-401c-a5e3-668eda1c91e2@bohboh.info> Message-ID: First reply; UAC, UAC AUTH and DROUTING Modules ? --- I'm SoCIaL, MayBe El 29/02/2024 a las 4:05 p. m., Social Boh escribió: > Hello list, > > I have to make calls to PSTN using trunks con IP auth y trunks with > user and password > > I'd like use DROUTING module but I don't know how solve user/password > auth trunk > > Any idea? > > Thank you > > Regards > From jehanzaib.kiani at gmail.com Thu Feb 29 23:30:36 2024 From: jehanzaib.kiani at gmail.com (Jehanzaib Younis) Date: Fri, 1 Mar 2024 12:30:36 +1300 Subject: [OpenSIPS-Users] Best way to call with prefix and trunks In-Reply-To: References: <36ce99b7-67bd-401c-a5e3-668eda1c91e2@bohboh.info> Message-ID: Hi, You can use drouting for IP based authentication trunks. For username/password based i think you can use digest_auth somethin like digest_domain("MySIPTrunkRealm", "sip.trunk1.com", "username1", "password1") digest_domain("MySIPTrunkRealm", "sip.trunk2.com", "username2", "password2") in the routing you can do something like the following:- if (is_method("INVITE") && has_totag()) { $var(dest_ip) = $si; if (!digest_auth_check("$var(dest_ip)", "MySIPTrunkRealm", "username", "password")) { xlog("L_ERR", "Failed to authenticate call to $var(dest_ip)\n"); sl_send_reply("403", "Forbidden"); exit; } # Route the call to the trunk route(SOME_OTHER_ROUTE); } Regards, Jehanzaib On Fri, Mar 1, 2024 at 12:21 PM Social Boh wrote: > First reply; > > UAC, UAC AUTH and DROUTING Modules > > ? > > --- > I'm SoCIaL, MayBe > > El 29/02/2024 a las 4:05 p. m., Social Boh escribió: > > Hello list, > > > > I have to make calls to PSTN using trunks con IP auth y trunks with > > user and password > > > > I'd like use DROUTING module but I don't know how solve user/password > > auth trunk > > > > Any idea? > > > > Thank you > > > > Regards > > > > _______________________________________________ > Users mailing list > Users at lists.opensips.org > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sterlin at e2infosystems.com Thu Feb 8 12:15:25 2024 From: sterlin at e2infosystems.com (Sterlin Devanish) Date: Thu, 08 Feb 2024 12:15:25 -0000 Subject: [OpenSIPS-Users] Opensips as frontend proxy server and Asterisk as backend registrar server Message-ID: Hi all, Is it possible to configure opensips as the frontend proxy server and Asterisk as the backend registrar server to handle RFC8599 for the Flutter WebRTC client? *Thanks & Regards,* *Sterlin Devanish D* -------------- next part -------------- An HTML attachment was scrubbed... URL: