===== Protocolo SIP ===== SIP (Session Initiation Protocol) o Protocolo de Inicio de Sesiones. Existen dos elementos fundamentales dentro del protocolo SIP, los agentes de usuario (UA) y los servidores. Los agentes de usuario (UA user agent) tienen dos partes distintas, el User Agent Client (UAC) y el User Agent Server (UAS). EL UAC genera peticiones SIP y el UAS genera respuestas a esas peticiones SIP Los servidores SIP pueden ser de tres tipos: * **Proxy Server** reenvia las peticiones a otro servidor, alterando los campos de la solicitud en caso necesario. Es semejante a un servidor Proxy Http pero para SIP. A su vez dependiendo de si mantienen el estado, o no, de las transacciones durante su procesamiento pueden ser **Statefull** o **Stateless** . * **Registrar Server** acepta peticiones de registro de usuario y las guarda para suministrar servicios. * **Redirect Server** redirecciona las peticiones que recibe hacia otro servidor. Las peticiones SIP comienzan por una línea inicial del mensaje, llamada “Request-Line”, que contiene el nombre del método, el identificador del destinatario de la petición (Request-URI) y la versión del protocolo SIP. Existen seis métodos básicos SIP que describen las peticiones de los clientes: * INVITE: Permite establecer una sesión o para modificar parámetros en una sesión ya existente. * ACK: Confirma el establecimiento de una sesión. * OPTION: Solicita información sobre las capacidades de un servidor. * BYE: Indica la terminación de una sesión. * CANCEL: Cancela una petición de establecimiento de una sesión. * REGISTER: Registrar el User Agent. También existen seis clases de respuesta: * 1xx: respuestas informativas, como 180, que significa teléfono sonando(ringing). * 2xx: respuestas de éxito. * 3xx: respuestas de redirección. * 4xx: errores de solicitud. * 5xx: errores de servidor. * 6xx: errores globales.