Realizziamo un IVR con Asterisk [Seconda parte]

Dopo aver seguito il precedente post abbiamo le conoscenze per realizzare il file audio da utilizzare per la risposta automatica.

Il formato wav, realizzabile con un software qualsiasi di registrazione vocale, dovrà essere convertito in formato GSM, nominato “risposta.gsm” e copiato nella cartella “/var/lib/asterisk/sounds/custom”.

Supponiamo di aver configurato un trunk di ingresso che inoltri le chiamate in arrivo sul contesto: “[sportello]“.

Per ottenere quello che vogliamo dobbiamo specificare il contesto sportello, in questo modo:

[sportello]
;imposta il tempo massimo di attesa per la chiamata
exten => s,1,Set(TIMEOUT(response)=30)
;risponde alla chiamata
exten => s,2,Answer( )
;esegue il file audio risposta
exten => s,3,Background(custom/risposta)

L’applicazione Background esegue il file audio specificato come argomento ma continua a restare in attesa di eventuali tasti digitati sulla tastiera del telefono.

Questo ci permette di far ascoltare all’utente il file audio “risposta” che conterrà il testo da ripetere all’utente.

Esiste un’altra applicazione simile: Playback ma in questo caso non sono accettate pressioni di tasti.

Nel prossimo post completiamo la realizzazione del risponditore automatico.

Se vuoi aggiornamenti su Realizziamo un IVR con Asterisk [Seconda parte] inserisci la tua e-mail nel box qui sotto:

Tag: ,

Commenti

  1. [1]

    ciao stò seguento le tue guide con piacere, e ti faccio i complimenti, ma arrivato quì ho un prb. Ovvero, se sostituisco la ‘s’ con il mio numero voip asterisk risponde non sento il messaggio, se provo a digitare 1 per un interno non va. Mentre se lascio la ‘s’ mi risponde la compagnia telefo. dicemndo che il num è inesistente. Ciao e grazie

  2. [2]

    con “il mio numero asterisk” intendi il numero che hai configurato come trunk voip in ingresso?
    per aiutarti dovrei vedere il log del centralino

  3. [3]

    ciao Francesco, mi è arrivata la tua risposta via e-mail ma quando vado sul link
    Guarda tutti i commenti al post cliccando su questo link:
    http://www.onevoiceoverip.it/07/01/2009/realizziamo-un-ivr-con-asterisk-seconda-parte/#comments

    si presenta la pagina senza nessun commento. Cosa bisogna fare per vedere i commenti?? grazie

  4. [4]

    ciao Francesco si il mio numero asterisk intendo il num registrato su eutelia. per farti avere il log come devo fare? grazie mille

  5. [5]

    ok trovati tutti i commenti scusami per i msg precedenti.

  6. [6]

    puoi copiarlo qui?

  7. [7]

    dal log vedo che il file audio non esiste in nessun formato e non avviane l’apertura. Cosa strana dentro il /var/lib/asterisk/sounds/custom/test.gsm esiste. Per la registrazione ho seguito questa guida
    http://www.voipista.com/?p=132
    grazie

  8. [8]

    hai configurato il trunk di eutelia in modo che le chiamate arrivino su questo contesto?
    dentro /var/lib/asterisk/sounds/custom/
    esiste per caso un altro file con nome test che ha un’altra estensione?

  9. [9]

    ciao Francesco ti allego il mio file extensions, ci sono delle righe commentate:
    [from-internal]
    exten => 201,1,Dial(SIP/201,20)
    exten => 201,2,Hangup
    exten => 202,1,Dial(SIP/202,20)
    exten => 202,2,Hangup
    exten => _7.,1,Dial(SIP/${EXTEN:1}@ext-provider)
    ;per registrare messaggio
    ;exten => 203,1,Wait(2)
    ;exten => 203,2,Record(/tmp/asterisk-recording:gsm)
    ;exten => 203,3,Wait(2)
    ;exten => 203,4,Playback(/tmp/asterisk-recording:gsm)
    [from-provider]
    ;exten => 0863xxxx,1,Dial(SIP/201)
    ;exten => 0863xxxx,2,Hangup
    ;[sportello]
    exten => 0863xxxx,1,Set(TIMEOUT(response)=3)
    ;risponde alla chiamata
    exten => 0863xxxx,2,Answer( )
    ;esegue il file audio risposta
    exten => 0863xxxxx,3,Background(/sounds/custom/test.gsm)
    ;In caso venga selezionato il tasto 1 si passa all’interno 201 (reparto commerciale)
    exten => 1,1,Dial(SIP/201,3)
    ; il telefono squilla per 3 secondi e poi si chiude
    exten => 1,2,Hangup
    ;in caso venga selezionato il tasto 2 si passa all’interno 201 (reparto tecnico)
    exten => 2,1,Dial(SIP/202,3)
    ; il telefono squilla per 3 secondi e poi si chiude
    exten => 2,2,Hangup

    a me sembra tutto ok! non vorrei che test.gsm deve essere convertito come fai presente tu.

  10. [10]

    guarda ho trovato sullo stesso sito questo link
    http://www.voipista.com/?p=20
    puo essere d’aiuto?

  11. [11]

    exten => 0863xxxxx,3,Background(/sounds/custom/test.gsm)
    questa linea non dovrebbe essere corretta perchè il path esatto è:
    /var/lib/asterisk/sounds/custom/test.gsm
    come specificato sopra

  12. [12]

    ciao Francesco ho fatto come dici tu, ma niente mentre se non inserisco nessuna path sento il messaggio, quest’ultimo è quello di default di asterisk posizionato in /usr/share/asterisk/sounds/press-1.
    se provo invece a copiare lo stesso file in /var/lib/asterisk/sounds ed inserire la path non sento nulla. Non è per caso bisogna modificare qualche altro file che imposta asterisk di leggere una determinata path invece di un’altra? graize

  13. [13]

    in genere la cosa dovrebbe essere abbastanza semplice, ricapitoliamo:
    1) sei certo che il file /var/lib/asterisk/sounds/custom/test.gsm esiste?
    2) il file test.gsm come è stato creato? hai seguito le istruzioni che ho specificato nel precedente post?
    http://www.onevoiceoverip.it/05/01/2009/realizziamo-un-ivr-con-asterisk-prima-parte/
    3) sei certo che oltre /var/lib/asterisk/sounds/custom/test.gsm nella stessa directory non esiste un’altro file:/var/lib/asterisk/sounds/custom/test.qualcosa, in genere qui può capitare di lasciare anche il file wav.
    ti chiedo di effettuare queste tre verifiche e scrivermi le risposte
    ciao

  14. [14]

    ok! visto che non sono sicuro di test.gsm ha fatto i test utilizzando i file di default di asterisk (usr/share/asterisk/sounds/…) ad esempio press-1 sento la voce ma quando lo sposto in /var/lib/asterisk/sounds/custom/ la cosa non funge. Di seguito ti ho allegato extensions.conf:

    [users]
    exten => 201,1,Dial(SIP/201,10)
    exten => 201,2,Hangup
    exten => 202,1,Dial(SIP/202,10)
    exten => 202,2,Hangup
    exten => 203,1,Dial(SIP/203,10)
    exten => 203,2,Hangup
    ;exten => 204,1,Dial(SIP/202/203,10)
    ;exten => 204,2,Hangup
    exten => _7.,1,Dial(SIP/${EXTEN:1}@ext-provider)
    [from-provider]
    exten => 0863xxxx,1,Answer()
    exten => 0863xxxx,2,Playback(hello-world)
    exten => 0863xxxx,3,wait(1)
    exten => 0863xxxx,4,Goto(menu,s,1)
    [menu]
    exten => s,1,Answer()
    exten => s,n,Wait(1)
    exten => s,n,Background(press-1)
    exten => s,n,Background(or)
    exten => s,n,Background(press-2)
    exten => s,n,WaitExten(3)
    exten => t,1,Dial(SIP/201,10)
    exten => t,2,Hangup()
    exten => 1,1,Dial(SIP/202,10)
    exten => 1,2,Hangup
    exten => 2,1,Dial(SIP/203,10)
    exten => 2,2,Hangup

    facendo delle prove asterisk legge di default /usr/share/asterisk/sounds e non var/lib/asterisk/sounds/custom/…. ah mi sono dimenticato di dirti che utilizzo ubuntu.

  15. [15]

    be penso che ti sei risposto da solo,
    in ubuntu la directory dei file è diversa devi usare:
    /usr/share/asterisk/sounds

Inserisci il tuo commento