Sistema postes SOS IP Software Protocolos de comunicación y control Este documento es la descripción del protocolo de comunicaciones para postes SOS por IP. © Equipos De Telecomunicación Optoelectrónicos, S.A. Zaragoza, Septiembre de 2012. Ed. 1.8 Septiembre 2012 – Ed.1.8 SOS IP – Protocolos de comunicación y control Índice 1. Introducción..................................................................................................................................................1 2. Tecnología VoIP: una breve descripción .......................................................................................................2 3. Estructura de comunicaciones del sistema de postes SOS IP .......................................................................7 4. Establecimiento de llamadas y control: protocolo ESCP ..............................................................................8 4.1 Llamada, respuesta y control de audio ..............................................................................................11 4.1.1. Mensajes DEM_USE y DEM_SER................................................................................................12 4.1.2. Mensajes ACK_DEM_USE y ACK_DEM_SER ...............................................................................12 4.1.3. Mensajes SIM_DEM ...................................................................................................................13 4.1.4. Mensajes ACK_SIM_DEM...........................................................................................................13 4.1.5. Mensaje ORD_FON_ON .............................................................................................................13 4.1.6. Mensaje ACK_FON_ON ..............................................................................................................14 4.1.7. Mensaje ORD_FON_OFF ............................................................................................................14 4.1.8. Mensaje ACK_FON_OFF .............................................................................................................15 4.1.9. Mensaje ORD_ADJ_VOL.............................................................................................................15 4.1.10. Mensaje ACK_ADJ_VOL..............................................................................................................15 4.1.11. Mensaje ORD_ADJ_MIC .............................................................................................................16 4.1.12. Mensaje ACK_ADJ_MIC..............................................................................................................16 4.2 Envío de alarmas ................................................................................................................................17 4.2.1. Mensaje ENV_ALA......................................................................................................................17 4.2.2. Mensaje ACK_ENV_ALA .............................................................................................................18 4.3 Envío de cambio de estado en entradas auxiliares ............................................................................18 4.3.1. Mensaje ENV_ST_IN...................................................................................................................18 4.3.2. Mensaje ACK_ST_IN...................................................................................................................19 4.4 Prueba y mantenimiento....................................................................................................................20 4.4.1. Mensaje ORD_TST_MAN ...........................................................................................................20 4.4.2. Mensaje RES_TST_MAN.............................................................................................................20 4.4.3. Mensaje ORD_TST_FON.............................................................................................................21 4.4.4. Mensaje RES_TST_FON ..............................................................................................................22 4.4.5. Mensaje ORD_VOZ_ON .............................................................................................................22 4.4.6. Mensaje ACK_VOZ_ON ..............................................................................................................22 4.4.7. Mensaje ORD_VOZ_OFF ............................................................................................................23 4.4.8. Mensaje ACK_VOZ_OFF .............................................................................................................23 4.4.9. Mensaje ORD_TON_ON .............................................................................................................23 4.4.10. Mensaje ACK_TON_ON..............................................................................................................24 4.4.11. Mensaje ORD_TON_OFF ............................................................................................................24 4.4.12. Mensaje ACK_TON_OFF.............................................................................................................24 4.5 Acceso a puerto auxiliar .....................................................................................................................25 4.5.1. Mensaje ORD_ESC_IO ................................................................................................................25 4.5.2. Mensaje ACK_ESC_IO.................................................................................................................25 4.5.3. Mensaje ORD_LEC_IO ................................................................................................................25 4.5.4. Mensaje ACK_LEC_IO.................................................................................................................26 4.5.5. Mensaje ORD_ESC_IO_ONE.......................................................................................................26 4.5.6. Mensaje ACK_ESC_IO_ONE........................................................................................................26 4.5.7. Mensaje ORD_ST_OUT...............................................................................................................26 4.5.8. Mensaje ACK_ST_OUT ...............................................................................................................27 EQUITEL SOS IP – Protocolos de comunicación y control iii Septiembre 2012 – Ed.1.8 4.6 Indicación de estado de comunicaciones de los E321 .......................................................................28 4.6.1. Mensaje E321_LOST...................................................................................................................28 4.6.2. Mensaje E321_REC ....................................................................................................................28 4.7 Comprobación de conexiones TCP en el sistema E311-E321 (“Keep-Alive”) .....................................28 4.8 Megafonía ..........................................................................................................................................29 4.8.1. Mensaje ORD_MEG_ST..............................................................................................................29 4.8.2. Mensaje ACK_MEG_ST...............................................................................................................29 4.8.3. Mensaje ORD_MEG_VOL ...........................................................................................................30 4.8.4. Mensaje ACK_MEG_VOL............................................................................................................30 4.8.5. Mensaje ORD_MEG_QRY...........................................................................................................30 4.8.6. Mensaje RES_MEG_QRY ............................................................................................................31 4.9 Control del cancelador de ruido en el módulo E301 ..........................................................................32 4.9.1. Mensaje ORD_AUD_CTRL ..........................................................................................................32 4.9.2. Mensaje ACK_AUD_CTRL ...........................................................................................................33 5. Comunicación de audio utilizando RTP y G.711-A ......................................................................................34 6. SIP ...............................................................................................................................................................37 6.1 Algunos conceptos básicos.................................................................................................................37 6.2 Implementación de SIP en los módulos E301 y E311 .........................................................................38 7. Apéndices....................................................................................................................................................40 7.1 Algoritmo de cálculo del CRC utilizado en el protocolo ESCP.............................................................40 EQUITEL SOS IP – Protocolos de comunicación y control iv Septiembre 2012 – Ed.1.8 SOS IP – Protocolos de comunicación y control 1. Introducción Los módulos EQUITEL E301, E311 y E321, permiten construir fácilmente un sistema de teléfonos de emergencia (postes SOS) para carreteras y túneles sobre una red Ethernet/IP, utilizando estándares VoIP pero adaptado a las necesidades particulares de esta aplicación. La topología de una red genérica de postes SOS basada en estos módulos es la representada en el siguiente esquema: Figura 1: Esquema general de una red de postes SOS En la parte izquierda de la figura, se ha representado una red de SOS de bajo consumo para ser alimentados por panel solar, utilizando los módulos E311-E321. El E311 hace de interfaz entre la red Ethernet y la red de fibra que 1 comunica los módulos E321 . En la parte derecha, se ha representado una red de postes habitualmente utilizados en túneles y lugares donde las acometidas de tensión no son un problema, basados en los módulos E301. (1) Para una descripción más detallada de este sistema, ver la documentación específica de los módulos E311 y E321. EQUITEL SOS IP – Protocolos de comunicación y control 1 Septiembre 2012 – Ed.1.8 En cuanto a las comunicaciones se refiere, cada módulo E301 es un dispositivo Ethernet que publica una IP distinta. El E311 es un dispositivo que publica tantas direcciones IP como módulos E321 tenga asociados. De esta forma, a nivel de software, no se hace distinción entre un módulo E301 y un módulo E321. El control y supervisión de los módulos, el establecimiento de las comunicaciones vocales y las propias comunicaciones vocales se realizan a través de la red Ethernet/IP, considerando cada módulo E301 ó E321 como un punto de acceso (dirección IP + puerto) distinto. Para ello se utilizan una serie de protocolos de los cuales unos son estándares y otros son propietarios de EQUITEL diseñados específicamente para esta aplicación. En este documento se describe todo el proceso de control, supervisión y comunicación con los módulos EQUITEL desde el punto de vista del diseñador del software de la central y / o el sistema de comunicaciones, detallando sobre todo lo que hace referencia a los mencionados protocolos propietarios. Como ejemplo de implementación del sistema de control y comunicaciones, se ha creado la aplicación “EQUITEL SOS Control Tool” que se adjunta en el SDK. 2. Tecnología VoIP: una breve descripción La tecnología VoIP comprende una serie de estándares internacionales que regulan la transmisión de voz a través de redes IP. Un sistema de telefonía basado en la tecnología VoIP puede llegar a ser de una complejidad notable, pero la teoría básica de funcionamiento es sencilla. En este apartado se expone una breve descripción de las bases en que se fundamenta esta tecnología para que el lector pueda entender mejor la utilización que de ella se hace en el sistema de postes SOS IP de EQUITEL. Para ello vamos a partir de un ejemplo muy simple pero que puede ilustrar todos los conceptos necesarios a la hora de la utilización de esta tecnología en los sistemas que nos ocupan: Partamos de la red más básica de telefonía IP, que consta de tres elementos: dos teléfonos y una centralita o PBX, y veamos cuáles son los pasos para llegar a establecer una comunicación vocal entre los dos teléfonos. Figura 2: Esquema mínimo de una red VoIP Paso 1: Registro En el nivel más básico, la centralita se ocupa de mantener un listado con los teléfonos IP existentes en la red y proveer de la capacidad de ponerlos en contacto, tal como haría una centralita analógica tradicional. Cada teléfono ha de registrarse en la centralita y refrescar este registro periódicamente, de forma que en todo momento ésta tenga actualizada la lista de teléfonos que hay en la red y cuáles son sus características. La característica más importante que ha de conocer la PBX de cada teléfono es su dirección IP para asociarla a un determinado nombre identificativo de cada teléfono (nombre de la extensión) EQUITEL SOS IP – Protocolos de comunicación y control 2 Septiembre 2012 – Ed.1.8 En nuestro ejemplo, se desea asociar al teléfono de la izquierda la extensión 100, mientras que al teléfono de la derecha se le desea asociar la 200. Las direcciones IP de ambos teléfonos han sido asignadas por un servidor DHCP. Ambos teléfonos han de comunicar a la centralita su presencia y sus direcciones IP: Figura 3: VoIP - Registro en PBX Ambos envían un mensaje hacia la PBX indicando que desean registrarse con el nombre de extensión configurado y su dirección IP. La centralita, si acepta este registro, devolverá un mensaje de aceptación. Para que un teléfono pueda registrarse en una PBX tendrá que tener configurada la dirección de dicha PBX, el nombre de la extensión correspondiente y, habitualmente, una clave de acceso. De esta forma, la PBX limita el registro a las extensiones previamente configuradas y permitidas. Una vez que la PBX tiene la información de registro de todos los teléfonos de la red, ya es posible establecer una 2 comunicación vocal entre dos de ellos. Paso 2: Llamada El usuario que desea llamar desde un teléfono a otro, marca el número de extensión y pulsa sobre el botón de llamada. Esto hace que el teléfono envíe un mensaje hacia la PBX indicando que se desea establecer comunicación con esa extensión. En este mensaje, el teléfono indica también cuáles son sus características técnicas (tipos de codificación que entiende, dirección IP y puertos de escucha para los paquetes de audio fundamentalmente) Figura 4: VoIP - Llamada La PBX busca en su lista el teléfono correspondiente a la extensión y le envía un mensaje de invitación a la conversación. En este mensaje, también se envían las características técnicas del teléfono que ha iniciado la conversación. (2) La tecnología VoIP actual permite el establecimiento de llamadas en modo multiconferencia etc., pero para esta aplicación no se contemplan. EQUITEL SOS IP – Protocolos de comunicación y control 3 Septiembre 2012 – Ed.1.8 Si el teléfono receptor de la invitación es compatible con las características del emisor, acepta esta invitación, comienza a hacer sonar su timbre de llamada y envía un mensaje hacia la PBX indicando dicha acción. Este mensaje es reenviado por la PBX hacia el teléfono que ha originado la llamada para que a su vez emita el tono: Figura 5: VoIP - Espera de contestación Paso 3: Contestación Cuando el usuario del teléfono receptor descuelga el auricular, se genera un mensaje hacia la PBX indicando que se ha aceptado la conversación y los datos necesarios para poder establecer la comunicación vocal (qué sistema de codificación de los propuestos por el emisor se acepta, la dirección IP y el puerto al que se deben enviar los paquetes de audio). Este mensaje es reenviado por la PBX hacia el teléfono que ha originado la llamada. Figura 6: VoIP - Contestación Paso 4: Comunicación vocal A partir de este momento, los dos teléfonos comienzan a intercambiarse el audio codificado según el esquema que previamente han acordado: Figura 7: VoIP - Comunicación vocal EQUITEL SOS IP – Protocolos de comunicación y control 4 Septiembre 2012 – Ed.1.8 Hay que hacer notar un hecho muy importante: el flujo de audio se intercambia directamente entre los dos 3 teléfonos, sin pasar por la PBX . Paso 5: Fin de la comunicación Cuando cualquiera de los dos extremos decide terminar la comunicación, corta el flujo de audio y envía un mensaje a la PBX indicando el hecho: Figura 8: VoIP - Fin de comunicación La PBX reenvía entonces el mensaje hacia el otro extremo, que a su vez cortará el envío de audio y el sistema volverá a reposo. Dos partes: Establecimiento de sesión y comunicaciones En todo este proceso, hay dos partes bien diferenciadas: De un lado el control del establecimiento de las comunicaciones o de sesión (Pasos 1, 2, 3 y 5) y de otro lado, las comunicaciones propiamente dichas (Paso 4) Los formatos de los mensajes y los datos intercambiados por los distintos actores de este escenario, están fijados 4 por estándares industriales recogidos en distintas RFCs . En cuanto al establecimiento de las comunicaciones, en la actualidad hay varios estándares abiertos (SIP, H.323 etc.) y otros protocolos propietarios de grandes fabricantes (Cisco etc.) De ellos, quizá el más extendido actualmente y el más sencillo de implementar sea el protocolo SIP, definido en la RFC 3261. Hoy en día es muy fácil encontrar tanto teléfonos comerciales como PBX que soportan este protocolo. No es el objeto de este documento describir el funcionamiento de este protocolo. Si el lector desea profundizar en el conocimiento de él, en Internet encontrará toda la información necesaria. Como se verá más adelante, EQUITEL ha escogido este protocolo para implementar el enlace de los sistemas SOS con sistemas de telefonía IP externos. Por lo que respecta a las comunicaciones vocales, el protocolo utilizado es siempre el RTP, definido en la RFC 3550. Este protocolo define cómo se encapsulan en paquetes UDP los datos de audio digitalizados y codificados. Los métodos de codificación del audio (comúnmente llamados “códecs”) pueden ser, a su vez, varios. Cada uno de ellos tiene unas características determinadas en cuanto a la calidad del sonido obtenida y el ancho de banda 5 utilizado. Los más utilizados actualmente son los definidos por la UIT (G.711, G.722, G.723, G.726, G.728, G.729…) (3) En otro tipo de situaciones, por ejemplo si se quiere que la PBX grabe la comunicación, es necesario que este flujo de audio pase por ella, pero en el caso que mostramos no lo es. (4) Las RFCs son las normas de acceso público gestionadas por el IETF (Internet Engineering Task Force) que regulan los distintos protocolos de comunicaciones utilizados en las redes Ethernet / IP actuales. www.ietf.org, www.rfc-editor.org (5) Unión Internacional de Telecomunicaciones, organismo de las naciones unidas que regula las telecomunicaciones a nivel internacional. También conocido por sus siglas en inglés: ITU EQUITEL SOS IP – Protocolos de comunicación y control 5 Septiembre 2012 – Ed.1.8 De ellos, el más extendido y el más sencillo de implementar es el G.711, definido en 1965. De hecho, es el que se utiliza en la telefonía analógica tradicional entre centrales. Se basa en digitalizar el audio a 8 kilomuestras por segundo, con 12 bits por muestra. A cada muestra de 12 bits se le aplica una deslinealización logarítmica para obtener un dato de 8 bits, con el objeto de reducir el ancho de banda utilizado pero manteniendo la resolución de 12 bits en las señales débiles. Según la curva de deslinealización utilizada, se tienen dos estándares: G.711-ley A, utilizado en Europa y en los enlaces internacionales, y G.711-ley µ, utilizado en Norteamérica y Japón. El ancho de banda utilizado es de 64 Kb/s. Otros codecs ofrecen una mejor calidad de audio, un menor ancho de banda etc., pero a costa de complicar notablemente los sistemas de cálculo e, incluso, de pago de royalties a los propietarios de las patentes correspondientes. EQUITEL SOS IP – Protocolos de comunicación y control 6 Septiembre 2012 – Ed.1.8 3. Estructura de comunicaciones del sistema de postes SOS IP En los sistemas de postes SOS IP se ha optado por establecer un protocolo de establecimiento de comunicaciones propietario, que se ha llamado ESCP (Equitel Sos Control Protocol). Con la utilización de este protocolo en lugar de los protocolos estándar (SIP, H.323, etc.) se pretende conseguir lo siguiente: Mayor facilidad de implementación en sistemas integrales de control. Añadir funcionalidades particulares de estos sistemas: necesidad de la existencia de un “centro de control” donde se registren las incidencias de los postes (alarmas, llamadas, etc.) y que realice pruebas de mantenimiento preventivo para conocer su estado en todo momento. Posibilitar la redundancia de centros de control de una forma sencilla. Facilitar la migración de las aplicaciones de control existentes para otro tipo de tecnologías de postes SOS (cable de cobre, GSM) Este protocolo es, básicamente, el resultado de encapsular en paquetes TCP los mensajes utilizados en el protocolo de control de los postes SOS para cuadrete utilizados en España, normalizado por AENOR en la norma UNE-135701. Por lo que respecta a este protocolo, los postes SOS (tanto los módulos E301 como los módulos E321 a través del E311), actúan como servidores, admitiendo hasta 5 conexiones simultáneas en el puerto 3000. No obstante, y como se verá en el punto 6 (pág. 37), tanto los módulos E301 como el Gateway E311, poseen un pequeño agente SIP que les permite registrarse en una PBX que soporte este protocolo y realizar llamadas a través de ella. En cuanto a la comunicación vocal propiamente dicha, dadas las características de los sistemas de postes SOS, EQUITEL ha optado por la utilización del códec G.711-A encapsulado mediante el protocolo RTP. Sobre todo por la facilidad de implementación y por la compatibilidad: actualmente casi todos los teléfonos IP / PBX etc. del mercado soportan esta forma de transmisión del audio. EQUITEL SOS IP – Protocolos de comunicación y control 7 Septiembre 2012 – Ed.1.8 4. Establecimiento de llamadas y control: protocolo ESCP Según la norma española UNE-135701, las comunicaciones entre el centro de control y los postes, se basan en un esquema “envío-respuesta” con reintentos. Es decir: cualquiera de los extremos que desee comunicar con el otro enviará un mensaje que necesariamente tendrá que tener una respuesta del destinatario. Si tal respuesta no se produce antes de un tiempo prefijado (por defecto 3 segundos), se reintentará la transmisión hasta un número de veces también prefijado (por defecto 3): Figura 9: Proceso de envío-respuesta en protocolo ESCP Los mensajes que se transmiten, tanto envíos como respuestas, tienen una estructura muy simple, tal como se muestra: N C Datos CRC N: Un byte que indica el número de poste al que va destinado el mensaje. C: Un byte que identifica unívocamente el tipo de mensaje de que se trata. Datos: Contenido de información dependiente del tipo de mensaje. La longitud de este campo depende del tipo de mensaje. Esta longitud es siempre fija para un mensaje determinado. CRC: Dos bytes de código de redundancia cíclica para comprobación de errores en la transmisión. El algoritmo utilizado para el cálculo de este CRC se detalla en el apéndice 7.1 (pág. 40) En los mensajes que se envían hacia los SOS, se puede sustituir este valor por 0xFFFF si no se desea utilizar. De esta forma, el equipo que recibe el mensaje no realizará la comprobación. Este esquema de transmisión, diseñado para su uso en redes propietarias de cobre, se ha venido utilizando en España durante muchos años y aún se utiliza hoy en día. A fin de que la adaptación de las aplicaciones de control de los postes SOS existentes a la tecnología IP sea lo más sencilla posible, el protocolo ESCP consiste simplemente en encapsular cada uno de estos mensajes en un 6 paquete TCP y enviarlo a través de la red IP . (6) El lector con experiencia en redes IP, notará que los campos N y CRC serían innecesarios, ya que la identificación del destinatario de cada mensaje viene dada por su dirección IP y el protocolo TCP, por definición, asegura la recepción de los paquetes sin errores o en caso contrario, notifica la imposibilidad de comunicación. Estos .../... EQUITEL SOS IP – Protocolos de comunicación y control 8 Septiembre 2012 – Ed.1.8 Cada poste SOS dentro de la red actúa como un servidor TCP en el puerto 3000 para aceptar hasta 5 conexiones entrantes siendo éste, por tanto, el número máximo de controladores simultáneos. Dentro de la red, debe haber, 7 al menos un ordenador que ejecute la aplicación de control de la red de postes SOS, al que llamaremos “Controlador”. (Ver Figura 1: Esquema general de una red de postes SOS en la página 1) A fin de que la sincronización de la información entre los distintos controladores conectados a los postes sea sencilla, se ha establecido el siguiente mecanismo: todos los mensajes o respuestas que viajan en dirección SOSControlador se envían a todos los controladores conectados. De esta manera, todos los controladores tienen información actual del estado del SOS. En las tablas siguientse se muestran a modo de resumen las posibles acciones generadas o admitidas por los postes así como las respuestas asociadas: Llamada, respuesta y control del audio: Mensaje Código Dirección DEM_USE 0x21 SOSCC Descripción Llamada de usuario ACK_DEM_USE 0x81 CCSOS ACK correspondiente a DEM_USE DEM_SER 0x22 SOSCC Llamada de servicio ACK_DEM_SER 0x82 CCSOS ACK correspondiente a DEM_SER ORD_FON_ON 0x41 CCSOS Activación de audio - inicio conversación ACK_FON_ON 0x84 SOSCC ACK correspondiente a ORD_FON_ON ORD_FON_OFF 0x42 CCSOS Desactivación audio - fin conversación ACK_FON_OFF 0x85 SOSCC ACK correspondiente a ORD_FON_OFF ORD_ADJ_VOL 0x4C CCSOS Ajuste de volumen de salida ACK_ADJ_VOL 0x8E SOSCC ACK correspondiente a ORD_ADJ_VOL ORD_ADJ_MIC 0x07 CCSOS Ajuste volumen de entrada de micrófono ACK_ADJ_MIC 0x08 SOSCC ACK correspondiente a ORD_ADJ_MIC SIM_DEM 0x39 CCSOS Simular llamada de usuario ACK_SIM_DEM 0x3A SOSCC ACK correspondiente a SIM_DEM Envío de alarmas: Mensaje Código Dirección ENV_ALA 0x23 SOSCC Descripción Envío de alarma ACK_ENV_ALA 0x83 CCSOS ACK correspondiente a ENV_ALA campos se han mantenido simplemente por compatibilidad con el posible software existente. De hecho, el campo N no es tenido en cuenta por los equipos, y el campo CRC puede obviarse sustituyéndolo por 0xFFFF. (7) Haciendo uso del agente SIP que llevan incorporado los módulos E301 y E311, se podría prescindir de este elemento de control, pero EQUITEL no recomienda esta topología puesto que se pierde gran parte de la funcionalidad que diferencia estos sistemas de un mero teléfono IP. No obstante, si está interesado en la implementación de la red de este modo, por favor, póngase en contacto con nosotros a través de [email protected] EQUITEL SOS IP – Protocolos de comunicación y control 9 Septiembre 2012 – Ed.1.8 Prueba y mantenimiento: Mensaje Código Dirección ORD_TST_MAN 0x46 CCSOS Descripción Test de mantenimiento RES_TST_MAN 0x89 SOSCC Resultado del test de mantenimiento ORD_TST_FON 0x45 CCSOS Test de circuitos de audio RES_TST_FON 0x88 SOSCC Resultado de test de circuitos de audio ORD_VOZ_ON 0x4A CCSOS Activación mensaje grabado ACK_VOZ_ON 0x8D SOSCC ACK correspondiente a ORD_VOZ_ON ORD_VOZ_OFF 0x4B CCSOS Desactivación mensaje grabado ACK_VOZ_OFF 0x92 SOSCC ACK correspondiente a ORD_VOZ_OFF ORD_TON_ON 0x43 CCSOS Activación tono llamada ACK_TON_ON 0x86 SOSCC ACK correspondiente a ORD_TON_ON ORD_TON_OFF 0x44 CCSOS Desactivación tono llamada ACK_TON_OFF 0x87 SOSCC ACK correspondiente a ORD_TON_OFF Acceso a puerto auxiliar (sólo en E301): Mensaje Código Dirección ORD_ESC_IO 0x48 CCSOS Descripción Escritura en puerto auxiliar ACK_ESC_IO 0x8B SOSCC ACK correspondiente a ORD_ESC_IO ORD_LEC_IO 0x49 CCSOS Lectura de puerto auxiliar ACK_LEC_IO 0x8C SOSCC ACK correspondiente a ORD_LEC_IO ENV_ST_IN 0x24 CCSOS Envio cambio de estado en entradas ACK_ENV_ST_IN 0x25 SOSCC ACK correspondiente a ENV_ST_IN Indicación comunicaciones (sólo en E311-E321): Mensaje Código Dirección Descripción E321_LOST 0x15 SOSCC Pérdida de comunicaciones con E321 E321_REC 0x16 SOSCC Recuperadas comunicaciones con E321 Megafonía (sólo en E301): Mensaje Código Dirección ORD_MEG_ST 0x51 CCSOS Descripción Control de megafonía ACK_MEG_ST 0x52 SOSCC ACK correspondiente a ORD_MEG_ST ORD_MEG_QRY 0x55 CCSOS Consulta estado megafonía RES_MEG_QRY 0x56 SOSCC Respuesta estado megafonía ORD_MEG_VOL 0x53 CCSOS Cambio volumen salida megafonía ACK_MEG_VOL 0x54 SOSCC ACK correspondiente a ORD_MEG_VOL La columna “Código” corresponde al valor del campo “C” dentro del mensaje ESCP. En la columna “Dirección” se indica “SOSCC” para los mensajes que van de los postes a los controladores y por “CCSOS” los que viajan en sentido contrario. En los puntos siguientes se van a ir describiendo los distintos mensajes agrupados por funcionalidad. EQUITEL SOS IP – Protocolos de comunicación y control 10 Septiembre 2012 – Ed.1.8 4.1 Llamada, respuesta y control de audio Los módulos E301 y E321 aceptan dos botones de llamada diferentes: uno para las llamadas de usuario y otro para las llamadas de servicio (mantenimiento). En el protocolo de comunicaciones, se diferencia la llamada generada por cada botón mediante un mensaje diferente. El proceso de la generación de una llamada, la funcionalidad más importante de los SOS, es el siguiente: Figura 10: Proceso de establecimiento de llamada Cuando se activa el botón correspondiente, el SOS inicia el tono de llamada y envía un mensaje DEM_USE ó DEM_SER hacia las centrales conectadas. Si recibe el ACK correspondiente, comienza a emitir el mensaje pregrabado de espera y queda a la espera de que desde alguna central se activen los circuitos de fonía. Si no recibe respuesta, pasa al proceso de intento de establecimiento de comunicación a través del agente SIP integrado en el E301 o el E311 con algún teléfono externo. Ver punto 6 (pág. 37) Si no se consigue esta comunicación (o no se utiliza), se inicia la reproducción del mensaje que indica “poste fuera de servicio”. Si se recibe la respuesta de la central pero pasado un tiempo (por defecto 2 minutos), no se ha activado el audio, el SOS emitirá el mensaje pregrabado que indica que el poste está fuera de servicio (se repite 3 veces) y pasará al estado de reposo. Una vez que se ha activado el audio, desde la central se puede actuar sobre el volumen de salida y de entrada, así como cerrarlo. En todo este proceso intervienen los mensajes que se van a describir a continuación: EQUITEL SOS IP – Protocolos de comunicación y control 11 Septiembre 2012 – Ed.1.8 4.1.1. Mensajes DEM_USE y DEM_SER Estos mensajes se envían desde el poste SOS hacia el centro de control, para indicar la pulsación del botón de llamada. El byte que se incluye en el campo de datos indica si la llamada se ha producido en el poste 8 principal o en el secundario . Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x21 para DEM_USE; 0x22 para DEM_SER Datos: TP: 1 byte que indica si la llamada se ha originado en el poste principal (0x90) o en el secundario (0x91) Cuando un SOS envía este mensaje espera recibir el correspondiente ACK. Si no lo recibe tras los correspondientes reintentos, asume que no hay conexión con la central y pasa a intentar la comunicación con los posibles teléfonos externos que se hayan configurado en el agente SIP. Si no hay teléfonos configurados o no se puede establecer la comunicación con ellos, se pasa a emitir el mensaje pregrabado que indica que el poste está fuera de servicio. 4.1.2. Mensajes ACK_DEM_USE y ACK_DEM_SER Son los mensajes que cada central ha de devolver al SOS como respuesta a un mensaje DEM_USE o DEM_SER. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x81 para ACK_DEM_USE; 0x82 para ACK_DEM_SER Datos: TP: 1 byte que indica si la llamada se ha originado en el poste principal (0x90) o en el secundario (0x91) NULL:1 byte. Su valor es irrelevante. Necesario por compatibilidad. (8) Cada módulo E301 ó E321 se puede conectar a dos postes: uno principal en el que por regla general está físicamente alojado el módulo propiamente dicho y contiene los elementos de comunicaciones y alimentación necesarios y otro secundario, que sólo tiene pulsadores, altavoz, micrófono y sensores de puerta abierta. EQUITEL SOS IP – Protocolos de comunicación y control 12 Septiembre 2012 – Ed.1.8 4.1.3. Mensajes SIM_DEM NOTA: Este mensaje sólo está implementado en el E301, versión de firmware 3.3 o posterior Este mensaje se envía desde la central al poste SOS para forzar que lance una demanda de uso, es decir, para simular que un usuario ha pulsado el botón de llamada. Dicho comando además va acompañado de tres bytes de datos Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x39 Datos: TP: TL: NL: 1 byte que indica si la llamada se ha originado en el poste principal (0x90) o en el secundario (0x91) 1 byte que indica, en caso de tener que llamar a una extensión SIP, si su valor es distinto de cero, se llamará a la extensión SIP almacenada en la lista de clientes SIP en el orden definido por el siguiente byte 1 byte que indica a que cliente de 0…9 de la lista de clientes SIP se debe dirigir la llamada originada por el comando SIM_DEM Cuando un SOS recibe este mensaje, contesta con ACK_SIM_DEM 4.1.4. Mensajes ACK_SIM_DEM NOTA: Este mensaje sólo está implementado en el E301, versión de firmware 3.3 o posterior Es el mensaje que el SOS devuelve a la central como respuesta a un mensaje SIM_DEM. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x3A para ACK_SIM_DEM_USE Datos: TP: 1 byte que indica si la llamada se ha originado en el poste principal (0x90) o en el secundario (0x91) 4.1.5. Mensaje ORD_FON_ON Es el mensaje que envía un controlador para activar el envío y recepción de audio del SOS. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x41 Datos: TP: 1 byte que indica si se debe activar el audio del poste principal (0x90) o del secundario (0x91) IP: 4 bytes que indican la dirección IP destino de los paquetes RTP de audio provenientes del SOS. El byte de más peso se envía primero: [IP3] [IP2] [IP1] [IP0] PORT:2 bytes que indican el puerto RTP destino de los paquetes RTP de audio provenientes del SOS. El byte de más peso se envía primero: [P1] [P0] Dentro del campo de datos del mensaje, la central indica al SOS a qué dirección IP y puerto debe enviar los paquetes de audio RTP. Ésta no tiene por qué ser necesariamente la dirección IP del controlador. Puede ser la de cualquiera otro elemento en la red capaz de recibir el audio en RTP, codificado según la norma G.711-A y decodificarlo. EQUITEL SOS IP – Protocolos de comunicación y control 13 Septiembre 2012 – Ed.1.8 Utilizando esta característica, es posible establecer la comunicación de audio entre el SOS y, por ejemplo, un teléfono IP, una centralita telefónica, otro SOS, etc. Una vez que el SOS recibe esta orden, devuelve el correspondiente ACK (ACK_FON_ON) y activa sus circuitos de audio y el envío y recepción de paquetes RTP durante un máximo de 2 minutos. El puerto al que deben ser enviados los paquetes RTP destinados al SOS es el 0x1A0A Para una descripción del formato RTP utilizado para el envío del audio ver el punto 5en la página 34. Si se desea mantener el audio activo durante más de estos 2 minutos, la central debe ir re-enviando periódicamente la orden ORD_FON_ON para reactivarlo. Esto se hace para evitar que los SOS, sobre todo los E321, queden con el audio activo permanentemente en caso de que la central, por algún fallo, no cierre el audio. Este mensaje se puede enviar en cualquier momento al SOS, aunque no se haya producido una llamada previa. 4.1.6. Mensaje ACK_FON_ON Es el mensaje que envía un SOS cuando acepta la activación de audio desde un controlador. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x84 Datos: TP: IP: 1 byte que indica si el audio activado es el del poste principal (0x90) o del secundario (0x91) 4 bytes que indican la dirección IP del controlador que ha activado el audio. El byte de más peso se envía primero: [IP3] [IP2] [IP1] [IP0] Dentro del campo de datos del mensaje, el SOS indica cuál es la dirección del controlador que ha activado el audio. Como el ACK_FON_ON es enviado a todos los controladores conectados, los que no han activado el audio tienen la información necesaria para saber que el SOS tiene el audio activo y desde dónde se ha enviado la orden. 4.1.7. Mensaje ORD_FON_OFF Es el mensaje que envía un controlador para desactivar el envío y recepción de audio del SOS. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x42 Datos: TP: IP: 1 byte que indica si se debe desactivar el audio del poste principal (0x90) o del secundario (0x91) 4 bytes que indican la dirección IP de destino del audio, tal como se envió en la orden ORD_FON_ON. El byte de más peso se envía primero: [IP3] [IP2] [IP1] [IP0] Este campo es opcional (sólo en E321 y E301 a partir de la versión 3.3 de firmware) Si no se incluye la dirección IP de destino del audio, el SOS cesa el envío de paquetes RTP, cierra los circuitos de audio y envía a todas las centrales conectadas el correspondiente mensaje ACK_FON_OFF. Si se incluye una dirección IP, se compara con aquella a la que se está enviando el audio y sólo se cesa el envío si coinciden. En caso contrario, no se cerrará el audio, pero se devolverá el mensaje ACK_FON_OFF. En esta respuesta se incluye un byte que indica si se ha cerrado efectivamente el audio o no. EQUITEL SOS IP – Protocolos de comunicación y control 14 Septiembre 2012 – Ed.1.8 4.1.8. Mensaje ACK_FON_OFF Es la respuesta enviada por el SOS a la orden ORD_FON_OFF. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x85 Datos: TP: 1 byte que indica si el destinatario de la orden era el poste principal (0x90) o el secundario (0x91) AOFF: 1 byte que indica el estado del audio después de recibir la orden ORD_FON_OFF. Un 1 indica que el audio está cerrado. Un 0, que continúa abierto. En el campo AOFF se indica el estado del audio en el SOS después de recibir la orden ORD_FON_OFF. 4.1.9. Mensaje ORD_ADJ_VOL Mensaje que envía un controlador para modificar la potencia de salida de audio del SOS. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x4C Datos: TP: V: 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) 1 byte que indica el volumen deseado. El valor mínimo es 1 y el máximo 7. El SOS cambia el volumen de audio y devuelve un mensaje ACK_ADJ_VOL. 4.1.10. Mensaje ACK_ADJ_VOL Es la respuesta enviada por el SOS a la orden ORD_ADJ_VOL. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x8E Datos: TP: V: EQUITEL SOS IP – Protocolos de comunicación y control 1 byte que indica si la orden ORD_ADJ_VOL iba destinada al poste principal (0x90) o al secundario (0x91) 1 byte que indica el nuevo volumen fijado. El valor mínimo es 1 y el máximo 7. 15 Septiembre 2012 – Ed.1.8 4.1.11. Mensaje ORD_ADJ_MIC Mensaje que envía un controlador para modificar el volumen de entrada de audio del SOS. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x07 Datos: TP: V: 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) 1 byte que indica el volumen deseado. El valor mínimo es 1 y el máximo 7. El SOS cambia el volumen de entrada y devuelve un mensaje ACK_ADJ_MIC. 4.1.12. Mensaje ACK_ADJ_MIC Es la respuesta enviada por el SOS a la orden ORD_ADJ_MIC. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x08 Datos: TP: V: EQUITEL SOS IP – Protocolos de comunicación y control 1 byte que indica si la orden ORD_ADJ_MIC iba destinada al poste principal (0x90) o al secundario (0x91) 1 byte que indica el nuevo volumen fijado. El valor mínimo es 1 y el máximo 7. 16 Septiembre 2012 – Ed.1.8 4.2 Envío de alarmas Tanto el módulo E301 como el E321, incorporan la detección y envío de las siguientes alarmas: Puerta abierta del poste principal Puerta abierta del poste secundario Caída de la tensión de batería Para las alarmas correspondientes a las puertas abiertas hay dos entradas dedicadas en los conectores. La alarma de batería se genera cuando la tensión de la batería baja por debajo de un nivel predeterminado. Ver la documentación específica de cada equipo para una descripción detallada de la generación de estas alarmas. 4.2.1. Mensaje ENV_ALA Cuando se genera una de las alarmas, el SOS envía hacia todos los controladores conectados el mensaje ENV_ALA que contiene la indicación de la(s) alarma(s) generadas. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x23 Datos: EP: ES: 1 byte que indica el estado del poste principal 1 byte que indica el estado del poste secundario El significado de cada bit dentro de los bytes EP y ES es el siguiente: Bit Significado 7 --- 6 Batería baja (sólo en poste principal) 5 Puerta abierta 4 --- 3 Fallo alimentación (sólo en E301, poste principal) 2 Audio activo 1 Tono activo 0 Mensaje audio activo Tras el envío de este mensaje, el SOS espera recibir el correspondiente ACK_ENV_ALA Para evitar el envío repetitivo de alarmas innecesario, una vez que se ha enviado una alarma y recibido ACK_ENV_ALA, ésta no se vuelve a enviar hacia las centrales hasta que el SOS recibe una orden ORD_TST_MAN. Esta característica evita el envío repetitivo de alarmas innecesariamente. Por ejemplo, un fallo en el cierre de una puerta podría provocar el envío continuo de alarmas de puerta abierta a cada vibración provocada por el viento, etc. con el consiguiente aumento de tráfico de información y consumo. Para evitar esto, cuando el SOS envía una alarma, activa un bloqueo que impide que la misma alarma se vuelva a enviar hasta que no se ha liberado este bloqueo mediante el envío de un mensaje ORD_TST_MAN. EQUITEL SOS IP – Protocolos de comunicación y control 17 Septiembre 2012 – Ed.1.8 4.2.2. Mensaje ACK_ENV_ALA Es la respuesta que la central envía al SOS al recibir una orden ORD_ENV_ALA. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x83 4.3 Envío de cambio de estado en entradas auxiliares Estos comandos sólo son válidos para el E301 con versión de firmware 3.3 o posterior. El módulo E301 incorpora el envío automático de un comando a la central si existe cambio de estado en alguna de sus 8 entradas digitales. Ver la documentación específica del equipo para una descripción detallada de la generación de estas alarmas. 4.3.1. Mensaje ENV_ST_IN Cuando se genera un cambio en uno de los estados de alguna de las 8 entradas digitales, el SOS envía hacia todos los controladores conectados el mensaje ENV_ST_IN que contiene la información del cambio de estado a la entrada. Estructura del mensaje ESCP (Equitel SOS Control Protocol): Dirección: SOSCC Código: 0x24 Datos: ST: CH: 1 byte que indica el estado actual de la entrada 1 byte que indica que entrada ha producido el envío del mensaje. Todos los bits estarán a 0 excepto el correspondiente a la entrada que ha producido el cambio. El significado de cada bit dentro de los bytes ST y CH es el siguiente: Bit Significado 7 Entrada digital I7 6 Entrada digital I6 5 Entrada digital I5 4 Entrada digital I4 3 Entrada digital I3 2 Entrada digital I2 1 Entrada digital I1 0 Entrada digital I0 Tras el envío de este mensaje, el SOS espera recibir el correspondiente ACK_ST_IN EQUITEL SOS IP – Protocolos de comunicación y control 18 Septiembre 2012 – Ed.1.8 4.3.2. Mensaje ACK_ST_IN Es la respuesta que la central envía al SOS al recibir una orden ENV_ST_IN. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x25 EQUITEL SOS IP – Protocolos de comunicación y control 19 Septiembre 2012 – Ed.1.8 4.4 Prueba y mantenimiento Dentro del protocolo ESCP se han implementado una serie de comandos para realizar pruebas y ayudar en las labores de mantenimiento. De ellos, los más importantes son el llamado “Test de mantenimiento” (ORD_TST_MAN) y el “Test de fonía” (ORD_TST_FON) Con el primero se comprueba que la comunicación con el SOS funciona correctamente y se puede conocer su estado. Con el segundo, se realiza una prueba automática de los circuitos y dispositivos de audio y se devuelve el resultado. El resto de comandos permiten activar o desactivar la emisión de los mensajes pregrabados de audio y el tono de llamada, como ayuda para comprobaciones de mantenimiento. 4.4.1. Mensaje ORD_TST_MAN Mediante este mensaje se puede consultar el estado del SOS y resetear el envío de alarmas. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x46 Como respuesta a este mensaje, el SOS envía a las centrales conectadas el mensaje RES_TST_MAN que contiene su estado. Además, libera el envío de alarmas si previamente habían sido bloqueadas. (Ver descripción del mensaje ENV_ALA) 4.4.2. Mensaje RES_TST_MAN Es el mensaje que el SOS envía hacia las centrales como respuesta a una orden ORD_TST_MAN y contiene la información del estado del SOS. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x89 Datos: EP: 1 byte que indica el estado del poste principal ES: 1 byte que indica el estado del poste secundario NULL: 2 bytes a 0 (para mantener compatibilidad con norma UNE135701) VM: 1 byte que indica el volumen de salida del poste principal. Valores posibles: 1 a 7. VE: 1 byte que indica el volumen de salida del poste principal. Valores posibles: 1 a 7. EQUITEL SOS IP – Protocolos de comunicación y control 20 Septiembre 2012 – Ed.1.8 El significado de cada bit dentro de los bytes EP y ES es el siguiente: Bit Significado 7 --- 6 Batería baja (sólo en poste principal) 5 Puerta abierta 4 --- 3 Fallo alimentación (sólo en E301, poste principal) 2 Audio activo 1 Tono activo 0 Mensaje audio activo 4.4.3. Mensaje ORD_TST_FON Al recibir este mensaje, el SOS hace una prueba de los circuitos de audio y devuelve el resultado Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x45 Datos: TP: TF: 1 byte que indica si el test se ha de realizar al poste principal (0x90) o al secundario (0x91) 1 byte opcional que indica el tipo de test a realizar: 0x00 para probar sólo el micrófono de voz, ó 0x01 para probar los micrófonos de voz y ruido. La prueba de audio se realiza en tres pasos: Primero se analiza el audio de entrada en el SOS a través del micrófono durante 1 segundo para tomar la medida de potencia de audio de entrada a 800Hz. En segundo lugar, se emite un tono de 800Hz a máxima potencia por el altavoz y se vuelve a analizar la entrada de audio por el micrófono para buscar la presencia de este tono, debida a la realimentación acústica. Por último, se compara el valor de potencia obtenido en los dos pasos anteriores y si la diferencia supera un umbral (configurable), el resultado del test se da como válido. Como respuesta a este mensaje, el SOS envía a las centrales conectadas el mensaje RES_TST_FON que contiene el resultado. El campo TF, sólo se admite en el módulo E301 con versiones de firmware superiores a la 5.0 y si se ha adquirido con la opción de cancelación de ruido. Muy importante: El proceso del test dura unos dos segundos en total, con lo que el tiempo entre la ORD_TST_FON y RES_TST_FON puede llegar a ser muy superior al del resto de mensajes. Esto se ha de tener en cuenta a la hora de diseñar el software de las centrales. EQUITEL SOS IP – Protocolos de comunicación y control 21 Septiembre 2012 – Ed.1.8 4.4.4. Mensaje RES_TST_FON Es el mensaje que el SOS envía con el resultado de la prueba de audio realizada al recibir el mensaje ORD_TST_FON. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x88 Datos: TP: RV: RR: 1 byte que indica si el test se ha realizado al poste principal (0x90) o al secundario (0x91) 1 byte que indica el resultado del test: 0x57=OK, 0x58=FALLO Si en la orden ORD_TST_FON se solicitó el test de los micrófonos de voz y ruido, en este byte se devolverá el resultado de la prueba para el micrófono de ruido, con la misma codificación que el campo RV. 4.4.5. Mensaje ORD_VOZ_ON El SOS dispone de dos mensajes de audio configurables: uno que se reproduce cuando la llamada ha sido recibida correctamente en el centro de control, y otro para indicar un fallo. Ver la documentación de los equipos E301 y E321 para una detallada descripción del proceso de configuración de estos mensajes. Mediante este mensaje, se puede iniciar la reproducción de estos mensajes de audio pregrabados. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x4A Datos: TP: TM: 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) 1 byte que indica el mensaje a reproducir: 0x55 para el mensaje “Fuera de servicio” y 0x56 para el mensaje “Llamada recibida” Como respuesta, el SOS enviará a las centrales conectadas el mensaje ACK_VOZ_ON. 4.4.6. Mensaje ACK_VOZ_ON Respuesta enviada por el SOS como confirmación de la recepción de una orden de reproducción de mensaje de audio ORD_VOZ_ON Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x8D Datos: TP: TM: EQUITEL SOS IP – Protocolos de comunicación y control 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) 1 byte que indica el mensaje reproduciéndose: 0x55 para el mensaje “Fuera de servicio” y 0x56 para el mensaje “Llamada recibida” 22 Septiembre 2012 – Ed.1.8 4.4.7. Mensaje ORD_VOZ_OFF Es la orden enviada desde la central para parar la reproducción del mensaje pregrabado iniciado con la última orden ORD_VOZ_ON enviada. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x4B Datos: TP: 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) Como respuesta, el SOS enviará a las centrales conectadas el mensaje ACK_VOZ_OFF. 4.4.8. Mensaje ACK_VOZ_OFF Respuesta enviada por el SOS como confirmación de la recepción de una orden de parada de reproducción de mensaje de audio ORD_VOZ_OFF Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x92 Datos: TP: 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) 4.4.9. Mensaje ORD_TON_ON El SOS es capaz de reproducir dos tipos de tono: “Tono de llamada” y “Tono de ocupado”. Ambos tonos son configurables (ver documentación de los equipos E301 y E321) Con este mensaje se inicia la reproducción de uno de estos tonos desde la central. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x43 Datos: TP: TT: 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) 1 byte que indica el tipo de tono que se desea reproducir: 0x53 para tono de llamada, 0x54 para tono de ocupado Como respuesta, el SOS enviará a las centrales conectadas el mensaje ACK_TON_ON. EQUITEL SOS IP – Protocolos de comunicación y control 23 Septiembre 2012 – Ed.1.8 4.4.10. Mensaje ACK_TON_ON Respuesta enviada por el SOS como confirmación de la recepción de una orden de reproducción de tono ORD_TON_ON Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x86 Datos: TP: TT: 4.4.11. 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) 1 byte que indica el tipo de tono que se está reproduciendo: 0x53 para tono de llamada, 0x54 para tono de ocupado Mensaje ORD_TON_OFF Con este mensaje se detiene la reproducción del tono activado con la última orden ORD_TON_ON enviada. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x44 Datos: TP: 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) Como respuesta, el SOS enviará a las centrales conectadas el mensaje ACK_TON_OFF. 4.4.12. Mensaje ACK_TON_OFF Respuesta enviada por el SOS como confirmación de la recepción de una orden de parada de reproducción de tono ORD_TON_OFF Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x87 Datos: TP: EQUITEL SOS IP – Protocolos de comunicación y control 1 byte que indica si se debe aplicar al poste principal (0x90) o al secundario (0x91) 24 Septiembre 2012 – Ed.1.8 4.5 Acceso a puerto auxiliar Estos comandos sólo son válidos para módulos E301. El módulo E301 tiene un puerto auxiliar con 8 entradas y 8 salidas digitales que pueden ser utilizadas para acceso a dispositivos externos. El acceso a este puerto se hace mediante unos sencillos mensajes con sus correspondientes ACKs: 4.5.1. Mensaje ORD_ESC_IO Mediante este mensaje se cambia el estado de las salidas auxiliares del módulo E301. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x48 Datos: NP: 1 byte indicando el número de puerto a escribir. Debe ser siempre 0 DATA: 1 byte que indica el estado de las 8 salidas después de la orden. Como respuesta, el SOS enviará a las centrales conectadas el mensaje ACK_ESC_IO. 4.5.2. Mensaje ACK_ESC_IO Respuesta enviada por el SOS como confirmación de la recepción de una orden de escritura en el puerto auxiliar. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x8B Datos: NP: RES: 1 byte indicando el número de puerto escrito. Será siempre 0 1 byte que indica el resultado de la operación: 0x57 si la operación se ha podido realizar, 0x58 en caso de fallo 4.5.3. Mensaje ORD_LEC_IO Mensaje utilizado para leer el estado de las entradas auxiliares del módulo E301. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x49 Datos: NP: 1 byte indicando el número de puerto a leer. Debe ser siempre 0 Como respuesta, el SOS enviará a las centrales conectadas el mensaje ACK_LEC_IO. EQUITEL SOS IP – Protocolos de comunicación y control 25 Septiembre 2012 – Ed.1.8 4.5.4. Mensaje ACK_LEC_IO Respuesta enviada por el SOS como confirmación de la recepción de una orden de lectura del puerto auxiliar. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x8C Datos: NP: 1 byte indicando el número de puerto leído. Será siempre 0 DATA: 1 byte que indica el estado de las 8 entradas del puerto. 4.5.5. Mensaje ORD_ESC_IO_ONE Mediante este mensaje se cambia el estado de una de las ocho salidas auxiliares del módulo E301, sin modificar el estado del resto. Este mensaje sólo está disponible para el E301 en versiones de firmware superiores a la 5.0 Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x64 Datos: NO: ST: 1 byte indicando el número de salida a escribir. Ha de estar entre 0 y7 1 byte que indica el estado a aplicar a la salida. Si es 0, la salida tomará un nivel bajo (abierta). Si es 1, la salida tomará un nivel alto (cerrada). Como respuesta, el SOS enviará a las centrales conectadas el mensaje ACK_ESC_IO_ONE. 4.5.6. Mensaje ACK_ESC_IO_ONE Respuesta enviada por el SOS como confirmación de la recepción de una orden de cambio de estado de una salida aislada en el puerto auxiliar. Este mensaje sólo está disponible para el E301 en versiones de firmware superiores a la 5.0 Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x65 4.5.7. Mensaje ORD_ST_OUT Consulta el estado de las salidas auxiliares del módulo E301. Este mensaje sólo está disponible para el E301 en versiones de firmware superiores a la 5.0 Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x62 Como respuesta, el SOS enviará a las centrales conectadas el mensaje ACK_ST_OUT. EQUITEL SOS IP – Protocolos de comunicación y control 26 Septiembre 2012 – Ed.1.8 4.5.8. Mensaje ACK_ST_OUT Devuelve el estado de las salidas auxiliares del módulo E301, como respuesta al envío de la orden ORD_ST_OUT. Este mensaje sólo está disponible para el E301 en versiones de firmware superiores a la 5.0 Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x63 Datos: ST: EQUITEL SOS IP – Protocolos de comunicación y control 1 byte que indica el estado de las salidas. El bit más bajo representa el estado de la salida 0, y el más alto el de la 7. 27 Septiembre 2012 – Ed.1.8 4.6 Indicación de estado de comunicaciones de los E321 Estos comandos sólo son válidos para el módulo E311 El E311 se puede configurar para que, en caso de pérdida de comunicación con un módulo E321, deje de publicar la dirección IP que le corresponde, con lo que se simularía el comportamiento de un módulo E301 que ha dejado de funcionar. Ahora bien, si no se desea utilizar esta característica, existe un método alternativo para detectar desde el centro de control que se ha perdido la comunicación con un módulo. Para ello, el E311 no deja de publicar la IP correspondiente, pero envía un mensaje que indica la pérdida o recuperación de comunicación. Son mensajes asíncronos, que no esperan ninguna respuesta de la central. Estos mensajes son los siguientes: 4.6.1. Mensaje E321_LOST Es el mensaje enviado por el E311 para indicar que el módulo E321 ha perdido las comunicaciones. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x15 El mensaje se envía utilizando la dirección IP del módulo que ha dejado de comunicar. 4.6.2. Mensaje E321_REC Es el mensaje enviado por el E311 para indicar que el módulo E321 ha recuperado las comunicaciones. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x16 El mensaje se envía utilizando la dirección IP del módulo que ha dejado de comunicar. 4.7 Comprobación de conexiones TCP en el sistema E311-E321 (“Keep-Alive”) En el E311 se ha implementado un mecanismo de comprobación de la comunicación TCP con la central (“Keep-Alive”) que puede ser utilizado para dos cosas: 9 1. Para forzar tráfico entre la central y el E311 sin tener que activar los postes E321 . Esto puede resultar útil en redes con elementos que si no detectan actividad durante un tiempo, cierran automáticamente las conexiones. 2. Para comprobar que los sockets TCP no se han quedado semi-abiertos. Esta condición se da cuando un equipo por alguna causa, cierra su socket pero no informa al extremo opuesto. Este mecanismo consiste en el envío de un paquete TCP desde el controlador hacia el E311 con los bytes [0x05][0x20]. El E311 devolverá el mismo paquete hacia el controlador inmediatamente. El tiempo de respuesta no será nunca superior a los 100 ms. (9) En los módulos E301 se puede utilizar con este mismo fin el comando ORD_TST_MAN, pero en el caso del sistema E311-E321, esto provoca un consumo energético en los módulos E321 que puede ser inasumible en ocasiones. EQUITEL SOS IP – Protocolos de comunicación y control 28 Septiembre 2012 – Ed.1.8 4.8 Megafonía Sólo válido para E301 con versión de firmware 3.3 o posterior. El módulo E301 tiene una salida de audio adicional para ser utilizada como sistema de megafonía. Los paquetes de audio RTP, en el mismo formato que el usado para las comunicaciones vocales (G711-A), han de ser enviados a una dirección multicast a la que el módulo E301 se agregará cuando se le indique para decodificarlos y enviar el audio resultante hacia la salida. El control de activación / desactivación de la decodificación se hace con el comando ORD_MEG_ST. Con la orden ORD_MEG_VOL se puede controlar el nivel de la señal de salida, y con ORD_MEG_QRY se puede consultar el estado de dicha salida. A continuación se muestran los comandos involucrados: 4.8.1. Mensaje ORD_MEG_ST Controla la activación y desactivación de la salida de megafonía del E301. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x51 Datos: NULL 1 byte de valor 0x00 ACT: Activación: 0xFF para activar, 0x00 para desactivar (1 byte) IP: 4 bytes que indican la dirección IP multicast en la que recibir los paquetes RTP de audio. El byte de más peso se envía primero: [IP3] [IP2] [IP1] [IP0] PORT:2 bytes que indican el puerto RTP en el que recibir los paquetes RTP de audio. El byte de más peso se envía primero: [P1] [P0] 4.8.2. Mensaje ACK_MEG_ST Respuesta que el E301 envía al recibir una orden ORD_MEG_ST. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x52 EQUITEL SOS IP – Protocolos de comunicación y control 29 Septiembre 2012 – Ed.1.8 4.8.3. Mensaje ORD_MEG_VOL Permite ajustar el nivel de salida de la señal de megafonía. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x53 Datos: NULL 1 byte de valor 0x00 VOL: 1 byte indicando el volumen (de 0 a 0x0A) El byte de volumen puede tomar valores entre 0 y 10 (0xA), según la siguiente tabla: Valor 0 1 2 3 4 5 6 7 8 9 10 Amplificación de salida -10 dB -8 dB -6 dB -4 dB -2 dB 0 dB +2 dB +4 dB +6 dB +8 dB +10 dB El valor de volumen por defecto es 5 4.8.4. Mensaje ACK_MEG_VOL Respuesta que el E301 envía al recibir una orden ORD_MEG_VOL. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x54 4.8.5. Mensaje ORD_MEG_QRY Consulta el estado de la salida de megafonía del E301. Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x55 EQUITEL SOS IP – Protocolos de comunicación y control 30 Septiembre 2012 – Ed.1.8 4.8.6. Mensaje RES_MEG_QRY Es la respuesta a la orden ORD_MEG_QRY, en la que se devuelve el estado de la salida de megafonía del E301 Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x56 Datos: ACT: VOL: IP: EQUITEL SOS IP – Protocolos de comunicación y control Estado: 0xFF activa, 0x00 inactiva (1 byte) Nivel de señal , según lo indicado en ORD_MEG_VOL 4 bytes que indican la dirección IP multicast para recibir los paquetes RTP de audio. El byte de más peso se envía primero: [IP3] [IP2] [IP1] [IP0] PORT: 2 bytes que indican el puerto RTP para recibir los paquetes RTP de audio. El byte de más peso se envía primero: [P1] [P0] 31 Septiembre 2012 – Ed.1.8 4.9 Control del cancelador de ruido en el módulo E301 El módulo E301, a partir de la versión de PCB E301V0121, vigente desde Septiembre de 2012, se puede adquirir con la opción de cancelación de ruido (ver manual de usuario del E301). Si se adquiere el módulo con esta opción, se pueden utilizar una serie de mensajes para consultar y controlar la activación de los canceladores de ruido y eco, así como los parámetros de funcionamiento. Para estos comandos, se utiliza la orden genérica “ORD_AUD_CTRL” (código 0x10) , a la que se añade un byte de datos que representa una sub-orden distinta. A estos comandos, la respuesta del módulo será “ACK_AUD_CTRL” (código 0x11). 4.9.1. Mensaje ORD_AUD_CTRL Estructura del mensaje ESCP: Dirección: CCSOS Código: 0x10 Datos: SO D0: D1: Código de sub-orden (Ver tabla más abajo) Dato auxiliar 1. Su valor depende de la sub-orden usada (ver tabla) Dato auxiliar 2. Su valor depende de la sub-orden usada (ver tabla) El módulo responderá con ACK_AUD_CTRL Tabla de sub-órdenes: Sub-orden QUERY ECO_ON ECO_OFF RUIDO_ON RUIDO_OFF UMBRAL_RUIDO Acción Consulta de estado Activación del cancelador de eco Desactivación del cancelador de eco Activación del cancelador de ruido Desactivación del cancelador de ruido Fijación del umbral de decisión para el cancelador de ruido Código 0x01 0x02 0x03 0x04 0x05 0x07 D0 ----------Umbral_L D1 ----------Umbral_H Notas: Los valores Umbral_L y Umbral_H corresponden a los bytes de menor y mayor peso respectivamente del valor de umbral. Dicho valor puede estar comprendido entre 0x0000 y 0xFFFF. Valores mayores suponen mayor eliminación de ruido y viceversa. La elección de este umbral se ha de hacer de forma experimental, ya que dependerá en gran medida de las condiciones físicas de la carcasa, ubicación de los micrófonos etc. Este ajuste se puede hacer mediante la herramienta “SOS Control Tool”, versión 7 o posterior, que EQUITEL proporciona gratuitamente. Los códigos de sub-orden válidos son los reflejados en la tabla. El resto de valores están reservados para uso interno de EQUITEL. Se ha de tener precaución de no enviar otros valores, puesto que puede afectar al funcionamiento del equipo. EQUITEL SOS IP – Protocolos de comunicación y control 32 Septiembre 2012 – Ed.1.8 4.9.2. Mensaje ACK_AUD_CTRL Respuesta que se envía al recibir la orden AUD_CTRL. Estructura del mensaje ESCP: Dirección: SOSCC Código: 0x11 Datos: SO EQUITEL SOS IP – Protocolos de comunicación y control Código de sub-orden enviada. Será el mismo que el enviado en la correspondiente ORD_AUD_CTRL SC: Estado canceladores. EL bit más bajo indica si el cancelador de eco está activo (1) o no (0). El estado del cancelador de ruido está indicado por el bit siguiente. M0: (Reservado) M1: (Reservado) U0: Byte de menor peso del valor del umbral del cancelador de ruido U1: Byte de mayor peso del valor del umbral del cancelador de ruido 33 Septiembre 2012 – Ed.1.8 5. Comunicación de audio utilizando RTP y G.711-A La comunicación de audio dentro del sistema de postes SOS IP de EQUITEL utiliza el protocolo RTP con una codificación G.711-A. Esta comunicación comporta dos procesos: la codificación y la decodificación. En cuanto a la codificación, los SOS envían el stream RTP a la dirección IP y puerto indicados mediante el protocolo ESCP al activar el audio. Por lo que respecta a la decodificación, los SOS siempre atienden al puerto UDP de entrada 6666 (0x1A0A). A continuación se describen en detalle los procesos de codificación y decodificación del audio utilizados en el sistema SOS. Codificación: El proceso de codificación y encapsulado del audio se muestra en el siguiente diagrama de bloques: Figura 11: Codificación G711 y encapsulado RTP El proceso, a grandes rasgos, es el siguiente: La entrada de audio se digitaliza a razón de 8000 muestras por segundo. Cada muestra se ha de tomar como 10 mínimo con 12 bits de resolución . Estas muestras de audio se almacenan en un buffer con capacidad de almacenar 160 muestras, lo que equivale a 20 milisegundos de audio. Cada vez que se dispone de un paquete de 160 muestras, se aplica la codificación G.711-A que consiste, básicamente en convertir cada muestra PCM de 12 bits en un dato de 8 bits según la siguiente tabla: P10 0 0 0 0 0 0 0 1 P9 0 0 0 0 0 0 1 A P8 0 0 0 0 0 1 A B Muestra PCM (Sin signo) P7 P6 P5 P4 P3 0 0 0 0 A 0 0 0 1 A 0 0 1 A B 0 1 A B C 1 A B C D A B C D B C D C D - P2 B B C D - P1 C C D - P0 D D - G6 0 0 0 0 1 1 1 1 Dato G.711-A (Sin signo) G5 G4 G3 G2 G1 0 0 A B C 0 1 A B C 1 0 A B C 1 1 A B C 0 0 A B C 0 1 A B C 1 0 A B C 1 1 A B C G0 D D D D D D D D (10) Lo habitual es, por ejemplo en un ordenador, tomar muestras a 16 bits y hacer el correspondiente tratamiento para reducirlas a 12 bits. EQUITEL SOS IP – Protocolos de comunicación y control 34 Septiembre 2012 – Ed.1.8 Para obtener el valor del dato G.711-A correspondiente a una muestra, se toma el módulo de esta (11 bits P10…P0) y según el valor de los bits más significativos, se tomarán los 4 bits correspondientes (A, B, C, D) para formar el dato G.711-A. Si la muestra PCM es negativa, el dato G711-A resultante, también será negativo, con lo que se codificará en complemento a 2. Como se observa en la tabla, las muestras que tienen un menor valor se codifican sin merma de resolución, pero para muestras con un módulo mayor, se van despreciando los bits menos significativos. Finalmente, el dato obtenido, se ha de enmascarar haciendo una operación XOR bit a bit con el número 0x55 (01010101b) Con los 160 datos G.711-A obtenidos (160 bytes), se procede a formar el paquete RTP para ser enviado por la red, utilizando el protocolo UDP. El protocolo RTP, definido en la RFC 3550, es un estándar de comunicación de contenido de audio y vídeo para redes IP que permite a los receptores compensar el jitter y el desordenamiento de los paquetes que se pueden producir en la red. Básicamente consiste en la estandarización de la longitud de los paquetes, el orden de envío de la información y un encabezamiento en función de qué tipo de contenido se haya de encapsular. En el caso que nos ocupa, para el envío de audio codificado según el código G.711-A, los paquetes RTP han de estar formados del siguiente modo: Bit 0 V 7 P X CC 15 M 23 Sequence PT 31 TimeStamp SSRC D0 D1 D2 D3 D158 D159 … D158 D157 La cabecera está formada por 4 palabras de 32 bits, que contienen los siguientes campos: V (Version): 2 bits que representan la versión del protocolo RTP utilizado. Siempre ha de ser igual a 2 P (Padding bit): bit que indica si el paquete han sido rellenados con datos vacíos por motivos de alineamiento. En nuestro caso nunca se usa. Siempre debe ser 0. X (Xtension bit): bit que indica si la cabecera está extendida. Se aplica a otro tipo de contenidos. En nuestro caso siempre debe de ser 0. CC (CSRC Count): 4 bits que indican el número de campos CSRC que siguen a la cabecera. Los campos CSRC no se usan en este tipo de contenidos, por tanto estos 4 bits siempre serán 0. M (Marker): un bit cuyo uso se define según el tipo de contenido. En el caso de audio en G.711-A, este bit siempre ha de ser 0. PT (Payload Type): 7 bits que indican el tipo de contenido que transporta el paquete RTP. Es el que permite a los receptores discriminar el contenido del paquete. Los valores de este campo están normalizados por la 11 IANA . Para el audio codificado en G.711-A el valor de este campo es 8. Sequence: Número de 16 bits que identifica cada paquete consecutivamente. Es utilizado por el receptor para reordenar los paquetes si es necesario. TimeStamp: Es una marca de tiempo de 32 bits que indica el momento de la emisión de cada paquete desde (11) Internet Assigned Numbers Authority EQUITEL SOS IP – Protocolos de comunicación y control 35 Septiembre 2012 – Ed.1.8 el inicio de la sesión. Las unidades en que se mide el tiempo dependen del tipo de contenido. Para el G711, las unidades son incrementos de 125 µs. Por tanto, en cada paquete RTP emitido se ha de incrementar este dato en 160 con respecto al anterior. SSRC (Synchronization Source Identifier): Número de 32 bits utilizado para sincronización de varias tramas RTP si es necesario. En nuestro caso puede ser cualquier número, dado que no hay sincronización alguna. A continuación se adjuntan los datos que forman el contenido del paquete de audio, en orden natural, es decir: primero el más antiguo y el último el más reciente. Por tanto, el paquete RTP así formado tendrá una longitud de 172 bytes. Este paquete, se envía utilizando el protocolo UDP. Decodificación: El proceso de decodificación se puede resumir en el siguiente diagrama: Figura 12: Recepción RTP y decodificación G711 Los paquetes RTP recibidos en el puerto 0x1A0A, se almacenan en un buffer de tipo FIFO para compensar el 12 jitter introducido en la red. Asimismo, se puede aprovechar este buffer para reordenar los paquetes si es necesario. Cuanta más capacidad tenga este buffer, más robusto será el receptor frente al jitter, pero más retardo se introducirá en el audio. De este buffer se extrae, cada 20 milisegundos, un paquete que se decodifica para obtener las muestras PCM correspondientes y enviarlas hacia el convertidor digital-analógico. Esta decodificación se hace aplicando el proceso contrario al de codificación visto anteriormente. (12) El tiempo que tarda un paquete de datos en viajar hasta el destino no es fijo, depende de varios factores. Los paquetes que salen de un emisor con una cadencia constante, no llegan al receptor con la misma cadencia. Esta fluctuación en la frecuencia de recepción es lo que se conoce como “jitter”. EQUITEL SOS IP – Protocolos de comunicación y control 36 Septiembre 2012 – Ed.1.8 6. SIP SIP es un protocolo de establecimiento de comunicaciones, definido en la RFC 3261, muy utilizado actualmente en sistemas de telefonía IP. (Ver punto 2 para una descripción genérica de la tecnología VoIP) Este protocolo abarca la gestión del establecimiento, modificación y finalización de sesiones de intercambio de servicios multimedia entre participantes a través de redes digitales: llamadas telefónicas, video-conferencias, envío de contenidos multimedia, etc. La aplicación más extendida que se da actualmente a este protocolo es la gestión de llamadas VoIP. EQUITEL ha escogido este protocolo para dar un servicio añadido a sus sistemas SOS: poder derivar las llamadas generadas en los postes hacia redes telefónicas estándares, bien sean de tipo VoIP o de otro tipo, utilizando los dispositivos intermedios apropiados. Tanto los módulos E301 como el E311, tienen la posibilidad de derivar la llamada hacia una red telefónica utilizando una centralita SIP (PABx) como intermediaria cuando no es atendida desde la central. SIP, como se puede intuir, es un protocolo complejo ya que abarca muchos aspectos. Pero en este caso se ha implementado una parte muy pequeña, dado que no es necesario nada más para la sencilla funcionalidad de un poste SOS. En este capítulo trataremos de hacer una breve descripción de algunos conceptos básicos necesarios para comprender la aplicación de este protocolo al sistema de postes SOS. 6.1 Algunos conceptos básicos En una red básica VoIP gestionada por el protocolo SIP se distinguen los siguientes elementos principalmente: Agentes de usuario (User Agent): Es cualquier dispositivo capaz de iniciar o aceptar una sesión SIP. Puede ser un teléfono IP, un videoteléfono, un ordenador con una aplicación apropiada, un módulo E301 ó E311 etc. Servidores de registro (Registrar): Es un servidor que mantiene el seguimiento de las ubicaciones físicas (dirección IP) de cada agente de usuario en la red. Cada agente de usuario posee una dirección lógica que es invariable respecto a la dirección física, que puede cambiar. Al conectarse a la red, cada agente ha de registrarse en el servidor para informarle de cuál es su dirección lógica y la dirección física que en ese momento tiene. En el ejemplo más típico de uso de protocolo SIP, que es la telefonía IP, las direcciones lógicas son el equivalente al número de extensión. Cada teléfono (agente de usuario) tiene una extensión fija pero su dirección IP puede cambiar (puede asignarse dinámicamente mediante protocolo DHCP, por ejemplo). La centralita SIP, en este caso, contiene un agente de registro que mantiene una lista de la equivalencia entre cada número de extensión y sus correspondientes direcciones IP en la red. Además, esta centralita puede dar permiso a cada agente de usuario a registrarse o no, mediante el uso de contraseñas de seguridad, a fin de admitir sólo los agentes autorizados. Una vez que un agente está registrado, el resto podrá acceder a él a través del servidor de registro utilizando la dirección lógica (extensión) asignada. La asociación entre dirección lógica y dirección física dentro del agente de registro tiene un periodo de validez fijado, de forma que si la suscripción no se renueva antes, caduca y hace al agente inaccesible al resto de los equipos. EQUITEL SOS IP – Protocolos de comunicación y control 37 Septiembre 2012 – Ed.1.8 Servidor SIP: Un servidor SIP pone en contacto un agente con otro, bien intercambiando directamente los mensajes entre él mismo y los agentes en juego (servidor proxy) o bien indicando la dirección de envío de cada agente al resto (servidor de redirección). En definitiva, es el encargado de establecer las sesiones y poner en contacto un extremo con otro en una comunicación. En la aplicación más habitual de telefonía IP, el servidor de registro y el servidor SIP están dentro de un mismo elemento, normalmente la centralita o PABx. Gateway VoIP: Cuando se desea poner en comunicación elementos de distintas tecnologías, se ha de recurrir a las puertas de enlace (Gateways). Un Gateway puede, por ejemplo, hacer de enlace entre una red VoIP y la red telefónica conmutada para realizar llamadas entre teléfonos tradicionales y teléfonos IP. Nuevamente, en la aplicación habitual de telefonía IP, este elemento reside dentro de la centralita o PABx 6.2 Implementación de SIP en los módulos E301 y E311 A los efectos del protocolo SIP, los módulos E301 y E311 actúan como agentes de usuario, como lo haría un teléfono IP, con la única salvedad de que no pueden recibir llamadas; sólo las hacen. Ambos módulos se pueden registrar en la centralita PBX, en la que se habrá de haber configurado una extensión específica para cada E301 ó E311 que se desee utilizar. 13 Una vez configurado adecuadamente tanto la centralita como los módulos E301 ó E311 , éstos se registrarán en ella y ya podrán realizar llamadas hacia otros teléfonos (IP o no dependiendo de las capacidades de la centralita) Para tratar de aclarar este proceso, vamos a poner un ejemplo muy simple: Ejemplo: Vamos a construir una sencilla red consistente en: Uno o varios módulos E301 Un ordenador que hace las veces de PBX Un teléfono IP (se puede sustituir por otro ordenador con un software de SOFT-PHONE) Para este ejemplo, vamos a utilizar el software AXXON de la empresa ‘NCH Swift Sound Software’, que contiene una centralita y un teléfono IP virtuales. Se puede descargar una copia de evaluación de la página http://www.nch.com.au/pbx/index.html No obstante, hay muchas otras soluciones similares en el mercado. El esquema de la red quedaría así: (13) Ver la documentación particular de cada equipo para una descripción detallada del proceso de configuración del agente SIP integrado en los módulos. EQUITEL SOS IP – Protocolos de comunicación y control 38 SOS SOS Septiembre 2012 – Ed.1.8 Figura 13: Ejemplo de derivación de llamadas a través de centralita SIP El conjunto ordenador + software PBX Virtual tiene, a todos los efectos, la misma funcionalidad que puede tener una centralita VoIP comercial. 14 El procedimiento de configuración de la red, a grandes rasgos , es como sigue: 1. Configurar la centralita para dar de alta tantas extensiones como módulos E301 se deseen utilizar y otra extensión para el teléfono. 2. Configurar el teléfono IP para que se registre en la centralita con la extensión asignada. Es muy importante que el teléfono IP tenga capacidad de utilizar el códec de audio G711-A, que es el utilizado por los módulos E301. 3. Configurar los módulos E301 para que se registren también en la centralita con la extensión asignada a cada uno de ellos. 4. En los módulos E301, configurar la lista de extensiones a las que derivar la llamada cuando ésta no es atendida desde la central. En este caso se utilizará sólo una de las 10 posibles. Cuando todos los equipos se han configurado, se ha de comprobar en la centralita que efectivamente todos se hallan registrados y, por tanto, con capacidad de comunicarse. Al realizar una llamada desde uno de los SOS, el módulo E301 intentará enviar el correspondiente mensaje hacia la central. Como ésta no existe, inmediatamente pasará a derivar la llamada hacia la extensión programada. Al descolgar el teléfono, se podrá establecer la comunicación vocal entre éste y el SOS. (14) Los métodos particulares de configuración de la centralita y el teléfono, quedan fuera del alcance de este documento. Para la configuración del módulo E301, ver la documentación particular de este equipo. EQUITEL SOS IP – Protocolos de comunicación y control 39 Septiembre 2012 – Ed.1.8 7. Apéndices 7.1 Algoritmo de cálculo del CRC utilizado en el protocolo ESCP El algoritmo utilizado en el cálculo del campo CRC dentro del protocolo ESCP es el CRC-16-CCITT, que 16 12 5 corresponde al polinomio (x +x + x +1). En el código siguiente se muestra un ejemplo de rutina de cálculo de este CRC. Está escrita en Visual Basic, pero su traducción a otros lenguajes es trivial, dada la sencillez del código: Private Function CRC(ByVal Datagram() As Byte, ByVal Size As Byte) As UShort Dim Reg As UShort Dim Acc As UShort Dim Tmp As UShort Dim i, j As Integer For i = 0 To Size - 1 Reg = Datagram(i) Reg = Reg << 8 For j = 0 To 7 Tmp = Reg Xor Acc Acc = Acc << 1 If (Tmp And &H8000) = &H8000 Then Acc = Acc Xor &H1021 End If Reg = Reg << 1 Next Next Return Acc End Function Datagram() es el array conteniendo todos los bytes que componen el mensaje ESCP. Size contiene la longitud del mensaje. El resultado se obtiene en un entero sin signo de 16 bits. EQUITEL SOS IP – Protocolos de comunicación y control 40