B2B(back-to-back) 애플리케이션 개발

javax.servlet.sip.B2buaHelper 인터페이스를 사용하여 B2BUA(Back-To-Back User Agent) 애플리케이션을 개발할 수 있습니다.

시작하기 전에

B2BUA 조작에 대한 상세 정보를 제공하는 JSR289 specification, 12절을 읽으십시오. SIP Servlet 1.1 스펙은 B2BUA 애플리케이션 작성을 위해 헬퍼 클래스 javax.servlet.sip.B2buaHelper를 정의합니다. 자세한 정보는 B2buaHelper methods에 대한 문서를 참조하십시오.

이 태스크 정보

B2BUA는 SIP 호출 중간에 사용되는 SIP(Session Initiation Protocol) 애플리케이션이고, 둘 이상의 SIP 대화 상자 사이에서 요청과 응답을 전달합니다. 일반적인 B2BUA 애플리케이션은 두 사용자 에이전트 간에 SIP 세션을 관리합니다. 하지만 B2BUA 애플리케이션은 다운스트림 분할의 여러 분기에서 응답을 관리해야 하는 더 복잡한 시나리오를 처리할 수도 있습니다. 요청이 여러 분기로 분할되고 메시지가 사용자 에이전트 클라이언트에서 사용자 에이전트 서버로 전달될 때 다운스트림 분할이 이루어집니다. B2buaHelper 클래스에는 이와 같은 B2BUA 애플리케이션 작성에 필요한 모든 메소드가 포함됩니다. B2buaHelper 클래스 동작 및 새 요청 작성에 사용되는 규칙은 JSR289 스펙, 12.2절에 정의되어 있습니다. SIP B2BUA(Back-to-Back User Agent) 호출의 두 개의 다리(수신 호출 다리와 발신 호출 다리)를 링크하는 데 B2buaHelper 클래스 함수를 사용할 수 있습니다.

프로시저

  1. SipServletRequest.getB2buaHelper() 메소드를 호출하여 B2buaHelper 인스턴스를 검색하십시오.
  2. 이 인스턴스를 검색한 후 B2buaHelper.createRequest()를 호출하여 새 SIP 요청을 작성할 수 있습니다.
    private void doInvite(SipServletRequest req) {
    	B2buaHelper b2buaHelper = req.getB2buaHelper();
    	SipServletRequest newRequest = b2buaHelper.createRequest(req, true, headerMap);
    }

    작성된 newRequest는 이 메소드의 첫 번째 매개변수에 원래 요청으로 제공되는 SipServletRequest req와 동일합니다. Boolean 매개변수는 원래 요청 reqnewRequest가 링크되는지 여부를 표시합니다. headerMapnewRequest에서 대체할 비시스템 헤더 맵을 제공합니다.

  3. 두 개의 다리가 링크되어 있는지 확인하십시오. false 속성을 포함한 createRequest 메소드를 호출한 경우 다음을 호출하여 SIP 세션을 명시적으로 링크할 수 있습니다.
    B2buaHelper.linkSipSessions(session1, session2)
  4. SIP 세션과 SIP 요청이 링크되면 다음을 호출하여 링크된 세션을 검색할 수 있습니다.
    SipSession linkedSession = B2buaHelper.getLinkedSession(req.getSession());
    참고: B2BUA 분할 시나리오에서 애플리케이션은 둘 이상의 SIP 요청을 작성하므로 모든 SIP 세션이 링크되지는 않습니다. 세션은 명시적으로 링크해야 합니다.
  5. 사용자 에이전트 서버(UAS)에서 응답을 수신하면 해당 다리에 대한 응답을 작성하십시오. 응답에 링크된 세션이 있는지 여부를 판별하고 세션이 있으면 링크된 요청을 사용하여 사용자 에이전트 클라이언트(UAC)에 대한 응답을 작성하십시오.
    SipServletRequest linked = b2bHelper.getLinkedSipServletRequest(resp.getRequest()); 
    linked.createResponse(resp.getStatus(),resp.getReasonPhrase()).send(); 

    응답과 연관된 링크된 세션이 없으면 애플리케이션은 B2buaHelper.createResponseToOriginalRequest를 호출하고 파생된 새 세션을 작성해야 합니다. 이 세션은 원래 요청과 연관된 SipSession의 사본입니다.

    참고: JSR289 스펙, 12.5절은 원래 요청에 대한 둘 이상의 성공적인 응답을 작성하는 방법을 제공합니다. 원래 INVITE 메시지와 연관된 둘 이상의 SipSession이 있고 INVITE 메시지에 대한 둘 이상의 응답을 보내야 하는 경우 B2buaHelper.createResponseToOriginalRequest 메소드를 사용하십시오.
  6. createResponseToOriginalRequest 메소드를 사용하는 경우 두 개의 다리가 링크되어 있는지 확인하십시오. 애플리케이션은 해당 쌍 세션에 파생된 새 세션을 링크하므로 후속 응답을 보내기 위해 링크된 세션을 검색할 수 있습니다.

주제의 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_sip_dev_b2b
파일 이름: twlp_sip_dev_b2b.html