voz sobre ip (voip) - labredes.unlu.edu.ar dual-rate speech coder for multimedia communications ......
TRANSCRIPT
Fernando [email protected]
Voz sobre IP(VoIP)
- 2016 -
Laboratorio de REDESRecuperación de Informacióny Estudios de la Web
Administración y Gestión de RedesLic. en Sistemas de Información
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:
● Protocolos de Señalización:
– SIP (IETF)– H323 (ITU-T)– SCCP (Cisco)– AIX (Digium) ...
● Protocolos 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 audioCODECS 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
Tiempo de transcodificación en Servidor Asterisk
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
● Protocolos de señalización:
● H.225 (Call setup)● H.245 (Capabilities negotiation)
● Protocolos de trasmisión de medios:
● RTP/RTCP
Session InitiationProtocol
Session Initiation Protocol (SIP)RFC 3261
● Componentes:
● User Agent (Terminal)● Registrar Server● Proxy Server● Redirect Server
● Protocolos de señalización:
● SIP (Call setup)● SDP (Capabilities negotiation)
● Protocolos de trasmisión de medios:
● RTP/RTCP
Session InitiationProtocol
Session Initiation Protocol (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 InitiationProtocol
Protocolo SIPEstructura 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 InitiationProtocol
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 InitiationProtocol
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 InitiationProtocol
Estructura de Mensajes:
● Header Fields:
● header = "header-name" HCOLON header-value *(COMMA header-value)
● field-name: field-value
● Ej.: Route: <sip:[email protected]>,<sip:[email protected]>
● field-name: field-value *(;parameter-name=parameter-value)● Ej.: Contact: <sip:[email protected]>;expires=3600
Session InitiationProtocol
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 InitiationProtocol
Request Message
● Headers mínimos:● To
● To: Carol <sip:[email protected]>● From
● From: "Bob" <sips:[email protected]> ;tag=a48s● Cseq
● CSeq: 4711 INVITE● Call-Id
● CallID: f81d4fae7dec11d0a765[email protected]● Max-Forwards
● MaxForwards: 70● Via
● Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds● Contact (Invite request)
● <sip:[email protected]>
Session DescriptionProtocol
Session Description Protocol - 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 DescriptionProtocol
Session Description Protocol - 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 DescriptionProtocol
Session Description Protocol - 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 DescriptionProtocol
Session Description Protocol - 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 DescriptionProtocol
Session Description Protocol - 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)
Session DescriptionProtocol
Session Description Protocol - SDP(RFC 4566)
Ejemplo:
v=0o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5s=SDP Seminari=A Seminar on the session description protocolu=http://www.example.com/seminars/[email protected] (Jane Doe)c=IN IP4 224.2.17.12/127t=2873397496 2873404696a=recvonlym=audio 49170 RTP/AVP 0m=video 51372 RTP/AVP 99a=rtpmap:99 h2631998/90000
Real TimeProtocol
Real Time Protocol – (RTP)RTP Control Protocol (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 TimeProtocol
Real Time Protocol (RTP) - RTP Control Protocol (RTCP)RFC 3550
● Provee:
● Identificación de tipo de carga
● Numeración de secuencia
● Marcas de tiempo
● Monitoreo de entrega
● Usualmente sobre UDP:
IPHeader
UDPHeader
Datos (audio, video..)RTPHeader
Real TimeProtocol
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ónP=PaddingX=ExtensiónCC=Cantidad de CSCRM=MarkerPT=Payload Type (profiles definidos en RFC 3551)
Real TimeProtocol
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 TimeProtocol
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