SIP: mensajería

Los mensajes SIP son de dos tipos: requests y responses.

  • La línea de apertura de una solicitud contiene un método que define la solicitud y un Request-URI que define dónde se enviará la solicitud.

  • De manera similar, la línea de apertura de una respuesta contiene un código de respuesta.

Métodos de solicitud

SIP requestsson los códigos que se utilizan para establecer una comunicación. Para complementarlos, haySIP responses que generalmente indican si una solicitud tuvo éxito o no.

Estas solicitudes SIP que se conocen como MÉTODOS hacen que el mensaje SIP sea viable.

  • Los MÉTODOS pueden considerarse solicitudes SIP, ya que solicitan que otro agente usuario o servidor realice una acción específica.

  • Los MÉTODOS se distinguen en dos tipos:

    • Métodos básicos

    • Métodos de extensión

Métodos básicos

Hay seis métodos básicos que se describen a continuación.

INVITACIÓN

INVITE se utiliza para iniciar una sesión con un agente de usuario. En otras palabras, se utiliza un método INVITE para establecer una sesión de medios entre los agentes de usuario.

  • INVITE puede contener la información multimedia de la persona que llama en el cuerpo del mensaje.

  • Una sesión se considera establecida si un INVITADO ha recibido una respuesta exitosa (2xx) o se ha enviado un ACK.

  • Una solicitud INVITE exitosa establece un dialog entre los dos agentes de usuario que continúa hasta que se envía un BYE para terminar la sesión.

  • Una INVITACIÓN enviada dentro de un diálogo establecido se conoce como re-INVITE.

  • Re-INVITE se utiliza para cambiar las características de la sesión o actualizar el estado de un diálogo.

INVITAR Ejemplo

El siguiente código muestra cómo se usa INVITE.

INVITE sips:[email protected] SIP/2.0 
   Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9 
   Max-Forwards: 70 
   From: Alice<sips:[email protected]>;tag = 1234567 
   To: Bob<sips:[email protected]>
   Call-ID: [email protected]  
   CSeq: 1 INVITE 
   Contact: <sips:[email protected]> 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY 
   Supported: replaces 
   Content-Type: application/sdp 
   Content-Length: ...  
   
   v = 0 
   o = Alice 2890844526 2890844526 IN IP4 client.ANC.com 
   s = Session SDP 
   c = IN IP4 client.ANC.com 
   t = 3034423619 0 
   m = audio 49170 RTP/AVP 0 
   a = rtpmap:0 PCMU/8000

ADIÓS

BYE es el método utilizado para terminar una sesión establecida. Esta es una solicitud SIP que puede enviar la persona que llama o el destinatario de la llamada para finalizar una sesión.

  • No puede ser enviado por un servidor proxy.

  • La solicitud BYE normalmente se enruta de un extremo a otro, sin pasar por el servidor proxy.

  • No se puede enviar BYE a un INVITE pendiente o una sesión no establecida.

REGISTRARSE

La solicitud de REGISTRO realiza el registro de un agente de usuario. Esta solicitud la envía un agente de usuario a un servidor de registro.

  • La solicitud de REGISTRO se puede reenviar o transferir hasta que llegue a un registrador autorizado del dominio especificado.

  • Lleva el AOR (Dirección de registro) en el To encabezado del usuario que se está registrando.

  • La solicitud de REGISTRO contiene el período de tiempo (3600 segundos).

  • Un agente de usuario puede enviar una solicitud de REGISTRO en nombre de otro agente de usuario. Esto se conoce comothird-party registration. Aquí elFrom La etiqueta contiene el URI de la parte que envía el registro en nombre de la parte identificada en el To encabezamiento.

CANCELAR

CANCELAR se utiliza para terminar una sesión que no está establecida. Los agentes de usuario utilizan esta solicitud para cancelar un intento de llamada pendiente iniciado anteriormente.

  • Puede ser enviado por un agente de usuario o un servidor proxy.

  • CANCELAR es un hop by hop solicitud, es decir, atraviesa los elementos entre el agente de usuario y recibe la respuesta generada por el siguiente elemento con estado.

ACK

ACK se utiliza para reconocer las respuestas finales a un método INVITE. Un ACK siempre va en la dirección de INVITE.ACK puede contener SDP body (características de los medios), si no está disponible en INVITE.

  • ACK no se puede utilizar para modificar la descripción de medios que ya se envió en el INVITE inicial.

  • Un proxy con estado que recibe un ACK debe determinar si el ACK debe reenviarse en sentido descendente a otro proxy o agente de usuario.

  • Para las respuestas 2xx, ACK es de extremo a extremo, pero para todas las demás respuestas finales, funciona salto a salto cuando se trata de proxies con estado.

OPCIONES

El método OPTIONS se utiliza para consultar a un agente de usuario o un servidor proxy sobre sus capacidades y descubrir su disponibilidad actual. La respuesta a una solicitud enumera las capacidades del agente de usuario o del servidor. Un proxy nunca genera una solicitud de OPCIONES.

Métodos de extensión

Suscribir

SUBSCRIBE es utilizado por agentes de usuario para establecer una suscripción con el fin de recibir una notificación sobre un evento en particular.

  • Contiene un Expires campo de encabezado que indica la duración de una suscripción.

  • Una vez transcurrido el período de tiempo, la suscripción finalizará automáticamente.

  • La suscripción establece un diálogo entre los agentes de usuario.

  • Puede volver a suscribirse enviando otro SUBSCRIBE dentro del cuadro de diálogo antes de la fecha de vencimiento.

  • Se recibirá un 200 OK para una suscripción del Usuario.

  • Los usuarios pueden darse de baja enviando otro método SUBSCRIBE con un valor de Caducidad 0 (cero).

NOTIFICAR

Los agentes de usuario utilizan NOTIFICAR para obtener la ocurrencia de un evento en particular. Por lo general, se activará una NOTIFICACIÓN dentro de un cuadro de diálogo cuando exista una suscripción entre el suscriptor y el notificador.

  • Cada NOTIFICACIÓN obtendrá una respuesta 200 OK si es recibida por el notificador.

  • NOTIFICAR contiene un Event campo de encabezado que indica el evento y un subscriptionstate campo de encabezado que indica el estado actual de la suscripción.

  • Siempre se envía una NOTIFICACIÓN al inicio y finalización de una suscripción.

PUBLICAR

PUBLISH es utilizado por un agente de usuario para enviar información sobre el estado del evento a un servidor.

  • PUBLICAR es sobre todo útil cuando hay múltiples fuentes de información de eventos.

  • Una solicitud PUBLICAR es similar a una NOTIFICACIÓN, excepto que no se envía en un diálogo.

  • Una solicitud PUBLICAR debe contener una Expires campo de encabezado y un Min-Expires campo de encabezado.

REFERIR

REFER es utilizado por un agente de usuario para referir a otro agente de usuario a acceder a un URI para el diálogo.

  • REFER debe contener un Refer-Toencabezamiento. Este es un encabezado obligatorio para REFER.

  • REFER puede enviarse dentro o fuera de un diálogo.

  • UN 202 Accepted activará una solicitud de REFERENCIA que indica que otro agente de usuario ha aceptado la referencia.

INFO

Un agente de usuario utiliza INFO para enviar información de señalización de llamadas a otro agente de usuario con el que ha establecido una sesión de medios.

  • Esta es una solicitud de un extremo a otro.

  • Un proxy siempre reenviará una solicitud INFO.

ACTUALIZAR

ACTUALIZAR se utiliza para modificar el estado de una sesión si no se establece una sesión. El usuario puede cambiar el códec con ACTUALIZAR.

SI se establece una sesión, se utiliza una nueva invitación para cambiar / actualizar la sesión.

PRACK

PRACK se utiliza para acusar recibo de una transferencia confiable de respuesta provisional (1XX).

  • Generalmente PRACK es generado por un cliente cuando recibe una respuesta provisional que contiene un RSeq número de secuencia confiable y un supported:100rel encabezamiento.

  • PRACK contiene el valor (RSeq + CSeq) en el rack encabezamiento.

  • El método PRACK se aplica a todas las respuestas provisionales excepto a la respuesta 100 Trying, que nunca se transporta de manera confiable.

  • Un PRACK puede contener un cuerpo de mensaje; se puede utilizar para el intercambio de ofertas y respuestas.

MENSAJE

Se utiliza para enviar un mensaje instantáneo mediante SIP. Un mensaje instantáneo generalmente consiste en mensajes cortos intercambiados en tiempo real por participantes que participan en una conversación de texto.

  • El MENSAJE se puede enviar dentro de un diálogo o fuera de un diálogo.

  • El contenido de un MENSAJE se incluye en el cuerpo del mensaje como MIME adjunto archivo.

  • UN 200 OK Normalmente se recibe una respuesta para indicar que el mensaje se ha entregado en su destino.