Paso 5: Configuración de Post
Cada vez que editamos el archivo /etc/asterisk/extensions.conf , necesitamos reiniciar Asterisk. Las siguientes líneas de este archivo determinan cómo Asterisk maneja una llamada entrante, donde es el número DID que nos ha dado Vitelity.net
Contextos de configuración en Extensions.conf
Hay tres contextos que deben especificarse en corchetes- por defecto, entrantes, y de interior. El contexto predeterminado son extensiones que pueden ser hechas sin pasar sobre un tronco de SF. También se hace referencia en el archivo /etc/asterisk/sip.conf como "contexto predeterminado para las llamadas entrantes." Este contexto sólo se utiliza si no se especifica un contexto específico dentro de la entrada del dispositivo proveedor de sip.conf. Solamente números en el contexto predeterminado pueden ser marcados directamente a través de la DISA hizo.
Entrada es el marco que usamos para un número de Vitelity.net entrante. Es el utilizado cuando los troncos 25-48 reciben una llamada de troncos 1-24 ("g1") por ejemplo,
es un caso único en el contexto entrante que se responde a las llamadas entrantes a la DID. DISA en este ejemplo, "Sistema de acceso directo" y contestar la llamada con un tono de marcación para que el código especificado "1234" se dará un nuevo tono de marcar. Si creamos una extensión de 999 como
Entonces podemos crear una conexión a un canal de Zaptel, utilizando la función Dial() , como,
Esto conectaría el canal Zaptel en extensión 999. Podemos fijar esta función a ejecutar cuando se marca una extensión específica de nuestra conexión de DISA, como algo así como la extensión 2600
Donde 2600 es nuestro número de extensión que responde, crea una conexión de Zaptel para grupo 1 con el siguiente par disponible en nuestro tronco. Esta extensión debe ser bajo el contexto predeterminado como el comando DISA para los puntos de entrada DID a dicho contexto. Con nuestra nueva conexión de canal de Zaptel, ahora podemos marcar números de interno utilizando nuestra caja azul. Tanto el "de interior" y "por defecto" contextos se definen también en el archivo Zapata.conf como vimos en el paso 3 - Configuración.
Reproducir Audio
Si queremos reproducir tonos u otros clips de audio, necesitamos primero crear. Sonidos en asterisco mejor se reproducirán como archivos de GSM, que podemos hacer fácilmente mediante la conversión de archivos WAV con sox.
También pueden codificar archivos MP3 a WAV usando la utilidad LINUX mp3 lame que necesita ser instalado desde fuentes externas, como
o, una vez más podemos de la escritura de este proceso como el siguiente,
Luego simplemente colocamos los nuevos archivos GSM/WAV en el directorio/var/lib/asterisk/sonidos . Ahora podemos usar las funciones ControlPlayback() o Playback() en el archivo /etc/asterisk/extensions.conf para jugarlos. Por ejemplo, podemos establecer extensión 112 para reproducir un sonido de llamada y luego classtrack1HQ.gsm archivo con el siguiente código
Podemos cambiar todos los archivos .wav en el directorio actual con esta simple línea de Bash:
Luego simplemente hacer,
Copiarlos en el directorio de recursos de sonido asterisco.
IF - Else lógica
Si otra lógica es posible utilizando el archivo extensions.conf en forma ternaria. Por ejemplo, podemos recoger la entrada de teclado del usuario, comprobarlo, y si es lo que nosotros queremos ir a una línea de marcado exten. Echemos un vistazo a un ejemplo.
El código anterior de extensions.conf simula una Unidad de prueba de acceso directo. Aviso cómo los números se utiliza generalmente para ordenar las líneas de exten son ahora 'n.' también, ahora tenemos las etiquetas después de la ' n delanillo","comenzar","getnum"y"readnum. " Estas etiquetas se refieren a las funciones GoTo() y GoToIf() . Utilizamos la función Read() para reproducir un sonido y escuchar la entrada del usuario. La entrada del usuario se almacena en el nombre de la variable especificado. Puede ser una definición general de read() ,
Donde "filename" es el archivo de audio GSM para reproducirse. En nuestro caso, reproducir el tono de 440Hz y esperar a la entrada del usuario. Echemos un rápido vistazo a GoToIf().
Si expresión es verdadera, GoToIf() irá a la etiqueta "somelabel" y ejecuta esa nueva línea. Si no es cierto, va a la etiqueta otherlabel y ejecuta la nueva línea. Si otherlabel no fue definido, asterisco sólo hubiera seguido hasta la siguiente línea. Esto es simple if/else logica puede usarse en Asterisk para ProjectMF.