Annuncio Agente di una coda

Annuncio Agente di una codaDiversi clienti, in particolare call center, hanno la necessità dell’Annuncio agente di una coda, cioè di annunciare al chiamante il numero dell’agente di una coda che risponde alla chiamata. Questa richiesta non è direttamente disponibile nell’interfaccia grafica di Freepbx del modulo queues, ma necessita di una personalizzazione del dialpaln e di un piccolo script in php. Per comunicare al chiamante il numero dell’agente della coda che risponde alla chiamata è, quindi, necessario procedere come segue:

L’Annuncio agente di una coda necessita di qualche passaggio più avanzato. Per prima cosa andiamo a valorizzare due variabili che vengono utilizzate nelle code di Freepbx per definire los cript AGI ed il contesto da eseguire quando viene risposta una chiamata dall’agente della coda:

Primo Passo

andiamo ad Inserire in /etc/asterisk/globals_custom.conf i seguenti valori:

QAGI=/var/www/html/sound.php
QGOSUB=Crea-Ticket,s,1

Secondo Passo

a questo punto andiamo a scrivere lo script sound.php:

#!/usr/bin/php -q
<?php
   include (“/var/www/html/phpagi-2.20/phpagi.php”);
   $agi = new AGI();
   $agi->answer();
   $dstatus=$agi->get_variable(“EXTEN”);
   $agent=$agi->get_variable(“MEMBERINTERFACE”);
   $agent= str_replace(‘/’,”,stristr(stristr($agent[‘data’], ‘@’, true),’/’));
   $agi->exec(“Playback”,”Risponde-operatore”);
   $agi->exec(“sayalpha”,”$agent”);
?>

Come funziona lo script ? Semplicemente estrae il numero dell’interno dell’operatore che risponde e recita il file audio “Risponde-operatore” seguito dal numero di interno dell’operatore stesso. Naturalmente consideriamo il file audio “Risponde-operatore” già creato e presente nel nostro Freepbx.
Il risultato che otteniamo con questo script, è quindi, la comunicazione al chiamante di un messaggio del tipo “Benvenuti, risponde l’operatore ” seguito dal numero dell’operatore.

Terzo Passo

E se volessimo far seguire anche delle operazioni specifiche alla risposta ? Ad esempio recitare un messaggio o meglio richiare uno script o aggiornare un database ? Ecco che ci viene incontro quanto definito nella variabile QGOSUB. Infatti, alla risposta e dopo aver eseguito lo script AGI, viene eseguita la porzione di Dialplan specificata nella variabile QGOSUB, come ad esempio:

[Crea-Ticket]
exten=>s,1,Wait(1)
same=>n,Playback(demo-thanks)
same =>n,Return()

Che, in questo caso, recita il messaggio “demo-thanks”. Naturalmente la porzione di dialplan in questione può essere omessa, qualora l’obiettivo è solo quello di comunicare al chiamante l’operatore che risponde.