2016-07-21 16 views
1

Ich studiere Sip Servlet und es ist etwas, das mir nicht klar ist.Unterschiede zwischen SipApplicationSession und ServletContext

Mit einem Anwendungsserver wie Mobicents, kann ich zwei Sitzungstypen hat:

  1. SipSession: ist die Sitzung mit dem Request/Response verbunden ist;
  2. SipApplicationSession: ist die Sitzung, die SipSession wrap und (schließlich) HttpSession. Dies sollte verwendet werden, um zwischen dem Web und SIP-Servlet zu kommunizieren.

Warum sollten wir die zweite haben? Wenn ich anrufe:

getServletContext.setAttribute("something", somethingObject); 

ist dies mit den beiden Servlets geteilt, oder liege ich falsch?

Die ServletContext ist etwas, das das Servlet in einer Anwendung umschließt, und so können wir über die Servlets kommunizieren.

Warum sollten wir SipApplicationSession verwenden?

Danke für die Beantwortung.

Antwort

1

Sie haben recht mit dem Konzept hinter SIPSession und SIPApplicationSession.

Denken Sie an SIPApplicationSession als eine Metasitzung, die N SIP-Sitzung hält (und HTTPSession, wenn die Anwendung eine konvergente SIP- und HTTP-Anwendung ist und diese verwendet). Die Attribute in diesem Fall können über mehrere SIP-Sitzungen verteilt werden, wenn Sie eine B2BUA erstellen (und WebSession, wenn Sie Web in Ihre Anwendung einbeziehen). Sie ist jedoch zeitlich immer auf den Kontext der SIP-Sitzung und der HTTP-Sitzungslebensdauer beschränkt.

ServletContext ist jedoch für die Lebensdauer der Anwendung und völlig unabhängig von SIP-Anrufen oder Web-Anfragen, so dass Sie nur Attribute hinzufügen möchten, die länger leben sollen und nicht beibehalten oder gespeichert werden sollen eine Datenbank.

+1

Zunächst ist es mir eine Freude, von Ihnen geholfen zu werden. Ich verstehe Ihre Antwort, und es war genau wie ich vermutete. Also, in dem Szenario eines B2BUA, wie zum Beispiel ein 3PCC, wo gibt es eine Web-Schnittstelle (und so auch HttpServlet), wenn ich SipFactory.createRequest (SipApplicationSession ...) aufrufen, ich bin eine Anfrage erstellen, die dazu gehört zu seiner SipSession, und diese SipSession gehört zur SipApplicationSession. – xcsob

+1

Wenn wir aus irgendeinem Grund den Knopf "Auflegen" drücken, und dies eine Anfrage an unser HttpServlet macht, wird dies den Verweis auf SipApplicationSession erhalten und für jeden SipSession (in der SipApplicationSession) zum Beispiel eine Tschüss-Anfrage erstellen. Danke :) – xcsob

+0

Sie haben es richtig. Fühlen Sie sich frei, die Antwort zu verbessern, wenn es hilfreich war, zukünftige Leser zu führen. – jeand