Savoir son status dans un groupe

Added by Ludovic GUYADER 19 days ago

Bonjour,
Je vous explique mon soucie.
J'ai crée un groupe avec une liste de personne qui peuvent y rentrer et sortir.
j'ai donc crée une fonction :
exten => 101,1,Addqueuemember(chronoLink,SIP/${CALLERID})
exten => 101,n,Playback(agent-loginok)
exten => 101,n,Hangup
exten => 102,1,Removequeuemember(chronoLink,SIP/${CALLERID})
exten => 102,n,Playback(agent-loggedoff)
exten => 102,n,Hangup

Cela fonctionne bien,
Par contre vous savez si il est possible de crée une fonction pour connaitre son status sur un téléphone. ?

J'utilise pour mes test un Yealink T48G, j'ai donc crée un bouton IN (101) et un bouton OUT (102).
Si quelqu'un à réussi a crée un seul bouton qui permet de ce loger et ce déloger et qui visuellement permet de savoir dans quel status est la personne .

Merci d'avance,


Replies (4)

RE: Savoir son status dans un groupe - Added by Sébastien Duthil 19 days ago

On peut lire dans core show application Addqueuemember:

[Description]                                                                  
Dynamically adds interface to an existing queue. If the interface is already in
the queue it will return an error.                                             
This application sets the following channel variable upon completion:          
${AQMSTATUS}: The status of the attempt to add a queue member as a text string.
    ADDED                                                                      
    MEMBERALREADY                                                              
    NOSUCHQUEUE                                                                
Tu pourrais donc:
  • lancer Addqueuemember
  • si AQMSTATUS vaut MEMBERALREADY, lancer Removequeuemember.

À noter que ce comportement est le même que celui des agents/files d'attente dans la partie Centre d'appel de Wazo, et qu'il existe déjà une touche de fonction pour faire ce que tu dis avec les agents.

RE: Savoir son status dans un groupe - Added by Ludovic GUYADER 12 days ago

Bonjour,

Merci pour le conseil j'ai réussi à modifier mon script pour faire plus simple :

exten => 101,1,Addqueuemember(chronoLink,SIP/${CALLERID(num)})
exten => 101,n,Noop(etat : ${AQMSTATUS}) ; (ADDED, MEMBERALREADY ou NOSUCHFILE)
exten => 101,n,GotoIf($["${AQMSTATUS}" = "ADDED"]?AQMOK)
exten => 101,n,GotoIf($["${AQMSTATUS}" = "MEMBERALREADY"]?DECONNECTION)
exten => 101,n(AQMOK),Playback(agent-loginok)
exten => 101,n,Hangup
exten => 101,n(DECONNECTION),Removequeuemember(chronoLink,SIP/${CALLERID(num)})
exten => 101,n,Playback(agent-loggedoff)
exten => 101,n,Hangup

Cela fonctionne parfait, mais la chose qui me manque maintenant est la notification à l'utilisateur de son status dans la queue
J'ai cru voir des choses passer comme quoi on pourrais rajouter une fonction BLF pour allumer la touche du téléphone ou l’éteindre.
Malheureusement je ne suis pas sur d'avoir bien compris comment cela fonctionne.

J'ai essayer avec cela mais ca ne marche pas :

exten => 101,1,Addqueuemember(chronoLink,SIP/${CALLERID(num)})
exten => 101,n,Noop(etat : ${AQMSTATUS}) ; (ADDED, MEMBERALREADY ou NOSUCHFILE)
exten => 101,n,GotoIf($["${AQMSTATUS}" = "ADDED"]?AQMOK)
exten => 101,n,GotoIf($["${AQMSTATUS}" = "MEMBERALREADY"]?DECONNECTION)
exten => 101,n(AQMOK),Playback(agent-loginok)
exten => 101,n,Set(DEVICE_STATE(Custom:chronoLink)=INUSE)
exten => 101,n,Hangup
exten => 101,n(DECONNECTION),Removequeuemember(chronoLink,SIP/${CALLERID(num)})
exten => 101,n,Playback(agent-loggedoff)
exten => 101,,n,Set(DEVICE_STATE(Custom:chronoLink)=NOT_INUSE)
exten => 101,n,Hangup

J'effectue mes test toujours sur un poste Yealink T48G si quelqu'un à une piste .

Merci d'avance,

RE: Savoir son status dans un groupe - Added by Sébastien Duthil 11 days ago

Pour la BLF, il y a 3 parties:

  • la config de la touche de fonction
  • le hint
  • le DEVICE_STATE
  • Pour la config de touche de fonction, il te faut une touche de fonction Custom avec une destination arbitraire, par ex. chronoLink dans ton cas
  • Pour le hint, il te faut le dialplan suivant, seul dans son coin:
    exten = chronoLink,hint,Custom:chronoLink
    
  • Pour le DEVICE_STATE, t'étais pas loin, les deux commandes sont:
    same = n,Set(DEVICE_STATE(Custom:chronoLink)=BUSY)
    same = n,Set(DEVICE_STATE(Custom:chronoLink)=NOT_INUSE)
    

Dans ton cas, tu vas sûrement vouloir lier le numéro appelé par la touche de fonction et le nom du hint, dans ce cas, remplace chronoLink par 101 partout.

RE: Savoir son status dans un groupe - Added by Ludovic GUYADER 5 days ago

Parfait merci beaucoup !!

cela donne ceci au final au cas ou quelqu’un cherchais aussi la solution :

exten = 101,hint,Custom:101
exten => 101,1,Addqueuemember(chronoLink,SIP/${CALLERID})
exten => 101,n,Noop(etat : ${AQMSTATUS}) ; (ADDED, MEMBERALREADY ou NOSUCHFILE)
exten => 101,n,GotoIf($["${AQMSTATUS}" = "ADDED"]?AQMOK)
exten => 101,n,GotoIf($["${AQMSTATUS}" = "MEMBERALREADY"]?DECONNECTION)
exten => 101,n(AQMOK),Playback(agent-loginok)
same = n,Set(DEVICE_STATE(Custom:101)=NOT_INUSE)
exten => 101,n,Hangup
exten => 101,n(DECONNECTION),Removequeuemember(chronoLink,SIP/${CALLERID})
exten => 101,n,Playback(agent-loggedoff)
same = n,Set(DEVICE_STATE(Custom:101)=BUSY)
exten => 101,n,Hangup

Merci encore.

(1-4/4)