Domanda

Può qualcuno si prega di indicare in me in una direzione, codice di esempio o di una risorsa online per realizzare il seguente:

Requisiti: Vorrei scrivere una semplice opzione di menu IVR che verrà eseguito uno script (Bash o Python). Ad esempio, telefonare la macchina Asterisk e la richiesta di riavviare un servizio su un'altra macchina Linux. I 'altra scatola di Linux dettagli potrebbero essere duro codificati per l'opzione di menu IVR e non aveva bisogno di essere fornito come parte dell'interazione IVR - basta riavviare il servizio X sulla scatola Y. Sono po' preoccupato e incerto come si potrebbe ottenere questo con un password (anche se è difficile codificato nella versione).

Sfondo: Sono un newbie Asterisk e installato dalla distribuzione AsteriskNow e sto ancora imparando il prodotto. La funzionalità di base PBX è in funzione e viene somministrato con FreePBX. Asterisk non è il nostro obiettivo principale del lavoro di sviluppo, ma piuttosto uno strumento nella casella degli strumenti. Noi per lo più fare il lavoro .NET ma hanno competenze Unix.

Se possibile, non mi piacerebbe trascorrere giornate imparare i dettagli integrare di Asterisk per ottenere il lavoro fatto ...

È stato utile?

Soluzione

Il href="http://www.voip-info.org/wiki/view/Asterisk+AGI" rel="nofollow noreferrer"> Asterisk AGI pagina detiene collegamenti alle applicazioni in molti programmazione le lingue. Se lo fai per lo più .NET, forse nasterisk o il più vecchio MONO-TONO aiuterà.

Altri suggerimenti

Asterisk non è sempre in attesa per l'input dell'utente. Solo durante il fondo, WaitExten, comandi di lettura. Se stai usando riproduzione (), Asterisk ignora qualsiasi DTMF durante la riproduzione del file audio.

È possibile sostituire Riproduzione con Read (), ma si deve impostare il timeout di lettura per un valore molto basso o ci sarà un silenzio dopo ogni file audio si gioca con Read (). Se si utilizza Read (), allora si controlla l'immissione del valore da parte dell'utente per controllare l'uscita, qualcosa di simile ...

Al posto di

exten => x,n,Playback(yourfile) 
exten => x,n,somethingelse...

è necessario

exten => x,n,Read(Exit,yourfile,1)
exten => x,n,GotoIf($["${Exit}" = "0"]?0,1) 
exten => x,n,somethingelse...

Sarà impostare fino Asterisk solo per questo o è / sarà fare altre cose, come PBX, IVR, ecc?

Se si sta facendo altre cose con Asterisk, quindi impostare un'estensione nascosta (non pubblicizzato sul menu IVR), che è possibile comporre volta entrato in contatto; in questa estensione, è possibile controllare l'ID del chiamante e confrontarlo con il proprio numero, in modo che solo tu puoi eseguire lo script (è possibile aggiungere un po 'di sicurezza chiedendo un codice PIN, in modo da poter riposare più facile se non riesci a trovare il telefono).

Qualcosa di simile a questo:

exten => 9999,1,GotoIf($["${CALLERID(num)}" = "yournumber"]?4)
exten => 9999,2,Playback(sorry)
exten => 9999,3,Hangup
exten => 9999,4,Read(Pin,please-enter-pin,4)
exten => 9999,5,AGI(your-script)

Nel vostro script di controllare la variabile Pin e se è valida, eseguire, altrimenti uscire senza fare nulla. In questo modo non c'è bisogno di codificare il perno all'interno del dialplan, che qualcun altro può guardare ... se si tratta di una macchina di fiducia allora si può convalidare il Pin proprio nel dialplan:

exten => 9999,5,GotoIf($["Pin" != "1234"]?2)
exten => 9999,6,AGI(your-script)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top