Let me answer your last question first.
Asterisk doesn’t handle multiple Stasis applications connecting with the same name. The relationship between Asterisk and Stasis application
is one to one (one web socket per application name). However, you can get round this using an ARI proxy (see below). Using an ARI proxy allows you to 1.
Have multiple instances of your application run on multiple servers 2.
Provide load balancing between application servers 3.
Failover support for your application There are two implementations of an ARI proxy. The first written by me, in .NET (supports mono)can be found here
https://github.com/skrusty/AsterNET-ARI-Proxy The second is written in GoLang and can be found here:
https://github.com/nvisibleinc/go-ari-proxy You can read about the concepts behind ARI proxy on my blog.
http://www.xdev.net/2015/09/18/distributed-applications-with-ari/ With regards to stopping new calls in Asterisk, you can use the stop graceful cli command to prevent new calls from being processed
on that asterisk box. Hope that helps a little, Ben From: asterisk-app-dev-bounces@xxxxxxxxxxxxxxxx [mailto:asterisk-app-dev-bounces@xxxxxxxxxxxxxxxx]
On Behalf Of Nitesh Bansal Hello, I'm working on an ARI based bridging application. My concern is how to gracefully handle the failovers, upgrades. In case of planned upgrade, 0 2. Bridge the old asterisk to the new asterisk, but don't forward any new calls to the Asterisk under upgrade. Wait for call count to drop to zero for Asterisk under upgrade. 3. Let first Asterisk run until the call count drops to zero, keep accepting calls for the existing bridge, but forward any new Bridge request to the new Asterisk. How does Asterisk behaving if multiple ARI clients connect with Asterisk for the same Stasis application? Any ideas/recommendations? Regards, Nitesh No virus found in this message. |
_______________________________________________ asterisk-app-dev mailing list asterisk-app-dev@xxxxxxxxxxxxxxxx http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev