Cómo configurar un plan de marcado de Asterisk para llamadas dentro de la oficina

En el artículo anterior, aprendió cómo configurar el controlador de canal PJSIP para conectar un cliente de softphone simple a su instalación de Asterisk. Sin embargo, sus teléfonos aún no pueden llamarse entre sí y aún no les ha dado ninguna "extensión" numérica. Conectar los canales juntos en Asterisk es el trabajo del plan de marcación. En este artículo, aprenderá los conceptos básicos del plan de marcación: qué es, cómo se configura y cómo usarlo para conectar teléfonos.

Como recordatorio, aquí está la configuración que estamos configurando:

Crédito del diagrama de red: https://extensions.libreoffice.org/extensions/vrt-network-equipment
Índice

    Fundamentos del plan de marcación

    El Asterisk es responsable de enrutar las llamadas, por lo que a menudo se lo conoce como el corazón de un sistema Asterisk. El plan de marcación está escrito en un lenguaje de secuencias de comandos especial y es extremadamente potente. Puede pensar que los sistemas telefónicos solo aceptan y conectan llamadas, pero Asterisk es capaz de mucho más. Con el plan de marcación, puede diseñar aplicaciones avanzadas controladas por voz. Por ejemplo, puede crear el siguiente flujo de llamadas para una pequeña empresa:

    1. Una llamada externa entra en Asterisk desde un número de teléfono estándar.
    2. Un sistema puede requerir que el usuario ingrese información básica, como su número de cuenta.
    3. Asterisk acepta la entrada del usuario. El IVR consulta su cuenta y les presenta información (por ejemplo, información sobre facturas impagas).
    4. Opcionalmente, el usuario puede ser dirigido a uno de los representantes de servicio al cliente disponibles. Cuando el empleado recibe la llamada del cliente, el sistema le proporciona todos los datos de contacto del cliente y ahorra tiempo a la persona que llama.

    Aunque existen otras interfaces de programación para interactuar con Asterisk, el plan de marcación es el más básico y su comprensión es fundamental para entender cómo Asterisk maneja las llamadas. Según , el plan de numeración de Asterisk tiene cuatro componentes fundamentales:

    • Contextos: A es una sección lógica del plan de marcación. Los contextos contienen uno o más.
    • Extensiones: A es simplemente una agrupación de pasos utilizados para manejar una llamada en particular. A diferencia de muchos sistemas telefónicos tradicionales, las extensiones no necesitan ser digitales y no están vinculadas a un solo dispositivo. Podría tener una extensión llamada "mainIVR" si quisiera.
    • Prioridades: A es un paso en una extensión. Las prioridades administran el orden y también se pueden asociar con etiquetas para que una llamada pueda cambiar entre prioridades según sea necesario.
    • Aplicaciones: Las aplicaciones son muy similares a las funciones de los lenguajes de programación tradicionales. Le dicen a Asterisk que haga una llamada. Por ejemplo, podría tener una extensión interna de *86. Cuando se marca *86, puede pedirle a Asterisk que lea un mensaje del día usando el Solicitud de lectura.

    Si es nuevo en Asterisk, este desglose probablemente parezca complicado. Si bien los planes de marcación de Asterisk ciertamente pueden ser complejos, un sistema telefónico simple solo requiere un plan de marcación simple. Veamos el plan de marcación necesario para admitir su escenario de llamadas dentro de la oficina. El plan de marcación se configura en /etc/asterisk/extensions.conf:

    [office-phones]
    
    exten => 1001,1,Dial(PJSIP/alice-softphone)
    
    exten => 1002,1,Dial(PJSIP/bob-softphone)
    

    El fragmento anterior es todo lo que se necesita para que sus dos teléfonos se llamen entre sí. Repasemos cada parte de este plan de marcación:

    • office-phones es el contexto. Este contexto contiene dos extensiones.
    • 1001 y 1002 son las extensiones. Observe cómo esta configuración desacopla los números de los propios teléfonos. Aunque estos números actualmente están codificados para marcar los teléfonos de Alice y Bob, también podrían usarse para enrutamiento más complejo (por ejemplo, cambiar automáticamente a una línea nocturna en ciertos momentos).
    • el 1 después de la extensión es la prioridad. Recuerda que una prioridad es solo un paso en la gestión de extensiones. La primera prioridad es siempre 1. En este ejemplo, cada extensión tiene solo una prioridad.
    • Dial es la aplicación. el Componer la aplicación se utiliza para llamar a un dispositivo remoto. La marcación se realiza a través de SIP u otros protocolos de señalización (si necesita un repaso de los protocolos de VoIP, visite nuestro [first article]). [Note: Don’t forget to add the link.]

    Recordar: Cuando entra una llamada office-phones contexto, Asterisk intenta hacer coincidir esta llamada con una extensión. Cuando se marca la extensión 1001, el primer paso (prioridad) le dice a Asterisk que marque el punto final PJSIP para el teléfono de Alice. Cuando se marca la extensión 1002, sucede lo mismo con el teléfono de Bob.

    Eso está bien hasta ahora, pero ¿cómo exactamente llega una llamada al plan de marcación? La respuesta se encuentra en la configuración del punto final de PJSIP del artículo anterior:

    [alice-softphone]
    type=endpoint
    context=office-phones
    disallow=all
    allow=ulaw
    auth=alice-auth
    aors=alice-softphone
    

    Tenga en cuenta que el contexto para cada teléfono está configurado para office-phones. Esta configuración le dice a Asterisk que todas las llamadas del alice-softphone Donde bob-softphone Los terminales deben ingresar el plan de numeración en el office-phones El contexto. Cuando Bob marca un número (por ejemplo, 9000) desde su softphone, Asterisk mira en el office-phones contexto para la extensión coincidente 9000. En el plan de marcación de ejemplo anterior, esta llamada fallará porque no hay una extensión coincidente.

    No necesita configurar todos sus teléfonos para ingresar el plan de marcación en el mismo contexto. De hecho, probablemente encontrará buenas razones para poner los teléfonos específicamente en otros contextos. Considere una empresa que desea permitir que solo ciertas personas realicen llamadas internacionales, mientras que todos están restringidos a llamadas locales. Puede tener dos extensiones: una para permitir llamadas ilimitadas y otra que solo permite llamadas a números que comienzan con el código de área local. Aquellos con privilegios de llamadas internacionales serían colocados en el international contexto, mientras que todos serían colocados en el local-only El contexto.

    Era mucha teoría. Volvamos a la línea de comandos y probemos los cambios que hicimos en el plan de marcación. Primero, debe ininterrumpidamente reload el plan de marcación para aplicar los cambios que realizó en el archivo de configuración:

    asterisk-1*CLI> dialplan reload
    Dialplan reloaded.
    

    Luego puede inspeccionar el plan de marcación directamente desde la CLI de Asterisk para asegurarse de que sus cambios estén presentes:

    asterisk-1*CLI> dialplan show office-phones
    [ Context 'office-phones' created by 'pbx_config' ]
       '1001' => 1. Dial(PJSIP/alice-softphone) [extensions.conf:3]
       '1002' => 1. Dial(PJSIP/bob-softphone) [extensions.conf:5]
    
    -= 2 extensions (2 priorities) in 1 context. =-
    

    Tenga en cuenta que Asterisk incluye el nombre de archivo exacto y el número de línea donde se puede encontrar una extensión y su prioridad. Esta información es útil para solucionar problemas relacionados con el comportamiento de su sistema telefónico.

    Con el plan de marcación recargado y sus cambios claramente establecidos, debería poder realizar una llamada de prueba desde Linphone (o cualquier terminal SIP que esté utilizando). Primero, inicie Asterisk CLI con más detalle usando asterisk -rvvv:

    [root@asterisk-1 asterisk]# asterisk -rvvv
    Asterisk 16.6.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
    Created by Mark Spencer <markster@digium.com>
    Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
    This is free software, with components licensed under the GNU General Public
    License version 2 and other licenses; you are welcome to redistribute it under
    certain conditions. Type 'core show license' for details.
    =========================================================================
    Connected to Asterisk 16.6.1 currently running on asterisk-1 (pid = 4138)
    

    A continuación, realice una llamada desde el teléfono de Alice a la extensión 1002. Suponiendo que haya registrado un softphone (o teléfono físico) adicional para Bob, la extensión debería aparecer como ringing:

    La CLI de Asterisk también imprime mensajes informativos sobre el progreso de la llamada desde que se configuró en modo detallado. Puede ver la llamada entrante procesada por el plan de marcado y pasada al controlador de canal PJSIP para marcar el softphone de Bob. Eventualmente, una vez que Bob responde, Asterisk une el audio de la llamada para que ambas partes puedan escucharse:

     == Setting global variable 'SIPDOMAIN' to 'asterisk-1.acritelli.com'
                      -- Executing [1002@office-phones:1] Dial("PJSIP/alice-softphone-00000008", "PJSIP/bob-softphone") in new stack
                      -- Called PJSIP/bob-softphone
                      -- PJSIP/bob-softphone-00000009 is ringing
                      -- PJSIP/bob-softphone-00000009 is ringing
                      -- PJSIP/bob-softphone-00000009 answered PJSIP/alice-softphone-00000008
                      -- Channel PJSIP/bob-softphone-00000009 joined 'simple_bridge' basic-bridge <edd9402c-6df0-4fff-a81e-57826dadc652>
                      -- Channel PJSIP/alice-softphone-00000008 joined 'simple_bridge' basic-bridge <edd9402c-6df0-4fff-a81e-57826dadc652>
                      -- Channel PJSIP/bob-softphone-00000009 left 'native_rtp' basic-bridge <edd9402c-6df0-4fff-a81e-57826dadc652>
                      -- Channel PJSIP/alice-softphone-00000008 left 'native_rtp' basic-bridge <edd9402c-6df0-4fff-a81e-57826dadc652>
     == Spawn extension (office-phones, 1002, 1) exited non-zero on 'PJSIP/alice-softphone-00000008'
    asterisk-1*CLI>
    

    Ahora ha creado suficiente configuración de Asterisk para permitir que sus dos teléfonos se llamen entre sí. ¡Felicidades!

    Añadir otra extensión

    Ya ha visto la configuración básica del plan de marcación que permite que dos teléfonos se llamen entre sí. También mencioné algunas veces que Asterisk separa el concepto de un teléfono físico de una extensión, porque una extensión es simplemente un conjunto de instrucciones en el plan de marcación. Agreguemos otra extensión simple al plan de marcación para ver exactamente lo que quiero decir:

    [office-phones]
    
    exten => 1001,1,Dial(PJSIP/alice-softphone)
    
    exten => 1002,1,Dial(PJSIP/bob-softphone)
    
    exten => 9000,1,Answer()
    same => n,Playback(hello-world)
    same => n,Hangup()
    

    La configuración anterior agrega una extensión adicional (9000) al plan de marcación. Cuando se compone esta extensión, Asterisk:

    1. Responde la llamada.
    2. jugar uno hello-world archivar. Este es un archivo de sonido incluido con Asterisk. Por defecto, Asterisk busca sonidos en /usr/lib/asterisk/sounds/.
    3. Cuelga la llamada.

    Fíjate en el uso de la same => n sintaxis. Este es un azúcar sintáctico común y útil en el plan de marcación. Recuerda que cada extensión está asociada a uno o más pasos o etapas. el same => n La sintaxis le ahorra escribir y le dice a Asterisk que este paso es solo la siguiente prioridad para la misma extensión. La configuración anterior también podría escribirse:

    exten => 9000,1,Answer()
    exten => 9000,2,Playback(hello-world)
    exten => 9000,3,Hangup()
    

    Con su nueva configuración en su lugar, vuelva a cargar el plan de marcación e intente marcar la extensión 9000 para ver qué sucede. Nuevamente, el concepto clave que debe comprender es que ha creado una extensión que no tiene ningún dispositivo físico asociado. Asterisk desvincula por completo el concepto de dispositivos y extensiones.

    Envoltura

    En este artículo, aprendió sobre el plan de marcado de Asterisk y escribió suficiente configuración del plan de marcado para permitir que dos teléfonos se llamen entre sí. El plan de marcación de Asterisk es extremadamente poderoso y le permite crear aplicaciones de comunicación ricas. Le recomiendo encarecidamente que consulte el oficial Documentación del plan de numeración Asterisk y la quinta edición de para ayudarlo a comprender mejor todo lo que el plan de marcación tiene para ofrecer.

    En el [next article], trabajará para conectar su sistema telefónico a un proveedor externo para habilitar las llamadas entrantes y salientes. [Note: Don’t forget to add the link.]

    Artículos de interés

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Si continuas utilizando este sitio aceptas el uso de cookies. Más información