J'ai souvent des demandes pour que les téléphones qui répondent à cette file d'attente puissent être un ou plusieurs et différents selon le moment.
Exemple : Une société, avec deux sites, selon le planning, c'est un utilisateur du site 1 ou du site 2 qui répond aux appels entrants du service commercial.
Pour faire cela, l'utilisateur doit inscrire son téléphone dans la file d'attente "Commercial".
Le numéro de la fille d'attente est : 100
Le numéro du téléphone est 55
L'inscription du téléphone dans la fille d'attente se fait en tapant *50*100.
Pour enlever le téléphone de la file d'attente il faut taper *51*100.
Il est aussi possible d'inscrire ou de désinscrire un autre téléphone que le sien dans une fille d'attente : *50*100*55 pour inscrire, *51*100*55 pour désinscrire.
Pour faire cela il faut ajouter le code suivant dans la section [from-internal-custom] du fichier /etc/asterisk/extensions_custom.conf
Code:
; Mettre un poste dans une file d'attente ; Usage *50*numero_file_dattente*numero_poste ; Si numero_poste n'est pas précisé, c'est le N° de poste qui appel qui est mis en file d'attente. exten => _*50*.,1,Wait(1) exten => _*50*.,2,Set(NUM_QUEUE=${CUT(EXTEN,*,3)}) exten => _*50*.,3,Set(NUM_EXT=${CUT(EXTEN,*,4)}) exten => _*50*.,4,GotoIf($["${NUM_EXT}"=""]?5:6) exten => _*50*.,5,Set(NUM_EXT=${CALLERID(number)}) exten => _*50*.,6,Noop(N° queue : ${NUM_QUEUE}) exten => _*50*.,7,Noop(N° extension : ${NUM_EXT}) exten => _*50*.,8,AddQueueMember(${NUM_QUEUE},SIP/${NUM_EXT},1,j) ; l'option "j" permet de passer à la ligne n+101 exten => _*50*.,n,Wait(1) exten => _*50*.,n,Noop(etat : ${AQMSTATUS}) ; la variable AQMSTATUS contient 3 états ADDED, MEMBERALREADY, NOSUCHFILE exten => _*50*.,n,Playback(le-poste) exten => _*50*.,n,SayDigits(${NUM_EXT}) exten => _*50*.,n,Playback(est-maintenant-agent) exten => _*50*.,n,Playback(de-la-file-dattente) exten => _*50*.,n,SayDigits(${NUM_QUEUE}) exten => _*50*.,n,Hangup exten => _*50*.,109,Wait(1) exten => _*50*.,n,Noop(etat : ${AQMSTATUS}) exten => _*50*.,n,Playback(le-poste) exten => _*50*.,n,SayDigits(${NUM_EXT}) exten => _*50*.,n,Playback(est-deja-agent) exten => _*50*.,n,Playback(de-la-file-dattente) exten => _*50*.,n,SayDigits(${NUM_QUEUE}) exten => _*50*.,n,Hangup ; Enlever un poste d'une file d'attente ; Usage *51*numero_file_dattente*numero_poste ; Si numero_poste n'est pas précisé, c'est le N° de poste qui appel qui est enlevé de la file d'attente. exten => _*51*.,1,Wait(1) exten => _*51*.,2,Set(NUM_QUEUE=${CUT(EXTEN,*,3)}) exten => _*51*.,3,Set(NUM_EXT=${CUT(EXTEN,*,4)}) exten => _*51*.,4,GotoIf($["${NUM_EXT}"=""]?5:6) exten => _*51*.,5,set(NUM_EXT=${CALLERID(number)}) exten => _*51*.,6,Noop(N° queue : ${NUM_QUEUE}) exten => _*51*.,7,Noop(N° extension : ${NUM_EXT}) exten => _*51*.,8,RemoveQueueMember(${NUM_QUEUE},SIP/${NUM_EXT},j) ; l'option "j" permet de passer à la ligne n+101 exten => _*51*.,n,Wait(1) exten => _*51*.,n,Noop(etat : ${RQMSTATUS}) ; la variable RQMSTATUS contient 3 états REMOVED, NOTINQUEUE, NOTSUCHQUEUE exten => _*51*.,n,Playback(le-poste) exten => _*51*.,n,SayDigits(${NUM_EXT}) exten => _*51*.,n,Playback(nest-plus-agent) exten => _*51*.,n,Playback(de-la-file-dattente) exten => _*51*.,n,SayDigits(${NUM_QUEUE}) exten => _*51*.,n,Hangup exten => _*51*.,109,Wait(1) exten => _*51*.,n,Noop(etat : ${RQMSTATUS}) exten => _*51*.,n,Playback(le-poste) exten => _*51*.,n,SayDigits(${NUM_EXT}) exten => _*51*.,n,Playback(nest-pas-agent) exten => _*51*.,n,Playback(de-la-file-dattente) exten => _*51*.,n,SayDigits(${NUM_QUEUE}) exten => _*51*.,n,Hangup
Voici les noms des fichiers audio :
Code:
le-poste est-maintenant-agent de-la-file-dattente est-deja-agent nest-plus-agent nest-pas-agent