이글을 정리하기에 앞서 "SIP의 이해" 의 13장 Message를 다 썼으나 제 실수 및 Windows Live Writer의 버그로 지워져 버렸습니다. 다시 쓸려고 하니 짜증이 나서 -,-:흑흑. 시간이 허락하는 대로 다시 정리하도록 하겠습니다.
이글은 제목대로 CUCM (Cisco Unified Communications Manager) 과 SIP 대한 이야기입니다. Cisco의 IP PBX가 SCCP만을 지원하고, SIP를 제대로 지원하지 않는다는 오해가 시장에 퍼져있는 듯합니다. CUCM에서 SIP가 어떻게 수용지 알아보겠습니다.
개요 CUCM 4.0 시절에는 Trunk-side에 한해 SIP를 지원하였지만, CUCM 7.0 버전까지 업그레이드 되면서 Line-side 및 Trunk-side 에서 SIP를 지원합니다. 아래 그림에서 보듯이 시스코의 모든 어플리케이션 뿐만아니라 3rd party 장비와의 연동까지도 SIP로 연동됩니다. 연한 푸른색 선은 SCCP를 나타내며, 주황색선은 SIP를 나타냅니다. 주황색 선이 모든 곳에 걸쳐서 있는 것을 알 수가 있으며, 연한 푸른색 선은 몇몇 곳에만 한정되어 있음을 알 수가 있습니다.
실제 시스코의 SCCP 프로토콜은 line-side에 다양한 부가서비스를 지원하도록 하기 위해 만들어진 것입니다. SIP 표준화가 매우 지지부진하면서, 시스코는 H.323을 간소화한 SCCP (Skanny Call Control Protocol)을 만들게 된 것입니다.
CUCM의 B2BUA (Back to Back UA)
실제 SIP 단말이 등록되는 장비를 SIP Proxy서버로 알고 있는 경우가 많지만, 실제로는 Proxy Server 함께 구현되어 있는 Registrar Server에 등록되는 것입니다. 시스코의 CUCM에 SIP 단말이 등록되기 때문인지 SIP Proxy로 이해하는 경우가 있지만, 실제로는 B2BUA로 동작합니다. 왜 B2BUA로 구현하였는 지 살펴보겠습니다.
일반적으로 하나의 트랜잭션 단위가 다이얼로그를 형성합니다. 단순하게 같은 Call ID를 가지고 있다라고 보시면 됩니다. 왼쪽 전화기에서 INVITE를 보내면, 오른쪽 전화기가 200 OK로 응답하는 하나의 트랜잭션 단위입니다. SIP Proxy 서버는 위의 그림과 같이 SIP 메세지의 헤더와 바디 부분을 변경하는 것이 어렵고, 매우 제한된 경우에 한하여 변경할 수 있습니다 . 예를 들면, Via 헤더, Route 헤더 등을 삽입하거나 제거합니다. 실제 UAC에서 생성된 헤더의 내용을 변경하는 것은 불가능합니다.
B2BUA로 동작한다고 하면, 위의 그림과 같이 왼쪽 전화기에 대하여서는 UAS로 동작하며, 오른쪽 전화기에 대해서는 UAC로 동작하는 것으로, 두개의 다이얼로그가 생성되어 두 개의 별개의 세션이 만들어 지는 것입니다. 이를 통해 SIP메세지가 B2BUA 장비에서 종단되어 SIP 헤더 및 바디를 새롭게 생성할 수 있도록 하여 다양한 부가서비스 구현이 가능하도록 하는 것입니다.
다시말해서 왼쪽 전화기는 SIP로 통신하고, 오른쪽 전화기가 H.323 또는 SCCP로 통신하더라도 별도의 장비없이 시그널링 변환이 가능하게 되며, Location 또는 Region에 개념을 쉽게 적용할 수 있어 LAN 상에서 G.711로, WAN상에서는 G.729로 통신할 수 있도록 쉽게 구성할 수 있습니다.
CUCM과 연동가능한 SIP 전화기들 시스코에서 Line-side로 연동되는 전화기들은 아래와 같이 3가지 타입으로 나눌 수가 있습니다.
Basic Cisco SIP
3rd Softswitch 또는 Call Agent와 연동될 수 있는 전화기
Basic SIP
CUCM 과 CME 에 SIP로 연동될 수 있는 3rd 전화기
기본적인 전화기능 및 단순 부가 기능만을 지원
Advanced Cisco SIP
CUCM과 CME에 SIP로 연동되는 전화기
SCCP가 제공하는 거의 대부분의 부가 기능을 지원
3rd party SIP 전화기와 CUCM 3rd party 전화기들이 CUCM에 연동되기 위해서는 다음 두가지 카테고리에 적용을 받습니다.
대부분의 3rd party 전화기들이 "Basic" 카테고리에 속하며, Wireless 전화기 및 스마트폰은 Advanced 기능에 속합니다. 시스코의 단말당 라이센스에 있어서도 두배 정도 차이가 납니다.
3rd party Basic 전화기들이 시스코의 Call Flow를 갖춘다면, 다음과 같은 기능을 지원할 수 있습니다. 자세한 Call Flow는 Cisco.com에서 SIP Line-side Messaging Flow 자료를 참조하시면 됩니다. 누구나 쉽게 다운로드 받을 수 있습니다.
Call Hold & Resume
Transfer
Call Forward All, No answer, Busy
Multiple Calls per Line
Calling line ID & Name ID (발신 번호 및 발신자명)
MWI
삼자 통화
Call Forking
Speed Dialing
Multiple lines per Phone (Adavanced)
시스코의 제품은 SIP 표준을 수용하고 있다고 합니다. 그러나, 타 벤더사와 SIP 연동을 하면 잘 않되는 경우가 왕왕 있습니다. 이는 시스코 뿐만아니라 다른 어바이어나 제너 등의 제품과 연동 시에 나타나는 문제입니다. 왜 이런 현상이 발생할까요?
"SIP의 이해" 연재 글을 읽어 보신 분들은 아시겠지만, 많은 부가기능들이 SIP Extension을 이용하여 구현하며, 새로운 기능을 지원하기 위해 새로운 SIP 메쏘드가 생성되거나 헤더가 만들어 집니다. 이러한 헤더들이 계속 만들어 지고 있으며, 이를 수용하는 여부에 따라 상호 연동에 이슈가 발생하게 됩니다. 또한, 상호 같은 표준을 지원한다고 하더라도 엄격하게 수용하느냐 유연하게 수용하느냐에 따라 연동 시에 문제가 발생하게 됩니다. 이러한 부분은 시간이 해결해 줄 부분이 아닌가 합니다.
현재, 어느 제품이 SIP 표준을 준수하느냐라고 묻는다면, 모든 SIP 제품들은 준수합니다. 그럼 H.323 처럼 잘 연동이 되느냐라고 묻는다면, 벤더간에 상호 테스트 및 보완 작업이 필요합니다.
시스코는 이미 SCCP로 구현된 많은 기능들을 SIP로 전환하면서 필요한 대부분의 사항을 표준 위원회에 상정한 상태입니다. 물론, 이런 작업들은 다른 벤더에서도 진행하는 것입니다. 즉, 시간이 지나야 SIP 장비간에 연동이 해결되지 않을까 합니다.
CUCM에 3rd party SIP 전화기 등록 시 고려 사항 이미 허클베리핀님께서 이 연동에 관한 글을 블로깅하였기에 연동에 대한 사항은 그 글을 참조하시면 됩니다.여기에서는 몇가지 고려할 요소에 대해서만 간략하게 짚어보겠습니다.
Transport Protocol
일반적으로 SIP를 위한 Transport Protocol로 UDP를 많이 사용하지만, 시스코의 경우 TCP를 권장합니다. Fail over의 상황을 고려해 본다면, TCP가 훨씬 신뢰할 수 있습니다. 그러나, 대부분의 3rd party SIP Phone들은 UDP만을 지원합니다. 이에 대한 설정은 SIP Security Profile 설정에서 합니다. 시스코의 모든 Line Side 및 Trunk Side 의 SIP 설정에서 반드시 설정되어야 되는 항목입니다.
인증 (MAC Address의 등록)
Cisco SIP 전화기들은 REGISTER 메세지내에 Mac address를 포함하여 전송하여 전화기를 인증하지만, 3rd-party SIP Phone 들은 MAC Address를 전송하지 않으므로 Digest Authentication을 사용합니다. MAC address 인증에 대해서는 시스코가 IETF에 Draft로 상정한 상태이므로, 시간이 지나면, MAC 인증도 표준화되리라 봅니다.
Keepalive
Cisco SIP Phone들은 Keepalive Timer를 통해 장애 복구 및 상태 확인하지만, 3rd-party SIP 전화기들은 Keepalive가 구현되어 있지 않습니다 따라서, REGISTER 메세지 외에 단말의 상태를 확인할 수 있는 절차가 없습니다.
DTMF
시스코의 전화기들은 주로 Out-of-band를 이용하고, 3rd-party SIP 전화기들이 RFC 2833 과 같은 In-band를 지원한다면, 당연히 MTP가 구성되어야합니다 즉, Out-of-band 메세지를 In-bad인 RFC2833으로 변환해주어야 하기 때문입니다.
마치며 "SIP의 이해"라는 글을 통해 세세한 부분들을 설명을 하였기에 이번 글에서는 용어 설명을 따로 하지 않았습니다. 이해가 어려우신 분들은 참조하시기 바랍니다. 개인적으로는 SIP가 빠르게 표준화되고, 모든 벤더가 이를 표준화하여 하이마트에서 SIP 전화기를 구입하는 날을 기대해 봅니다. ^^