Cómo configurar un punto final SIP para llamadas dentro de la oficina

Ahora que Asterisk está funcionando, es hora de hacer que haga algo útil. En este artículo, implementará la topología de teléfono simple que se muestra a continuación:

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

Aquí comenzará a sumergirse en los archivos de configuración, incluidos PJSIP y el plan de marcación del que escuchó en el artículo anterior sobre la arquitectura de Asterisk. Cuando haya terminado, tendrá dos teléfonos conectados a Asterisk.

Notar: Algunos comandos ejecutados en este artículo se ejecutan desde el símbolo del sistema de Asterisk. Ingresó brevemente el símbolo del sistema de Asterisk en el artículo sobre la instalación de Asterisk. Como recordatorio: puede conectarse a la CLI de una instancia de Asterisk en ejecución ejecutando asterisk -r desde un terminal estándar.

Índice

Configuración de PJSIP

Lo primero que debe configurar para implementar la topología es el controlador de canal PJSIP. El controlador de canal PJSIP le permite a Asterisk administrar puntos finales SIP, como teléfonos que conectará a su servidor Asterisk.

Para empezar, Asterisk necesita una configuración básica para PJSIP en /etc/asterisk/pjsip.conf. Esta configuración básica, tomada directamente de la configuración de ejemplo, es suficiente para que PJSIP escuche en el puerto UDP estándar 5060 para SIP. Esta configuración le dice al controlador de canal PJSIP que cree un transporte UDP vinculado a todas las direcciones IP:

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

Como siempre, asegúrese de configurar las reglas del firewall para permitir el acceso solo a los hosts en los que confía.

Con una configuración básica establecida, puede volver a cargar el módulo PJSIP para tener en cuenta los cambios:

asterisk-1*CLI> pjsip reload
Module 'res_pjsip.so' reloaded successfully.
Module 'res_pjsip_authenticator_digest.so' reloaded successfully.
Module 'res_pjsip_endpoint_identifier_ip.so' reloaded successfully.
Module 'res_pjsip_mwi.so' reloaded successfully.
Module 'res_pjsip_notify.so' reloaded successfully.
Module 'res_pjsip_outbound_publish.so' reloaded successfully.
Module 'res_pjsip_publish_asterisk.so' reloaded successfully.
Module 'res_pjsip_outbound_registration.so' reloaded successfully.
[Nov 26 03:10:33] NOTICE[12996]: sorcery.c:1334 sorcery_object_load: Type 'system' is not reloadable, maintaining previous values
asterisk-1*CLI>

Tenga en cuenta que debido a la arquitectura modular de Asterisk, no necesita reiniciar todo el servicio.

A continuación, puede verificar su transporte para asegurarse de que se configuró correctamente al verificar los transportes PJSIP:

asterisk-1*CLI> pjsip show transports

Transport: <TransportId........> <Type> <cos> <tos> <BindAddress....................>
==========================================================================================

Transport: transport-udp udp 0 0 0.0.0.0:5060

Objects found: 1

Pista: Use la función de completar con tabulación cuando trabaje en Asterisk CLI para ver los comandos y opciones disponibles.

Ahora tiene PJSIP escuchando en un puerto, pero eso no le sirve de mucho sin tener la configuración establecida para aceptar registros desde teléfonos. La configuración del teléfono en realidad requiere que configure algunas secciones para cada teléfono. Cada teléfono necesitará uno de los siguientes:

  • Punto final : Los puntos finales conectan las otras partes de la configuración SIP que aprenderá a continuación. Puede pensar en un punto final como una entidad con la que desea ponerse en contacto, como el teléfono de un usuario.

  • Autenticación: Las secciones de autenticación almacenan datos de autenticación, como un nombre de usuario y una contraseña para un extremo SIP.

  • Dirección de registro (AOR): De acuerdo a Documentación oficial de Asterisk, un AOR le dice a Asterisk "dónde se puede contactar a un terminal". Por ejemplo, se puede acceder al extremo "Teléfono de Stacy" en la dirección IP 10.100.100.150 (su AOR).

Una buena característica de la configuración de PJSIP es que admite la idea de. Si se encuentra reutilizando los mismos elementos de configuración (por ejemplo, la misma configuración de punto final), puede crear una plantilla y reutilizarla para varias secciones de configuración. Tómese un momento para revisar Documentación oficial de Asterisk para obtener más información sobre las secciones de configuración de PJSIP y sus relaciones.

Con ese conocimiento general fuera del camino, puede comenzar a configurar secciones para ambos teléfonos en su entorno en el /etc/asterisk/psjip.conf archivar:

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

[alice-auth]
type=auth
auth_type=userpass
username=alice-softphone
password=Secret123

[alice-softphone]
type=aor
max_contacts=1

No cubriré todos los elementos de configuración aquí para ahorrar tiempo, pero una explicación de alto nivel debería ser suficiente para comprender lo que sucede en esta sintaxis. La primera sección lógica es una endpoint sección, como indica el tipo. Le dice a Asterisk que las llamadas entrantes deben colocarse en el office-phones contexto (más sobre contextos más adelante), y el G.711 ulaw codec es el único códec permitido para este punto final. El punto final debe utilizar el alice-auth la sección de autenticación y el alice-softphone AOR. Las secciones auth y AOR se explican por sí mismas. el max_contacts La opción en el AOR le dice a Asterisk que solo se puede registrar un dispositivo (por ejemplo, un teléfono) en ese AOR a la vez. Observe cómo el tipo de sección de punto final une todos los demás tipos, como aprendió anteriormente. Cheque documentos para obtener más información sobre cada una de las opciones anteriores.

La configuración del teléfono de Bob es casi idéntica, así que no la duplicaré aquí. La única diferencia es obviamente el cambio de nombre, así como el uso de una contraseña diferente.

Probablemente haya notado que esta configuración no especifica una extensión numérica para el teléfono del usuario. Si ha trabajado con sistemas telefónicos tradicionales, este es probablemente un concepto extraño. Asterisk desacopla puntos finales reales (teléfonos físicos, softphones, etc.) de la extensión de manera poderosa. En Asterisk, una extensión es simplemente un código identificado de forma única que se ejecuta en el plan de marcación de Asterisk cuando se recibe una llamada. Pronto verá cómo se ve eso, pero por ahora, concentrémonos en cómo los teléfonos se comunican con Asterisk.

Primero, debe volver a cargar el módulo PJSIP para detectar cambios en su archivo de configuración. Puede realizar esta recarga exactamente como lo hizo con la recarga anterior con el pjsip reload pedido. A continuación, verifique que su AORS, autenticaciones y puntos finales se hayan configurado correctamente:

asterisk-1*CLI> pjsip show aors

        Aor: <Aor..............................................> <MaxContact>
        Contact: <Aor/ContactUri............................> <Hash....> <Status> <RTT(ms)..>
==========================================================================================

        Aor: alice-softphone 1

        Aor: bob-softphone 1

Objects found: 2

asterisk-1*CLI> pjsip show auths

  

   I/OAuth: <AuthId/UserName.............................................................>

==========================================================================================

        Auth: alice-auth/alice-softphone
        Auth: bob-auth/bob-softphone

Objects found: 2

asterisk-1*CLI> pjsip show endpoints

  Endpoint: <Endpoint/CID.....................................> <State.....> <Channels.>
        I/OAuth: <AuthId/UserName...........................................................>
        Aor: <Aor............................................> <MaxContact>
        Contact: <Aor/ContactUri..........................> <Hash....> <Status> <RTT(ms)..>
   Transport: <TransportId........> <Type> <cos> <tos> <BindAddress..................>
     Identify: <Identify/Endpoint.........................................................>
        Match: <criteria.........................>
        Channel: <ChannelId......................................> <State.....> <Time.....>
        Exten: <DialedExten...........> CLCID: <ConnectedLineCID.......>
==========================================================================================

Endpoint: alice-softphone Unavailable 0 of inf
        InAuth: alice-auth/alice-softphone
        Aor: alice-softphone 1

Endpoint: bob-softphone Not in use 0 of inf
        InAuth: bob-auth/bob-softphone
        Aor: bob-softphone 1

Objects found: 2

Asterisk detectó los cambios en el archivo de configuración y creó la configuración interna adecuada para cada nueva sección PJSIP. A continuación, debe configurar un punto final real, como un teléfono, para hablar con Asterisk.

Configurar un teléfono

Describiré el uso de linfono, software gratuito y de código abierto que puede ejecutarse directamente en su ordenador. Sin embargo, puede sentirse libre de usar un teléfono físico u otro tipo de softphone, si sabe cómo configurarlo. Las cuentas SIP en Linphone se pueden configurar con un asistente útil desde el Opciones -> Preferencias -> Administrar cuentas SIP menú. Al hacer clic en el Mago lo lleva a una primera página de inicio:

Continuar con el asistente le presentará opciones para el tipo de cuenta que desea configurar. Como ya ha creado una cuenta SIP en Asterisk, puede seleccionar la tercera opción y continuar:

La última página del asistente le permite ingresar todos los detalles de la cuenta SIP que creó en Asterisk. Recuerde especificar la dirección IP correcta (o nombre DNS) para el servidor:

Una vez que haya hecho clic Solicitar, debería ver un guardado exitoso en la interfaz de usuario. Asterisk también le permitirá verificar el registro a través de la CLI. Recuerde que una Dirección de registro (AOR) le dice a Asterisk cómo comunicarse con una terminal individual. Por lo tanto, si observa los AOR en Asterisk, verá que un Contact se ha asociado con la dirección IP del teléfono remoto:

asterisk-1*CLI> pjsip show aors

       Aor: <Aor..............................................> <MaxContact>
       Contact: <Aor/ContactUri............................> <Hash....> <Status> <RTT(ms)..>
==========================================================================================

       Aor: alice-softphone 1
       Contact: alice-softphone/sip:[email protected] 340d949efa NonQual nan

       Aor: bob-softphone 1

Objects found: 2

Ahora que ha configurado un teléfono para Alice, puede proceder a configurar un teléfono para Bob. Si solo está siguiendo para aprender, puede agregar ambas cuentas a la misma instancia de Linphone y debería funcionar bien. ¡Tus llamadas de prueba serán solo para ti!

Envoltura

En este artículo, aprendió cómo configurar el controlador de canal PJSIP en Asterisk. El controlador de canal PJSIP permite que Asterisk interactúe con puntos finales SIP, como un teléfono físico o un softphone. Ha aprendido a realizar suficientes configuraciones en Asterisk y Linphone para conectarse y verificar un cliente de softphone en Asterisk. Sin embargo, sus teléfonos aún no podrán llamarse entre sí hasta que se establezca la configuración del plan de marcado necesario. Cubriré eso en el próximo artículo.

Artículos de interés

Subir