VoIP Mailing List Archives
Mailing list archives for the VoIP community |
|
View previous topic :: View next topic |
Author |
Message |
govoiper at gmail.com Guest
|
Posted: Thu Mar 03, 2016 1:54 pm Post subject: [Freeswitch-users] FreeSwitch AMQP Question |
|
|
Hi All,
I am experimenting with mod_amqp , I've a RabbitMQ server deployed. What I'm trying to find out is if N number of FreeSwitch Servers are connected to the same virtualhost to send and receive events and all FreeSwitch servers are connected to same backend Database. In that particular situation if one server sends an Update status of a SIP endpoint to the MessageBus and rest of the FS receives them, will they also consider that SIP endpoint as Busy/On-Call ?
Another example could be change in call_centre agent state change. If one FS sends an event stating the agent is busy, will rest of the FS servers honour this and not assign calls to the agent until a free event is received !!
Thanks,
Sammy |
|
Back to top |
|
|
william.king at quentu... Guest
|
Posted: Wed Mar 09, 2016 4:14 pm Post subject: [Freeswitch-users] FreeSwitch AMQP Question |
|
|
Sammy,
Great question. mod_amqp has several different profile types: producer,
commands, logging, and consumer(not yet implemented). The producer
profile type only sends FS events to an amqp exchange(though you can
configure multiple profiles with different event bindings and
destination exchanges).
To achieve what you're talking about would require mod_amqp profiles to
subscribe and consume events from an amqp exchange, and then
process/fire those events locally.
Now the second way to handle what you're describing would be to have the
different FS servers configured so that the modules use the same DB
info, so that they're all looking at the same DB state. This would not
require amqp to consume and process the events.
William King
Senior Engineer
Quentus Technologies, INC
1037 NE 65th St Suite 273
Seattle, WA 98115
Main: (877) 211-9337
Office: (206) 388-4772
Cell: (253) 686-5518
william.king@quentustech.com
On 3/3/16 10:52 AM, SamyGo wrote:
_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com
Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org |
|
Back to top |
|
|
govoiper at gmail.com Guest
|
Posted: Thu Mar 10, 2016 1:20 pm Post subject: [Freeswitch-users] FreeSwitch AMQP Question |
|
|
Thanks William for taking out time to send a detailed reply. I am exploring a scaleable callcentre solution and came across AMQP as an excellent alternative to the external application managing the call flow.
I looked further inside the mod_callcentre.c and yeah I see that events are just sent only which means that sharing events is not enough and we might additionally need to send commands so the FS servers can actually do some action.
Regarding ODBC:
I have question about Shared ODBC between mod_callcenter, I do see that this module do alot of SQL queries to work, but is that shared ODBC enough to make all FS servers act as one big callcenter ? Last time I read people still had problems with this. I also see "single_box" value hard coded in System-type field and I do see "multi_box" related discussions stating that this is a future goal. The Problem I've heard so far is that when an agent state is changed in one FS rest of the FS servers might not be aware of the changed DB value(as they might've pulled older status) This may be very visible in large call volume. I maybe wrong but this is what I've understood so far.
I also think that if I modify the mod_callcenter.c file such that instead of making DB connections if it could all be shifted to a memcache mechanism then it may perform a little bit better.
Regarding AMQP:
I took help from this page: https://quentustech.com/rabbitmq-support-in-freeswitch.html and this is what I did:
1 - Started RabbitMQ Server
2 - Configured two FS servers with mod_amqp pointing to server in 1.
3 - Use the perl scripts mentioned on the above page to listen to events. The amqp_command.pl script lets me send a command to ALL of the FS Server.
It was clear to me that a RabbitMQ based approach lets me read on events and also lets me send commands to servers without doing a huge programming effort.
Next step to do would be to configure each FS server to bind to its unique virtualhost for commands (or use unique binding_key).
Then listen to calls+callcenter events from ALL the FS Servers, and based on whatever logic send commands to FS servers such that if an EVENT occurs stating an agent is taking call, send command to rest of the FS servers to mark that agent as "Busy".
Let me know your thoughts on this.
Best Regards.
Sammy
On Mar 9, 2016 16:13, "William King" <william.king@quentustech.com (william.king@quentustech.com)> wrote: |
|
Back to top |
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|