다중 홈 호스팅 구성

SIP 컨테이너는 SIP 프록시에서 아웃바운드 인터페이스 목록을 채택하고 SIP 애플리케이션에 이를 노출할 수 있습니다.

시작하기 전에

다중 홈 호스팅은 다중 홈 환경이 설정된 후 WebSphere® SIP 프록시에 구성됩니다. 디중 홈 기술은 다중 네트워크(라우터, 스위치 등), 다중 로드 밸런서(각 가상 IP마다 둘 이상의 프록시 서버를 구성해야 하는 경우), 사용 가능한 각 프록시 서버의 다중 네트워크 카드 설정을 포괄할 수 있습니다. 네트워크 카드를 설치하고 루프백 주소를 구성한 후 사용 가능한 각 네트워크 인터페이스의 각 SIP 프록시마다 개별 SIP 프록시 채널 체인을 설정하십시오.
주의: 다중 인터페이스를 지원하는 SIP 프록시 서버만 구성할 수 있습니다. SIP 컨테이너는 이 기능을 지원하지 않습니다.

이 태스크 정보

다중 홈을 통해 단일 애플리케이션은 다른 네트워크에 있는 사용자 에이전트 서버(UAS) 및 상이한 사용자 에이전트 클라이언트(UAC)와 통신할 수 있습니다.

애플리케이션은 SIP 컨테이너를 조회해서 JSR 289에 정의된 표준 프로시저를 사용하여 사용 가능한 아웃바운드 인터페이스 목록을 판별합니다. 이는 컨테이너에서 유지보수되는(사용 가능한 모든 SIP 프록시와의 프로토콜 교환으로) 컨텍스트 속성을 통해 수행됩니다. 이 속성은 javax.servlet.sip.SipServlet.OUTBOUND_INTERFACES이며, javax.servlet.sip.outboundInterfaces로 정의됩니다. 이 속성은 사용 가능한 모든 인터페이스를 포함합니다. 예제 섹션의 샘플 코드는 애플리케이션에서 속성에 액세스하는 방법을 보여줍니다.

각 SIP 프록시마다 인터페이스가 구성되고 나면 절차의 단계에 따라 아웃바운드 메시지 라우팅을 제어하십시오. 둘 이상의 프록시가 사용되는 경우에는 각 프록시를 동일하게 구성하는 것이 중요합니다.

애플리케이션이 아웃바운드 요청을 보내는 데 사용할 인터페이스를 지정하지 않을 경우 기본 인터페이스가 프록시에 사용됩니다. 모든 프로토콜에 기본 인터페이스를 설정할 것을 권장합니다. 자세한 정보는 단계 5를 참조하십시오.

관리자는 선택적으로, SIP 애플리케이션이 setOutboundInterface 메소드를 호출하지 않을 경우에 사용할 적합한 인터페이스를 정의하는 세 개의 SIP 프록시 사용자 정의 특성을 설정할 수 있습니다. 사용자 정의 특성이 설정되지 않고 setOutboundInterface 메소드가 사용되지 않으면 아웃바운드 요청에 사용할 인터페이스를 명확하게 판별할 수 없습니다.

다음 절차는 둘 이상의 네트워크 인터페이스가 있는 다중 홈 호스팅에 대한 단일 프록시 설정을 포함한 토폴로지에 적용됩니다.

프로시저

  1. 관리 콘솔에서 서버 > 서버 유형을 펼치고 WebSphere 프록시 서버 > proxy_name을 클릭하십시오.
  2. 프록시 설정 아래에서 SIP 프록시 서버 설정을 펼치고 SIP 프록시 서버 전송을 클릭하십시오.
  3. 전송 체인 패널에서, 별표(*)를 사용하는 프록시 호스트 이름을 포함한 단일 또는 복수의 기존 전송 체인을 삭제하십시오.
  4. 새 전송 체인 이름을 추가하고 사용할 체인이 구성되어 있는 인터페이스와 연관된 IP 주소 또는 호스트 이름을 지정하십시오. 프록시 다중 홈 구성을 사용하려면 각 프록시 인터페이스마다 전송을 구성해야 합니다. 프록시 서버를 로드 밸런서와 함께 사용할 때에는 SIP 트래픽의 원하는 전송 유형과 함께 TCP에 대한 전송이 존재하는지 확인하십시오. 예를 들어, 프록시 서버에 두 개의 인터페이스가 사용되면 최소 여섯 개의 프록시 전송 체인이 필요합니다. 각 프록시 인터페이스마다 로드 밸런서 클러스터 별명 IP 주소를 사용하여 구성된 UDP 전송 체인(2), TCP 전송 체인(2), SIP 트래픽을 실행할 원하는 프로토콜(UDP, TLS 등)의 특정 전송 체인(2)이 있습니다.
    1. 전송 페인 패널에서 새로 작성을 클릭하십시오. 새 전송 체인 작성 마법사가 초기화됩니다. 전송 체인 작성 프로세스 중 고유 전송 체인 이름을 추가하고 전송 체인 템플리트 메뉴에서 프록시 프로토콜 템플리트(UDP, TCP 또는 보안)를 선택하십시오.
    2. 다음을 클릭하십시오.
    3. 기존 포트 사용 또는 새 포트 작성 옵션을 선택하십시오. 새 포트의 경우 포트 이름, 호스트 이름, 포트 번호를 제공하십시오. 호스트 값에는 IP 주소 또는 특정 호스트 이름을 지정하십시오. 호스트 값에 별표(*)를 사용하지 마십시오.
    4. 단계 2를 위해 다음을 클릭하십시오.
    5. 조치 요약을 검토하고 단계 3을 위해 완료를 클릭하십시오.
    6. 저장을 클릭하여 마스터 구성에 변경사항을 저장하고 적용 가능한 경우 노드와 재동기화하십시오.
  5. 프록시 서버에 사용할 기본 체인 이름을 지정하십시오. SIP 프록시 설정 패널에서 각 프로토콜의 적합한 기본 인터페이스를 지정하는 사용자 정의 특성을 설정할 수 있습니다. 이 인터페이스는 애플리케이션이 사용할 인터페이스를 지정하지 않을 때 아웃바운드 요청을 보내는 데 사용됩니다.
    1. 관리 콘솔에서 서버 > 서버 유형을 펼치고 WebSphere 프록시 서버 > proxy_name을 클릭하십시오.
    2. 프록시 설정 아래에서 SIP 프록시 서버 설정을 펼치고 SIP 프록시 설정 > 사용자 정의 특성을 클릭하십시오.
    3. 이전에 단계 4에서 구성한 적합한 체인 이름(인터페이스 또는 호스트 이름이 아닌)을 입력하여 SIP 프록시 설정의 전송 섹션을 구성하십시오. 각 전송 유형마다 사용자 정의 특성이 하나씩 있습니다.
    사용자 정의 특성 이름 설명
    defaultUDPChainName setOutboundInterface가 호출되지 않을 때 사용할 기본 UDP 체인 이름.
    defaultTCPChainName setOutboundInterface가 호출되지 않을 때 사용할 기본 TDP 체인 이름.
    defaultTLSChainName setOutboundInterface가 호출되지 않을 때 사용할 기본 TLS 체인 이름.
  6. 프록시 서버를 재순환하십시오.

결과

애플리케이션이 둘 이상의 아웃바운드 인터페이스를 통해 아웃바운드 SIP 요청을 라우팅할 수 있는 SIP 다중 홈 호스팅을 구성했습니다.

다음 샘플 코드는 사용 가능한 아웃바운드 인터페이스를 얻고 세션 오브젝트에 적합한 아웃바운드 인터페이스를 설정하는 방법을 보여줍니다.
....
import javax.servlet.sip.SipServlet;
import javax.servlet.sip.SipSession;
....

protected void doInvite(SipServletRequest req1) throws ServletException, IOException
{
	...
	//	This block of code handles setting of the outbound interface.
        	SipSession sipSession = req1.getSession();
	javax.servlet.ServletContext  context = getServletContext();
	java.util.List list = (java.util.List)context.getAttribute(javax.servlet.sip.SipServlet.
OUTBOUND_INTERFACES);
	SipURI uri = getProtocolInterface ("udp", list);

	if (uri != null)
	{
		InetSocketAddress inetSocketAddr = new InetSocketAddress(uri.getHost(), uri.getPort());
		sipSession .setOutboundInterface(inetSocketAddr);
	}
	...
}

// This method simply pulls out the first interface in the list for the specified protocol
private SipURI getProtocolInterface(String transport, List outboundInterfaceList)
{
	SipURI uri = null;
	Iterator iterator = outboundInterfaceList.iterator();
		
	while (iterator.hasNext())
	{
		SipURI tempUri = (SipURI)iterator.next();
			
		if (tempUri.getTransportParam().equals(transport) == true)
		{
			uri = tempUri;
			          break;
		}
	}
		
	return (uri);
}

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



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