SIP HOLD
RFC 5359 에서 SIP 서비스의 흔 한 몇 가지 예 를 묘사 했다.이러한 서비스의 개념, 절차, 소식 에 대해 비교적 상세 하 게 소개 하 였 다.최근 시간 이 비교적 한가 하 니 다시 복습 해 보 니 많은 개념 이 명확 해 졌 다.CU 에 올 라 온 블 로 그 는 쓸 만 한 것 이 없 었 다. 이 RFC 를 간단히 소개 한다.
첫 번 째 서비스의 예 는 콜 홀 드 (호출 유지) 입 니 다.절 차 는 다음 그림 과 같다.
Alice Proxy Bob
| INVITE F1 | |
|--------------->| |
| | INVITE F2 |
|(100 Trying) F3 |------------->|
|<---------------| |
| |180 Ringing F4|
| 180 Ringing F5 |<-------------|
|<---------------| |
| | 200 OK F6 |
| 200 OK F7 |<-------------|
|<---------------| |
| ACK F8 | |
|--------------->| ACK F9 |
| |------------->|
| Both way RTP Established |
|<=============================>|
| |INVITE(hold) F10
|INVITE(hold) F11|<-------------|
|<---------------| |
| 200 OK F12 | |
|--------------->| 200 OK F13 |
| |------------->|
| | ACK F14 |
| ACK F15 |<-------------|
|<---------------| |
| No RTP Sent! |
| | INVITE F16 |
| INVITE F17 |<-------------|
|<---------------| |
| 200 OK F18 | |
|--------------->| 200 OK F19 |
| |------------->|
| | ACK F20 |
| ACK F21 |<-------------|
|<---------------| |
| Both way RTP Established |
|<=============================>|
| BYE F22 | |
|--------------->| BYE F23 |
| |------------->|
| | 200 OK F24 |
| 200 OK F25 |<-------------|
|<---------------| |
그림 1 Call Hold 예제
위의 이 장면 에서 앨 리 스 는 Bob 을 호출 했 고 호출 이 만들어 진 후에 Bob 은 이 호출 을 유 지 했 으 며 시간 이 지난 후에 다시 호출 유 지 를 취소 하고 정상 적 인 통 화 를 회복 했다.그리고 앨 리 스 는 통 화 를 끝 냈 다.
위의 이 과정 에서 hold 의 동작 은 Bob 이 proxy 에 비교적 특수 한 Invite 를 보 낸 것 을 볼 수 있다.이 invite 가 특별한 이 유 는 invite 메시지 의 sdp 부분 입 니 다.UA 가 보 낸 이 sdp 매개 변 수 는 다 릅 니 다.초기 UA 구현 은 sdp 의 c 주 소 를 0.0.0.0 으로 바 꾸 는 것 입 니 다.현재 유행 하 는 방법 은 세 션 에 미디어 흐름 이 있 으 면 sdp 의 a 를 a = inactive 로 바 꾸 는 것 입 니 다.미디어 스 트림 이 없 으 면 a 속성 을 a = sendly 로 변경 합 니 다.
다음은 F10 에 대한 소개 입 니 다.
F10 INVITE Bob -> Proxy 1
INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7
Route:
Max-Forwards: 70
From: Bob
To: Alice
Call-ID: [email protected]
CSeq: 1 INVITE
Contact:
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com
s=
c=IN IP4 client.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
여 기 는 a 를
sendonly。
후속 200 OK 에서 Alice 의 UA 가 보 낸 200 OK 에서 sdp 부분 은 a = recvonly 로 바 뀌 었 다. 이후 Alice 와 Bob 사이 에는 미디어 스 트림 의 상호작용 이 없 었 다.
정상 통화 회복:
Bob 은 콜 홀 드 를 취소 하기 위해 특별한 invite 를 다시 보 내야 합 니 다.이 invite 에서 sdp 부분 에 서 는 a 속성 을 sendrecv 로 다시 수정 합 니 다. 다음 예 에 서 는 a 를 rtpmap: 0 PCMU / 8000 으로 변경 합 니 다.
F16 INVITE Bob -> Proxy 1
INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds73
Route:
Max-Forwards: 70
From: Bob
To: Alice
Call-ID: [email protected]
CSeq: 2 INVITE
Contact:
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com
s=
c=IN IP4 client.biloxi.example.com
t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000
Alice 200OK ,a rtpmap:0 PCMU/8000 。 Alice Bob RTP 。 。
callhold, Consultation Hold, 。 callhold Bob Carol 。 :
Alice Proxy Bob Carol | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | |------------->| | |(100 Trying) F3 | | | |<---------------|180 Ringing F4| | | |<-------------| | | 180 Ringing F5 | | | |<---------------| 200 OK F6 | | | |<-------------| | | 200 OK F7 | | | |<---------------| | | | ACK F8 | | | |--------------->| ACK F9 | | | |------------->| | | Both way RTP Established | | |<=============================>| | | |INVITE(hold) F10 | |INVITE(hold) F11|<-------------| | |<---------------| | | | 200 OK F12 | | | |--------------->| 200 OK F13 | | | |------------->| | | | ACK F14 | | | |<-------------| | | ACK F15 | | | |<---------------| | | | No RTP Sent! | | | | INVITE F16 | | | |<-------------| | | | | INVITE F17 | | |--------------------------------->| | |(100 Trying) F18 | | |------------->| | | | | 180 Ringing F19 | | |<---------------------------------| | | 180 Ringing F20 | | |------------->| | | | | 200 OK F21 | | |<---------------------------------| | | 200 OK F22 | | | |------------->| | | | ACK F23 | | | |<-------------| | | | | ACK F24 |
| |--------------------------------->| | | Both way RTP Established | | | |<=================>| | | BYE F25 | | | |<-------------| | | | | BYE F26 | | |--------------------------------->| | | | 200 OK F27 | | |<---------------------------------| | | 200 OK F28 | | | |------------->| | | | INVITE F29 | | | INVITE F30 |<-------------| | |<---------------| | | | 200 OK F31 | | | |--------------->| 200 OK F32 | | | |------------->| | | | ACK F33 | | | |<-------------| | | ACK F34 | | | |<---------------| | | | Both way RTP Established | | |<=============================>| | | BYE F35 | | | |--------------->| BYE F36 | | | |------------->| | | | 200 OK F37 | | | |<-------------| | | 200 OK F38 | | | |<---------------| | | | | | |
2 Consultation Hold
Alice Bob ,Alice Bob ,Bob , , Carol。 Alice hold , Carol。 Carol , Aliceunhold , Alice , (^_^)。
Music on Hold.