Administración y Gestión de Redes Lic. en Sistemas de Información Laboratorio de REDES Recuperación de Información y Estudios de la Web Voz sobre IP (VoIP) Fernando Lorge florge@unlu.edu.ar - 2015 -
Voz sobre IP Comunicaciones Telefónicas: En telefonía tradicional: Señalamiento: SS7 (signaling system 7). (ITU-T) POTS Tip&Ring, FXO, FXS, PBX, Líneas, Troncales, Central Office. Señalamiento en banda DTMF
Voz sobre IP Comunicaciones Telefónicas: Transmisión: PCM (Pulse Code Modulation) ITU-T G.711 Canal de transmisión tradicional: Por qué 64kbps? (Nyquist): 8 x bits/sample x 8000 samples/sec
Voz sobre IP Comunicaciones Telefónicas sobre IP: Arquitectura: Señalización (Signaling o call management) Transmisión de datos. Soporte
Voz sobre IP Comunicaciones Telefónicas sobre IP: Señalización: Localización Establecimiento de llamadas (call setup) Características de la sesión Terminación de llamadas Transmisión: Encapsulamiento de datos de audio (y vídeo) Secuenciamiento, Marcas de tiempo, Identificación Soporte Autoconfiguración, Calidad de Servicio Autenticación, Autorización, Contabilidad entre dominios
Voz sobre IP Comunicaciones Telefónicas sobre IP: os de Señalización: SIP (IETF) H323 (ITU-T) SCCP (Cisco) AIX (Digium)... os de Transmisión: RTP (IETF) mayormente. (junto con RTCP)
Voz sobre IP Transmisión de audio DAC (Digital Audio Convertion) CODEC (Codificador Decodificador): Convertir señal analógica en una serie de muestras discretas. Frecuencia de muestreo Resolución Packet Rate
Voz sobre IP Transmisión de audio
Voz sobre IP Transmisión de audio CODECS mas utilizados G.711 (PCM): A-law o μ-low. G.722 (SB-ADPCM) Subband Adaptive Differential PCM. G.723.1 Dual-Rate Speech Coder for Multimedia Communications 5.3Kbps Algebraic Code Excited Linear Prediction (ACELP) 6.3 Kbps Multipulse Maximum Likelihood Quantization (ML-MLQ) G.726 - Adaptive Differential PCM encoding. (ADPCM) G.729 - Conjugate Structure ACELP(Algebraic code-excited linear prediction) ILBC Internet Low bitratw Codec (block-independent linear predictive coding) Speex Code-Excited linear prediction (CELP) GSM - Linear predictive coding (LPC)
Voz sobre IP Comparación de CODECS http://www.speex.org/comparison/
Voz sobre IP Tiempo de transcodificación en Servidor Asterisk UNLu g723 gsm ulaw alaw g726 adpcm slin lpc10 g729 speex speex16 ilbc g726aal2 g722 g723 15 15 15 15 15 9 15 15 15 23 15 15 17,25 gsm 15 15 15 15 15 9 15 15 15 23 15 15 17,25 ulaw 15 15 9,15 15 15 9 15 15 15 23 15 15 17,25 alaw 15 15 9,15 15 15 9 15 15 15 23 15 15 17,25 g726 15 15 15 15 15 9 15 15 15 23 15 15 17,25 adpcm 15 15 15 15 15 9 15 15 15 23 15 15 17,25 slin 6 6 6 6 6 6 6 6 6 14 6 6 8,25 lpc10 15 15 15 15 15 15 9 15 15 23 15 15 17,25 g729 15 15 15 15 15 15 9 15 15 23 15 15 17,25 speex 15 15 15 15 15 15 9 15 15 23 15 15 17,25 speex16 23,5 23,5 23,5 23,5 23,5 23,5 17,5 23,5 23,5 23,5 23,5 23,5 15 ilbc 15 15 15 15 15 15 9 15 15 15 23 15 17,25 g726aal2 15 15 15 15 15 15 9 15 15 15 23 15 17,25 g722 15,6 15,6 15,6 15,6 15,6 15,6 9,6 15,6 15,6 15,6 15 15,6 15,6
H.323 ITU-T Recommendation H.323 Componentes: Terminal Gatekeeper Gateway Multipoint Control Unit os de señalización: H.225 (Call setup) H.245 (Capabilities negotiation) os de trasmisión de medios: RTP/RTCP
H.323 Modo de operación H.245 puede ser incluido en los mensajes H.225
H.323 Modo de operación Señalización a través de gatekeeper
H.323 Modo de operación Interacción con PSTN
Session Initiation Session Initiation (SIP) RFC 3261 Componentes: User Agent (Terminal) Registrar Server Proxy Server Redirect Server os de señalización: SIP (Call setup) SDP (Capabilities negotiation) os de trasmisión de medios: RTP/RTCP
Session Initiation Session Initiation (SIP) RFC 3261 SIP es un protocolo basado en texto que utiliza el juego de caracteres UTF-8. Un mensaje SIP es un requerimiento de un cliente a un servidor o una respuesta de un servidor a un cliente. User Agent Client (UAC) User Agent Server (UAS) Los mensajes de peticiones y respuestas (Request and Response messages) utilizan el formato básico definido en RFC 2822.
Session Initiation o SIP Estructura de Mensajes: start-line, one or more header fields, an empty line indicating the end of the header fields, and an optional message-body generic-message = start-line *message-header CRLF [ message-body ] start-line = Request-Line / Status-Line
Session Initiation Estructura de Mensajes (Request) Request-Line = Method SP Request-URI SP SIP-Version CRLF Métodos: REGISTER for registering contact information INVITE, ACK, and CANCEL for setting up sessions BYE for terminating sessions OPTIONS for querying servers about their capabilities Request-URI: The Request-URI is a SIP or SIPS URI. It indicates the user or service to which this request is being addressed SIP-Version: "SIP/2.0"
Session Initiation Estructura de Mensajes (Response) Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF Status code: 1xx: Provisional -- request received, continuing to process the request; 2xx: Success -- the action was successfully received, understood,and accepted; 3xx: Redirection -- further action needs to be taken in order to complete the request; 4xx: Client Error -- the request contains bad syntax or cannot be fulfilled at this server; 5xx: Server Error -- the server failed to fulfill an apparently valid request; 6xx: Global Failure -- the request cannot be fulfilled at any server.
Session Initiation Estructura de Mensajes: Header Fields: header = "header-name" HCOLON header-value *(COMMA headervalue) field-name: field-value Ej.: Route: <sip:alice@atlanta.com>,<sip:carol@chicago.com> field-name: field-value *(;parameter-name=parameter-value) Ej.: Contact: <sip:alice@atlanta.com>;expires=3600
Session Initiation Estructura de Mensajes: Bodies (opcional): Media type of the message body MUST be given by the Content-Type header field Content-Encoding (si se utiliza compresión) Content-Length
Session Initiation Request Message Headers mínimos: To To: Carol <sip:carol@chicago.com> From From: "Bob" <sips:bob@biloxi.com> ;tag=a48s Cseq CSeq: 4711 INVITE Call-Id Call ID: f81d4fae 7dec 11d0 a765 00a0c91e6bf6@foo.bar.com Max-Forwards Max Forwards: 70 Via Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hg4bk776asdhds Contact (Invite request) <sip:bob@192.0.2.4>
Session Description Session Description - SDP (RFC 4566) El objetivo de SDP es transmitir información acerca de los flujos en sesiones multimedia para permitir a los destinatarios participar en la sesión Una descripción de sesión SDP incluye: Nombre de Sesión y propósito Tiempo(s) en que la sesión es activa Los medios que componen la sesión Información para recibir esos medios (direcciones, puertos, formatos, etc.) Adicionalmente: Información acerca del bandwidth a utilizar por la sesión Información de contacto de la persona responsable de la sesión
Session Description Session Description - SDP (RFC 4566) Media Information: El tipo de contenido (video, audio, etc.) El protocolo de transporte (RTP/UDP/IP, H.320, etc.) El formato del contenido (H.261 video, MPEG video, etc.) Direcciones y puertos: Unicast: La dirección remota El número de puerto Multicast: La dirección del grupo multicast El número de puerto
Session Description Session Description - SDP (RFC 4566) An SDP session description consists of a number of lines of text of the form: <type>=<value> <type>: Un carácter <value>: Texto estructurado cuyo formato depende de <type> SDP field names and attribute names use only the US-ASCII subset of UTF-8 Textual fields and attribute values MAY use the full ISO 10646 character set
Session Description Session Description - SDP (RFC 4566) Session description: v= (protocol version) o= (originator and session identifier) s= (session name) i=* (session information) u=* (URI of description) e=* (email address) p=* (phone number) c=* (connection information -- not required if included in all media) b=* (zero or more bandwidth information lines) One or more time descriptions z=* (time zone adjustments) k=* (encryption key) a=* (zero or more session attribute lines) Zero or more media descriptions
Session Description Session Description - SDP (RFC 4566) Time description: t= (time the session is active) r=* (zero or more repeat times) Media description: (si existe) m= (media name and transport address) i=* (media title) c=* (connection information -- optional if included at session level) b=* (zero or more bandwidth information lines) k=* (encryption key) a=* (zero or more media attribute lines)
Ejemplo: Session Description Session Description - SDP (RFC 4566) v=0 o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5 s=sdp Seminar i=a Seminar on the session description protocol u=http://www.example.com/seminars/sdp.pdf e=j.doe@example.com (Jane Doe) c=in IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 49170 RTP/AVP 0 m=video 51372 RTP/AVP 99 a=rtpmap:99 h263 1998/90000
Real Time Real Time (RTP) RTP Control (RTCP) RFC 3550 Proporciona servicio de entrega extremo-a-extremo para datos con características de tiempo real, como audio y video interactivo Real-time transport protocol (RTP), para transportar datos con propiedades de tiempo real. RTP control protocol (RTCP), para monitorear la calidad del servicio.
Real Time Real Time (RTP) - RTP Control (RTCP) RFC 3550 Provee: Identificación de tipo de carga Numeración de secuencia Marcas de tiempo Monitoreo de entrega Usualmente sobre UDP: IP Header UDP Header RTP Header Datos (audio, video..)
Real Time Encabezado RTP 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + V=2 P X CC M PT sequence number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + timestamp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + synchronization source (SSRC) identifier +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ contributing source (CSRC) identifiers... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + V=Versión P=Padding X=Extensión CC=Cantidad de CSCR M=Marker PT=Payload Type (profiles definidos en RFC 3551)
Real Time RTCP RTCP intercambia información de control de manera periódica entre los participantes de una sesión: Provee feedback sobre la calidad de la distribución de datos. Permite controlar codificaciones adaptables. Provee nombres canónicos para las fuentes. Todos los participantes envían paquetes RTCP. La tasa a la que se envían es calculada acorde a la cantidad de participantes. Opcionalmente conducir información mínima de control de sesión.
Real Time RTCP Tipos de paquetes: SR, Sender Report: estadísticas de transmisión y recepción de los participantes que son emisores activos. RR, Receiver Report: estadísticas de recepción de los participantes que no son emisores activos. SDES, Source Description: descripción de emisores, incluyendo CNAME BYE: Indica el final de la participación APP: Funciones específicas de aplicación
Bibliografía Bibliografía: Packet Guide to Voice over IP: A system administrator's guide to VoIP technologies. Bruce Hartpence. O'Reilly Media. 2013 Switching to VoIP. Ted Wallingford. O'Reilly Media. 2005 Próxima: Práctica VoIP