[OpenSIPS-Users] Fwd: Push notifications

José Expósito jose.exposito89 at gmail.com
Wed Mar 2 14:59:13 CET 2016


Hi Babil,

I use the rest_post() method to send a query to my server:

    > rest_post("$var(pns_push_url)", "{ \"user\": { \"uri\":\"$var(uri)\",
\"type\":\"INCOMING_CALL\" } }", "application/json", "$var(ct)",
"$var(rcode)");

You can use async with rest_post if it takes too long.
The server is just a Ruby on Rails server that uses the houston gem to send
the notifications: https://github.com/nomad/houston

About having Alice retying... How do you do so? Do you send multiple
INVITEs to the SIP server until Bob becomes online?

Jose

2016-03-02 14:48 GMT+01:00 Babil (Golam Sarwar) <gsbabil at gmail.com>:

> Hi José,
> thank you. I have a somewhat similar implementation but on top of OpenSIPS
> 1.11.
>
> I run a daemon that waits for signals from OpenSIPS for triggering push
> notifications. Then the rest of the REST-API call (implementing the APN
> functionality) is handled within that separate daemon's thread. OpenSIPS is
> blocked for minimum amount of time during the REST call. How do you make
> your
> REST calls from the OpenSIPS script? Can you add an example?
>
> Also, in order to wake up Bob and receive calls, in my system I have
> basically
> made Alice to retry a given number of times. Since in my scenario, I
> control
> my SIP clients, it is feasible. But this may not apply to your case.
>
>
> On 3/2/16 5:13 AM, José Expósito wrote:
> > Hi Babil,
> >
> > Thank you very much for your answer.
> >
> > I have another server that offers a RESTful API to send the push
> notifications,
> > store the tokens, etc.
> >
> > I'm using OpenSIPS *2.1.2*
> >
> > Jose
> >
> > 2016-03-02 14:00 GMT+01:00 Babil (Golam Sarwar) <gsbabil at gmail.com
> > <mailto:gsbabil at gmail.com>>:
> >
> >     Hi José,
> >     what is your mechanism to initiate sending the push? For example,
> what
> >     function/script are you calling? Please also add the OpenSIPS
> version you are
> >     using.
> >
> >     On 3/2/16 4:47 AM, José Expósito wrote:
> >     > Hi all,
> >     >
> >     > I'm trying to implement Apple Push Notifications with OpenSIPS.
> >     >
> >     > At the moment, when Alice calls Bob and Bob is offline, I send the
> push
> >     > notification to Bob and call async sleep until Bob becomes online
> and I
> >     proceed
> >     > whit the call as usual:
> >     >
> >     >     > if (!lookup("location","m")) {
> >     >     >     if (is_method("INVITE")) {
> >     >     >         # Sends the notification here
> >     >     >         t_reply("100", "Trying");
> >     >     >         t_reply("180", "Ringing");
> >     >     >         async(sleep("5"), wait_bob);
> >     >     > }
> >     >     >
> >     >     > [...]
> >     >     >
> >     >     > route[wait_bob] {
> >     >     >     if (!lookup("location","m")) {
> >     >     >         async(sleep("2"), wait_bob);
> >     >     >     }
> >     >     >     if (!t_relay()) { # This establishes the call as usual
> when Bob
> >     >     becomes online
> >     >     >         send_reply("500","Internal Error");
> >     >     >     }
> >     >     >    exit;
> >     >     > }
> >     >
> >     >
> >     > This mechanism works without problems, but, when integrating and
> RTP proxy
> >     > OpenSIPS is randomly crashing after a while.
> >     >
> >     > That's why I'm trying to avoid the use of async sleep and switch
> to another
> >     > mechanism.
> >     >
> >     > As usual, how do you solve this problem?
> >     > Is there any  way to send a new (re)INVITE when Bob becomes online?
> >     >
> >     > I'm trying to use create_dialog() when Bob registers, but it
> doesn't look to
> >     > work -I'm probably using it wrong.
> >     >
> >     > Thank you very much in advance
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20160302/84a0e13c/attachment.htm>


More information about the Users mailing list