lavariega.com

Mi espacio de notas, hablo de Tecnología.
Sip and RTP VOIP

SIP y RTP: Cómo se Establece una Llamada VoIP Paso a Paso


En las comunicaciones modernas, VoIP (Voice over IP) es la tecnología clave para empresas que buscan ahorrar costos y tener mayor flexibilidad. Detrás de cada llamada existen protocolos que trabajan en conjunto para que la voz viaje de un teléfono a otro con calidad y baja latencia. Los más importantes son SIP (Session Initiation Protocol) y RTP (Real-Time Protocol).


En este artículo aprenderás cómo SIP y RTP trabajan juntos, qué información intercambian y veremos un ejemplo de traza SIP para entender la negociación de codecs y puertos.

¿Qué es SIP?

SIP (Session Initiation Protocol) es un protocolo de señalización que opera en la Capa de Aplicación. Su función principal es establecer, modificar y terminar sesiones (como llamadas de voz o video).

  • Usa el puerto UDP/TCP 5060 por defecto.
  • Se apoya en SDP (Session Description Protocol) para describir las características de la sesión (codecs, puertos, tipos de medios).

¿Qué es RTP?

Una vez que SIP establece la sesión, el tráfico real de voz viaja en RTP (Real-Time Protocol).

  • RTP transporta los paquetes de audio (o video).
  • Generalmente usa puertos dinámicos en UDP.
  • Se acompaña de RTCP (RTP Control Protocol) para métricas de calidad, como jitter, delay y pérdida de paquetes.


Ejemplo de Traza SIP

1. SIP INVITE (Teléfono A → Teléfono B)

👉 Aquí el teléfono A ofrece varios codecs (G.711 μ-law, G.711 A-law, G.729) y el puerto UDP 4000 para recibir RTP.

INVITE sip:1002@empresa.com SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060
From: "1001" <sip:1001@empresa.com>
To: <sip:1002@empresa.com>
Call-ID: 12345@192.168.1.10
CSeq: 1 INVITE
Content-Type: application/sdp
Content-Length: 200

v=0
o=- 1234 5678 IN IP4 192.168.1.10
s=VoIP Call
c=IN IP4 192.168.1.10
t=0 0
m=audio 4000 RTP/AVP 0 8 18 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000




2. SIP 200 OK (Teléfono B → Teléfono A)

👉 El teléfono B acepta la llamada y responde que usará el codec G.711 A-law (8) en el puerto UDP 5000.

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.10:5060
From: "1001" <sip:1001@empresa.com>
To: <sip:1002@empresa.com>;tag=54321
Call-ID: 12345@192.168.1.10
CSeq: 1 INVITE
Content-Type: application/sdp
Content-Length: 150

v=0
o=- 4321 8765 IN IP4 192.168.1.20
s=VoIP Call
c=IN IP4 192.168.1.20
t=0 0
m=audio 5000 RTP/AVP 8
a=rtpmap:8 PCMA/8000



3. Confirmación ACK (Teléfono A → Teléfono B)

👉 Con el ACK, ambos dispositivos están listos y comienza el envío de RTP con el codec acordado.

ACK sip:1002@empresa.com SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060
From: "1001" <sip:1001@empresa.com>
To: <sip:1002@empresa.com>;tag=54321
Call-ID: 12345@192.168.1.10
CSeq: 1 ACK


Parámetros avanzados en SIP/SDP

Cuando revisamos una traza SIP, además de la negociación de codecs y puertos, aparecen atributos que definen cómo se comportará la sesión de voz. Estos parámetros son fundamentales para garantizar compatibilidad entre dispositivos y calidad en la llamada.

Por ejemplo:

  • Codec Selection: en la oferta (INVITE) y respuesta (200 OK), los dispositivos deciden qué codec usar. El primero de la lista suele ser el que prevalece (ej. G.711 A-law = 8).
  • a=sendrecv: indica que el dispositivo enviará y recibirá audio (modo bidireccional). También existen sendonly o recvonly en escenarios específicos.
  • RTP/AVP fmtp:10: los atributos fmtp se usan para parámetros especiales de codecs. El payload type 10 corresponde a G.729, y en este caso fmtp:10 puede definir si soporta variantes como Annex B (supresión de silencio).
  • fmtp:96: los payload dinámicos (96 en adelante) se usan para funciones adicionales, como DTMF (Dual Tone Multi-Frequency). Este permite transmitir tonos de teclado durante la llamada.
  • Silence Suppression (silenceSupp): permite ahorrar ancho de banda evitando enviar RTP cuando no hay voz. Puede ser útil, pero en fax sobre IP o grabaciones es mejor desactivarlo.
  • No RTP Proxy (noRTPproxy): indica si los RTP van directo entre los dos endpoints o si pasan por un servidor intermedio (proxy). Si está en “no”, el audio fluye directo, reduciendo latencia.
SIP parametros
SIP parametros



Tabla de atributos SIP/SDP comunes

ParámetroDescripciónEjemplo en SDPUso típico
Codec SelectionIndica qué codec se usará (el primero listado es el preferido).m=audio 5000 RTP/AVP 8 18 101Definir G.711, G.729, Opus, etc.
a=sendrecvDefine si el dispositivo envía/recibe audio.a=sendrecvLlamadas normales bidireccionales.
RTP/AVP fmtp:10Parámetros específicos del codec G.729.a=fmtp:10 annexb=noActivar/desactivar supresión de silencio en G.729.
fmtp:96Payload dinámico, usado para eventos DTMF.a=rtpmap:96 telephone-event/8000Enviar dígitos del teclado durante la llamada.
silenceSuppControla si se envían RTP en momentos de silencio.a=silenceSupp:offMejor desactivado para fax o grabaciones.
noRTPproxyIndica si el RTP pasa directo o vía un proxy intermedio.a=noRTPproxyMejor directo, reduce latencia.

Deja un comentario

No se publicará tu dirección de correo electrónico. Los campos obligatorios están marcados con *.

*
*

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Contáctame

¡Conversemos en WhatsApp para apoyarte en tu proyecto de telefonía o call center!


Categorías

actualizar aprendizaje asterisk audio brew call center Centos cli codecs comandos contraseñas desarrollo de software enfermedad Firewall free GNU google grandstream gratis Issabel ivr lavariega libros linux mac manuales Maquina Virtual marcacion mexico OpenSource raspberry rtp SIP sofphone sox ssh sysadmin telefonia tips ubuntu vim VirtualBox virtualizacion virus voip


Apasionado de las tecnologías VoIP