Saltar a la navegación

FreePBX y Asterisk

Envía llamadas desde tu sistema telefónico FreePBX o Asterisk a tu recepcionista mediante un troncal SIP.

Tu PBX conserva su operador y sus números, y transmite las llamadas que elijas a Reception.ai mediante un troncal SIP. Añades un segundo troncal en la PBX que apunta a Reception.ai y, después, enrutas a él un DID, una condición horaria o una opción de IVR.

Antes de empezar

  • FreePBX 15 o posterior, o Asterisk con PJSIP, accesible desde internet.
  • Una dirección IP pública estática para la PBX. Reception.ai solo acepta llamadas desde las direcciones que autorices.
  • Alguien que conozca bien los troncales, las rutas y el firewall de tu PBX.

Configuración

1

Añade el troncal SIP en Reception.ai

Ve a Integrations, selecciona Add integration y elige SIP Trunk. En Inbound allowed addresses, añade la dirección IP pública de tu PBX. Si también estableces un nombre de usuario y una contraseña de entrada, usa el mismo par en el troncal de la PBX que se indica más abajo.

2

Añade el número

Ve a Receptionists, selecciona la tarjeta Phone, introduce el número que marcan quienes llaman, con su código de país, y selecciona Add SIP Trunk number. Reception.ai muestra el host del servidor SIP y el URI de solicitud que debes usar.

3

Activa TCP en FreePBX

Reception.ai no acepta UDP. En FreePBX, ve a Settings → Asterisk SIP Settings → SIP Settings [chan_pjsip], establece el transporte tcp en Yes y selecciona Submit y Apply Config. Reinicia Asterisk para que cargue el nuevo transporte. TLS también funciona si has configurado un certificado en Certificate Management.

4

Crea el troncal para Reception.ai

Ve a Connectivity → Trunks → Add Trunk → Add SIP (chan_pjsip) Trunk. En la pestaña General, introduce un Trunk Name, como reception. Establece CID Options en Allow Any CID para que la recepcionista vea el número de cada persona que llama. En la pestaña pjsip Settings:

CampoValor
RegistrationNone
AuthenticationNone o Outbound con Username y Secret si estableciste credenciales de entrada en Reception.ai
SIP ServerEl host del servidor SIP de Reception.ai
SIP Server Port5060 para TCP o 5061 para TLS
TransportEl transporte TCP (o TLS), por ejemplo 0.0.0.0-tcp
5

Añade una ruta de salida que envíe +E.164

Ve a Connectivity → Outbound Routes y añade una ruta llamada Reception que use solo el troncal reception. Añade un patrón de marcación con un prefijo sin usar, como 88, un patrón de coincidencia de X. y un prefijo añadido de +. Así, una llamada a 8814155550123 saldrá por el troncal como +14155550123, que es el formato que requiere Reception.ai.

6

Envía el DID a Reception.ai

Ve a Applications → Misc Destinations y añade uno que marque 88 seguido del número en formato E.164 sin +, por ejemplo, 8814155550123. Después, ve a Connectivity → Inbound Routes, abre la ruta de tu DID y establece como destino ese destino misceláneo. También puedes usarlo como destino de una condición horaria, una conmutación por error de grupo de llamada o una opción de IVR.

7

Corrige NAT y el audio

Ve a Settings → Asterisk SIP Settings → General SIP Settings. Establece External Address en la IP pública de la PBX e incluye tus subredes privadas en Local Networks. Abre en tu firewall los RTP Port Ranges que aparecen en esa página (UDP, 10000–20000 de forma predeterminada).

8

Pruébalo

Llama a tu DID desde otro teléfono y comprueba que responda tu recepcionista.

Asterisk sin FreePBX

En Asterisk sin FreePBX, la misma configuración en pjsip.conf tiene este aspecto. Sustituye SIP_SERVER por el host que muestra Reception.ai.

[transport-tcp]
type=transport
protocol=tcp
bind=0.0.0.0:5060
external_signaling_address=PBX_PUBLIC_IP
external_media_address=PBX_PUBLIC_IP
local_net=192.168.0.0/16
[reception]
type=aor
contact=sip:SIP_SERVER:5060;transport=tcp
[reception]
type=endpoint
transport=transport-tcp
aors=reception
context=from-reception
disallow=all
allow=ulaw,alaw

En el plan de marcación, envía la llamada con el número en formato E.164:

exten => YOUR_DID,1,Dial(PJSIP/+14155550123@reception)

Si estableciste credenciales de entrada en Reception.ai, añade una sección type=auth con ellas y haz referencia a ella mediante outbound_auth= en el endpoint.

Limitaciones

  • Transferencias. Tu recepcionista transfiere llamadas realizando una nueva llamada a la dirección SIP de salida. Dirígela a tu operador SIP mediante una cuenta de operador que acepte un nombre de usuario y una contraseña. El enrutamiento de transferencias de vuelta a la PBX no se trata aquí: Reception.ai llama desde un grupo cambiante de direcciones, por lo que la PBX no puede asociar esas llamadas a un troncal por IP.
  • Tu PBX gestiona cada llamada dos veces, una desde el operador y otra hacia Reception.ai, por lo que necesita un canal libre para cada tramo.

Solución de problemas

ProblemaQué comprobar
Las llamadas fallan antes de sonarComprueba que el troncal use el transporte TCP o TLS, no UDP, y que el puerto coincida con él.
Las llamadas se rechazanAñade la IP pública de la PBX a Inbound allowed addresses. Comprueba en la consola de Asterisk que el URI de solicitud del INVITE empieza por + y el código de país.
La recepcionista ve el número de la PBX como quien llamaEstablece CID Options en el troncal de Reception.ai en Allow Any CID.
Audio en un solo sentido o sin audioEstablece External Address y Local Networks, y abre el rango de puertos RTP en el firewall.
La recepcionista no respondeAsegúrate de que el número esté añadido en la tarjeta Phone de la recepcionista y coincida con el número que envía la PBX.