Session Initiation Protocol (SIP) in Liberty verwalten
Sie können SIP in Liberty konfigurieren, indem Sie Elemente in der Datei server.xml hinzufügen und konfigurieren.
Vorbereitende Schritte
Installieren Sie das Feature sipServlet-1.1 auf Ihrem Liberty-Server. Weitere Informationen finden Sie im Artikel Liberty-Features hinzufügen und entfernen.
Informationen zu diesem Vorgang
In dieser Aufgabe ist die manuelle Konfiguration von SIP für Liberty in der Datei server.xml beschrieben. Sie können SIP alternativ auch mit den Entwicklertools konfigurieren, die automatisch alle Konfigurationen in der Datei server.xml aktivieren. Weitere Informationen finden Sie unter WebSphere Developer Tools > Entwickeln > SIP-Anwendungen entwickeln.
Vorgehensweise
- Konfigurieren Sie den SIP-Container in der Datei server.xml, indem Sie ein
sipContainer-Element hinzufügen.
<sipContainer invalidateSessionOnShutdown="true" msgArrivalTimeAttr="true" markInternalResponse="true"></sipContainer>
- Konfigurieren Sie den SIP-Stack, indem Sie ein sipStack-Element hinzufügen. Sie können das Verhalten konfigurieren, wie z. B. automatische Antworten, Nachrichteninformationen und Wiederverwendung von Verbindungen.
SIP-Zeitgeber sind ein Mechanismus für den Sitzungsverfall. Sie können Werte für die IP-Zeitgeber festlegen, die sich von den in RFC 3261 angegebenen Standardwerten unterscheiden, indem Sie die Zeitgeberattribute (timer) im Element sipStack angeben.<sipStack hideMessageBody="true" hideMessageReqUri="true" auto100OnInvite="false" auto482OnMergedRequests="true" forceConnectionReuse="false" acceptNonUtf8Bytes="true" pathMtu="1600" compactHeaders="API"> <commaSeparatedHeaders>Comma separated headers</commaSeparatedHeaders> <hideMessageHeaders>iup</hideMessageHeaders> <sipQuotedParameters>Require</sipQuotedParameters> </sipStack>
<sipStack timerT1="500" timerT2="4000" timerT4="5000" timerA="500" timerB="32000" timerD="32000" timerE="500" timerF="32000" timerG="500" timerH="32000" timerI="5000" timerJ="32000" timerK="5000"></sipStack>
- Konfigurieren Sie den SIP-Anwendungsrouter, in dem Sie ein sipApplicationRouter-Element hinzufügen. Wenn Sie einen SIP-Anwendungsrouter konfigurieren, können Sie den Standardanwendungsrouter (Default Application Router, DAR) verwenden oder einen angepassten Anwendungsrouter erstellen.
Die DAR-Komponente verwendet eine Konfigurationstextdatei, die als Java™-Eigenschaftendatei aufgebaut ist,
um die Reihenfolge zu definieren, in der SIP-Anforderungen vom Anwendungsrouter an Anwendungen gesendet werden.
Wenn Sie keinen Anwendungsrouter konfigurieren und Ihre Anwendungen manuell implementieren, werden Anwendungen in der Reihenfolge ausgelöst, in der sie implementiert wurden. Wenn Sie mehrere Anwendungen über die Datei server.xml implementieren, können Sie keine Anwendungsreihenfolge definieren.
- Geben Sie die Position der DAR-Eigenschaftendatei (.properties) im Attribut sipDarConfiguration des Elements sipApplicationRouter an, um die DAR-Komponente mit einer DAR-Konfigurationsdatei zu verwenden.
<sipApplicationRouter sipDarConfiguration="Pfad_zum_DAR.properties"></sipApplicationRouter>
- Wenn Sie einen angepassten Anwendungsrouter verwenden möchten, konfigurieren Sie den Router in der Datei server.xml:
- Fügen Sie der Datei server.xml das Feature bells-1.0 hinzu.
Weitere Informationen finden Sie in der Dokumentation zu bells-1.0.<featureManager> <feature>bells-1.0</feature> </featureManager>
- Fügen Sie in der Datei server.xml die JAR-Datei für Ihren angepassten Anwendungsrouter als gemeinsam genutzte Bibliothek hinzu und fügen Sie die
bell-Konfiguration für den Service javax.servlet.sip.ar.spi.SipApplicationRouterProvider hinzu.
Weitere Informationen zu gemeinsam genutzten Bibliotheken finden Sie unter Gemeinsam genutzte Bibliotheken<library id="carLib" name="carLib" description="Custom App Router Library"> <file name="pathToJar.jar"></file> </library> <bell libraryRef="carLib"> <service>javax.servlet.sip.ar.spi.SipApplicationRouterProvider</service> </bell>
- Setzen Sie im Element sipApplicationRouter das Attribut carProvider
auf den vollständigen Namen der Providerklasse für den angepassten Anwendungsrouter.
<sipApplicationRouter carProvider="example.example"></sipApplicationRouter>
- Fügen Sie der Datei server.xml das Feature bells-1.0 hinzu.
<sipApplicationRouter carProvider="example.example" sipNoRouteErrorCode="403"></sipApplicationRouter>
- Geben Sie die Position der DAR-Eigenschaftendatei (.properties) im Attribut sipDarConfiguration des Elements sipApplicationRouter an, um die DAR-Komponente mit einer DAR-Konfigurationsdatei zu verwenden.
- Konfigurieren Sie die SIP-Endpunkte, indem Sie ein sipEndpoint-Element hinzufügen. Sie können angepasste Ports, Hosts und das Bindungsverhalten konfigurieren.
Jeder SIP-Endpunkt, den Sie konfigurieren, überschreibt den Standardendpunkt.
<sipEndpoint host="localhost" sipTCPPort="5060" bindRetries="60" bindRetriesDelay="5000"></sipEndpoint>
Anmerkung: Transport Layer Security (TLS) ist standardmäßig inaktiviert. Wenn Sie TLS für Ihren SIP-Container aktivieren möchten, aktivieren und konfigurieren Sie die SSL-Kommunikation für Ihren Liberty-Server. Weitere Informationen finden Sie im Artikel SSL-Kommunikation in Liberty aktivieren. - Konfigurieren Sie die SIP-Leistung, indem Sie ein sipTasksDispatcher-Element hinzufügen. Sie können die Anzahl der SIP-Tasks, die gleichzeitig ausgeführt werden können, konfigurieren.
Eine SIP-Anwendungstask ist eine Folge von Anwendungscode, der seriell im SIP-Container in einem Einzelthread ausgeführt wird.
Die Anwendungsimplementierung einer Methode vom Typ SipServlet.doInvite() oder einer Methode vom Typ
SipTimerListener.timeout() wird beispielsweise jeweils
als einzelne Task betrachtet, wenn der Anwendungscode, der über diese Methoden aufgerufen wird,
seriell in einem vom Container bereitgestellten, verwalteten Liberty-Thread ausgeführt wird.
Die tatsächliche maximale Anzahl gleichzeitig ausgeführter SIP-Tasks wird durch die maximale Anzahl verwalteter Liberty-Threads beschränkt.
<sipContainer> <sipTasksDispatcher concurrentContainerTasks="15"/> </sipContainer>
- Wenn Sie SIP-URIs mit DNS-NAPTR-Datensätzen (Domain Name System,
Naming Authority Pointer) auflösten möchten, konfigurieren Sie einen Domänenresolver.
- Fügen Sie ein domainResolver-Element hinzu und konfigurieren Sie es. Wenn Sie dieses Element konfigurieren, werden SIP-URIs über
DNS in die IP-Adresse, den Port und das Transportprotokoll des nächsten zu kontaktierenden Hops aufgelöst.
Anmerkung: SIP unterstützt nicht die Verwendung von DNS-Prozeduren für einen Server, die einem Server das Senden einer Antwort an einen Sicherungsclient ermöglichen, wenn der primäre Client ausfällt.
<domainResolver dnsAutoResolve="true"> <dnsServers>dns.server.com</dnsServers> </domainResolver>
- Konfigurieren Sie Ihren DNS-Server so, dass er den SIP-Container verwendet. Das folgende Beispiel zeigt eine BIND-Datenbankdatei für die Konfiguration
der Unterstützung für RFC 3263 in einem DNS-Server.
; Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") ; Copyright (C) 2001 Internet Software Consortium. ; ; Permission to use, copy, modify, and distribute this software for any ; purpose with or without fee is hereby granted, provided that the above ; copyright notice and this permission notice appear in all copies. ; ; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH ; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ; AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, ; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ; PERFORMANCE OF THIS SOFTWARE. ; $Id: include.db,v 1.2.206.1 2004/03/06 10:22:13 marka Exp $ ; Test $INCLUDE current domain name and origin semantics example.com. 43200 IN SOA ns.example.com. email.example.com. ( 2003032001 10800 3600 604800 86400 ) ; example.com. 43200 IN NS ns.example.com. ; ns.example.com. 43200 IN A 10.0.0.20 sipserver1.example.com. 43200 IN A 10.0.0.21 sipserver2.example.com. 43200 IN A 10.0.0.22 sipserver3.example.com. 43200 IN A 10.0.0.23 ; router.example.com. 43200 IN CNAME sipserver3 ; sipserver1.example.com. 43200 IN AAAA fec0:0:0:0:0:0:0:abcd sipserver2.example.com. 43200 IN AAAA fec0:0:0:0:0:0:0:abba ; _sip._udp.example.com. 43200 IN SRV 2 0 5060 sipserver1.example.com. _sip._udp.example.com. 43200 IN SRV 2 0 5060 sipserver2.example.com. _sip._tcp.example.com. 43200 IN SRV 1 4 5060 sipserver1.example.com. _sip._tcp.example.com. 43200 IN SRV 1 2 5060 sipserver2.example.com. _sips._tcp.example.com. 43200 IN SRV 0 1 5061 sipserver1.example.com. _sips._tcp.example.com. 43200 IN SRV 0 0 5061 sipserver2.example.com. ; example.com. 43200 IN NAPTR 0 0 "s" "SIPS+D2T" "" _sips._tcp.example.com. example.com. 43200 IN NAPTR 1 0 "s" "SIP+D2T" "" _sip._tcp.example.com. example.com. 43200 IN NAPTR 2 0 "s" "SIP+D2U" "" _sip._udp.example.com.
- Fügen Sie ein domainResolver-Element hinzu und konfigurieren Sie es. Wenn Sie dieses Element konfigurieren, werden SIP-URIs über
DNS in die IP-Adresse, den Port und das Transportprotokoll des nächsten zu kontaktierenden Hops aufgelöst.

Dateiname: twlp_sip_adm.html