Olivier
2013-Jan-21 23:22 UTC
[asterisk-users] Queues and distributed device state over WAN
Hello, I've read a couple of docs on the web about distributed call centers (mainly this one http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CDgQFjAB&url=http%3A%2F%2Fleifmadsen.com%2Fsites%2Fdefault%2Ffiles%2Fcc01-madsen-digium.pdf&ei=wcT9ULmWLIKIhQf6zIB4&usg=AFQjCNF1ehGNvK63uDyq4FDS6_B9OsjZDQ&bvm=bv.41248874,d.ZG4 ). Before diving into this, I've got the following question : - let say we have two Asterisk servers A and B, - both are interconnected through PSTN (no SIP trunk) - agent Alice's phone is connected (ie registered) to server A - Alice's phone can be reached from server A phones dialing Local/6789 - Alice's phone can also be reached from server B phones dialing Local/00123456789 1. How do you configure both servers so that Alice's phone becomes a Queue Member from a server B given queue ? Simply calling AddQueueMember on server B, passing Local/00123456789 as interface value (ie AddQueueMember second argument) ? 2. Then, how should server A publish Alice's phone status ? How should server B consume Alice's phone status and associate it with the Queue member activity ? Using AddQueueMember stateinterface argument ? Regards -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130122/5b4a8d8c/attachment.htm>
Alec Davis
2013-Jan-25 09:53 UTC
[asterisk-users] Queues and distributed device state over WAN
> Oliver wrote: ><snip> > Before diving into this, I've got the following question : > > - let say we have two Asterisk servers A and B, > - both are interconnected through PSTN (no SIP trunk) > - agent Alice's phone is connected (ie registered) to server A > - Alice's phone can be reached from server A phones dialingLocal/6789> - Alice's phone can also be reached from server B phones dialingLocal/00123456789> > > 1. How do you configure both servers so that Alice's phone becomes aQueue Member from a server B given queue ?> Simply calling AddQueueMember on server B, passing Local/00123456789as interface value (ie AddQueueMember second argument) ?> > 2. Then, how should server A publish Alice's phone status ? > How should server B consume Alice's phone status and associate itwith the Queue member activity ? Using AddQueueMember stateinterface argument ? Before trying to get distributed device state going: Device names across all Asterisk proxy's participating in 'distributed device state' need to be unique. IE. You can't have 'SIP/cisco1' exist on server A for ALICE, and SIP/cisco1 on server B for BOB. You need to get XMPP distributed device state working. I followed https://wiki.asterisk.org/wiki/display/AST/Distributed+Device+State+with+XMP P+PubSub You need a reasonbly reliable WAN links to the jabber server support the XMPP updates between servers. Asterisk segfaults if it can't contact the jabber server!!! See https://issues.asterisk.org/jira/browse/ASTERISK-18078 Then: With Alice reqistered on Server A as SIP/cisco1 With Server B hosting the queue named 'queue1'. ;(on Server B) queues.conf: [queue1] ;what makes this work with distributed states is the 'State Interface' parameter ... member => Local/00123456789,0,ALICE,SIP/cisco1 Alice will need a number to ring to login/logout of queue1 hosted on Server B; Dialplan Example: on server B: ... exten => s,n,Set(queuename=queue1) exten => s,n,Set(interface=Local/00123456789) exten => s,n,Set(penalty=0) exten => s,n,Set(stateinterface=SIP/cisco1) exten => s,n(queue-add),AddQueueMember(${queuename},${interface},${penalty},options,, ${stateinterface}) And to remove the member; ... exten => s,n(queue-remove),RemoveQueueMember(${queuename},${interface}) Alec Davis