Troncal PJSIP en Asterisk: registra un número de ZuteSIP

Actualizado el 2026-09-30 · Por el equipo de ZuteSIP (ZuteSIP Inc.)

Respuesta breve: Para conectar Asterisk a ZuteSIP, añade cinco secciones de pjsip.conf para una troncal: un registration que apunte a sip.zutesipdialer.com, un auth con tu usuario y contraseña SIP, un aor, un endpoint limitado a ulaw y alaw, y un identify que reconozca nuestro servidor. Después enruta el DID en extensions.conf y marca hacia fuera a través del endpoint.

Esta es la versión para Asterisk puro, pensada para quien gestiona directamente los archivos de configuración. Sigue la estructura de troncal de los ejemplos oficiales de res_pjsip, con los valores de ZuteSIP ya puestos.

01

Qué necesitas

  • ✓ Un número de ZuteSIP y su usuario y contraseña SIP de la página del número en el panel.
  • ✓ Asterisk con res_pjsip cargado (cualquier versión con soporte actual).
  • ✓ Acceso por shell para editar /etc/asterisk/pjsip.conf y extensions.conf, y la CLI de Asterisk para hacer pruebas.
02

Valores de ZuteSIP usados en la configuración

AjusteValor
Servidor SIP / registrador / dominiosip.zutesipdialer.com
Transporte y puertoUDP o TCP 5060; TLS 5061
Usuario<SIP_USERNAME> (en la página del número en el panel)
Contraseña<SIP_PASSWORD> (en la misma página)
AutenticaciónDigest (usuario + contraseña), basada en registro
CódecsG.711 µ-law (PCMU) y G.711 A-law (PCMA)
DTMFRFC 2833 (eventos RTP) o SIP INFO
DID entrante<YOUR_NUMBER> en formato E.164
03

pjsip.conf: transporte y troncal

Pega esto en pjsip.conf y sustituye los marcadores. Omite el bloque de transporte si ya tienes un transporte UDP. Para TCP o TLS, crea el transporte correspondiente y usa el puerto 5061 con TLS.

Identify reconoce las llamadas por la dirección de origen de nuestro tráfico SIP; Asterisk resuelve el nombre de host al cargar la configuración.

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
; behind NAT also set:
; external_media_address=<PUBLIC_IP>
; external_signaling_address=<PUBLIC_IP>
; local_net=192.168.0.0/16

[zutesip]
type=registration
transport=transport-udp
outbound_auth=zutesip-auth
server_uri=sip:sip.zutesipdialer.com:5060
client_uri=sip:<SIP_USERNAME>@sip.zutesipdialer.com
contact_user=<YOUR_NUMBER>
retry_interval=60

[zutesip-auth]
type=auth
auth_type=userpass
username=<SIP_USERNAME>
password=<SIP_PASSWORD>

[zutesip]
type=aor
contact=sip:sip.zutesipdialer.com:5060
qualify_frequency=60

[zutesip]
type=endpoint
transport=transport-udp
context=from-zutesip
disallow=all
allow=ulaw,alaw
dtmf_mode=rfc4733
outbound_auth=zutesip-auth
aors=zutesip
from_user=<SIP_USERNAME>
from_domain=sip.zutesipdialer.com
callerid=<YOUR_NUMBER>
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes

[zutesip]
type=identify
endpoint=zutesip
match=sip.zutesipdialer.com
04

extensions.conf: plan de marcación de entrada y salida

Las llamadas entrantes llegan al contexto from-zutesip con tu número como extensión marcada. El patrón de salida envía por la troncal los números marcados con el signo más inicial.

En la línea de salida, ${EXTEN} es la variable de canal de Asterisk con el número marcado. Sustituye 1001 por tu propia extensión o grupo de llamada.

[from-zutesip]
; inbound: DID = your ZuteSIP number
exten => <YOUR_NUMBER>,1,NoOp(Inbound call on ZuteSIP DID)
 same => n,Dial(PJSIP/1001,30)
 same => n,Hangup()
; catch other DID formats (with or without +)
exten => _X.,1,Goto(from-zutesip,<YOUR_NUMBER>,1)

[from-internal]
; outbound: dial +<country code><number>
exten => _+X.,1,Set(CALLERID(num)=<YOUR_NUMBER>)
 same => n,Dial(PJSIP/${EXTEN}@zutesip,60)
 same => n,Hangup()
05

Paso a paso: cargar y probar

  1. 1Guarda ambos archivos y ejecuta pjsip reload y dialplan reload en la CLI de Asterisk (asterisk -rvvv).
  2. 2Ejecuta pjsip show registrations y confirma que zutesip está Registered.
  3. 3Ejecuta pjsip show endpoint zutesip para revisar los códecs, el contacto del aor y la coincidencia de identify.
  4. 4Llama a tu número de ZuteSIP desde otro teléfono y observa la CLI: la llamada debe entrar en from-zutesip y hacer sonar la extensión 1001.
  5. 5Marca un número internacional desde una extensión local en formato +país y confirma que la persona llamada ve tu número de ZuteSIP.
06

Identificador de llamada saliente

Configura el identificador de llamada con el número al que pertenece la cuenta SIP, ya sea con callerid en el endpoint o con CALLERID(num) en el plan de marcación, como se muestra. Mantenlo en coincidencia con las credenciales de la troncal. Las llamadas salientes consumen los 1.000 minutos al mes incluidos con el número.

07

Solución de problemas

  • ✓ Registro 401/403: el usuario o la contraseña no coinciden, o la sección auth no está enlazada mediante outbound_auth. Ejecuta pjsip set logger on y lee el intercambio REGISTER.
  • ✓ Llamadas entrantes rechazadas como anónimas o con «No matching endpoint found»: falta la sección identify o la dirección de origen no coincide. Comprueba que el nombre de host se resuelve en tu servidor y recarga.
  • ✓ Audio en un solo sentido: configura external_media_address, external_signaling_address y local_net en el transporte, mantén activados rtp_symmetric y force_rport, y abre en el firewall el rango de puertos de tu rtp.conf.
  • ✓ 488 Not Acceptable Here: desajuste de códecs. Mantén allow=ulaw,alaw.
  • ✓ No se detecta el DTMF: mantén dtmf_mode=rfc4733 (el método de eventos RTP definido en RFC 2833); usa info solo si el otro lado exige SIP INFO.
FAQ

Preguntas frecuentes

¿Necesito tanto la sección registration como la identify?
Sí. Registration le dice a ZuteSIP adónde enviar tus llamadas, e identify permite a Asterisk asociar esas llamadas entrantes al endpoint zutesip.
¿rfc4733 es lo mismo que el DTMF RFC 2833?
Sí. RFC 4733 actualizó RFC 2833 y describe el mismo método de eventos RTP, que es el que usa el ajuste rfc4733 de Asterisk.
¿Puedo usar chan_sip en lugar de PJSIP?
chan_sip se ha eliminado de las versiones actuales de Asterisk, así que PJSIP es la opción con soporte. Se aplican el mismo servidor, las mismas credenciales y los mismos códecs.
¿Puedo usar TLS con Asterisk?
Sí. Crea un transporte TLS, apunta el registration y el aor al puerto 5061 y haz referencia a ese transporte. No se ofrece cifrado de medios SRTP.
¿Cómo añado un segundo número de ZuteSIP?
Duplica las secciones registration, auth, aor, endpoint e identify con un nombre nuevo y las credenciales de ese número, y añade su DID al plan de marcación.
¿ZuteSIP me da una API para Asterisk?
No. No hay API para clientes ni webhooks; Asterisk se conecta por SIP estándar con las credenciales de cada número.
→
SRC
✓

Todo incluido en cada número

  • ✓ SMS entrantes ilimitados
  • ✓ Llamadas entrantes ilimitadas
  • ✓ 500 SMS salientes al mes
  • ✓ 1.000 minutos salientes al mes
  • ✓ Credenciales SIP para cualquier softphone o centralita
  • ✓ Desvío de llamadas a cualquier teléfono
  • ✓ Marcador web en tu panel
  • ✓ El número es tuyo mientras quieras
  • ✓ Garantía de reemplazo de 7 días: número nuevo gratis

Desde $1.80/mes · facturado anualmente ($21.60).

Garantía de reemplazo de 7 días

Si en los 7 días siguientes a la compra el número no te funciona, por ejemplo porque una app no lo acepta o los códigos no llegan, lo cambias gratis por uno nuevo del mismo país con un clic en el panel. Puedes hacerlo hasta 2 veces, lo hayas usado o no. Y si el número no se ha usado, también puedes pedir el reembolso completo.

Ver todos los números →

El registro y el pago están disponibles solo en inglés.