El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe cómo utilizar el script de normalización del protocolo de inicio de sesión (SIP) en Cisco Call Manager (CCM) con algunos ejemplos básicos.
Cisco recomienda que tenga conocimiento sobre estos temas:
La información de este documento se basa en la versión 11.5 de CCM.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
En el caso del troncal SIP, el script debe aplicarse directamente en el troncal SIP. El uso del script en el perfil SIP en lugar de Trunk no funcionará.
Estos son los pasos que debe seguir:
2. Vaya a Dispositivo > Troncal.
Seleccione el enlace troncal en el que desea aplicar el script y, en la página de configuración, seleccione el script creado anteriormente. Seleccione la opción Habilitar seguimiento e imprimirá los cambios realizados por el script en los registros de Capa de distribución de señales (SDL), como se muestra en la imagen. Guarde la configuración, Aplique la configuración seguida del restablecimiento del tronco para que los cambios surtan efecto.
En el caso de los teléfonos SIP, debe utilizar la secuencia de comandos en el perfil SIP de los teléfonos.
Estos son los pasos que debe seguir.
La fuente principal de los pasos detallados sobre cómo desarrollar el script de normalización SIP está aquí: Guía del Desarrollador para la Transparencia y Normalización de SIP.
Esta guía contiene diferentes funciones disponibles para la manipulación de mensajes SIP y contenido de protocolo de descripción de sesión (SDP) y otras API avanzadas.
A continuación, se muestran algunos ejemplos básicos de secuencia de comandos:
Aquí reemplaza el anónimo del mensaje From Header de SIP INVITE/REINVITE saliente.
M = {} function M.outbound_INVITE(msg) -- Replacing the Anonymous from From Header local from = msg:getHeader("From") local newfrom = string.gsub(from, "anonymous" ,"1111") msg:modifyHeader("From", newfrom) end return M
Code | Explicación |
M={} | Inicialización del contenido del mensaje. M obtiene todo el contenido del mensaje SIP aquí |
función M.outbound_INVITE(msg) | Función Lua que se aplica a M(mensaje SIP) en la dirección saliente mensaje INVITE/REINVITE. La dirección siempre se decide en términos de CUCM, ya sea entrante o saliente. El tipo de mensaje puede ser de diferentes tipos, como INVITE, 183, 200. Para obtener más detalles, consulte la sección Descripción General de la Guía de Desarrolladores para la Normalización de SIP. |
local from = msg:getHeader("From") | Almacena el contenido del mensaje From en formato de variable local |
getHeader | Una de las funciones disponibles para la normalización en CCM para obtener el contenido de un encabezado en variable |
string.gsub | Una función Lua para reemplazar un contenido determinado de una cadena |
ModifyHeader | Una vez más, una función disponible en CCM para modificar el contenido del encabezado |
Aquí, elimina el encabezado de la guía de Cisco del mensaje SIP INVITE/REINVITE entrante:
M = {} function M.inbound_INVITE(msg) msg:removeHeader("Cisco-Guid") end return M
Aquí, agrega la INFORMACIÓN en el contenido del encabezado Permitir.
Esto se agrega en el contenido original de Permitir después de una coma.
M = {} function M.outbound_INVITE(msg) msg:addHeader("Allow", "INFO") end return M
Hay API disponibles para modificar el contenido SDP de un mensaje SIP. Para modificar SDP, debe obtener el cuerpo de contenido SDP del objeto Lua SIP Message con la API getSdp() proporcionada por el objeto SIP Message. A continuación, el script puede utilizar la biblioteca de cadenas que incluye las API de Cisco para manipular el SDP. Al realizar la modificación, el SDP se devuelve al objeto SIP Message con la API setSdp(sdp) proporcionada por el objeto SIP Message. Consulte API de mensajes SIP para obtener más información sobre estas API.
local sdp = msg:getSdp() -- modification of the SDP happens at this point -- Update the SDP associated with the SIP message msg: etSdp(sdp)
Nota: El código cambia la línea a= para que el códec G.722 sea G722 sin el punto.
M = {} function M.inbound_INVITE(msg) local sdp = msg:getSdp() if sdp then local g722_line = sdp:getLine("a=","G.722") if g722_line then --Replace G.722 with G722. The dot is special and must be escaped using % when using gsub. g722_line = g722_line:gsub("G%.722", "G722") sdp = sdp:modifyLine("a=", "G.722", g722_line) msg:setSdp(sdp) end end end return M
Utilize esta sección para confirmar que su configuración funcione correctamente.
Habilite la opción Trace cuando aplique el script para verificar si el script funciona o no desde los registros SDL.
En esta sección se brinda información que puede utilizar para resolver problemas en su configuración.
Estas son algunas comprobaciones si el script no funciona como se esperaba: