
Compartir:
Atique is a computer graduate and proficient Python developer with a passion for exploring new technologies. With a strong background in programming and system engineering, he holds over 10 years of experience in automation, testing, and integration. His interests span single-board computers, software-defined radios, and continuous experimentation with generative AI tools.
Cree su propio centro de llamadas con Asterisk y SIP Trunking de Vonage
Tiempo de lectura: 5 minutos
Introducción
Los centros de llamadas son un aspecto importante de cualquier negocio que implique la comunicación con el cliente. Para las pequeñas y medianas empresas, los centros de llamadas pueden alojarse internamente para ahorrar costes de alojamiento en la nube y reducir la latencia de la red entre el servidor y los agentes del centro de llamadas. Además, proporciona un control total sobre todas las operaciones y permite gestionar y realizar cambios sin complicaciones.
En este artículo, vamos a configurar una versión minimalista de un centro de llamadas para marcar y recibir llamadas con unos requisitos mínimos.
Arquitectura
SIP Trunking es un método de prestar servicios telefónicos y comunicaciones unificadas a los clientes utilizando Internet en lugar de las líneas telefónicas tradicionales. SIP Trunking permite a las empresas sustituir las líneas PRI (Primary Rate Interface) tradicionales y utiliza VoIP (Voice over Internet Protocol) para gestionar sus comunicaciones a un coste mucho menor.
SIP Trunking requiere un proveedor de troncales SIP (por ejemplo, Vonage) que esté conectado a un sistema IP-PBX (por ejemplo, Asterisk) para gestionar las llamadas VoIP. El sistema IP-PBX puede instalarse y alojarse internamente sin ninguna complicación. Para hacer una llamada telefónica, un softphone (por ejemplo, Zoiper) instalado en un ordenador se conecta a un sistema IP-PBX con un número de extensión dedicado y credenciales de autenticación. Todo este sistema puede visualizarse en el siguiente diagrama:
Fig-1.1 Sip trunking architecture overview
Requisitos previos
Para configurar una solución completa de centro de llamadas interno, se necesitarán algunas cosas que facilitarán el proceso de instalación y configuración.
En primer lugar, necesitarás obtener una clave de API y un número de marcación entrante directa (DID) de Vonage. Vonage es un proveedor líder de comunicaciones que ofrece a los desarrolladores acceso a API para enviar voz, Video y mensajes con funciones avanzadas como controles de fraude e identidad.
Por abrir una Account gratuitatendrá acceso a créditos gratuitos y a una sencilla documentación para usar las API de Vonage.
Una vez completado el registro, proceda a adquirir un número de marcación directa entrante (DID) con tu código de país preferido. Esto también se conoce como número virtual largo (LVN) de Vonage y ayuda a las empresas a expandir su presencia local.
Además, necesitarás un servidor Linux, preferiblemente Debian o Ubuntu, para alojar la instalación de Asterisk. Asterisk puede instalarse con un sistema que tenga una CPU x86 de 1 GHz y 512 MB de RAM, pero para un mejor rendimiento, se recomienda una CPU de 3 GHz y 1 GB de RAM.
Para que las llamadas VoIP tengan éxito, es necesario abrir los siguientes puertos en el cortafuegos:
SIP: 5060 (UDP)
RTP: 10000 a 20000 (UDP)
Hay algo más opcional, pero lo recomendable es obtener un nombre de dominio o una dirección IP estática. Este nombre de dominio o dirección IP estática siempre apuntará al servidor Asterisk para desviar las llamadas fácilmente. Si no tienes un nombre de dominio o una dirección IP estática, puedes probar otras opciones posibles como DynDNS o Duck DNS
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
Configurar Asterisk
Instalar el servidor Asterisk
El servidor Asterisk es muy ligero y tiene requisitos mínimos de hardware en un servidor Linux. He aquí un breve resumen de comandos para instalar el servidor Asterisk en Debian 11 (bullseye):
sudo apt update # updates the package list from the repositories
sudo apt install wget build-essential subversion # install essential tools
cd /usr/src
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz # download asterisk
sudo tar -xvf asterisk-18-current.tar.gz # extract files
# following set of commands will compile and install asterisk
# with example configuration files
cd asterisk-18*/
sudo contrib/scripts/install_prereq install
sudo ./configure
sudo make
sudo make install
sudo make samples
sudo make config # start asterisk automatically when system boots
sudo ldconfig # updates the system's shared library cache
sudo systemctl start asterisk # starts asterisk service
sudo systemctl enable asterisk # auto-start asterisk at boot time
Configurar el servidor Asterisk
Inicia sesión en tu cuenta de SIP Trunking de Vonage para obtener la clave API, por ejemplo, Master (c85.....), y el secreto API que se usará como nombre de usuario y contraseña SIP. Para el servidor SIP (proxy), consulta la documentación para elegir el punto final más cercano a su ubicación (por ejemplo, sip-eu-3.vonage.com).
Para conectarte al punto final SIP de Vonage, accede mediante SSH al servidor Asterisk y agrega la siguiente configuración SIP en /etc/asterisk/sip.conf:
[general]
context=public
allowguest=no
udpbindaddr=0.0.0.0
tcpenable=no
transport=udp
srvlookup=yes
nat=force_rport,comedia
register => SIP_USERNAME:SIP_PASSWORD@ip.nexmo.com
[outbound]
type=friend
context=from-internal
host=sip-eu-3.vonage.com
username=SIP_USERNAME
secret=SIP_PASSWORD
insecure=port,invite
canreinvite=no
disallow=all
allow=ulaw
nat=force_rport,comedia
Sustituya SIP_USERNAME y CONTRASEÑA_SIP con tus credenciales de Vonage.
El siguiente paso es añadir un plan de marcación, que permitirá a los usuarios conectarse a Asterisk y empezar a hacer llamadas salientes. Para ello, edita /etc/asterisk/extensions.conf:
[globals]
TRUNK=SIP/outbound
[from-internal]
; Extension for making an outgoing call
exten => _9.,1,NoOp(Outgoing call through SIP trunk)
same => n,Dial(${TRUNK}/${EXTEN:1})
same => n,Hangup()En este ejemplo:
La dirección globales define una variable global TRONCAL que apunta a la troncal SIP de salida definida en sip.conf.
El interno se utiliza para las extensiones que realizan llamadas salientes.
El patrón _9. coincide con cualquier número que empiece por 9 y vaya seguido de uno o más dígitos. Se suele utilizar para diferenciar entre llamadas internas y externas.
${EXTEN:1} elimina el 9 inicial antes de enviar el número al troncal SIP.
Configurar Softphone
Configurar un softphone requiere tanto la configuración del servidor como la del cliente. Primero, vamos a añadir un usuario de softphone con extensión '1001' añadiendo la siguiente configuración en /etc/asterisk/sip.conf😀
[1001]
type=friend
context=from-internal
host=dynamic
secret=yourpassword
disallow=all
allow=ulaw
nat=force_rport,comedia
Reinicie Asterisk para aplicar todos los cambios utilizando sudo systemctl restart asterisk .
Para configurar el cliente, descargue un softphone como Zoiper o linphone. Una vez completada la descarga, ejecute el instalador en su ordenador e inicie el softphone. En el siguiente ejemplo, estamos utilizando la aplicación de escritorio Zoiper como cliente. Para registrar el softphone Zoiper con el servidor Asterisk, introduzca 1001 como nombre de usuario, seguido de sucontraseña
Fig-5.1 Zoiper username and passwordA continuación, indique la dirección IP local del servidor Asterisk (normalmente empieza por 192.168.x.x)
Fig-5.2 Zoiper IP configurationHaga clic en omitir para otras opciones y finalmente se mostrará Zoiper cliente está conectado:
Fig-5.3 Zoiper main screen
Para probar la configuración de la llamada saliente, marque un número prefijado con 9, por ejemplo, para marcar 18012312312, marcaría 918012312312
Configurar el desvío de llamadas
Hasta ahora hemos configurado nuestro softphone para marcar llamadas salientes. Para comenzar a recibir llamadas en el softphone, debemos configurar el número de marcación entrante directa (DID) proporcionado por Vonage, o a veces denominado número virtual largo (LVN), para recibir llamadas entrantes y reenviarlas a la URI SIP alojada en el servidor Asterisk.
Para ello, vaya a Panel de Numbers y edita el número para ver la ventana de configuración. En la ventana de configuración, seleccione SIP en la opción Reenviar. e introduzca el URI SIP que está alojado en el servidor Asterisk y haga clic en "Guardar".
Fig-6.1 Vonage Voice Forwarding
Una vez guardada la configuración, las llamadas se desviarán automáticamente al servidor Asterisk. Aquí necesitamos editar /etc/asterisk/extensions.conf para describir que extensión manejará las llamadas entrantes. En este ejemplo, estamos desviando las llamadas entrantes al agente con extensión 1001.
[provider]
exten => _X.,1,NoOp(Someone is calling from provider) ; dial any number
same => n,Answer()
same => n,Wait(1)
same => n,Dial(SIP/1001,30,r)
Reinicie Asterisk para aplicar todos los cambios utilizando sudo systemctl restart asterisk . A partir de ahora, si una persona que llama marca el número LVN (como se describe en la Fig-6.1), la llamada será desviada al agente del centro de llamadas con la extensión 1001 utilizando el softphone.
Fig-6.2 Testing the call center
Configuración adicional
Aunque no se trata aquí, es posible habilitar más configuraciones si es necesario. Por ejemplo, grabación de llamadas, sistema IVR, supervisión e informes. Todas estas funciones se activan mediante planes de marcación. Para más detalles, por favor consulte documentación de Asterisk.
Conclusión
En este artículo, hemos instalado y configurado con éxito una versión minimalista de Asterisk con la capacidad de manejar llamadas así como hacer llamadas salientes. Esta configuración del servidor se puede ampliar para añadir funciones adicionales sin problemas. Para utilizar la máxima eficiencia de los servicios SIP, es muy recomendable visitar la solución elástica de SIP Trunking que ofrece Vonage.
Ponte en contacto
¿Tienes preguntas o comentarios sobre este tutorial? Comparte tus opiniones con nosotros en Twitter) o en nuestro canal Slack de la comunidad de Vonage citando este artículo para obtener una respuesta rápida. También puedes conectar conmigo conmigo en Twitter.
¡Buena suerte y feliz SIP Trunking!
Compartir:
Atique is a computer graduate and proficient Python developer with a passion for exploring new technologies. With a strong background in programming and system engineering, he holds over 10 years of experience in automation, testing, and integration. His interests span single-board computers, software-defined radios, and continuous experimentation with generative AI tools.
