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 <[email protected]> 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 <[email protected]>, 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 <[email protected]> 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, [email protected], 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" <[email protected] 
>>>> <mailto:[email protected]?to=%22johan%22%20%3Cjohan%40democon.be%3E>> 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
>>>> [email protected] <mailto:[email protected]>
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>> 
>>>> _______________________________________________
>>>> Users mailing list
>>>> [email protected]
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>> _______________________________________________
>>> Users mailing list
>>> [email protected]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> 
>> _______________________________________________
>> Users mailing list
>> [email protected]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to