목차

소개

배경

일반 통화 흐름 시나리오

SIP 정규화 스크립트

SIP 신호 메시지 확인

MotoPBX의 인바운드 SIP 초대

"port" 매개 변수가 제거된 후 CUCM으로 전송된 정규화된 INVITE

200 정상화 전 MotoPBX에 대한 아웃바운드 응답

정규화된 아웃바운드 200 OK 응답

소개

이 문서에서는 Cisco CUCM(Unified Communications Manager) 및 Mobility PBX(Motorola PBX) 시스템의 SIP(Session Initiation Protocol) 통합과 관련된 상호 운용성 문제에 대해 설명합니다.MotoPBX 시스템은 SIP RFC 3581을 준수하는 반면, CUCM은 SIP RFC 3261을 준수합니다.이 RFC 규정 준수 문제로 인해 통화 처리 서버(CUCM 및 Motorola PBX) 간에 SIP 통화 설정 문제가 있습니다.

배경

Motorola PBX는 SIP INVITE의 "Via" 헤더 필드에 "report" 매개 변수를 사용하여 클라이언트가 RFC 3581에 포함된 요청이 시작된 소스 IP 주소 및 포트로 응답을 다시 보내도록 요청할 수 있습니다."rport" 매개변수는 "received" 매개변수와 유사합니다. 단, "report"에는 IP 주소가 아닌 포트 번호가 포함되어 있습니다.이 보고서 매개변수는 RFC 3261의 일부가 아니므로 CUCM은 SIP 신호 "Via" 헤더 필드에 매개변수를 포함하지 않습니다.

일반 통화 흐름 시나리오

위의 시나리오에서는 Walkie Talkie 핸드셋의 엔드포인트가 있는 CUCM과 MotoPBX 시스템 간에 수신 SIP 통화 설정에 문제가 있습니다.CUCM은 "port" 매개 변수를 사용하여 MotoPBX에서 SIP INVITE를 수신하면 "Via" 헤더 필드에 "report" 매개 변수 없이 200OK 응답을 보냅니다.또한 "Remote-Party-ID", "P-Assited-Identity" 헤더 필드, MotoPBX가 승인하지 않는 SDP(Session Description Protocol) 메시지 본문의 대역폭 정보 등 몇 가지 다른 필드가 추가됩니다.RFC 규정 준수 문제로 인해 통화 설정이 실패합니다.따라서 통화 설정 문제를 완화하기 위해 수신 SIP 초대에서 "port" 매개 변수를 제거하고 아웃바운드 200 OK 응답에서 MotoPBX에서 보낸 동일한 SIP 초대에 "port" 매개 변수를 추가하는 SIP 표준화 스크립트가 있습니다.또한 앞서 언급한 대로 다른 헤더 필드도 제거합니다.

SIP 정규화 스크립트

M={}

function M.inbound_INVITE(msg)                     /*Incoming SIP Invite*/

local invite = msg:getHeader("Via")

local rport=string.gsub(invite,"rport","")         /*Remove rport parameter*/

msg:modifyHeader("Via", rport)

end

function M.outbound_200_INVITE(msg)                 /*Outgoing 200 OK response*/

msg:addHeaderValueParameter("Via","rport","5060")   /*Populating rport with 5060*/

msg:removeHeader("P-Asserted-Identity")             /*Removing headers

and bandwidth information*/

msg:removeHeader("Remote-Party-ID")

local sdp = msg:getSdp()

local sdpremove=string.gsub(sdp,"b=TIAS:%d%d%d%d%d","")

local sdp=string.gsub(sdpremove,"b=AS:%d%d","")

msg.setSdp(sdp)

end

return M

SIP 신호 메시지 확인

MotoPBX의 인바운드 SIP 초대

INVITE sip:8888@10.10.21.14;user=phone SIP/2.0

Via:SIP/2.0/UDP192.168.5.10:5060;

branch=z9hG4bK3ad3379d104e957767cf471e77bf2738;rport

"port" 매개 변수가 제거된 후 CUCM으로 전송된 정규화된 INVITE

INVITE sip:8888@10.10.21.14;user=phone SIP/2.0

Via: SIP/2.0/UDP 192.168.5.10:5060;

branch=z9hG4bK3ad3379d104e957767cf471e77bf2738;

200 정상화 전 MotoPBX에 대한 아웃바운드 응답

Via: SIP/2.0/UDP 192.168.5.10:5060;

branch=z9hG4bK3ad3379d104e957767cf471e77bf2738;

From: <sip:2202@192.168.5.10;user=phone>;

tag=60817f1777729d1062239475498676f4

To: <sip:8888@10.10.21.14;user=phone>;

tag=107~f59e0381-0cdb-4ad3-b769-99c8c3c177c4-20600964

Date: Thu, 27 Feb 2014 03:22:02 GMT

Call-ID: 3f42d82e786bf9f332567ca566f3c1dd

CSeq: 1 INVITE

Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY

Allow-Events: presence, kpml

Supported: replaces

Supported: X-cisco-srtp-fallback

Supported: Geolocation

Session-Expires: 5000;refresher=uas

Require: timer

P-Asserted-Identity: "Kosal-LT"

Remote-Party-ID: "Kosal-LT"

;party=called;screen=yes;privacy=off

Contact: <sip:8888@10.10.21.14:5060>

Content-Type: application/sdp

Content-Length: 232

v=0

o=CiscoSystemsCCM-SIP 107 1 IN IP4 10.10.21.14

s=SIP Call

c=IN IP4 10.10.21.14

b=TIAS:64000

b=AS:64

정규화된 아웃바운드 200 OK 응답

SIP/2.0 200 OK

Via: SIP/2.0/UDP 192.168.5.10:5060;

branch=z9hG4bK3ad3379d104e957767cf471e77bf2738;;rport=5060

From: <sip:2202@192.168.5.10;user=phone>;tag=60817f1777729d1062239475498676f4

To: <sip:8888@10.10.21.14;user=phone>;

tag=107~f59e0381-0cdb-4ad3-b769-99c8c3c177c4-20600964

Date: Thu, 27 Feb 2014 03:22:02 GMT

Call-ID: 3f42d82e786bf9f332567ca566f3c1dd

CSeq: 1 INVITE

Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY

Allow-Events: presence, kpml

Supported: replaces

Supported: X-cisco-srtp-fallback

Supported: Geolocation

Session-Expires: 5000;refresher=uas

Require: timer

Contact: <sip:8888@10.10.21.14:5060>

Content-Length: 213

Content-Type: application/sdp

v=0

o=CiscoSystemsCCM-SIP 107 1 IN IP4 10.10.21.14

s=SIP Call

c=IN IP4 10.10.21.14

t=0 0

앞의 예에서는 SIP 트렁크의 SIP Profile(SIP 프로파일)에 적용될 때 상호 운용성 문제를 해결하고 SIP 통화 설정이 아무런 문제 없이 이루어진다고 설명했습니다.