PDA

Voir la version complète : Appels externes et files d'attente



H2O
30/04/2013, 21h00
Bonjour,

Je me tourne vers vous afin de demander une aide sur un problème que je n'arrive pas à résoudre depuis maintenant une semaine. J'ai fouillé sur le forum, mais personne n'a rencontré ce type de problème.

Tout d'abord je dispose d'un abonnement SIP chez OVH qui me fourni un numéro de téléphone. Passer des appels vers l'extérieur et en recevoir ne posent pas de problème, tout est configuré correctement à ce niveau.


[ovh-sip] ;Appel entrant.

exten => s,1,Ringing(1)
exten => s,2,Answer
exten => s,3,Goto(ivr,s,1)
exten => s,4,Hangup(16)


J'ai ensuite mis en place un SVI et je redirige les appels vers celui-ci, le choix numéro 1 envoie vers la direction et le choix numéro 2 vers la comptabilité.

[ivr]

exten => s,1,Answer()
exten => s,2,Set(TIMEOUT(response)=8)
exten => s,3,Background(/var/lib/asterisk/sounds/ivr/enregistrement_ivr)
exten => s,4,WaitExten()

exten => 1,1,Goto(direction,3000,1)
exten => 2,1,Goto(comptabilite,4000,1)
exten => _[3-9#],1,Goto(ivr,s,3)
exten => t,1,Goto(ivr,s,3)


Tout se passe toujours bien jusque là.

Le fait d'appuyer sur le numéro 1 envoie la personne dans le contexte [direction] avec appel du numéro 3000 afin que la personne entre dans la file d'attente mise en place :


[direction]

exten => 2000,1,AgentLogin() ;Permet aux agents de se connecter
exten => 3000,1,Answer() ;Les appels externes arrivent ici
exten => 3000,2,Queue(attente_direction) ;Si l'agent est occupé ou absent, musique d'attente



J'ai aussi décidé de permettre la connexion d'un agent hotline en composant le numéro 2000 afin que ceux-ci se connectent. La connexion de l'agent se passe très bien et lorsqu'il est connecté il entend bien la musique d'attente. Mais je vois dans la CLI* qu'il ne se trouve pas dans la file d'attente nommée (attente_direction).

Par contre la personne appelant de l'extérieur elle se retrouve bien dans le file d'attente et cela s'affiche correctement dans la CLI*. Seulement, le premier appel effectué après le démarrage de la machine se passe bien contrairement au appel suivant, il ne détecte plus mes touches et tourne en boucle dans l'IVR.

L'appel de l'extérieur et l'agent ne rentre jamais en communication.

J'espère que je suis clair :-)

Un grand merci à vous,

Pour infos, voici une partie de mes fichiers queues.conf et agents.conf :

queues.conf
agent => 1500, 4321, Agent Direction
agent => 1501, 4321, Agent Comptabilite


agents.conf
[attente_direction]
member => Agent/1500

[attente_comptabilite]
member => Agent/1501

H2O
01/05/2013, 21h26
Petit test encore aujourd'hui en modifiant quelques paramètres mais rien n'y fait, toujours le même problème.

Les agents et les appels externes n'arrivent pas à entrer en relation.

Merci de votre aide :-)

Reaper
02/05/2013, 15h21
Bonjour, pas la pine de faire:

exten => 3000,1,Answer() ;Les appels externes arrivent ici

C'est déjà fait avait dans IVR.

Pour les touches DTMF, assure toi bien que le reglage de dtmf sont bon par rapport à ton fournisseur. Sinon effectue un dump avec wireshark pour voir si les DTMF arrivent bien depuis ton fournisseur en RFC2833, ou un dump SIP dans asterisk si c'est "info"

H2O
02/05/2013, 15h49
Bonjour,

Merci pour la réponse :-) Je me charge de tester cela ce soir et je reviendrai sur le forum pour donner des nouvelles.

En ce qui concerne les DTMF, les touches arrivent bien lors du premier démarrage de la machine, ensuite il m'est impossible d'en introduire lors d'un second appel.


Bonne après midi

Reaper
02/05/2013, 16h04
Bonjour, oui je comprends qu'ils arrivent bien pendant la premiere fois, maintenant il s'agit d'être certain que pendant la seconde fois ils arrivent "techniquement", et le seul moyen de le tester c'est la trace sip, ou wireshark.

H2O
02/05/2013, 16h26
Je me charge de tester tout cela ce soir, un grand merci.

H2O
02/05/2013, 17h44
Je viens de regarder ce que ça donner, le souci est que les agents arrivent bien à se connecter mais n'entrent pas dans la file d'attente (attente_direction).

Je vois dans la CLI*
AgentLogin("SIP/Paul-00000007", "") in new stack
Playing agent-user.gsm
Playing agent-pass.gsm
Playing ahent-loginok.gsm
Started music on hold, class 'default', on SIP/Paul-00000007

Cela me joue bien la musique d'attente mais aucune trace d'une entrée dans la file d'attente.

greg2901
02/05/2013, 20h22
Salut H2O,

J'ai aussi travaillé sur les files d'attente cette semaine, je suis tombé sur un post qui m'a beaucoup aidé:

extensions.conf:
exten => 10,1,Goto(agentlogin,s,1)
exten => 11,1,Goto(agentlogoff,s,1)
exten => 13,1,Queue(support,tTwW)

[agentlogin]
exten => s,1,Answer()
exten => s,n,AddQueueMember(support)
exten => s,n,Playback(agent-loginok)
exten => s,n,Hangup()

[agentlogoff]
exten => s,1,Answer()
exten => s,n,RemoveQueueMember(support)
exten => s,n,Playback(agent-loggedoff)
exten => s,n,Hangup()

Queues.conf:

[support]
ringinuse = no
strategy

Pour moi ça marche !

Pour plus d'info:

http://www.asterisk-france.org/archives_net/showthread.php?t=9097

En espérant que ca t'aide...

H2O
02/05/2013, 22h12
Merci à toi pour ton aide, je vais adapter ma configuration et voir ce que cela donne.
Je suppose que le fichier agents.conf doit aussi toujours comporter les informations des agents pour leur connexion ?


Je suis bien sûr toujours ouvert à tout autre aide à propos d'une éventuelle erreur dans ma configuration.


Un grand merci :-)

greg2901
02/05/2013, 22h55
D'après les essais que j'ai fait, tu n'as plus besoin de renseigner les agents dans agents.conf


En tout cas il n'y a pas besoin d'identifier l'agent par un code comme avec la fonction "AgentLogin()"

dans la cli si tu tapes "queue show", il n'y a pas d'agent mais que des postes...

De plus avec AgentLogin, si j'ai bien tout compris ou en tout cas je l'ai constaté comme ça, lorsque l'agent s'enregistre il doit rester en ligne et se taper la music d'attente si l'agent raccroche, il n'est plus logué, je pense que ton problème vient de là.

Alors qu'avec AddqueueMember/RemovequeueMember, l'agent continu a utilisé son poste normalement, il choisi de recevoir ou non les coms de l'ivr

H2O
03/05/2013, 10h36
J'ai mis en place ce que tu m'as donné, mais le problème est que les agents arrivent bien à s'ajouter à la file d'attente, mais je n'entends pas le PLayback(agent-loginok) ni le (agent-loggedoff).

De plus, les appels venant de l'IVR sont redirigés vers l'extension 3000 et entrent bien dans la file d'attente mais aucune musique n'est jouée.

Autre petite question, pourquoi est ce que quand j'appel le numéro pour l'agentlogin, dans la CLI je vois SIP/Paul-00000000 ensuite lors du second appel je vois SIP/Paul-00000001 et ansi de suite, j'ai l'impression que cela ne fait qu'augmenter et qu'au bout d'un moment, ma CLI plante complètement.

La commande "sip show channels" me retourne une dizaine de dialogues actifs.

greg2901
03/05/2013, 18h23
Pour la musique d'attente, perso dans queue.conf, j'ai gardé ma config de base:

[support]
wrapuptime=0
strategy=roundrobin
retry=20
music=default
maxlen=0
leavewhenempty=no
joinempty=yes
announce-holdtime=no
announce-frequency=0
agentannounce=None

Et j'ai bien la musique d'attente classique...
Pour les sons loginok et loggedoff tu as bien installé tous les sons lors de la compilation d'asterisk ??? Pour moi ça fonctionne bien !

Et ensuite pour l'appel du num agent login, je suis pas certain que c'est une bonne chose que le même poste téléphonique soit loggé x fois, dans mon cas j'ai développé une page php pour gérer ça et avoir la liste des agents actifs dans une file d'attente. De cette façon un agent entre son num de poste, il voit son état et le modifie comme il souhaite.

H2O
03/05/2013, 20h33
Je viens de chercher encore un peu sur le net afin de voir d'où pouvait venir le souci avec les dialogues SIP qui sont full. Et bien il s'est avéré que c'est un bug dans la version de mon Asterisk, je suis donc passé de la version 1.8.11 à la version 1.8.21.0 et celle-ci a corrigé lé problème.

Cfr. les changelogs.

Tout est donc rentré dans l'ordre :-) Que ce soit au niveau des appels externes et des files d'attentes.