brunch

You can make anything
by writing

C.S.Lewis

by 라인하트 Dec 17. 2018

20장. re-INVITE의 이해

1. 세션 설립 후 세션 파라미터 재협상하기 

통화 중에 호 보류와 같은 부가 서비스를 구현하기 위해서는 미디어 스트림의 주소, 미디어의 방향 또는 코덱을 변경해야 합니다. 통화 중에도 SDP 협상을 진행하기 위한 SIP 메쏘드가 필요하지만, SIP 세션 설립 후 사용 가능한 SIP 메쏘드는 BYE 뿐입니다. BYE 메쏘드는 세션을 종료할 때 사용 가능하므로 새로운 SIP 메쏘드를 활용하거나 사용한 가능한 기존 메쏘드를 활용합니다. 


우선은 기존 메쏘드를 활용하는 방법을 살펴봅니다. 기존 SIP INVITE 메쏘드를 이용하여 세션 파라미터를 재협상합니다. 세션 설립 후에 세션 파라미터를 협상하기 위해 생성되는 INVITE를 re-INVITE라고 합니다. 단순히 기존 세션의 INVITE와 구분하기 위해 달리 부르는 것으로 re-INVITE/200 OK/ACK로 동일하게 동작합니다. re-INIVTE 메쏘드는 호 보류 (Call Hold)와 같은 서비스를 구동하려는 목적으로 많이 활용됩니다.   


<그림 20-1> 호 보류 선택 시 re-INVITE


앨리스와 밥은 통화 중입니다. 밥은 전화 부가서비스를 호출하기 위해 보류(Hold) 버튼을 선택하면, re-INVITE 메시지가 발행됩니다. 새로운 INVITE가 발행되므로 새로운 다이얼로그가 생성됩니다. 



2. re-INVITE의 대표적 사례 - 호 보류 (Call Hold) 

호보류는 전화기에 보류 버튼이 있을 만큼 IP Telephony 네트워크에서 자주 사용하는 부가 기능입니다. 삼자통화를 하거나 회의로 전환하거나 할 때 사용합니다. re-INVITE를 이용하는 호 보류 서비스의 구현에 대해 간단하게 정리합니다.  


미디어 스트림의 방향 변경에 의한 호 보류
일반적으로 사용자가 Hold 버튼을 누르는 순간 미디어 방향을 'a=sendonly'로 변경합니다. 사용자의 전화기는 묵음(Mute)이 되어 상대방에게 미디어를 전달하지 않습니다. 통화 중인 상대방은 'a=recvonly' 상태에 놓이거나 'a=inactive'로 세션 파라미터를 변경한다

0.0.0.0으로 미디어의 접속 주소 변경에 의한 호 보류
RFC 3261 및 RFC 2543에 명시된 방법으로 'c=0.0.0.0'으로 연결될 IP 주소를 바꾸는 방법입니다. 보안상 위험하므로 RFC 3264에서 추천하지 않습니다. 원래의 미디어 세션을 단절할 뿐만 아니라 IPv6에서는 동작하지 않습니다. 



'엔지니어를 위한 인터넷 전화와 SIP의 이해'를 책으로 만들다


https://brunch.co.kr/@linecard/188


매거진의 이전글 19장. SIP PRACK의 이해
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari