PDA

Voir la version complète : Queue et agent multi-serveurs



plouf
03/09/2012, 16h22
Bonjour à tous,

Je cherche à mettre en oeuvre une file d'attente avec des agents répartis sur plusieurs serveurs asterisk.

présentation de l'architecture cible:

serveur A - 192.168.21.10
compte SIP configurés sous la forme SIP/1XX

serveur B - 192.168.22.10
compte SIP configurés sous la forme SIP/2XX

serveur C - 192.168.23.10
compte SIP configurés sous la forme SIP/3XX

sur le serveur A une file d'attente (199) de déclaré, voici la conf:

fichier queues.conf

[199]
timeout=30
strategy=ringall
retry=5
maxlen=0
leavewhenempty=yes
joinempty=no
ringinuse=no


les postes du site A s'enregistre sur à la queue via la fonction #1:

exten => #1,1,AddQueueMember(199)
exten => #1,n,Playback(agent-loginok)
exten => #1,n,hangup()

Et se désenregistre via la fonction #0:

exten => #0,1,RemoveQueueMember(199)
exten => #0,n,Playback(agent-loggedoff)
exten => #0,n,hangup()

Tout celà fonctionne parfaitement.

Maintenant, on me demande que des utilisateurs des sites B et C puissent se connecter à la file d'attente du site A pour traiter des appels...

J'ai donc mise en place les même fonctions sur les site B et C et je faist appel à deux script pour gérer la connexion / déconnexion à la queue. Voici ce que ca donne pour le site B:

Extensions.conf:

exten => #1,1,AGI(connexion.agi,${CALLERID(NUM)})
exten => #1,n,Playback(agent-loginok)
exten => #1,n,hangup()

exten => #0,1,AGI(deconnexion.agi,${CALLERID(NUM)})
exten => #0,n,Playback(agent-loggedoff)
exten => #0,n,hangup()


script connexion.agi:

#!/usr/bin/expect
set user [lindex $argv 0]
spawn telnet 192.168.21.10 5038
expect "Asterisk Call Manager/1.0"
send -- "Action: login\r"
send -- "Username: admin\r"
send -- "Secret: admin\r\r"
expect "Authentication accepted"
send -- "action: QueueAdd\r"
send -- "Queue: 199\r"
send -- "Interface: $user@192.168.22.10\r\r"
expect "Response: Success"
send -- "Action: logoff\r\r"
expect "Response: Goodbye"
expect "Message: Thanks for all the fish."
expect eof


script deconnexion.agi:

#!/usr/bin/expect
set user [lindex $argv 0]
spawn telnet 192.168.21.10 5038
expect "Asterisk Call Manager/1.0"
send -- "Action: login\r"
send -- "Username: admin\r"
send -- "Secret: admin\r\r"
expect "Authentication accepted"
send -- "action: QueueRemove\r"
send -- "Queue: 199\r"
send -- "Interface: $user@192.168.22.10\r\r"
expect "Response: Success"
send -- "Action: logoff\r\r"
expect "Response: Goodbye"
expect "Message: Thanks for all the fish."
expect eof

ces deux fonctions sont OK, puisque la commande show queue sur la CLI du serveur A me retourne ce qui suit lorsque je me connecte depuis le poste SIP/201 du site B:

199 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:4, A:0, SL:75.0% within 0s
Members:
SIP/201@192.168.22.10 (dynamic) (Not in use) has taken 3 calls (last was 13125 secs ago)
SIP/102 (dynamic) (Not in use) has taken no calls yet
No Callers


mon problème est dans la gestion des appels.

Lorsque les membres de la file d'attente sont tous sur le site A, tout est Ok.

Le problème est dès qu'un membre d'un site distants se connecte à la file d'attente. j'ai constaté plusieurs symptomes:


Lors d'un appel entrant sur la queue, tous les postes commence à sonner puis seul un des postes des sites distants continue de sonner. Si l'utilisateur ne réponds pas l'appel est renvoyer au voicemail du poste qui à sonné...


il n'y a pas de remonté de statut pour les poste distants ce qui signifie que les postes distant auront un signal de double appel si ils sont déjà en ligne...


Est-ce que l'un d'entre vous a dèjà eu a configurer ce type d'architecture?

Si comment est-ce configuré?

Merci pour vos réponses.

gb56
07/09/2012, 18h33
Bonjour,

Moi j'ai ce genre de configuration avec des files d'attentes dans tous les sens.

J'ai règlé le problème d'une manière simple :

J'ai créer un compte sip sur chaque serveur. Ainsi un poste du site B dispose d'un compte sip sur le serveur * du site A et s'enregistre sur le serveur du site A (en plus de son enregistrement sur son site B)

Pour se connecter à la file d'attente du serveur A il se sert de son 2ème compte SIP enregistré sur le serveur * A

Gilbert

plouf
14/09/2012, 10h07
Bonjour,

Désolé pour la réponse tardive mais j'étais sur un autre dossier.

Je crois que je vais partir sur la solution de configurer des comptes SIP sur chaque serveur et téléphones.

Merci pour l'info.