Sign inGet started

Configuración de cliente SIP

Cualquier cliente SIP que pueda realizar una llamada a través de un proxy puede usar un trunk Bird. Esto incluye PBXs, softphones de escritorio y herramientas de línea de comandos. Esta página relaciona los detalles de conexión del trunk con los campos habituales de un cliente y los ajustes de autenticación.

Qué necesita un cliente

Cuatro valores, todos de la página del trunk:
Campo del clienteQué introducir
Servidor SIP, dominio, host o proxyEl dominio SIP del trunk
Puerto y transporteUno de los puertos admitidos del trunk
Usuario de autenticación, auth user o loginbird
Contraseña o secretoEl secreto de una clave API permitida en el trunk
Un trunk que solo usa su lista de IPs permitidas necesita los dos primeros. Las credenciales son lo que añade la autenticación por clave API.
Los ejemplos usan YOUR_TRUNK_DOMAIN, YOUR_CALLER_ID y YOUR_API_KEY_SECRET. Copia el dominio completo de la página del trunk. Bird rechaza llamadas a otro dominio antes de que lleguen a tu registro de llamadas. Con la sesión iniciada en el Bird CLI, ejecuta bird voice tools test-call --dry-run para imprimir estos valores como una línea de cuenta de baresip.
Deja realm o authentication domain vacío para que el cliente use el realm del challenge de Bird. Si un cliente requiere un valor, usa el ID del espacio de trabajo sin su prefijo wsp_, seguido de .sip.bird.com. El realm del espacio de trabajo difiere del dominio SIP del trunk.

Realiza llamadas sin registrarte

Bird autentica cada INVITE contra la lista de IPs permitidas del trunk o mediante un challenge de contraseña. Los clientes no se registran en el trunk.
Comprueba el registro antes de realizar una llamada:
  • En un PBX, configura Bird como trunk y deja el registro desactivado. En Asterisk esto significa no tener sección type=registration; en FreeSWITCH significa register=false en el gateway; FreePBX y 3CX tienen un modo de registro que debes poner en none.
  • En un softphone, desactiva el registro en los ajustes avanzados de la cuenta si ofrece esa opción. Donde no la ofrezca, el intento fallido de registro es cosmético y las llamadas funcionan igualmente, porque actuamos sobre el INVITE en lugar de sobre el registro.

Dos identidades, dos campos

Tu cliente debe enviar dos identidades distintas:
  • El caller ID va en el header From y tiene que ser un número que hayas verificado, en formato E.164: un + inicial seguido del código de país y el número nacional. En la mayoría de clientes es el campo de usuario o caller ID de la cuenta.
  • El nombre de usuario digest es siempre bird. En la mayoría de clientes es el campo de usuario de autenticación o login.
Marca también en E.164, ya que es con lo que Bird enruta y tarifica.

Softphones

Un softphone es la forma más rápida de comprobar que un trunk nuevo funciona antes de dirigirle tráfico de producción.

baresip

Añade una línea a ~/.baresip/accounts, con tu caller ID como usuario de la cuenta y bird como usuario de autenticación:
Ejemplo de código
<sip:YOUR_CALLER_ID@YOUR_TRUNK_DOMAIN>;auth_user=bird;auth_pass=YOUR_API_KEY_SECRET;regint=0;outbound="sip:YOUR_TRUNK_DOMAIN;transport=udp"
regint=0 es lo que impide que baresip se registre. Inícialo y marca con /dial +31612345678.

Zoiper

Añade una cuenta SIP manualmente. Pon Domain con el dominio SIP del trunk, Username con tu caller ID verificado y Password con el secreto de la clave API. En los ajustes avanzados, pon Auth username a bird, desactiva el registro al inicio y elige el transporte.

Linphone

Añade una cuenta con bird como usuario de autenticación de la identidad SIP y tu caller ID como nombre de usuario; después desactiva el registro en la cuenta. En linphonerc la misma cuenta es una sección [proxy_N] con reg_sendregister=0.

MicroSIP

En Account: SIP server es el dominio SIP del trunk, Username tu caller ID verificado, Login bird, Password el secreto de la clave API. Deja Domain igual que el servidor SIP.

PBXs

Asterisk

En pjsip.conf, un endpoint con autenticación saliente y sin sección de registro:
Ejemplo de código
[bird-auth]
type=auth
auth_type=userpass
username=bird
password=YOUR_API_KEY_SECRET

[bird-aor]
type=aor
contact=sip:YOUR_TRUNK_DOMAIN:5060

[bird]
type=endpoint
context=from-internal
outbound_auth=bird-auth
aors=bird-aor
from_user=YOUR_CALLER_ID
from_domain=YOUR_TRUNK_DOMAIN
from_user es el caller ID que Bird comprueba, así que tiene que ser un número verificado. Marca con Dial(PJSIP/+31612345678@bird).

FreePBX

En Connectivity > Trunks, añade un trunk SIP (chan_pjsip). En sus pjsip Settings, pon Username a bird, Secret al secreto de la clave API, SIP Server al dominio SIP del trunk, Authentication a outbound y Registration a none. Pon el caller ID saliente del trunk a un número verificado.

FreeSWITCH

Un gateway en conf/sip_profiles/external/bird.xml:
Ejemplo de código
<include>
  <gateway name="bird">
    <param name="proxy" value="YOUR_TRUNK_DOMAIN"/>
    <param name="register" value="false"/>
    <param name="username" value="bird"/>
    <param name="password" value="YOUR_API_KEY_SECRET"/>
    <param name="from-domain" value="YOUR_TRUNK_DOMAIN"/>
    <param name="caller-id-in-from" value="true"/>
  </gateway>
</include>
Con caller-id-in-from activado, el caller ID del tramo pasa a ser el número From, así que ponlo a un número verificado cuando origines la llamada.

3CX

Añade un trunk SIP genérico y desactiva el registro. Pon su host al dominio SIP del trunk, su authentication ID a bird y su contraseña al secreto de la clave API. Pon el caller ID saliente a un número verificado.

Siguientes pasos

PáginaQué cubre
Solución de problemas de vozDiagnosticar una llamada que no se completa, a partir de su síntoma
Trunks SIPLos detalles de conexión, las listas de IPs permitidas y la oferta Digest
Realizar llamadasQué espera Bird en el INVITE y cómo se tarifica una llamada
Caller IDsRegistrar un número y demostrar que es tuyo con una llamada de verificación
Registro de llamadasConfirmar que una llamada salió y cuánto costó

Recursos relacionados

Continúa con la documentación, guías y ejemplos sobre este tema. Los recursos están en inglés.

Obtener un resumen de implementación