Von Entwicklern von SIP-Anwendungen zu beachtende Laufzeitfaktoren
Sie müssen bestimmte Laufzeitverhalten des Produkts berücksichtigen, wenn Sie SIP-Anwendungen (Session Initiation Protocol) schreiben.
Container akzeptiert möglicherweise keine SIP-URI-Schemata
Der SIP-Container weist eine Nachricht nicht zurück, wenn er das Schema im Anforderungs-URI nicht erkennt, weil der Container nicht wissen kann, welche URI-Schemata von den Anwendungen unterstützt werden. SIP-Elemente können einen Anforderungs-URI mit einem anderen Schema als sip oder sips unterstützen. Das Schema pres: hat beispielsweise eine besondere Bedeutung für Presence-Server, aber der Container erkennt dieses Schema nicht. Die Anwenddung muss entscheiden, ob ein bestimmtes Schema akzeptiert oder zurückgewiesen wird. SIP-Elemente können SIP-fremde URIs mit jedem verfügbaren Mechanismus in SIP-URIs, SIPS-URIs oder andere Schemata wie das in RFC 2806 [9] beschriebene URI-Schema tel umsetzen.

Anforderungen in einer Mehrcontainerumgebung weiterleiten
Wenn Ihre Anwendung in einer Mehrcontainerumgebung (SIP-Proxy plus SIP-Container) eine Anforderung sendet, die ursprünglich extern gesendet, aber später empfangen werden soll, muss sie Host und Ports des vorgelagerten Lastausgleichselement (IP-Sprayer für mehrere SIP-Proxys oder SIP-Proxy, falls nur einer vorhanden ist) verwenden. Wenn die Anwendung den Hostnamen eines Containers anstelle des vorgelagerten Elements verwendet, kann die Anforderung beim Auftreten eines Fehlers verloren gehen.
Beispiel: Eine Anwendung sendet eine INVITE-Anforderung an sich selbst, aber die Anforderung muss über ein externes Abrechnungssystem über einen vorgeschriebenen Routenheader übergeben werden. Die Anwendung muss den URI der INVITE-Anforderung auf den Host und den Port des vorgelagerten Elements setzen, um sicherzustellen, dass der Failover stattfindet. Die Anforderung wird über die vorgeschriebene Route an das Abrechnungssystem weitergeleitet und anschließend zur Verarbeitung an das vorgelagerte Lastausgleichelemente zurückgesendet.
Ereignisse im Sitzungsslistener aufrufen
Die Ereignisse SipSessionListener und SipApplicationSessionListener werden nur aufgerufen, wenn eine Anforderung das entsprechende Sitzungsobjekt anfordert. Hierfür verwenden Sie in Ihrer Anwendung die in Tabelle 1 gezeigte Methode.Ereignis | Methode |
---|---|
SipSessionListener | getSession() |
SipApplicationSessionListener | getApplicationSession() |