De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
Dit document beschrijft hoe u Session Initiation Protocol (SIP)-Normalisatie-scripts in Cisco Call Manager (CCM) kunt gebruiken met weinig basisvoorbeelden.
Cisco raadt kennis van de volgende onderwerpen aan:
De informatie in dit document is gebaseerd op CCM versie 11.5.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk levend is, zorg er dan voor dat u de mogelijke impact van om het even welke opdracht begrijpt.
In het geval van SIP Trunk, moet het script direct op de SIP stam worden toegepast. Het gebruik van script op SIP profile in plaats van Trunk werkt niet.
Hier zijn de stappen die u moet volgen:
2. Navigeer naar apparaat > Trunk.
Selecteer de Trunk waarop u het script wilt toepassen en selecteer vervolgens het script dat eerder is gemaakt op de configuratiesagina. Selecteer de optie Overtrekken inschakelen en druk vervolgens de wijzigingen af die door het script worden aangebracht in de loggen van Signal Distribution Layer (SDL), zoals in de afbeelding. Bewaar de configuratie, Toepassen Config gevolgd door resetten van de romp zodat de wijzigingen van kracht worden.
In het geval van SIP-telefoons moet u het script op SIP Profile van de telefoons gebruiken.
Hier zijn de stappen die je moet volgen.
De belangrijkste bron voor gedetailleerde stappen hoe het SIP-normalisatie-script te ontwikkelen is: Development Guide voor SIP-transparantie en -normalisatie.
Deze gids bevat verschillende functies die beschikbaar zijn om manipulatie te doen in SIP-berichten en SDP-inhoud (Session Description Protocol) en andere geavanceerde API’s.
Hier zijn weinig basaal voorbeeldscript:
Hier vervangt u de anonieme tekst uit From Header of vertrekkend SIP INVITE/REINVITE-bericht.
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 | verklaring |
M= {} | Initialisatie van de berichtinhoud. M krijgt hier alle inhoud van het SIP-bericht |
functie M.outbound_INVITE (msg) | Lua-functie die wordt toegepast op M(SIP Message) in de uitgaande richting INVITE/REINVITE-bericht. De richting wordt altijd bepaald in termen van CUCM, of het nu binnenkomt of naar buiten gaat. Berichttype kan van verschillende typen zijn, zoals INVITE, 183, 200. Raadpleeg voor meer informatie de sectie Overzicht van de Guide van ontwikkelaars voor SIP-normalisatie. |
lokaal vanuit = msg:getHeader("From") | Hiermee slaat u de inhoud van Van bericht op in lokale variabele vorm |
GetHeader | Eén van de functies die beschikbaar zijn voor normalisatie in CCM om de inhoud van een header in variabele te krijgen |
string.gsub | Een Lua Functie om een bepaalde inhoud van string te vervangen |
Kop wijzigen | Opnieuw is er een functie beschikbaar in CCM om de inhoud van de header te wijzigen |
Hier verwijdert u de kop van Cisco-Guide uit het inkomende SIP INVITE/REINVITE-bericht:
M = {} function M.inbound_INVITE(msg) msg:removeHeader("Cisco-Guid") end return M
Hier, voeg je de INFO toe in de inhoud van Allow header.
Dit wordt toegevoegd aan de oorspronkelijke inhoud van Sta toe na een komma.
M = {} function M.outbound_INVITE(msg) msg:addHeader("Allow", "INFO") end return M
Er zijn API's beschikbaar om de SDP-inhoud van een SIP-bericht te wijzigen. Om SDP te kunnen wijzigen moet deze het SDP-content-lichaam verkrijgen van het Lua SIP Berichtobject met de getSdp() API die is geleverd door het SIP Berichtobject. Het script kan dan de string bibliotheek gebruiken die Cisco's API's bevat om de SDP te manipuleren. Bij wijziging wordt de SDP teruggeschreven naar het SIP Message Object met de setSdp(sdp) API die door het SIP-berichtobject is geleverd. Raadpleeg SIP-berichten API’s voor verdere informatie over deze API’s.
local sdp = msg:getSdp() -- modification of the SDP happens at this point -- Update the SDP associated with the SIP message msg: etSdp(sdp)
Opmerking: De code verandert a= lijn voor G.722 codec om G722 zonder de punt te zijn.
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
Gebruik dit gedeelte om te bevestigen dat de configuratie correct werkt.
Schakel Optie overtrekken in wanneer u het script toepast om te controleren of het Script werkt of niet vanaf de SDL-logboeken.
Deze sectie verschaft informatie die u kunt gebruiken om problemen met uw configuratie op te lossen.
Hier volgen een paar controles als het script niet werkt zoals verwacht: