Hi Jonathan,

Unfortunately this is a design problem - the t_replicate() is actually a t_reply() but without passing the received replies back to the caller. So t_replicate() behaves on parallel forking exactly as t_reply().

Some additional work may be required to change this and have t_replicate() properly replicating to all destination. Could you please open a ticket on github about this ?

Thanks and Regards,

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

On 03.08.2016 19:15, Jonathan Hunter wrote:
Hi Guys,

We have an old platform we are looking to redesign but in the meantime we need to fix a problem we have.

Currently we have an opensips proxy/registrar with 2 x Asterisk boxes behind it.

Now currently we use t_replicate and the dispatcher module (ds_next_domain()) to send REGISTER requests in parallel to both Asterisk Servers so they can update their sip peers.

This works great but we sometimes (an issue we are investigating) dont always get a 200ok response back from one or both Asterisk servers for the REGISTER message.

Therefore I am looking to resend the REGISTER whenever this may happen.

This is fine using the fr timers should both Asterisk Servers not respond, however if only 1 Server doesnt respond, and the other does, this problem is lost, due to the parallel forking being applied to the t_replicate scenario.

I can capture 200 ok messages in onreply routes to confirm which Asterisk servers have responded, however I cannot t_relay again from this type of route.

Is there another way to do this? Whereby I can remain transaction stateful, and resend a REGISTER message if only one of the Asterisk Servers doesnt respond to a REGISTER message?

Thanks

Jon


_______________________________________________
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