SIP - Bifurcación
En ocasiones, un servidor proxy reenvía una única llamada SIP a varios puntos finales SIP. Este proceso se conoce como bifurcación. Aquí, una sola llamada puede hacer sonar varios puntos finales al mismo tiempo.
Con la bifurcación SIP, puede hacer que su teléfono de escritorio suene al mismo tiempo que su softphone o un teléfono SIP en su móvil, lo que le permite tomar la llamada desde cualquier dispositivo fácilmente.
Por lo general, en una oficina, suponga que el jefe no puede atender la llamada o no, la bifurcación SIP permite que la secretaria responda las llamadas de su extensión.
La bifurcación será posible si hay un proxy con estado disponible, ya que necesita funcionar y responder de los muchos que recibe.
Tenemos dos tipos de bifurcaciones:
- Bifurcación paralela
- Bifurcación secuencial
Bifurcación paralela
En este escenario, el servidor proxy bifurcará el INVITE a, digamos, dos dispositivos (UA2, UA3) a la vez. Ambos dispositivos generarán 180 Ringing y quien reciba la llamada generará 200 OK. La respuesta (suponga UA2) que llega primero al Originador establecerá una sesión con UA2. Para la otra respuesta, se activará una CANCELACIÓN.
Si el originador recibe ambas respuestas simultáneamente, entonces, basándose en el valor q, enviará la respuesta.
Bifurcación secuencial
En este escenario, el servidor proxy bifurcará INVITE a un dispositivo (UA2). Si UA2 no está disponible u ocupado en ese momento, entonces el proxy lo bifurcará a otro dispositivo (UA3).
Sucursal: ID y etiqueta
Los ID de sucursal ayudan a los servidores proxy a hacer coincidir las respuestas con las solicitudes bifurcadas. Sin ID de sucursal, un servidor proxy no podría comprender la respuesta bifurcada. Branch-id estará disponible en el encabezado Via.
El UAC utiliza etiquetas para distinguir múltiples respuestas finales de diferentes UAS. Un UAS no puede resolver si la solicitud se ha bifurcado o no. Por lo tanto, debe agregar una etiqueta.
Los proxies también pueden agregar etiquetas si genera una respuesta final, nunca insertan etiquetas en las solicitudes o respuestas que envían.
Es posible que varios servidores proxy también puedan bifurcar una sola solicitud. Por lo tanto, el proxy que se bifurcará agregará sus propios ID únicos a las ramas que creó.
Tramo de llamada e ID de llamada
Un tramo de llamada se refiere a una relación de señalización uno a uno entre dos agentes de usuario. El ID de llamada es un identificador único que se incluye en un mensaje SIP que se refiere a la llamada. Una llamada es una colección de tramos de llamada.
Un UAC comienza enviando una INVITACIÓN. Debido a la bifurcación, puede recibir varios 200 OK de diferentes UA. Cada uno corresponde a un tramo de llamada diferente dentro de la misma llamada.
Por tanto, una llamada es un grupo de tramos de llamada. Un tramo de llamada se refiere a la conexión de extremo a extremo entre UA.
Los espacios CSeq en las dos direcciones de un tramo de llamada son independientes. Dentro de una sola dirección, el número de secuencia se incrementa para cada transacción.
Mensaje de voz
El correo de voz es muy común hoy en día para los usuarios empresariales. Es una aplicación telefónica. Se trata de una imagen cuando el interlocutor llamado no está disponible o no puede recibir la llamada, el PBX le anunciará al interlocutor que deje un mensaje de voz.
El agente de usuario obtendrá una respuesta 3xx o lo redireccionará al servidor de correo de voz si el número de la persona a la que llama no está disponible. Sin embargo, se necesita algún tipo de extensión SIP para indicarle al sistema de correo de voz qué buzón utilizar, es decir, qué saludo reproducir y dónde almacenar el mensaje grabado. Hay dos formas de lograrlo:
Mediante el uso de una extensión de campo de encabezado SIP
Mediante el uso de Request-URI para señalar esta información
Supongamos para el usuario sip:[email protected] tiene un sistema de correo de voz en sip: voicemail.tutorialspoint.com que proporciona correo de voz, el Request-URI de INVITE cuando se reenvía al servidor de correo de voz podría verse así:
sip:voicemail.tutorialspoint.com;target = sip:[email protected];cause = 486
La siguiente ilustración muestra cómo Request-URI lleva el identificador del buzón y el motivo (aquí 486).