Integración con Twilio

Created by Rob Garcia, Modified on Wed, 8 Apr at 1:39 PM by Toni Socías

La integración de Megacall y Twilio permite dirigir las llamadas entrantes de los números virtuales de Megacall a su Twilio y procesarlas según sus configuraciones actuales de Twilio. También puede realizar llamadas salientes desde Twilio a través de su cuenta en Megacall con las tarifas rentables de Megacall.


1. Configuración de llamadas entrantes


Agregar el dominio SIP en Twilio.


En su cuenta de Twilio abra el apartado Twilio Console → Voice → SIP Domains





Y pulse el botón + para agregar un nuevo dominio. 





Ejemplo de configuración del dominio:


FRIENDLY NAME - nombre del dominio, por ejemplo, megacall;

SIP URI - dominio, nombre arbitrario, para la comodidad se puede usar el número virtual.





En el apartado Voice Authentication agregue por turnos tres IP ACCESS CONTROL LISTS que contendrá las direcciones IP de confianza de Megacall desde los cuales Twilio recibirá las llamadas entrantes.


FRIENDLY NAME - sipurifr.megacall.es

CIDR NETWORK ADDRESS - 185.45.152.216 /32

FRIENDLY NAME - sipuriny.megacall.es

CIDR NETWORK ADDRESS - 185.45.155.33 /32

Asegúrese de que los tres IP ACCESS CONTROL LISTS agregados están seleccionados en los ajustes del dominio SIP.


Más abajo, en el apartado Call Control Configuration en el parámetro A CALL COMES IN seleccione qué gestionara las llamadas entrantes, si ya tiene el enrutamiento configurado en Twilio - seleccione su opción, por ejemplo Studio y su Flow (escenario) para las llamadas entrantes, pulse Save para guardar los ajustes de su dominio SIP.


Ejemplo Flow (escenario) para las llamadas entrantes


A continuación, en los ajustes de SIP Domain en el apartado SIP Registration se debe habilitar la opción de registrarse cambiando el interruptor a Enabled.


Más abajo, en CREDENTIAL LISTS se debe seleccionar el SIP Endpoint existente que recibirá las llamadas entrantes con la ayuda de softphone. Si todavía no tiene SIP Endpoint créelo pulsar el botón "+".

Agregar SIP Endpoint


La configuración del dominio SIP ha finalizado, pulse el botón Save.

Envío de llamadas a Twilio

En el punto anterior, añadimos el dominio SIP en Twilio, que contiene el URI SIP necesario para el enrutamiento:

Abra en Megacall el apartado Configuración → Números virtuales.

  1. Pulse el icono ⚙ en su número (ajustes).
  2. Abra la pestaña "Servidor externo".
  3. Habilite la opción "Servidor externo (SIP URI)".
  4. En el campo emergente inserte el 1555111111115551111111.sip.twilio.com
    - donde15551111111.sip.twilio.com – es su SIP URI de los ajustes del dominio SIP en Twilio.
  5. Pulse "Guardar".

La configuración de llamadas entrantes ha finalizado.


2. Configuración de llamadas salientes desde Twilio

Las llamadas salientes desde Twilio se pueden realizar mediante varias opciones, veamos el ejemplo de iniciar una llamada a través de Twilio REST API (Calls API).

En el siguiente ejemplo se mostrará la creación de una conferencia entre un SIP Endpoint en el que está configurado el softphone y un número externo (llamada a través de Megacall).

En el ejemplo se utilizará un script en Python. Antes de comenzar, asegúrese de que Python y la biblioteca Twilio estén instalados en su sistema (www.twilio.com/docs/libraries/reference/twilio-python).

Para la autorización de llamadas salientes será usado el SIP y la contraseña del área personal Megacall.

Cree el script call.py con el siguiente contenido:


from twilio.rest import Client

# Twilio datos de cuenta
ACCOUNT_SID = "Account_SID_value"
AUTH_TOKEN = "Auth_Token_value"
TWILIO_NUMBER = "+15559999999"  # Número confirmado en Twilio para Caller ID
CONFERENCE_NAME = "MyConferenceRoom"

# Zadarma SIP datos de cuenta
MEGACALL_SIP_URI = "sip:+525500000777@sip.megacall.es"  # Donde llamamos desde Megacall
MEGACALL_SIP_USER = "12345"  # en lugar de 12345 debe ser su usuario de Megacall
MEGACALL_SIP_PASSWORD = "my_sip_password"  # Contraseña del sip de Megacall

# SIP Endpoint (local)
SIP_ENDPOINT = "sip:11111@15551111111.sip.twilio.com"  # Su SIP Endpoint en el que está configurado el softphone para recibir llamadas

# Iniciación de cliente Twilio 
client = Client(ACCOUNT_SID, AUTH_TOKEN)

# Función de agregar participantes en la conferencia 
def add_to_conference(to_number, from_number=None, sip_auth_user=None, sip_auth_password=None):
    call_params = {
        "to": to_number,
        "from_": from_number if from_number else TWILIO_NUMBER,
        "twiml": f"""<Response>
                        <Dial>
                            <Conference>{CONFERENCE_NAME}</Conference>
                        </Dial>
                     </Response>"""
    }

    # Agregamos autenticación
    if sip_auth_user and sip_auth_password:
        call_params["sip_auth_username"] = sip_auth_user
        call_params["sip_auth_password"] = sip_auth_password

    call = client.calls.create(**call_params)
    print(f"Llamada a {to_number} comenzada, SID: {call.sid}")

# Inicio de llamada
add_to_conference(MEGACALL_SIP_URI, from_number=TWILIO_NUMBER, sip_auth_user=MEGACALL_SIP_USER, sip_auth_password=MEGACALL_SIP_PASSWORD)  # Llamada a un número externo desde Megacall
add_to_conference(SIP_ENDPOINT)  # Conectamos SIP Endpoint

print(f"Conferencia '{CONFERENCE_NAME}' creada")


Guarde y ejecute su script call.py. Si todo está configurado correctamente, las llamadas entrarán en el softphone y al número externo desde su SIP Megacall. 

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article