Asterisk con PJSIP (archivos de configuración)
Configurar SIP Trunk en Asterisk
Configuración manual del troncal PortalPBX en Asterisk 16+ con chan_pjsip: registro, autenticación, endpoint y dialplan.

Antes de empezar
- Asterisk 16 o superior con chan_pjsip y acceso root por SSH.
- Datos del troncal entregados por PortalPBX.
- Respaldo de /etc/asterisk antes de editar.
Datos de tu troncal
PortalPBX los entrega al activar el troncal. Reemplaza cada marcador por tu valor real.
- Servidor SIP (host o dominio)
- <servidor-sip>
- Puerto y transporte
- <puerto> · UDP / TCP / TLS
- Usuario SIP
- <usuario>
- Contraseña SIP
- <contraseña>
- Número(s) DID asignados
- <DID>
- Modo de autenticación
- Registro / IP
- Códecs habilitados
- G.711 (alaw/ulaw) · G.729*
* G.729 solo si está habilitado en tu troncal.
Paso a paso
- 1
Transporte
En pjsip.conf define el transporte; si hay NAT agrega la IP pública y la red local:
[transport-udp] type=transport protocol=udp bind=0.0.0.0 ;external_media_address=<ip-publica> ;external_signaling_address=<ip-publica> ;local_net=192.168.0.0/16 - 2
Registro y autenticación
Agrega el registro (si tu troncal usa registro) y las credenciales:
[portalpbx-reg] type=registration outbound_auth=portalpbx-auth server_uri=sip:<servidor-sip> client_uri=sip:<usuario>@<servidor-sip> retry_interval=60 [portalpbx-auth] type=auth auth_type=userpass username=<usuario> password=<contraseña> - 3
AOR, endpoint e identify
Define el destino y el endpoint del troncal:
[portalpbx] type=aor contact=sip:<servidor-sip> qualify_frequency=60 [portalpbx] type=endpoint transport=transport-udp context=from-portalpbx disallow=all allow=alaw,ulaw outbound_auth=portalpbx-auth aors=portalpbx from_user=<usuario> from_domain=<servidor-sip> rtp_symmetric=yes force_rport=yes rewrite_contact=yes [portalpbx] type=identify endpoint=portalpbx match=<servidor-sip> - 4
Dialplan
En extensions.conf: entrada por DID y salida por el troncal:
[from-portalpbx] exten => <DID>,1,Dial(PJSIP/100,30) same => n,Hangup() [salida] exten => _X.,1,Set(CALLERID(num)=<DID>) same => n,Dial(PJSIP/${EXTEN}@portalpbx,60) same => n,Hangup() - 5
Recargar y verificar
Recarga y comprueba registro y alcance:
asterisk -rx "pjsip reload" asterisk -rx "pjsip show registrations" asterisk -rx "pjsip show endpoint portalpbx"
Recomendaciones
- Para depurar, activa temporalmente el log SIP: pjsip set logger on.
- Prioriza G.711 alaw/ulaw; usa G.729 solo si está habilitado en tu troncal y tu equipo lo soporta.
- Desactiva SIP ALG en el router o firewall: es la causa más común de audio en una sola vía y registros que caen.
- Si tu central está detrás de NAT, declara la IP pública y la red local, y abre el rango RTP que use tu equipo.
- Restringe el acceso SIP por firewall y usa contraseñas largas en anexos: evita fraude telefónico.
- Envía el número en el formato indicado en tu ficha de alta (nacional o internacional) y verifica el caller ID.
Errores comunes
Rejected / 401
Credenciales o client_uri incorrectos.
No matching endpoint
La sección identify no coincide con el origen de la llamada entrante.
488 Not Acceptable
Códecs sin coincidencia: revisa allow=.
Audio en una vía
Revisa external_media_address, local_net y rtp_symmetric.
¿Necesitas ayuda?
Lo configuramos contigo, en remoto
Si la configuración manual no funciona, contacta a soporte o abre un ticket. Revisamos contigo registro, rutas, códecs y NAT por sesión remota segura.