INVITE 요청에 대한 SIP 응답은 최종 응답 또는 일시적 응답입니다.
최종 응답은 항상 안정적으로 전송되지만 일시적 응답은 보통 그렇지
않습니다. 일시적 응답을 안정적으로 보내야 하는 경우 PRACK(Provisional
Response Acknowledgment) 메소드를 사용할 수 있습니다.
시작하기 전에
PRACK을 지원하는 애플리케이션을 개발하려면 다음 기준이
충족되어야 합니다.
- 클라이언트가 PRACK을 지원함을 표시하려면 INVITE 요청을 보내는
클라이언트가 Supported 또는 Require 헤더에 100rel 태그를 배치해야
합니다.
- SIP 서블릿은 send() 메소드 대신 sendReliably() 메소드를 호출하여
응답해야 합니다.
이 태스크 정보
PRACK은 다음 표준에 설명되어 있습니다.
- RFC 3261("SIP:
Session Initiation Protocol")를 확장하여 PRACK 및 옵션 태그 100rel을 추가하는
RFC 3262("SIP(Session Initiation Protocol)에서 일시적인 응답의 안정성").
- JSR 289("SIP
Servlet Specification 버전 1.1")의 5.7.1절("신뢰할 수 있는 일시적 응답").
프로시저
- 프록시 역할을 하는 애플리케이션을 개발하는 경우,
애플리케이션이 수신인 필드에 태그가 없는 INVITE 요청에 대한
신뢰할 수 있는 일시적 응답을 생성하고 보내도록 하십시오.
- 사용자 에이전트 클라이언트(UAC)의 역할을 하는 애플리케이션을
개발하는 경우 다음 조치를 수행하십시오.
- 애플리케이션이 발신 INVITE 요청에 100rel 태그를 추가하도록 하십시오.
옵션 태그는 Supported 헤더나 Require 헤더에 나타나야
합니다.
- PRACK 요청을 작성하고 사용자 에이전트 서버(UAS)에 이 요청을
전송하려면 애플리케이션의 doProvisionalResponse(...) 메소드에서
수신 응답에 대한 createPrack() 메소드를
호출하십시오. 컨테이너가
JSR 289 5.7.1절에 정의된 대로 RAck 헤더를 처리합니다.
- UAC의 역할을 하는 애플리케이션은 PRACK에서 최종 2xx-6xx
응답을 수신하며 UAC는 doResponse() 메소드를 처리할 수 있습니다.
- 사용자 에이전트 서버(UAS)의 역할을 하는 애플리케이션을 개발하는 경우
다음 조치를 수행하십시오.