Saltar al contenido principal

Trunking SIP

Este documento cubre la configuración de pares SIP, el monitoreo de keepalive de OPTIONS, la negociación de códecs SDP, el manejo de re-INVITE en diálogo, temporizadores de sesión, retransmisión de DTMF y estados de llamada de trunk SIP en OmniMSC.

Para el enrutamiento relacionado con SIP, consulte Configuración de Enrutamiento. Para SIP con ISUP encapsulado, consulte Trunking SIP-I. Para la solución de problemas de trunk SIP, consulte Guía de Solución de Problemas. Para las secuencias de flujo de llamadas que muestran la señalización SIP en contexto, consulte Diagramas de Flujo de Llamadas. Para la negociación de códecs de puerta de enlace de medios, consulte Control de Medios. Para los parámetros de configuración del par SIP, consulte Referencia de Configuración.


Configuración del Par SIP

Cada par SIP representa un punto final remoto como una puerta de enlace VoIP, SBC, nodo IMS o proveedor de trunking SIP. Los pares se definen en el bloque de configuración :sip y se hacen referencia por nombre en la tabla de rutas.

ParámetroTipoPredeterminadoDescripción
namestring-- (requerido)Nombre lógico del par. Referenciado en las entradas de la tabla de rutas.
addressstring-- (requerido)Dirección IP o nombre de host del par.
portinteger5060Puerto SIP del par.
transportatom:udpProtocolo de transporte: :udp, :tcp o :tls.
codecslist(atom)[:pcmu, :pcma]Códecs de audio soportados para negociación SDP.
max_channelsinteger100Llamadas concurrentes máximas a este par.
options_intervalinteger o nilnilIntervalo en segundos para las sondas de keepalive SIP OPTIONS.

OmniMSC se identifica con el encabezado User-Agent OmniMSC/0.1 en todas las solicitudes y respuestas SIP salientes.


Keepalive de SIP OPTIONS

Cuando se configura options_interval para un par, el Administrador de Pares SIP envía solicitudes periódicas SIP OPTIONS para monitorear la salud del par. El estado del par determina si es elegible para el enrutamiento de llamadas.

Estados de Salud del Par

Cada par rastrea un estado de :up, :down o :unknown. Al iniciar, todos los pares comienzan en el estado :unknown.

EventoTransiciónEfecto
OPTIONS 200 OK recibidoCualquiera -> upPar elegible para enrutamiento
Tiempos de espera de OPTIONS consecutivosup/unknown -> downPar excluido del enrutamiento, alarma activada
OPTIONS 200 OK después de downdown -> upPar re-elegible, alarma despejada
max_channels alcanzadoup -> up (límite suave)Nuevas llamadas rechazadas para este par, llamadas existentes no afectadas

Para el monitoreo de pares SIP en el panel de control, consulte Guía del Panel de Control.


Flujo SIP de Llamada MO

Cuando OmniMSC enruta una llamada de origen móvil a un par SIP, se produce el siguiente intercambio de señalización SIP entre OmniMSC y el par remoto.

El INVITE lleva una oferta SDP con códecs basados en la configuración del par y las capacidades del BSC. El 200 OK contiene la respuesta SDP con el códec seleccionado y la dirección RTP remota. Después de ACK, la ruta de medios RTP se establece a través de la puerta de enlace de medios.


Un par SIP puede enviar un re-INVITE dentro de un diálogo establecido para varios propósitos: retener la llamada, cambiar el códec o refrescar la sesión. OmniMSC acepta cualquier re-INVITE en diálogo con un 200 OK utilizando el SDP de la sesión actual. Si el re-INVITE lleva un cuerpo SDP, el SDP remoto se actualiza a partir de él.

No hay ramificación por propósito: la retención, reanudación, cambio de códec y refresco de sesión se responden de la misma manera (200 OK con el SDP de la sesión actual). OmniMSC no envía 488 No Aceptable Aquí en respuesta a un re-INVITE y no renegocia el códec en un re-INVITE. El diálogo existente y la sesión de medios permanecen en su lugar.


Temporizador de Sesión (RFC 4028)

OmniMSC soporta temporizadores de sesión SIP según la RFC 4028 para detectar y limpiar sesiones SIP huérfanas. Los temporizadores de sesión aseguran que ambos puntos finales refresquen periódicamente la sesión, previniendo un estado de llamada obsoleto después de fallos de red.

ParámetroValorDescripción
Session-Expires1800s (predeterminado)Tiempo máximo entre refrescos de sesión
Min-SE90sValor mínimo aceptable de Session-Expires
RefresherUAC o UASDeterminado durante la negociación

Negociación del Temporizador de Sesión

OmniMSC incluye los encabezados Session-Expires y Min-SE en las solicitudes INVITE salientes. Cuando OmniMSC recibe un 422 Intervalo de Sesión Demasiado Pequeño en respuesta a un INVITE saliente, reconoce el 422, extrae el Min-SE del par y reintenta el INVITE con un Session-Expires actualizado que sea al menos el mínimo del par.

El refresco de sesión se realiza a través de re-INVITE. Si no llega un refresco antes de que expire la sesión, OmniMSC envía BYE para finalizar la llamada y libera todos los recursos asociados.


Retransmisión de DTMF

OmniMSC retransmite tonos DTMF utilizando mensajes SIP INFO según el tipo de contenido application/dtmf-relay. Este método se utiliza cuando el par no soporta la carga útil RTP de evento telefónico RFC 2833 o cuando se prefiere DTMF fuera de banda.

CampoDescripciónEjemplo
Content-TypeTipo MIME para retransmisión de DTMFapplication/dtmf-relay
SignalDígito DTMF (0-9, *, #, A-D)Signal=5
DurationDuración del tono en milisegundosDuration=160

Cuando se detectan eventos DTMF desde el lado de la radio (a través de la puerta de enlace de medios), OmniMSC genera un mensaje SIP INFO hacia el par SIP con la señal y duración correspondientes. En la dirección inversa, los eventos DTMF SIP INFO entrantes se reenvían a la puerta de enlace de medios para su reproducción hacia la estación móvil.


Negociación de Códecs SDP

OmniMSC genera ofertas SDP basadas en la intersección de la lista de códecs configurados del par y las capacidades de códec de voz reportadas por el BSC. Los códecs se ofrecen en orden de preferencia.

Códecs Soportados

CódecTipo de Carga RTPTasa de RelojParámetros fmtp
PCMU08000--
PCMA88000--
AMR (banda angosta)dinámico (96)8000octet-align=1
AMR-WB (banda ancha)dinámico (97)16000octet-align=1

La lista de códecs predeterminada es [:pcmu, :pcma] (carga útil PCMU 0 y carga útil PCMA 8). AMR se ofrece con octet-align=1 (RFC 4867) para interoperabilidad con redes de acceso 3GPP. La versión de voz de GSM de tasa completa se mapea a PCMA (carga útil 8) en el lado SIP. AMR y AMR-WB se ofrecen cuando el BSC indica soporte para estos códecs en la lista de versiones de voz durante la asignación.

Selección de Códec

La selección de códec sigue el modelo de Oferta/Respuesta SDP (RFC 3264):

  1. OmniMSC construye la oferta SDP a partir de la lista de códecs del par, filtrada por las capacidades de voz del BSC.
  2. El par remoto responde con una respuesta SDP que contiene uno o más códecs aceptados.
  3. OmniMSC selecciona el primer códec común del orden de la oferta original.
  4. Se instruye a la puerta de enlace de medios (a través de MDCX) con el códec seleccionado y los parámetros RTP.

Si no existe un códec común, OmniMSC responde o recibe 488 No Aceptable Aquí.


Estados de Llamada de Trunk SIP

Estados de Llamadas Salientes

Estados de Llamadas Entrantes


Referencias

ReferenciaTítuloRelevancia
RFC 3261SIP: Protocolo de Inicio de SesiónSeñalización SIP central
RFC 4028Temporizadores de Sesión en SIPSession-Expires, Min-SE, mecanismo de refresco
RFC 2833Carga Útil RTP para Dígitos DTMFTipo de carga útil RTP de evento telefónico
RFC 3264Modelo de Oferta/Respuesta con SDPNegociación de códecs SDP
RFC 4867Formato de Carga RTP para AMR y AMR-WBParámetro octet-align de AMR
RFC 3326Campo de Encabezado de RazónCódigo de causa en BYE/CANCEL