• Inscription dynamique d'un téléphone dans une file d'attente avec FreePBX et Asterisk 1.4.

      Si votre entreprise est organisé en service, il est possible d'affecter une file d'attente (Queue dans FreePBX) pour chaque service. A la suite d'un appel entrant (Inbound routes) l'appel est orienté vers un service de la société et donc vers la file d'attente.
      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
      Avec ce code, il faut aussi ajouter des fichiers audio que vous pouvez construire. Il faut les déposer dans /var/lib/asterisk/sounds/fr.
      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
    • A propos d'Asterisk

      Asterisk

      Asterisk est un IPBX open source (logiciel libre) pour Linux originellement créé en 1999 par Mark Spencer, fondateur de la société Digium.

      logo asterisk
    • Downloads populaires

    • Articles récents

    • Utilisateurs actuellement connectésUtilisateurs actuellement connectés

      0 membre(s) et 82 invité(s)

      Le record de connectés est de 2 678, 22/07/2022 à 11h34.

    • Ils nous soutiennent

      logo digium
      logo alter-it
      logo avencall
      logo beronet
      logo celya
      logo cnsi
      logo dolmen
      logo easypyro
      logo eyepea
      logo keyyo
      logo opcom
      logo openip
      logo ovh
      logo qualigaz
      qualistream
      logo voip-asterisk
      logo voxity
      logo yealink