Forking Non-INVITE Requests

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Forking Non-INVITE Requests

Chad Attermann-2
Hi All,

I would like to be able to “broadcast” some non-INVITE requests (like NOTIFY and MESSAGE) to multiple registered endpoints.  The problem with using parallel forking is that the request is not reliably delivered to all registered endpoints since retransmission of the request stops after the first success response is received.  What I need is some hybrid of parallel and serial forking, where requests to all registered are sent at once, but each is treated as a separate transaction so that the message is sent (or at least attempted) reliably to each endpoint.

This sort of situation is mentioned in the docs for the TM module…

"UAC--it is a very simplistic code which allows you to generate your own transactions. Particularly useful for things like NOTIFYs or IM gateways.”

… but there is no mention of *how* to use it.  I’m sure there is probably a simple script for this, but I haven’t had any success searching the mailing list or the Internet at large for details.  I would appreciate if anybody could provide details or a sample script demonstrating how to create a separate transaction for each branch.

Thanks!

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Forking Non-INVITE Requests

Bogdan-Andrei Iancu-2
Hi Chad,

I would say the t_replicate() is what you are looking for :
    http://www.opensips.org/html/docs/modules/2.3.x/tm.html#treplicate

Regards,
Bogdan-Andrei Iancu
  OpenSIPS Founder and Developer
  http://www.opensips-solutions.com

OpenSIPS Bootcamp 2017, Houston, US
  http://opensips.org/training/OpenSIPS_Bootcamp_2017.html
On 06/29/2017 07:31 PM, Chad Attermann wrote:
Hi All,

I would like to be able to “broadcast” some non-INVITE requests (like NOTIFY and MESSAGE) to multiple registered endpoints.  The problem with using parallel forking is that the request is not reliably delivered to all registered endpoints since retransmission of the request stops after the first success response is received.  What I need is some hybrid of parallel and serial forking, where requests to all registered are sent at once, but each is treated as a separate transaction so that the message is sent (or at least attempted) reliably to each endpoint.

This sort of situation is mentioned in the docs for the TM module…

"UAC--it is a very simplistic code which allows you to generate your own transactions. Particularly useful for things like NOTIFYs or IM gateways.”

… but there is no mention of *how* to use it.  I’m sure there is probably a simple script for this, but I haven’t had any success searching the mailing list or the Internet at large for details.  I would appreciate if anybody could provide details or a sample script demonstrating how to create a separate transaction for each branch.

Thanks!


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


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Forking Non-INVITE Requests

Bogdan-Andrei Iancu-2
Hi Chad,

No, the functionality, as it is now, does not provide any feedback on the reply codes you received on the replicated forks.

Best regards,
Bogdan-Andrei Iancu
  OpenSIPS Founder and Developer
  http://www.opensips-solutions.com

OpenSIPS Bootcamp 2017, Houston, US
  http://opensips.org/training/OpenSIPS_Bootcamp_2017.html
On 07/07/2017 06:49 PM, Chad Attermann wrote:

Thanks Bogdan, I had seen that function and was wondering if it might be applicable.  I don’t suppose there wold be a way to track the responses from each destination, and have some logic like if all designations fail, then return failure code to orig side, otherwise if at least one destination succeeds then send success to orig?

Thanks again,

Chad.

On Jun 30, 2017, at 2:06 AM, Bogdan-Andrei Iancu <[hidden email]> wrote:

Hi Chad,

I would say the t_replicate() is what you are looking for :
    http://www.opensips.org/html/docs/modules/2.3.x/tm.html#treplicate

Regards,
Bogdan-Andrei Iancu
  OpenSIPS Founder and Developer
  http://www.opensips-solutions.com

OpenSIPS Bootcamp 2017, Houston, US
  http://opensips.org/training/OpenSIPS_Bootcamp_2017.html
On 06/29/2017 07:31 PM, Chad Attermann wrote:
Hi All,

I would like to be able to “broadcast” some non-INVITE requests (like NOTIFY and MESSAGE) to multiple registered endpoints.  The problem with using parallel forking is that the request is not reliably delivered to all registered endpoints since retransmission of the request stops after the first success response is received.  What I need is some hybrid of parallel and serial forking, where requests to all registered are sent at once, but each is treated as a separate transaction so that the message is sent (or at least attempted) reliably to each endpoint.

This sort of situation is mentioned in the docs for the TM module…

"UAC--it is a very simplistic code which allows you to generate your own transactions. Particularly useful for things like NOTIFYs or IM gateways.”

… but there is no mention of *how* to use it.  I’m sure there is probably a simple script for this, but I haven’t had any success searching the mailing list or the Internet at large for details.  I would appreciate if anybody could provide details or a sample script demonstrating how to create a separate transaction for each branch.

Thanks!


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




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