본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Cisco IOS® 및 Cisco IOS XE 콜 라우팅에 대해 설명합니다.
이 문서를 읽는 데 필요한 공식적인 필수 조건은 없지만, 독자가 전화 통화를 설정하고 연결하는 데 사용되는 기본 음성 신호 프로토콜에 대해 이미 어느 정도 알고 있을 것이라는 기대를 갖고 작성되었습니다. 이러한 프로토콜은 전체에서 여러 번 참조됩니다.
시그널링 프로토콜: SIP(Session Initiation Protocol), H323(h225 / h245), MGCP(Media Gateway Control Protocol), SCCP(Skinny Client Control Protocol), ISDN Q931, E1 R2.
미디어 프로토콜: RTP(Real Time Protocol), 음성 코덱, 비디오 코덱
아날로그 기술: E&M(Ear and Mouth), FXS(Foreign Exchange Subscriber), FXO(Foreign Exchange Office).
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
이 문서에서는 POTS(Plain Old Telephone Service) 및 VoIP(Voice over IP) 네트워크 통화 레그를 통해 인바운드 및 아웃바운드 다이얼 피어 매칭을 수행하는 메커니즘을 다룹니다.
이 문서에서는 다이얼 피어 정보 외에도 통화 라우팅과 관련된 중요한 항목을 다룹니다. 여기에는 숫자 조작, SIP(Session Initiation Protocol) 메시지 조작의 빠른 개요, 통화 기능을 제한하는 몇 가지 방법, 빠른 미디어 및 신호 바인딩 개요, 마지막으로 약간의 문제 해결 등이 포함됩니다.
이 문서에서는 컨피그레이션 예와 debug 및 show 명령 출력을 참조점으로 사용합니다. 이 문서의 여러 기능은 Cisco IOS 및 Cisco IOS XE에 도입된 버전으로 명확하게 표시되어 있습니다. 이 정보는 Command and Feature Roadmap(명령 및 기능 로드맵) 섹션에서 빠르게 참조할 수도 있습니다. 매우 주목할 만한 하자가 있다면 독자들이 알 수 있도록 텍스트 안에 링크되어 있다.
속성 |
설명 |
---|---|
숫자 문자열 |
숫자 문자열, 전화 번호, 번호 또는 E164 번호라고도 합니다.0 ~ 9의 숫자로 이루어져 있으며 앞에 더하기 기호(+)를 사용할 수 있습니다.
|
DNIS(Dialed Number Identification Service) |
이 번호는 통화에 대한 수신 번호 또는 대상 번호입니다. |
ANI(자동 번호 식별) |
통화에 대한 발신 번호 또는 발신 전화 번호입니다. 발신자 ID라는 이름을 지정할 수 있는 CLID(Calling Line Identifier)라고도 합니다. |
URI(Uniform Resource Identifier) |
URI는 sip: 또는 tel: 문자열로, VoIP 프로토콜 SIP 및 H323에서 가장 일반적으로 사용됩니다.
|
캐리어 ID |
CID 예: 참고: Cisco 버그 ID CSCua14749 Carrier-ID는 IOS XE 플랫폼에서 작동하지 않습니다. |
경로 문자열 |
SIP와 함께 사용되는 ILS Route-Strings용 Cisco 전용 헤더.
|
열거 |
ENUM은 DNS(도메인 이름 서비스)를 사용하여 E164 전화 번호를 URI로 변환하는 프로토콜입니다. 이 문서에서는 이에 대해 다루지 않습니다. |
PSTN |
공중 전화망(PSTN) |
ITSP |
인터넷 텔레포니 서비스 공급자 |
SBC |
Session Border Controller입니다. 이 디바이스는 고객 LAN과 ITSP/PSTN 네트워크의 경계 지점으로 사용됩니다 |
기능 | IOS 버전 | IOS XE 버전 |
번호 확장(num-exp) 다이얼 피어(POTS 및 VOIP) 응답 주소 대상 패턴 수신 수신 수신 번호 세션 대상(IPv4 및 DNS) 최대 연결 수(max-conn) 직접 내부 다이얼 앞으로 숫자(POTS) 접두사(POTS) 시간 초과 숫자 간(음성 포트) |
11.3조 1항 |
모두 |
다이얼 피어 종단 장치 |
12.0 |
모두 |
수색 공장 |
12.0(5)T |
모두 |
ISDN 맵 |
12.0(6)T |
모두 |
다이얼 피어 헌팅 체계 |
12.0(7)XK |
모두 |
음성 변환 규칙 및 프로필 변환-발신 번호 매기기 유형 숫자 스트립(POTS) |
12.0.(7)XR1 |
모두 |
세션 대상(sip-server) |
12.1조 |
모두 |
POTS 트렁크 그룹 |
12.1(3)T |
모두 |
DNIS-Map(아웃바운드) |
12.2(2)XB |
모두 |
트렁크 그룹 레이블 |
12.2조(11)T |
모두 |
다이얼 피어(데이터) |
12.2조(13)T |
모두 |
음성 클래스 URI(아웃바운드) |
12.3(4)T |
모두 |
아웃바운드 프록시 |
12.4조(15)T |
모두 |
세션 대상(IPv6) |
12.4(22)T |
모두 |
SIP 프로필(아웃바운드) |
15.0(1)M |
모두 |
음성 클래스 URI(인바운드) 음성 소스 그룹 |
15.1(2)T |
3.8초 |
SIP 카피 목록 세션 대상(등록자) |
15.1(3)T |
3.6초 |
통화 경로(url) |
15.2(1)T |
3.3초 |
최대 대역폭 |
15.2조 |
3.7초 |
E164-패턴 맵(아웃바운드) |
15.2인치 |
3.7초 |
음성 클래스 경로 문자열 call-route(dest-route-string) |
1,530만 |
3.10 |
VOIP(Dial-Peer Group) E164-패턴 맵(인바운드) 대상 서버 그룹 requri-패싱 세션 대상(sip-uri) |
15.4(1)T |
3.11초 |
다이얼 피어 프로비저닝 정책 SIP 프로파일(인바운드) |
15.4조2항 |
3.12초 |
POTS(Dial-Peer Group) |
15.5조1항 |
3.14초 |
음성 클래스 테넌트 |
15.6조2항 |
16.3.1 |
다이얼 피어를 위한 VRF 필터링 |
15.6(3)M |
16.3.1 |
e164-번역 |
해당 없음 |
16.8.1 |
SIP DSAPP |
해당 없음 |
16.12.1 |
서버 그룹에 대한 Huntstop |
해당 없음 |
17.4.1 |
테넌트용 sip 수신 대기 포트 다이얼 피어용 필터링 |
해당 없음 |
17.8.1 |
DNS SRV 기반 옵션 킵얼라이브 |
해당 없음 |
17.9.1 |
Cisco IOS 및 Cisco IOS XE 게이트웨이는 다이얼 피어의 개념을 활용하여 각 통화 레그에 대한 통화 라우팅 및 기능 협상을 제어합니다. 통화 레그는 두 통화 에이전트 간의 양방향 통신입니다. 통화 에이전트는 텔레포니 통화를 시작, 처리 또는 전달하는 디바이스입니다. 이는 Telephony Provider 장비, Cisco Gateway, IP Phone, CUCM(Cisco Unified Communication Manager), CUC(Cisco Unity connection) 등이 될 수 있으며 이에 제한되지 않습니다. 나열할 통화 에이전트가 너무 많습니다.
시나리오: 통화가 다른 통화 에이전트로부터 Cisco 게이트웨이에 도착하며 인바운드 통화 레그입니다(in-leg). 게이트웨이가 통화를 처리하고 해당 처리를 기반으로 통화를 다음 통화 에이전트에 전송합니다. 아웃바운드 통화 레그(아웃바운드 레그)입니다.
이미지 1은 Cisco 음성 게이트웨이를 통한 PSTN에서 CUCM 라우팅으로의 통화 및 해당 인바운드 및 아웃바운드 통화 레그 정보를 보여줍니다.
이미지 1 - 인바운드 및 아웃바운드 통화 구간 그림
Cisco Gateway ALWAYS(참고 참조)를 통해 성공적으로 전화를 걸면 인바운드 또는 아웃바운드 다이얼 피어가 제대로 라우팅됩니다. 인바운드 및 아웃바운드 다이얼 피어는 앞서 언급한 통화 레그와 비슷합니다. 이미지 1에서 통화는 Cisco 게이트웨이의 PSTN에서 전달되며 인바운드 다이얼 피어와 일치해야 합니다. 그런 다음 게이트웨이는 아웃바운드 다이얼 피어를 사용하여 통화를 다음 통화 에이전트에 라우팅합니다. 이러한 용어는 Cisco 게이트웨이의 관점에서 정의되어야 합니다.
통화의 각 측면에 대해 다이얼 피어를 일치시킴으로써 관리자는 각 특정 통화 레그의 여러 측면을 제어할 수 있습니다. 이러한 기능의 예로는 음성 코덱, DTMF 기본 설정, 숫자 조작, 통화를 라우팅할 위치 및 기타 여러 설정이 있습니다. 인바운드 및 아웃바운드 일치 컨피그레이션이 특정 다이얼 피어에 적용된 경우 인레그와 아웃레그 모두에 대해 동일한 다이얼 피어와 일치시킬 수 있도록 인바운드 및 아웃바운드 일치 명령문으로 다이얼 피어를 구성할 수 있습니다.
이미지 2는 이미지 1과 동일한 인바운드 및 아웃바운드 통화 레그를 보여주지만, Cisco Voice Gateway를 통해 PSTN에서 CUCM 라우팅으로의 통화에 대한 각 다이얼 피어가 있습니다.
이미지 2 - 인바운드 및 아웃바운드 다이얼 피어 그림
Cisco Voice Gateway는 IP-IP, POTS-POTS 및 IP-POTS 또는 그 반대의 경우를 포함하여 다양한 유형의 음성 통화 및 프로토콜을 상호 운용할 수 있습니다.
이미지 3은 CUBE(Cisco Unified Border Element)를 통한 VoIP 대 VoIP 통화를 보여줍니다.
이미지 3 - Voip-VoIP 통화의 인바운드 및 아웃바운드 다이얼 피어
이미지 4에는 Cisco 게이트웨이를 통한 POTS 간 통화가 표시됩니다.
이미지 4 - POTS-POTS 통화를 위한 인바운드 및 아웃바운드 다이얼 피어
포트 |
일반 구형 텔레포니 서비스 다이얼 피어는 아날로그 FXS, FXO, ISDN T1/E1s, E1 R2 및 E&M(Ear and Mouth) 연결과 같은 아날로그 연결에 적합합니다. 게이트웨이의 물리적 음성 포트에서 통화를 전송하거나 수신합니다. |
VOIP |
VoIP(Voice Over IP) 다이얼 피어는 주로 게이트웨이와 주고받는 H323 및 SIP 연결을 제어하는 데 사용됩니다. 이러한 다이얼 피어는 DNS(Domain Name System)를 사용하여 IPv4 및 IPv6 주소뿐 아니라 FQDN(Fully Qualified Domain Name)에서 신호를 보내고 받습니다. — VoIP 다이얼 피어를 VoFR(Voice over Frame Relay), VoATM(Voice over ATM), VoHDLC(Voice over High-Level Data Link Control) 및 RAS(Registration, Admission, and Status) 시그널링에도 사용할 수 있으며 이러한 다이얼 피어의 세션 대상에는 결제 및 ENUM 값도 포함할 수 있습니다. 참고: 이러한 컨피그레이션 유형 중 일부는 최신 네트워크에서 볼 수 없는 이전 기술이며 IOS XE에서는 더 이상 지원되지 않는 기술도 있습니다. 따라서 이 문서에서는 다루지 않습니다. |
MMOIP |
Multimedia Mail Over IP 다이얼 피어는 Exchange 서버로 이메일을 보내는 데 사용됩니다. 이는 대부분 t37 온램프/오프램프 팩스에 사용됩니다. 이러한 다이얼 피어 유형은 이 문서의 범위에 속하지 않습니다. |
참고: Cisco 게이트웨이에서 구성할 수 있는 최대 다이얼 피어 수는 사용 가능한 메모리(DRAM)에 따라 다릅니다. 각 다이얼 피어는 약 6KB의 메모리를 사용하므로 게이트웨이가 총 메모리의 20% 이상을 다른 CPU 프로세스용으로 예약해야 합니다. 구성된 많은 다이얼 피어가 지연에 추가되어 통화를 라우팅할 수 있습니다. 이는 Cisco 음성 애플리케이션이 ACL(Access Control List)과 마찬가지로 위에서 아래로 다이얼 피어를 살펴본다는 점에서 의미가 있습니다. 이는 일반적으로 최신 Cisco 게이트웨이에서는 문제가 되지 않습니다.
샘플 오류:
May 26 12:59:46.406: %DIALPEER_DB-3-ADDPEER_MEM_THRESHOLD: Addition of dial-peers limited by available memory
Cisco 게이트웨이가 통화 설정 요청을 수신하면 게이트웨이는 이 통화에 해당하는 수신 다이얼 피어 검색을 시작합니다. 이는 자릿수 분석이 아니라 전체 메시지를 사용하여 어떤 인바운드 다이얼 피어를 선택했는지 확인합니다. 선택한 메시지의 항목 순서는 표 1, 표 2 및 표 3에 정의된 기본 설정 목록에 표시된 대로 통화에 대한 프로토콜에 따라 크게 달라집니다. 다이얼 피어는 일치 조건 중 하나만 충족하면 됩니다. 다이얼 피어에 모든 특성을 구성할 필요가 없거나 모든 특성이 통화 설정 정보와 일치할 필요는 없습니다. 모든 다이얼 피어는 첫 번째 일치 기준에 따라 검색됩니다. 일치하는 항목이 없는 경우에만 게이트웨이가 다음 기준으로 이동합니다.
표 1. 인바운드 SIP 다이얼 피어 선택 기본 설정
기본 설정 |
일치 기준 |
Dial-peer 명령 |
1 |
URI |
<uri-tag>를 통해 들어오는 uri |
2 |
URI |
들어오는 uri 요청 <uri-tag> |
3 |
URI |
<uri-tag>에 들어오는 uri |
4 |
URI |
<uri-tag>에서 들어오는 uri |
5 |
수신 번호 |
수신 called-number <number-string> 들어오는 e164-pattern-map <pattern-map-number> |
6 |
발신 번호 |
수신 발신 e164-pattern-map <pattern-map-number> answer-address <number-string> |
7 |
대상 패턴(ANI) |
destination-pattern <번호 문자열> |
8 |
캐리어 ID |
carrier-id 소스 <문자열> |
참고: 적합한 인바운드 다이얼 피어는 VRF 또는 테넌트로 필터링할 수 있습니다. 해당 기능이 구성된 경우. 자세한 내용은 VRF(Virtual Routing and Forwarding) 및 Dial-Peer Hunting and Voice Class Tenants 섹션을 참조하십시오.
표 2. 인바운드 H323 다이얼 피어 선택 기본 설정
기본 설정 |
일치 기준 |
Dial-peer 명령 |
1 |
URI |
<uri-tag>라는 수신 uri 수신 uri 호출 <uri-tag> |
2 |
수신 번호 |
수신 called-number <number-string> 들어오는 e164-pattern-map <pattern-map-number> |
3 |
발신 번호 |
수신 발신 e164-pattern-map <pattern-map-number> answer-address <number-string> |
4 |
대상 패턴(ANI) |
destination-pattern <번호 문자열> |
5 |
캐리어 ID |
carrier-id 소스 <문자열> |
표 3. 인바운드 블록 POTS 다이얼 피어 선택 기본 설정
기본 설정 |
일치 기준 |
Dial-peer 명령 |
1 |
수신 번호 |
수신 called-number <number-string> |
2 |
발신 번호 |
answer-address <number-string> |
3 |
대상 패턴(ANI) |
대상 패턴 <number-string> |
4 |
음성 포트 |
포트 <voice-port-number> |
POTS 또는 VoIP 통화에 대한 인바운드 다이얼 피어에 대한 허용 가능한 일치가 없는 경우 게이트웨이에서 다이얼 피어 0을 할당합니다. 다이얼 피어 0은 기능이 제한되어 있으며 통화 시 문제를 일으킬 수 있으므로 이는 적합하지 않습니다. 이에 대한 예외는 통화 라우팅에 다이얼 피어를 사용하지 않는 SCCP 및 MGCP 프로토콜입니다. 자세한 내용은 MGCP 및 SCCP 섹션을 참조하십시오.
dial-peer 0 기능
아웃바운드 다이얼 피어는 게이트웨이에서 다음 통화 에이전트로 POTS 또는 VoIP 통화를 라우팅하는 데 사용됩니다. 인바운드 다이얼 피어 일치와 마찬가지로 게이트웨이가 특정 프로토콜의 기본 설정 순서에 따라 다이얼 피어를 일치시키는 데 사용할 수 있는 항목 목록이 있습니다. 그러나 인바운드 다이얼 피어와 달리 통화를 라우팅할 적격 아웃바운드 다이얼 피어가 없으면 통화가 실패합니다. 인바운드 다이얼 피어 일치와 마찬가지로 모든 다이얼 피어는 첫 번째 일치 기준에 따라 검색됩니다. 일치하는 항목이 없는 경우에만 게이트웨이가 다음 기준으로 이동합니다.
표 4. 아웃바운드 SIP 다이얼 피어 선택 기본 설정
기본 설정 |
일치 기준 |
Dial-peer 명령 |
1 |
다이얼 피어 그룹 다이얼 피어 |
대상 dpg <dpg-tag> (인바운드 다이얼 피어에 구성된 DPG) |
2 |
다이얼 피어 프로비저닝 정책 URI |
대상 uri-from <uri-tag> (인바운드 다이얼 피어에 구성된 DPP) |
3 |
ILS 경로 문자열 |
대상 route-string <route-string-tag> |
4 |
URI 및 캐리어 ID |
대상 uri <uri-tag> 및 CARRIER-id 대상 <string> |
5 |
수신 번호 및 캐리어 ID |
destination-pattern <number-string> AND carrier-id target <string> |
6 |
URI |
대상 uri <uri-tag> |
7 |
수신 번호 |
destination-pattern <DNIS-number> 대상 e164-pattern-map <pattern-map-number> dnis-map <dnis-map-number> |
8 |
발신 번호 |
destination calling e164-pattern-map <pattern-map-number> |
표 5. 아웃바운드 H323 다이얼 피어 선택 기본 설정
기본 설정 |
일치 기준 |
Dial-peer 명령 |
1 |
다이얼 피어 그룹 다이얼 피어 |
대상 dpg <dpg-tag> (인바운드 다이얼 피어에서 구성됨) |
2 |
URI 및 캐리어 ID |
대상 uri <uri-tag> 및 CARRIER-id 대상 <string> |
3 |
수신 번호 및 캐리어 ID |
destination-pattern <number-string> AND carrier-id target <string> |
4 |
URI |
대상 uri <uri-tag> |
5 |
수신 번호 |
destination-pattern <번호 문자열> 대상 e164-pattern-map <pattern-map-number> dnis-map <dnis-map-number> |
6 |
발신 번호 |
destination calling e164-pattern-map <pattern-map-number> |
표 6. 아웃바운드 POTS 다이얼 피어 선택 기본 설정
기본 설정 |
일치 기준 |
다이얼 피어 명령* |
1 |
다이얼 피어 그룹 다이얼 피어 |
대상 dpg <dpg-tag>(인바운드 다이얼 피어에 구성됨) |
2 |
URI 및 캐리어 ID |
대상 uri <uri-tag> 및 CARRIER-id 대상 <string> |
3 |
수신 번호 및 캐리어 ID |
destination-pattern <number-string> AND carrier-id target <string> |
4 |
URI |
대상 uri <uri-tag> |
5 |
수신 번호 |
destination-pattern <DNIS-number>dnis-map <map-number> |
참고: Number String Dial-Peer Hunting and URI Dial-Peer Hunting 섹션에서는 다음 일치 조건으로 이동하기 전에 게이트웨이가 각 일치 조건 행에 대한 잠재적인 명령 목록을 평가하는 방법에 대해 설명합니다. 예를 들어, calling number 명령을 검사하기 전에 모든 잠재적 destination-pattern 일치 및 destination e164-pattern-map matching 명령을 평가합니다.
숫자 문자열 기본 설정:
URI가 일치 항목을 평가하는 작업의 특정 순서를 갖는 것과 마찬가지로, 숫자 숫자 문자열을 평가할 때 사용되는 규칙 집합도 있습니다. Cisco 게이트웨이에 대한 기본 다이얼 피어 헌트 체계는 0으로 설정됩니다. 즉, 게이트웨이가 가장 긴 일치(가장 특정함)가 있는 패턴을 검색합니다. 일치하는 길이가 동일한 두 개의 다이얼 피어가 있는 경우 게이트웨이는 명시적으로 정의된 다이얼 피어 기본 설정을 확인합니다. 마지막으로, 두 가지가 동일한 경우 무작위 순서로 하나를 선택한다.
컨피그레이션에 사용할 수 있는 다른 다이얼 피어 헌트 스키마가 있습니다. 그러나 대부분의 구축에서는 기본값인 0을 유지합니다.
팁: 다이얼 피어가 기본 순서 외부에서 일치하는 경우 관리자는 실행 중인 컨피그레이션에서 기본이 아닌 다이얼 피어 헌트 체계를 검사할 수 있습니다.
Gateway(config)# dial-peer hunt ? <0-7> Dial-peer hunting choices, listed in hunting order within each choice: 0 - Longest match in phone number, explicit preference, random selection. 1 - Longest match in phone number, explicit preference, least recent use. 2 - Explicit preference, longest match in phone number, random selection. 3 - Explicit preference, longest match in phone number, least recent use. 4 - Least recent use, longest match in phone number, explicit preference. 5 - Least recent use, explicit preference, longest match in phone number. 6 - Random selection. 7 - Least recent use.
가장 긴 일치 번호 문자열 다이얼 피어 알고리즘은 번호 문자열의 번호 시퀀스와 정확히 일치하는 시퀀스에 있는 번호가 가장 많은 다이얼 피어를 찾습니다. 이 개념은 후속 시나리오에서 명확해집니다.
시나리오: 적합한 다이얼 피어가 이러한 가능한 일치를 사용하여 구성되었으며 게이트웨이가 2001년 숫자 문자열을 평가하고 있습니다. Dial-peer 1은 2000~2999의 숫자와 일치할 수 있으며, Dial-peer 2는 2000~2009의 숫자와 일치할 수 있습니다. 기본 다이얼 피어 헌팅 메커니즘이 사용될 때(다이얼 피어 헌트 0) 숫자 문자열 2001에 대한 가장 긴 일치(가장 특정함)이므로 다이얼 피어 2가 이 통화에 대해 일치됩니다. 다시 말해, 200번의 순서는 숫자 문자열 2001에서 숫자의 순서와 정확히 일치하는 가장 큰 순서이다.
!
dial-peer voice 1 voip
destination-pattern 2...
!
dial-peer voice 2 voip
destination-pattern 200.
!
기본 설정은 각 다이얼 피어에 대해 관리자가 정의한 가중치로 정의됩니다. 관리자는 통화가 다른 통화보다 항상 먼저 특정 다이얼 피어를 사용하도록 기본 설정을 구성할 수 있습니다. 기본적으로 모든 다이얼 피어는 환경 설정 0입니다. 기본 설정이 0인 다이얼 피어가 기본 설정이 1~10인 다른 다이얼 피어 앞에 일치합니다. 대부분의 관리자는 기본 설정이 더 낮은 다른 다이얼 피어(더 높은 번호로 구성됨)를 사용하여 백업 가입자 또는 다른 통화 에이전트를 구성하는 특정 CUCM 가입자에게 통화를 전송하도록 여러 다이얼 피어를 설정합니다.
시나리오: 2개의 다이얼 피어가 2001년 숫자 문자열에 대해 동일한 일치 길이로 구성됩니다. 관리자는 명시적 기본 설정을 정의합니다. 게이트웨이는 두 다이얼 피어의 일치 길이가 동일하기 때문에 두 다이얼 피어를 동일하게 평가합니다. 그러나 관리자는 다이얼 피어가 통화 라우팅에 사용되는 첫 번째 다이얼 피어로 선택되도록 다이얼 피어 1을 더 높은 기본 설정으로 설정합니다. Dial-Peer 2는 보조 옵션으로 유지되며 첫 번째 Dial-Peer에서 장애가 발생할 수 있습니다.
!
dial-peer voice 1 voip
destination-pattern 2...
preference 1
!
dial-peer voice 2 voip
destination-pattern 2...
preference 2
!
Cisco 게이트웨이는 한 번에 하나의 적격 아웃바운드 다이얼 피어를 통해서만 통화 라우팅을 시도합니다. 첫 번째 선택한 다이얼 피어에서 실패 조건이 관찰되면 게이트웨이는 다음 적합한 다이얼 피어에서 통화를 라우팅하려고 시도합니다. 더 이상 시도할 자격이 있는 다이얼 피어가 남아 있지 않으므로 통화가 성공하거나 실패할 때까지 계속됩니다. 다이얼 피어 헌팅과 실패의 일반적인 증상은 전화를 거는 동안 링백이 눈에 띄게 지연되는 것입니다. 일반적으로 디버그는 지정된 다이얼 피어에서 통화가 실패한 이유를 정확히 확인하는 데 필요합니다. 관리자가 실패 조건이 관찰될 때 게이트웨이가 다른 다이얼 피어를 검색하기를 원하지 않는 경우 다이얼 피어에서 huntstop 명령을 사용할 수 있습니다.
시나리오: 2개의 다이얼 피어가 2001년 숫자 문자열에 대해 동일한 일치 길이로 구성됩니다. 관리자가 명시적 기본 설정을 정의했으며 이 특정 통화에 대해 다이얼 피어 2와 일치하지 않으려고 합니다. 일치하는 길이의 다이얼 피어가 두 개 있으므로 기본 설정을 사용하여 다이얼 피어를 결정합니다. Dial-Peer 1의 기본 설정 번호가 가장 낮기 때문에 통화를 라우팅하는 데 사용됩니다. 다이얼 피어 1을 사용하는 아웃바운드 통화 레그에 장애 조건이 발생하면 huntstop 명령이 구성되었으므로 게이트웨이는 즉시 다이얼 피어 헌팅을 중지합니다. 이 시나리오에서 다이얼 피어 2는 아웃바운드 라우팅에 사용되지 않습니다.
! dial-peer voice 1 voip destination-pattern 2... preference 1 huntstop ! dial-peer voice 2 voip destination-pattern 2... preference 2 !
참고: huntstop 및 preference 명령은 일반적인 dial-peer 컨피그레이션 명령이므로 URI matching 문과 함께 사용할 수도 있습니다. 또한 음성 클래스 서버 그룹 컨피그레이션에서는 17.4.1a의 huntstop 명령을 활용할 수 있습니다. 이에 대한 자세한 내용은 대상 서버 그룹 섹션을 참조하십시오.
게이트웨이는 각 일치 기준을 살펴본 다음 다음 다음 일치 기준으로 이동하기 전에 모두 처리합니다. 예를 들면 인바운드 SIP 통화에 있을 수 있습니다. 표 1 기준. 인바운드 SIP Dial-Peer Selection Preference(SIP 다이얼 피어 선택 환경 설정)에서 Cisco 게이트웨이가 가장 먼저 확인하는 것은 URI이며 모든 잠재적 URI 명령을 평가하여 적합한 명령을 찾습니다. 일치하는 항목이 없거나 구성되지 않은 경우 게이트웨이는 일치하는 다음 항목으로 이동하고 해당 기준에 대한 평가를 수행합니다. 이 프로세스는 일치에 따라 통화가 라우팅되거나 게이트웨이에서 확인할 일치 기준이 부족할 때까지 반복됩니다.
인바운드 또는 아웃바운드 다이얼 피어가 URI 명령으로 구성된 경우 게이트웨이는 여러 헤더에서 수신된 URI에서 잠재적 일치를 검사합니다. 일치 기본 설정은 가장 구체적인 일치를 기반으로 하며 정확한 기본 설정은 전체 URI 일치, 호스트 부분, 사용자 부분 또는 전화 URI가 됩니다. URI 일치를 위한 작업 순서를 알면 SIP 및 CUBE 구축을 통한 다이얼 피어 일치를 쉽게 찾을 수 있습니다.
이 기본 설정 순서는 명령 음성 클래스 uri sip 기본 설정을 사용하여 user-id를 호스트 대신 첫 번째 옵션으로 지정할 수 있습니다.
URI 기본 설정:
지원 문서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
시나리오: 관리자가 이 다이얼 피어를 구성하고 게이트웨이에 통화를 전송합니다. 수신된 초대의 From 헤더는 From: <sip:testuser@10.10.10.10>입니다. 게이트웨이는 이 헤더를 기반으로 두 개의 서로 다른 다이얼 피어를 일치시킬 수 있습니다. 사용자 부분에 기반한 다이얼 피어 1 및 호스트 부분에 기반한 다이얼 피어 2. 그러나 호스트 일치는 사용자 일치보다 우선하므로 다이얼 피어 2는 통화의 인바운드 다이얼 피어에 사용됩니다.
! voice class uri URI1 sip user-id testuser ! voice class uri URI2 sip host ipv4:10.10.10.10 ! dial-peer voice 1 voip sess protocol sipv2 incoming uri FROM URI1 ! dial-peer voice 2 voip sess protocol sipv2 incoming uri FROM URI2 !
인바운드 및 아웃바운드 다이얼 피어에 대한 URI 일치를 통해 관리자는 메시징에서 URI를 지원하는 VoIP 프로토콜의 전화 번호 문자열 이상에서 일치를 수행할 수 있는 능력과 유연성을 갖출 수 있습니다. IOS 15.4(1)T 및 IOS-XE 3.11S 이전에는 요청 URI에 영숫자 user@host이 포함되어야 했습니다. 그렇지 않으면 Cisco 게이트웨이가 4xx 메시지의 통화를 거부합니다. 이제 URI는 호스트 부분만 포함할 수 있으며 게이트웨이는 제공된 호스트만 기반으로 통화를 라우팅합니다. 예: sip:cisco.com.
또한 IOS 15.4(1)T 이전 및 IOS-XE 3.11S 음성 클래스 URI 사용자 ID는 숫자 e.164 값(sip:1234@host.com)만 가능합니다. 관리자가 CUBE(sip:user@host.com)에서 영숫자 사용자 ID를 구성할 수 있도록 변경되었습니다.
음성 클래스 URI의 호스트 또는 사용자 부분에는 정규식(regex) 패턴이 포함될 수 있으며, 이는 매칭할 수 있는 가능한 값을 크게 확장합니다.
Gateway(config-voice-uri-class)# user-id .) % unmatched ()user-id pattern can be of format ^([][0-9A-Za-z\|\/()*+^$&?#--.])*$
Gateway(config-voice-uri-class)# host .)
% unmatched ()host pattern can be of format ^([][0-9A-Za-z\|@\/()*+^$&?#--.])*$
Gateway(config-voice-uri-class)# pattern .)
% unmatched ()pattern pattern can be of format ^([][0-9A-Za-z\|@;:=%!~\/()*+^$&?#--.])*$
예: 음성 클래스 URI
! voice class uri HOST sip host webex.com host dns:cisco.webex.com host ipv4:10.50.244.2 host ipv6:[2001:4860:4860::8888] ! voice class uri USER sip user-id username ! voice class uri PATTERN sip pattern 8675309 ! voice class uri HostRegex sip host (.*)cisco.com !
voice class uri ipRegex sip
host 172\.18\.110\.20[567]
! voice class uri PatternRegex sip pattern 555(.*) !
voice class uri ipRegex sip
pattern (172\.18\.110\.10[134]|10\.10\.10\.10)
! One Line that matches 172.18.110.101, 172.18.110.103, 172.18.110.104 OR 10.10.10.10
! voice class uri UserRegex sip user-id test(.*) !
이 예제에서 보여주는 것처럼 음성 클래스 uri당 호스트 10개, 패턴 1개 또는 사용자 ID 1개만 구성할 수 있습니다. 매칭해야 할 항목이 더 있다면 Regex를 사용하는 것이 좋다.
Gateway(config)# voice class uri TEST sip Gateway(config-voice-uri-class)#host ipv4:10.1.1.1 Gateway(config-voice-uri-class)#host ipv4:10.2.2.2 Gateway(config-voice-uri-class)#host ipv4:10.3.3.3 Gateway(config-voice-uri-class)#host ipv4:10.4.4.4 Gateway(config-voice-uri-class)#host ipv4:10.5.5.5 Gateway(config-voice-uri-class)#host ipv4:10.6.6.6 Gateway(config-voice-uri-class)#host ipv4:10.7.7.7 Gateway(config-voice-uri-class)#host ipv4:10.8.8.8 Gateway(config-voice-uri-class)#host ipv4:10.9.9.9 Gateway(config-voice-uri-class)#host ipv4:10.10.10.10 Gateway(config-voice-uri-class)#host ipv4:10.11.11.11 Error:Maximum of 10 hosts can only be configured. Gateway(config)# voice class uri TEST2 sip Gateway(config-voice-uri-class)#host dns:1.com Gateway(config-voice-uri-class)#host dns:2.com Gateway(config-voice-uri-class)#host dns:3.com Gateway(config-voice-uri-class)#host dns:4.com Gateway(config-voice-uri-class)#host dns:5.com Gateway(config-voice-uri-class)#host dns:6.com Gateway(config-voice-uri-class)#host dns:7.com Gateway(config-voice-uri-class)#host dns:8.com Gateway(config-voice-uri-class)#host dns:9.com Gateway(config-voice-uri-class)#host dns:10.com Gateway(config-voice-uri-class)#host dns:11.com Error:Maximum of 10 hosts can only be configured. Gateway(config)# voice class uri TEST3 sip Gateway(config-voice-uri-class)#user-id 8675309 Gateway(config-voice-uri-class)#user-id 123456789 Gateway(config-voice-uri-class)#do sh run | s TEST3 voice class uri TEST3 sip user-id 123456789 Gateway(config)# voice class uri TEST4 sip Gateway(config-voice-uri-class)#pattern 8675309 Gateway(config-voice-uri-class)#pattern 123456789 Gateway(config-voice-uri-class)#do sh run | s TEST4 voice class uri TEST4 sip pattern 123456789
이 기능은 IOS 15.1(2)T 및 IOS-XE 3.8S에 추가되었으며 인바운드 다이얼 피어에 구성 및 적용된 음성 클래스 uri를 사용합니다. 수신 URI는 인바운드 다이얼 피어를 선택할 때 확인되는 첫 번째 일치 기준이므로 SIP 통화에 대한 기존 수신 수신자 번호 문을 통해 많은 사용자가 채택했습니다. 또한 관리자는 이 명령을 사용하여 특정 통화 에이전트 또는 사용자의 통화와 더 잘 일치시킬 수 있습니다.
전체 문서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
일반적인 활용 사례
컨피그레이션 예시
이 예제 출력에서는 음성 클래스 URI에 정의된 두 호스트 IP의 SIP 요청 소싱에 대해 다이얼 피어 777과 일치시킵니다. 감시되는 헤더는 다이얼 피어의 From 헤더로 정의되지만, 관리자는 VIA, TO 및 REQUEST(Request URI)를 비롯한 다른 여러 헤더를 정의할 수 있습니다. CUCM에서 OPTIONS ping을 CUBE로 전송하면 이제 다이얼 피어 777과 일치하고 지정된 인터페이스에서 OPTIONS에 대한 내 200 OK 응답을 보냅니다. CUCM이 CUBE에 Invite(초대)를 보낼 경우 다이얼 피어 777을 인바운드 다이얼 피어로 매칭합니다.
! voice class uri CUCM sip
host ipv4:10.50.244.2
host ipv4:10.50.244.20 ! dial-peer voice 777 voip description INCOMING URI session protocol sipv2 incoming uri from CUCM voice-class sip bind control source-interface Loopback777 voice-class sip bind media source-interface Loopback777 !
Cisco IOS 게이트웨이는 아웃바운드 다이얼 피어에 음성 클래스 uri를 적용하고 전역 컨피그레이션에 통화 경로 url을 추가하여 URI를 사용하여 아웃바운드 다이얼 피어를 일치시킬 수 있습니다. 이 경우 CUBE는 요청 URI를 기반으로 통화를 라우팅하려고 시도할 수 있습니다. 이 기능은 IOS 12.3(4)T에 추가되었으며 모든 IOS XE 버전에 있습니다. 기본적으로 발신 SIP Request-URI 및 To 헤더 URI에는 아웃바운드 다이얼 피어의 세션 대상이 있습니다. 이는 게이트웨이가 URI 호스트 부분을 세션 대상으로 교체하는 대신 in-leg URI 호스트 부분을 out-leg로 전달할 수 있도록 하는 requri-passing 명령을 사용하여 비활성화할 수 있습니다. 15.4(1)T 및 IOS XE 3.11S에서 requri-passing 명령이 추가되었습니다.
컨피그레이션 예시
voice service voip
sip
call-route url
requri-passing
! voice class uri CUCM sip
host dns:.*.com ! dial-peer voice 777 voip description OUTGOING URI session protocol sipv2 destination uri CUCM
session target sip-uri !
출처: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이후
관리자는 음성 클래스 URI 외에도 DPP(Dial-Peer Provision-Policy)를 사용하여 아웃바운드 다이얼 피어 일치를 위해 인레그 URI를 일치시킬 수 있습니다. 이 기능은 IOS 15.4(2)T 및 IOS XE 3.12S에 추가되었습니다. 다이얼 피어 프로비저닝 정책을 사용하려면 기본 일치 특성을 정의해야 하며 보조 일치 특성은 선택 사항입니다. 프로비저닝 정책이 인바운드 다이얼 피어에 적용되고, 해당 다이얼 피어가 인바운드 통화 레그에 사용하도록 선택된 경우 정책이 호출됩니다. 그 결과 다이얼 피어 프로비저닝 정책의 특성에 따라 아웃바운드 다이얼 피어가 선택됩니다.
아웃바운드 일치는 단일 헤더 또는 여러 헤더가 될 수 있으며, 모두 다이얼 피어를 일치시키기 위해 참이어야 합니다.
이 예에서는 From 및 To 헤더에 대한 음성 클래스 URI가 있습니다. OR 일치의 경우 두 가지 기본 설정을 포함하는 다이얼 피어 프로비저닝 정책이 구성됩니다. From 헤더가 첫 번째 기본 설정이고 To 헤더가 백업 기본 설정입니다. Dial-Peer 1234는 인바운드 매칭을 위한 프로비저닝 정책을 적용하기 위해 제작되었습니다. 그런 다음 대상 uri-from 및 대상 uri-to 명령을 각각 적용하는 다이얼 피어 11111 및 22222을 빌드했습니다. 이러한 명령은 해당 음성 클래스 URI를 다시 가리킵니다. 통화에 대해 Invite(초대)를 받고, Match Dial-Peer(다이얼 피어) 1234를 확인한 후 프로비저닝 정책을 확인할 수 있습니다. 그런 다음 디바이스는 먼저 From 헤더에서 라우팅을 시도할 수 있으며, 이는 다이얼 피어 11111에서 적용할 수 있는 일치입니다. 이 작업이 실패할 경우 를 사용하여 대상 헤더에 라우팅을 시도할 수도 22222.
또한 이 예에서는 다이얼 피어 프로비저닝 정책과 And 일치를 확인하는 방법에 대해 자세히 설명합니다. 동일한 초대를 받았다고 가정할 경우 하나의 기본 설정에서 두 개의 헤더를 정의하고 이를 인바운드 다이얼 피어에 적용할 수 있습니다.
이제 초대를 받으면 프로비전 정책에 정의된 두 일치 기준을 모두 충족하는 적격 아웃바운드 다이얼 피어를 확인할 수 있습니다. 따라서 이 예에서는 아웃바운드 다이얼 피어를 TO 및 FROM 헤더로 정의해야 일치됩니다. 둘 중 하나가 유효한 일치가 아니면 이 다이얼 피어 12345은 사용되지 않습니다.
참고: From 헤더에서 통화를 라우팅하지만 게이트웨이에서 나가는 초대는 여전히 원래 요청 URI를 가지고 있습니다. 요청 URI를 변경하지 않고 아웃바운드 다이얼 피어와 일치시키기 위해 다이얼 피어 프로비저닝 정책을 사용합니다.
컨피그레이션 예시:
### Received INVITE
Received:
INVITE sip:8675309@172.18.110.58:5060 SIP/2.0
From: sipp <sip:sipp@172.18.110.65>;tag=1
To: sut <sip:cube@172.18.110.58:5060>
### Common Configurations
!
voice class uri FROM sip
user-id sipp
!
voice class uri TO sip
user-id cube
!
### OR Match
!
voice class dial-peer provision-policy 1
description match from header. If false, try to header
preference 1 from
preference 2 to
!
dial-peer voice 1234 voip
session protocol sipv2
destination provision-policy 1
incoming called-number .
!
dial-peer voice 11111 voip
destination uri-from FROM
session protocol sipv2
session target ipv4:172.18.110.48
!
dial-peer voice 22222 voip
destination uri-to TO
session protocol sipv2
session target ipv4:172.18.110.48
!
### AND Match
!
voice class dial-peer provision-policy 2
description match from AND to headers
preference 1 from to
!
dial-peer voice 1234 voip
session protocol sipv2
destination provision-policy 2
incoming called-number .
!
dial-peer voice 12345 voip
destination uri-from FROM
destination uri-to TO
session protocol sipv2
session target ipv4:172.18.110.48
!
출처: Cisco IOS XE 17.5를 통한 Cisco Unified Border Element 컨피그레이션 설명서
세션 대상 sip-uri
IOS 15.4(1)T 및 IOS XE 3.11S 이전 버전에서는 URI의 호스트 부분이 다르지만 사용자가 동일한 경우 2개의 개별 아웃바운드 다이얼 피어가 필요합니다.
이 릴리스 이후에 관리자는 동일한 사용자에 대해 여러 호스트를 서비스하도록 하나의 다이얼 피어를 구성할 수 있습니다. 예를 들어, 동일한 다이얼 피어의 testuser@cisco.com 및 testuser@webex.com을 입력합니다. 세션 대상 sip-uri를 사용하면 들어오는 Invite Req-URI 도메인의 DNS 확인이 트리거되고 세션 대상 IP가 동적으로 결정됩니다.
컨피그레이션 예:
게이트웨이는 다음 헤더가 포함된 두 개의 SIP 초대를 수신합니다. Invite sip:testuser@cisco.com:5060 SIP/2.0 Invite sip:testuser@webex.com:5060 SIP/2.0 수신 URI 명령 및 사용자 ID 정의가 모두 testuser와 일치하기 때문에 게이트웨이는 다이얼 피어 1에서 수신 SIP 요청인 testuser@cisco.com 및 testuser@webex.com과 일치합니다. voice-class sip call-route url is present 명령은 이 인바운드 초대의 요청 URI를 기반으로 아웃바운드 다이얼 피어를 평가함을 의미합니다. 다이얼 피어 1과 일치하는 동일한 이유로 인해 다이얼 피어 2와 일치하게 됩니다. 테스트 사용자의 사용자 ID입니다. 이 다이얼 피어의 세션 대상은 FQDN인 "세션 대상 sip-uri"에 의해 정의된 원래 sip-uri입니다. DNS 확인이 수행된 후, cisco.com 및 webex.com을 레이어 3 라우팅을 위한 IP로 변경하면 게이트웨이 외부로 메시지를 보냅니다.
!
ip host cisco.com 10.10.10.10
ip host webex.com 10.10.10.10
!
voice class uri TEST-IN sip
user-id testuser
!
dial-peer voice 1 voip
description INCOMING dial-peer
incoming uri request TEST
session protocol sipv2
voice-class sip call-route url
!
dial-peer voice 2 voip
description OUTBOUND dial-peer
destination uri TEST
session protocol sipv2
session target sip-uri
!
확인:
show voice class uri <uri-name> show voice class dial-peer provision-policy <number> debug voip uri
관리자는 숫자 문자열과 관련된 인바운드 및 아웃바운드 일치 메커니즘을 정의할 때 다이얼 피어 와일드카드를 사용할 수 있습니다. 여기에는 prefix 명령뿐만 아니라 destination-pattern, incoming called-number, e164-pattern-maps 및 answer-address가 포함됩니다. Dial-peer 와일드카드는 다이얼 피어의 일치에 비해 더 큰 유연성을 허용하는 컨피그레이션에 사용할 수 있는 정규식(regex)입니다.
와일드카드 테이블
문자 |
정의 |
예 |
* |
다이얼 피어에서 이 값은 키패드의 문자 값 *(별표)입니다. |
12345* |
# |
다이얼 피어에서 이 값은 키패드의 #(파운드)의 리터럴 값입니다. |
8675309 번호 |
, |
숫자 사이에 1초 일시 중지를 삽입합니다.연속 범위를 나누기 위해 대괄호 [ ] 안에 쉼표를 사용할 수도 있습니다. |
9,,,,55591[1-3,5-9]8675309 |
. | 0-9, A-F 및 *, #, +와 일치하는 Regex 문자 관리자는 CLI에서 알맞은 만큼의 도트 문자를 구성할 수 있지만, 다이얼 피어당 최대 15개의 도트 문자를 정의할 수 있습니다. 15개 이상의 점이 필요한 경우 T를 사용하십시오. |
2.... 91[2-9]...[2-9]...... |
% |
0회 이상 발생하는 이전 숫자에 대한 Regex. |
|
+ |
문자열의 시작 부분에서 사용할 경우 E164 숫자에 사용되는 리터럴 +를 의미합니다. 문자열의 다른 위치에서 사용할 경우 선행 숫자에 대한 regex 값이 한 번 이상 발생합니다. |
+19191112222 |
? |
0 또는 1회 발생하는 이전 숫자의 Regex. |
(206)?5015111 (0)?(1)?(1)? 21933... |
^ |
대괄호 밖에서 사용될 때 문자열의 시작을 나타내는 Regex 문자 대괄호 안에 사용할 경우 제외 또는 DO NO MATCH 문으로 처리됩니다 이후 버전에서는 게이트웨이가 ^ 없이 regex 문자열을 처리할 때 자동으로 ^를 가정하므로 더 이상 필요하지 않습니다. |
^8675309 91[^135]555 |
$ |
문자열의 끝을 나타내는 Regex 문자입니다. |
8675309$ |
\ | 리터럴 값을 의미하는 이스케이프 문자 |
|
[ ] | 대괄호는 단일 위치에 대한 문자 범위를 정의합니다. 쉼표는 연속 문자열을 분할하는 데 사용해야 합니다. |
[1-5]0000 [2,5-8]0,000 |
( ) | 괄호는 집합의 문자 그룹을 정의합니다. |
9(258) 7777 |
T | 최대 32자리의 변수 길이 일치 라우터는 통화를 라우팅하기 전에 숫자 간 시간 초과가 발생할 때까지 기다립니다. Interdigit 시간 초과의 기본값은 10초이며, 음성 포트의 Inter-digit 시간 제한을 통해 수정할 수 있습니다. T302 타이머도 참조합니다. |
9011조 |
- | 범위를 정의하기 위해 대괄호에 사용됩니다. |
[5-9]1234 |
가능한 정규식 입력을 표시하는 게이트웨이의 출력.
Gateway(config-dial-peer)# destination-pattern asdfqw4r3~2 Incorrect format for E.164 Number regular expression must be of the form ^[][^0-9,A-F#*.?+%()-]*T?(\$)?$
다이얼 피어는 두 가지 작동 상태 중 하나일 수 있습니다.
다이얼 피어가 유효한 작동 상태이고 통화 라우팅과 함께 사용할 수 있는 상태가 되려면 UP 상태여야 합니다. 아웃바운드 VOIP 다이얼 피어의 경우 유효한 아웃바운드 일치 메커니즘 및 통화를 라우팅할 유효한 세션 대상이 있을 수 있습니다. 아웃바운드 POTS 다이얼 피어의 경우 유효한 아웃바운드 일치 메커니즘 및 유효한 음성 포트를 구성할 수 있습니다. 인바운드 다이얼 피어만 있는 경우 유효한 인바운드 일치 메커니즘을 구성해야 합니다.
busyout 상태는 다이얼 피어가 keepalive 메커니즘으로 구성되어 있고 원격 대상이 해당 keepalive 메커니즘의 매개 변수에 실패한 경우에 표시됩니다. 그러면 게이트웨이는 다이얼 피어를 busyout 상태로 전환하여 더 이상 통화 라우팅 결정에 사용하지 않으며, 킵얼라이브 메커니즘이 다시 이행되면 다이얼 피어를 다시 up 상태로 전환합니다. 다이얼 피어가 아웃바운드 다이얼 피어로 선택되고 이 다이얼 피어가 busyout 상태인 경우 게이트웨이는 원인 코드 188로 통화를 실패합니다.
운영 상태와 함께 관리 상태가 있습니다.
관리자는 다이얼 피어에서 shutdown 명령을 입력하여 컨피그레이션에서 다이얼 피어를 제거하지 않고 다이얼 피어를 비활성화할 수 있습니다. 다이얼-퍼를 다시 활성화하려면 no shutdown을 입력합니다.
참고: 음성 포트가 작동 중지, 종료 또는 작동하지 않는 다이얼 피어는 작동 중인 상태로 유지되지만 발신 상태는 작동 중단 상태로 표시됩니다.
확인
Gateway# show dial-peer voice summary dial-peer hunt 0 AD PRE PASS OUT TAG TYPE MIN OPER PREFIX DEST-PATTERN FER THRU SESS-TARGET STAT PORT KEEPALIVE 1 voip up up 0 syst 777 voip up up 9... 0 syst ipv4:10.50.244.2 555 voip up down 555 0 syst 888 pots up up 888 0 up 0/2/0
999 pots up up 999 0 down 0/2/0
123 voip up up 123 0 syst ipv4:10.10.10.10 busyout
IOS 15.6(3)M 및 IOS-XE 16.3.1부터 Cisco 게이트웨이는 VRF ID를 사용하여 인바운드 다이얼 피어를 일치시킬 수 있습니다. 이를 활용하려면 관리자는 인바운드 다이얼 피어를 인터페이스에 바인딩해야 하며, 이 인터페이스는 다이얼 피어를 지정된 인터페이스의 VRF ID에 바인딩합니다. 바인딩이 완료되면 패킷이 수신된 인터페이스의 VRF ID와 일치하는 적격 인바운드 다이얼 피어만 포함하도록 인바운드 통화가 Cisco 게이트웨이에서 필터링됩니다. 여기서 인바운드 다이얼 피어는 정규 다이얼 피어 일치 작업 순서에 따라 일치됩니다.
이러한 IOS/IOS-XE 릴리스 이전에는 Cisco 게이트웨이가 필터링 없이 일반 인바운드 다이얼 피어 매칭을 기반으로 인바운드 선택을 수행합니다. 즉, VRF1 통화는 VRF2 다이얼 피어에서 확인할 수 있습니다. 또한 이 릴리스 이전에는 H323 및 SIP에서 하나의 VRF만 지원되었으므로 다중 VRF 기능을 사용하려고 할 때 다른 문제가 발생합니다. 음성 애플리케이션에 단일 VRF를 사용하는 것을 VRF 인식 컨피그레이션이라고 했습니다.
전체 VRF 인식 문서: 음성 게이트웨이용 VRF 인식 H.323 및 SIP
전체 Multi-VRF 설명서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이후
Cisco 게이트웨이에는 경로 누수를 구성하지 않고도 VRF를 통해 통화를 브리징할 수 있는 기능이 있습니다. 이는 정상적인 아웃바운드 다이얼 피어 일치 선택이 충족되는 경우 VRF1의 인바운드 통화가 VRF2용 다이얼 피어에서 아웃바운드로 라우팅될 수 있음을 의미합니다. 다이얼 피어 그룹을 사용하여 Cisco 게이트웨이가 동일한 VRF 내에서 통화를 유지하도록 할 수 있습니다.
VRF 및 Dial-Peer 그룹 컨피그레이션 예
이 컨피그레이션 예에는 두 개의 겹치는 IP 범위 및 두 개의 겹치는 전화 번호 범위를 갖는 VRF1 및 VRF2가 있습니다.
VRF 바인딩을 사용하여 올바른 인바운드 다이얼 피어가 일치하는지 확인하고, 다이얼 피어 그룹을 사용하여 올바른 VRF 바운드 아웃바운드 다이얼 피어가 일치하는지 확인합니다. 8675309 대상 통화의 SIP 패킷이 gig0/0/1.2에 도착하면 게이트웨이는 VRF2 ID를 기반으로 사용 가능한 모든 인바운드 다이얼 피어를 필터링합니다. 즉, 다이얼 피어 10과 일치시킬 수 없습니다. 이제 숫자 문자열을 확인하면 다이얼 피어 20을 확인할 수 있습니다. Dial-peer 20에는 다이얼 피어 그룹이 있습니다. 이 그룹은 게이트웨이에 다이얼 피어 20과 일치할 수 있는 유일한 아웃바운드 다이얼 피어를 알려줍니다. 이 다이얼 피어 그룹을 사용하면 다이얼 피어 10과 일치하고 VRF1에서 오는 통화를 VRF2로 건너는 것을 방지할 수 있습니다. 거기서부터 정상으로 통화를 진행할 수 있습니다.
! interface GigabitEthernet0/0/1.1 description VRF1 encapsulation dot1Q 10 ip vrf forwarding VRF1 ip address 10.10.10.10 255.255.255.0 ! interface GigabitEthernet0/0/1.2 description VRF2 encapsulation dot1Q 20 ip vrf forwarding VRF2 ip address 10.10.10.10 255.255.255.0 ! voice service voip no ip address trusted authenticate media-address voice-vrf VRF1 media-address voice-vrf VRF2 allow-connections sip to sip sip ! voice class dpg 10 description INBOUND VRF1 to OUTBOUND VRF1 dial-peer 10 preference 1 ! voice class dpg 20 description INBOUND VRF2 to OUTBOUND VRF2 dial-peer 20 preference 1 ! dial-peer voice 10 voip description VRF1 destination-pattern 8675309 session protocol sipv2 session target ipv4:10.10.10.20 destination dpg 10 incoming called-number 8675309 voice-class sip bind control source-interface GigabitEthernet0/0/1.1 voice-class sip bind media source-interface GigabitEthernet0/0/1.1 ! dial-peer voice 20 voip description VRF2 destination-pattern 8675309 session protocol sipv2 session target ipv4:10.10.10.20 destination dpg 20 incoming called-number 8675309 voice-class sip bind control source-interface GigabitEthernet0/0/1.2 voice-class sip bind media source-interface GigabitEthernet0/0/1.2 !
확인
Gateway# show vrf brief | i VRF VRF1 1:1 ipv4 Gi0/0/1.1 VRF2 2:2 ipv4 Gi0/0/1.2
Gateway# show dial-peer voice summary TAG TYPE MIN OPER PREFIX DEST-PATTERN FER THRU SESS-TARGET STAT PORT KEEPALIVE VRF 10 voip up up 8675309 0 syst ipv4:10.10.10.20 VRF1 20 voip up up 8675309 0 syst ipv4:10.10.10.20 VRF2
Gateway# show voice class dpg 10 Voice class dpg: 10 AdminStatus: Up Description: INBOUND to OUTBOUND VRF1 Total dial-peer entries: 1 Peer Tag Pref -------- ---- 10 1 -------------------------------------
Gateway# show voice class dpg 20 Voice class dpg: 20 AdminStatus: Up Description: INBOUND to OUTBOUND VRF2 Total dial-peer entries: 1 Peer Tag Pref -------- ---- 20 1 -------------------------------------
비즈니스 요구 사항이 증가함에 따라 이 회사는 확장되고 더 많은 DID가 필요해졌으며 엔터프라이즈 관리자는 기본 다이얼 피어가 확장에 적합하지 않음을 발견할 수 있습니다. 처리해야 하는 온-오프 상황이 있을 수도 있고, 일반적으로 전화 걸기가 너무 많을 수도 있습니다. 수천 개의 다이얼 피어를 사용한다고 해서 관리와 문제 해결이 쉽지는 않습니다. 각 특정 CUCM 서버 또는 통화 에이전트에 대해 다이얼 피어가 있으면 이제 관리자가 각 숫자 문자열에 대해 다이얼 피어를 구성해야 하므로 너무 많은 다이얼 피어의 문제가 복합적으로 발생하기 시작합니다. 게이트웨이에 연결된 SIP 공급자가 둘 이상 있거나 동일한 CUBE를 사용하는 다른 사용자가 몇 명 있을 경우 특정 테넌트를 격리하기가 매우 어렵습니다.
Cisco는 이러한 피드백을 바탕으로 까다로운 문제 등을 해결할 수 있는 일련의 항목을 만들었습니다. Dial-peer Groups, Voice Class tenants, destination server-groups, e164-pattern-maps 및 POTS 트렁크 그룹을 통해 관리자는 나열된 모든 문제와 나열되지 않은 많은 문제를 해결할 수 있습니다.
IOS 15.4(1)T 및 IOS-XE 3.11S에서 다이얼 피어 그룹을 추가하고 IOS 15.5(1)T 및 IOS-XE 3.14S에서 옵션으로 POTS 다이얼 피어를 추가했습니다. 다이얼 피어 그룹을 사용하면 관리자가 일치하는 인바운드 다이얼 피어를 기준으로 아웃바운드 라우팅에 대한 정확한 다이얼 피어를 지정할 수 있습니다. 다이얼 피어 그룹이 구성된 인바운드 다이얼 피어가 일치하면 대상 패턴이 일치하지 않더라도 통화에서는 다이얼 피어 그룹에 정의된 다이얼 피어를 사용합니다. 아웃바운드 다이얼 피어가 Up이어야 하므로 아웃바운드 일치 방법을 구성해야 하지만 실제로는 이 방법이 통화 라우팅에 사용되지 않습니다.
다이얼 피어 그룹을 설명하는 가장 좋은 방법은 라우팅 테이블의 고정 경로 개념에 연결하는 것입니다. 이는 게이트웨이가 통화를 라우팅하는 방법을 정확하게 알려주기 때문에 게이트웨이에 대한 추측 작업의 일부를 없애는 고정 인바운드 - 아웃바운드 라우팅 결정입니다.
전체 문서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
컨피그레이션 예시
이 예제에서 호출된 번호는 8675309입니다. 이는 들어오는 called-number 문을 기반으로 다이얼 피어 1234와 일치합니다. 이 다이얼 피어는 다이얼 피어 그룹에 구성되어 있으며, 다이얼 피어 2가 실패할 경우 통화가 다이얼 피어 2, 3, 마지막으로 1을 라우팅할 수 있도록 합니다. 이 게이트웨이는 이제 다이얼 피어 2를 통해 명시적으로 알려 준 대로 다이얼 피어 2에서 통화를 라우팅하려고 합니다.
참고: 다이얼 피어 1, 2 및 3의 대상 패턴은 호출된 8675309 번호가 아닙니다. 이것도 괜찮고 통화는 여전히 문제 없이 진행됩니다.
다이얼 피어 상태 섹션에서 설명한 대로 아웃바운드 일치 상태로 구성된 항목이 필요합니다. 이 경우 대상 패턴은 다이얼 피어를 작동 상태로 만드는 것이며, 해당 명령의 숫자 문자열은 평가되지 않습니다. destination-pattern AAAA와 같은 패턴은 유효한 destination-pattern이므로 구성하는 것이 좋습니다. 이는 기술적으로 유효한 다이얼 피어이므로 다른 통화와 일치할 수 있습니다. 따라서 AAAA 숫자 문자열은 AAAA에 대한 통화 수신 가능성이 매우 낮기 때문에 다이얼 피어 그룹과 관련된 특정 시나리오 외에는 사용할 수 없다는 것을 의미합니다.
!
dial-peer voice 1 voip
description Server 1
destination-pattern ^1234$
session target ipv4:1.1.1.1
!
dial-peer voice 2 voip
description Server 2
destination-pattern ^5678$
session target ipv4:2.2.2.2
!
dial-peer voice 3 voip
description Server 3
destination-pattern AAAA
session target ipv4:3.3.3.3
!
voice class dpg 1
description Dial-peer Group for specific called number 8675309
dial-peer 2 preference 1
dial-peer 3 preference 2
dial-peer 1 preference 3
!
dial-peer voice 1234 voip
description INCOMING dial-peer with DPG
incoming called-number ^8675309$
destination dpg 1
!
확인
Gateway# show voice class dpg 1 Voice class dpg: 1 AdminStatus: Up Description: Dial-peer Group for specific called number 1234 Total dial-peer entries: 3 Peer Tag Pref -------- ---- 2 1 3 2 1 3 -------------------------------------
이 기능을 사용하면 관리자는 가능한 여러 숫자 일치(대상 패턴, 수신 수신 수신 번호 등)를 단일 패턴 맵으로 결합하여 총 다이얼 피어 수를 줄일 수 있습니다. IOS 15.2(4)M 및 IOS-XE 3.7S에서는 아웃바운드 dial-peer e164-pattern-map 지원이 추가되었고, IOS 15.4(1)T 및 IOS-XE 3.11S에서는 인바운드 dial-peer e164-pattern-map 지원이 추가되었습니다.
e164-pattern-map은 CLI를 통해 구성하거나 미리 구성되어 .cfg 파일로 저장할 수 있습니다. 그런 다음 .cfg 파일을 게이트웨이의 플래시에 추가한 다음 나머지 명령을 구성할 때 참조합니다. .cfg 파일은 5000개의 항목을 사용할 수 있습니다.
두 컨피그레이션 방법의 항목은 모든 일반 다이얼 피어 와일드카드를 사용하여 추가 어그리게이션을 수행할 수 있습니다.
전체 문서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
CLI 컨피그레이션 예 - 호출 번호
! voice class e164-pattern-map 1 description E164 Pattern Map for calling numbers e164 919574100. e164 919574300. e164 8675309 ! dial-peer voice 1 voip description INBOUND Dial-peer based on CALLING # incoming calling e164-pattern-map 1 !
dial-peer voice 11 voip
description OUTBOUND Dial-peer based on CALLING #
destination calling e164-pattern-map 1
!
CLI 컨피그레이션 예 - 수신 번호
! voice class e164-pattern-map 2 description E164 Pattern Map for called 800 numbers e164 91800T e164 91855T e164 91888T ! dial-peer voice 2 voip description INBOUND Dial-peer based on CALLED # incoming called e164-pattern-map 2 ! dial-peer voice 22 voip description OUTBOUND Dial-peer based on CALLED # destination e164-pattern-map 2 !
플래시 컨피그레이션 예
! voice class e164-pattern-map <tag> description FILEPATH for E164 Pattern Map url flash:<filepath>/e164-pattern-list.cfg ! dial-peer voice ### voip description E164 Pattern Map Dial-peer incoming calling e164-pattern-map <tag> !
voice class e164-pattern-map load <tag>
확인
Gateway# show voice class e164-pattern-map 1 e164-pattern-map 1 ----------------------------------------- Description: CUCM phones It has 3 entries It is not populated from a file. Map is valid. E164 pattern ------------------- 8675309 1... [2-5]...$
주목할만한 결함
Cisco 버그 ID CSCva64393e164-pattern-map은 구성 파일의 마지막 행을 구문 분석하지 않습니다.
서버 그룹은 관리자가 동일한 VOIP 다이얼 피어에서 여러 대상(세션 대상)을 구성할 수 있는 기능을 제공합니다. 기본적으로 정렬 순서는 서버 그룹 항목에 정의된 기본 설정입니다. Round-robin 사냥은 hunt-scheme round-robin 명령을 사용할 때 사용할 수 있습니다. 서버 그룹은 Cisco IOS 15.4(1)T 및 Cisco IOS XE 3.11S에 추가되었습니다. Cisco IOS XE 17.4.1에서 구성 가능한 huntstop 오류 코드가 음성 클래스 서버 그룹 구성에 추가되었습니다. 즉, 단일 오류 코드(예: 404 Not Found)를 구성할 수 있으며, SIP 오류는 일반적으로 디바이스에서 server-group의 다음 옵션을 시도하도록 트리거합니다. 컨피그레이션 huntstop 1 resp-code 404가 서버 그룹 내에 있으므로 헌팅을 중지할 수 있습니다. 이는 또한 huntstop 1 resp-code 401~599와 같은 범위에 대해 구성할 수 있습니다.
참고: 최대 항목 수는 서버 그룹당 5개입니다.
전체 문서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
컨피그레이션 예 - 일반
! voice class server-group 1 hunt-scheme round-robin ipv4 10.50.244.2 port 5060 preference 1 ipv4 10.50.244.62
ipv6 2010:AB8:0:2::1 port 2323 preference 3
ipv6 2010:AB8:0:2::2 port 2222 ! dial-peer voice 1 voip session protocol sipv2
destination-pattern 8675309 session server-group 1 !
확인
Gateway# show voice class server-group 1 Voice class server-group: 1 AdminStatus: Up OperStatus: Up
Hunt-Scheme: round-robin Last returned server:
Description:
Total server entries: 4
Pref Type IP Address IP Port
---- ---- ---------- -------
1 ipv4 10.50.244.2 5060
0 ipv4 10.50.244.62
3 ipv6 2010:AB8:0:2::1 2323
0 ipv6 2010:AB8:0:2::2 2222
[..truncated..]
서버 그룹은 일반적인 OPTIONS 킵얼라이브 메커니즘을 따르지 않습니다. 이들은 option-keepalive 프로필이라는 기능을 사용합니다. 그러면 게이트웨이가 특정 서버 그룹에 정의된 각 통화 에이전트를 모니터링할 수 있습니다.
서버 그룹이 있는 Option-keepalive 예
! voice class server-group 1 hunt-scheme round-robin ipv4 10.50.244.2 ipv4 10.50.244.62 ! dial-peer voice 1 voip session protocol sipv2 session server-group 1 voice-class sip options-keepalive profile 1 !
확인
Gateway# show voice class sip-options-keepalive 1 Voice class sip-options-keepalive: 1 AdminStat: Up Description: Transport: system Sip Profiles: 0 Interval(seconds) Up: 5 Down: 5 Retry: 5 Peer Tag Server Group OOD SessID OOD Stat IfIndex -------- ------------ ---------- -------- ------- 1 1 Active 87 Server Group: 1 OOD Stat: Active OOD SessID OOD Stat ---------- -------- 1 Active 2 Active OOD SessID: 1 OOD Stat: Active Target: ipv4:10.50.244.2 Transport: system Sip Profiles: 0 OOD SessID: 2 OOD Stat: Active Target: ipv4:10.50.244.62 Transport: system Sip Profiles: 0
SIP 아웃바운드 프록시 컨피그레이션을 음성 서비스 voip, 음성 클래스 테넌트 또는 다이얼 피어 컨피그레이션에 추가하여 레이어 3 SIP 패킷의 대상을 지정할 수 있습니다.
즉, 다이얼 피어의 세션 대상을 사용하여 SIP 패킷을 생성할 수 있지만 아웃바운드 프록시는 패킷이 레이어 3에서 전송되는 위치일 수 있습니다.
!
voice service voip
sip
outbound-proxy dns:la01.sipconnect-us10.cisco-bcld.com
!
voice class tenant 100
outbound-proxy dns:la01.sipconnect-us10.cisco-bcld.com
!
dial-peer voice 100 voip
session target ipv4:192.168.1.1
voice-class sip outbound-proxy dns:la01.sipconnect-us10.cisco-bcld.com
!
다이얼 피어의 기본 컨피그레이션은 음성 클래스 sip 아웃바운드 프록시 시스템입니다. 이 경우 다이얼 피어가 글로벌 음성 서비스 voip > sip 컨피그레이션을 사용할 수 있습니다.
이 동작은 비활성화할 수 있으며 다이얼 피어가 강제로 뒤로 돌아가 이 컨피그레이션에서 다이얼 피어당 레이어 3 대상으로 세션 대상을 사용합니다.
dial-peer voice 777 voip
no voice-class sip outbound-proxy
트렁크 그룹은 유사한 신호 기능을 갖춘 물리적 음성 포트의 모음입니다. 이는 구성해야 하는 POTS 다이얼 피어의 총 수를 줄이기 위해 사용할 수 있는 기능입니다. 트렁크 그룹은 12.1(3)T에서 IOS에 도입되었으며 모든 버전의 Cisco IOS XE에 있습니다.
전체 문서: 게이트웨이 트렁크 및 캐리어 기반 라우팅 개선 사항
컨피그레이션 예시
! trunk group PSTN description PSTN voice-ports !
trunk group FXO
description FXO voice-ports
! voice-port 0/2/0 trunk-group PSTN 1 ! voice-port 0/2/1 trunk-group PSTN 2 !
voice-port 0/2/2
trunk-group FXO 1
!
voice-port 0/2/3
trunk-group FXO 2
! dial-peer voice 1234 pots trunkgroup PSTN 1 trunkgroup FXO 2 !
Cisco IOS 15.6(2)T 및 Cisco IOS XE 16.3.1에는 각 테넌트가 고유한 개별 구성을 가질 수 있는 음성 클래스 테넌트가 도입되었습니다. 테넌트는 Telephony Provider, CUCM(Cisco Unified Communication Manager) 또는 관리자가 특정 전역 설정을 원하는 다른 타사 통화 에이전트일 수 있습니다. 먼저 관리자가 음성 클래스 테넌트를 생성하고 매개변수를 정의합니다. 그러면 음성 클래스 테넌트가 특정 다이얼 피어 또는 선택 항목에 적용됩니다. 이 새로운 컨피그레이션을 통해 관리자는 다이얼 피어 및 전역 컨피그레이션 이외의 통화에 대한 또 다른 수준의 제어 권한을 갖습니다.
17.8.1a에서는 해당 테넌트의 비보안 또는 보안 포트를 정의하기 위해 sip-listen 명령(해당 SIP 제어 바인딩 명령과 결합)으로 음성 클래스 테넌트 구성을 구성할 수 있습니다. 이는 테넌트 1이 UDP 5060 + VRF Red에서 비보안 SIP를 수신할 수 있는 반면 테넌트 2는 TCP TLS 5070 + VRF Blue에서 SIP를 수신할 수 있음을 의미합니다. 수신 포트 + 바인딩 + 선택적 vrf 인바운드 다이얼 피어에 따라 테넌트를 일치시킨 후 테넌트가 적용된 것으로 필터링합니다.
전체 문서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
테넌트가 없는 일반적인 명령 기본 설정 순서
테넌트의 명령 기본 설정 순서
멀티 테넌트 컨피그레이션 예
777번과 999번 두 명의 임차인이 있습니다. 약간 다른 컨피그레이션으로 구성하고 다이얼 피어에 적용했습니다. 즉, 서로 다른 다이얼 피어를 사용하는 통화에는 다이얼 피어 기반 컨피그레이션과 테넌트별 컨피그레이션이 있습니다. 나열된 옵션은 음성 클래스 테넌트의 기능 중 일부에 불과합니다. 테넌트에서 구성할 수 있는 내용을 보려면 설명서를 참조하십시오. 테넌트 다이얼 피어 매칭을 분리하기 위해 음성 클래스 uri 또는 특정 번호 문자열로 번호를 태깅하는 것과 같은 엄격한 일치 메커니즘을 사용하는 것이 좋습니다. 또는 테넌트 A가 테넌트 B와 겹치지 않고 실수로 다이얼 피어와 매칭하지 않도록 VRF를 구성하는 것도 좋습니다.
!
voice class tenant 999 asymmetric payload full bind control source-interface GigabitEthernet0/0/0.228 bind media source-interface GigabitEthernet0/0/0.228 g729 annexb-all ! voice class tenant 777 sip-server ipv4:192.168.1.2 bind control source-interface Loopback0 bind media source-interface Loopback0 pass-thru content sdp ! dial-peer voice 999 voip destination-pattern 8675309 session protocol sipv2 incoming called-number 8675309 voice-class sip tenant 999 ! dial-peer voice 777 voip destination-pattern 8675309 session protocol sipv2 session target sip-server voice-class sip tenant 777 !
확인
현재 음성 클래스 테넌트 구성을 볼 수 있는 개별 명령은 없습니다. 이 명령은 실행 중인 컨피그레이션을 테넌트 정보로만 필터링하는 데 충분할 수 있습니다.
show run | sec tenant
참고: Cisco 버그 ID CSCvf28730은 show sip-ua register status가 음성 클래스 테넌트에 대한 SIP 트렁크 등록 상태를 반영하지 않는 경우
경로 문자열은 CUCM ILS(Intercluster Lookup Service)와 함께 사용되며, Cisco 게이트웨이가 ILS 서비스를 실행하는 CUCM 9.5+에서 수신한 SIP Invite에 포함된 경로 문자열을 통해 VoIP 통화를 라우팅하도록 구성할 수 있습니다. 이 기능은 Cisco IOS 15.3(3)M 및 Cisco IOS XE 3.10S에 추가되었습니다. 대부분의 ILS 연결은 CUCM에서 CUCM으로, 관리자는 클러스터 간 트렁킹을 위해 CUBE를 사용하지 않습니다. 그러나 중간에 CUBE가 있는 기능을 수행해야 하는 경우에는 옵션이 있습니다. CUCM에서 x-cisco-dest-route-string 헤더를 CUBE로 전송하려면 SIP 프로필에 적용된 Send ILS Learned Destination Route String 설정을 SIP 트렁크에 적용해야 합니다
전체 문서: Enterprise Application Interoperability for H.323-to-SIP and SIP-to-SIP Configuration Guide, Cisco IOS Release 15M&T
컨피그레이션 예 CUCM - SIP - CUBE - SIP - CUCM
!
voice service voip sip call-route dest-route-string ! voice class route-string rt1 pattern london.uk.eu ! voice class sip route-string rt2 pattern *.eu ! voice class sip-hdr-passthrulist hdr1 passthru-hdr x-cisco-dest-route-string ! dial-peer voice 1 voip description INBOUND dial-peer session protocol sipv2 voice-class sip pass-thru headers hdr1
incoming called-number .
! dial-peer voice 2 voip description OUTBOUND dial-peer destination route-string rt2 session protocol sipv2 session target ipv4:172.16.104.178 !
확인
show voice class route-string
이 섹션에서 다루는 항목은 레거시 기술로 간주됩니다. 이러한 명령을 구성하는 기능은 Cisco Gateway에 있지만 최신 컨피그레이션에서는 이러한 명령을 사용하지 않는 것이 좋습니다. 이 문서에서는 레거시 컨피그레이션으로 작업하거나 업그레이드를 수행할 때 발생할 수 있기 때문에 이러한 기능에 대해서만 다룹니다.
DNIS-maps는 이제 E164-패턴-맵이 될 것에 대한 전구체로 간주될 수 있다. DNIS 맵은 12.2(2)XB에서 Cisco IOS에 추가되었으며 항상 Cisco IOS XE에 존재했습니다.
구성된 DNIS-map이 있는 경우 더욱 강력한 e164-pattern-map 기능으로 변환할 수 있습니다.
명령 구문: Cisco IOS Voice Command Reference - D~I
컨피그레이션 예시
! voice dnis-map 34 dnis 8675309 ! dial-peer voice 88 voip dnis-map 34 !
트렁크 그룹 레이블은 Cisco IOS 12.2(11)T에 추가되었으며 모든 Cisco IOS XE 버전에 존재합니다. 트렁크 그룹 레이블의 목적은 다이얼 피어의 일치를 늘리는 데 사용할 수 있다는 점에서 캐리어 ID와 유사합니다. 이는 POTS 트렁크 그룹, VOIP 및 POTS 다이얼 피어는 물론 음성 소스 그룹 내의 컨피그레이션에 사용할 수 있습니다. 트렁크 그룹 레이블의 사용은 최신 Cisco 게이트웨이 컨피그레이션에서는 거의 나타나지 않습니다.
명령 구문: Cisco IOS Voice Command Reference - T~Z
컨피그레이션 예시
! dial-peer voice 112 pots trunk-group-label source north3 trunk-group-label target east17 !
ISDN Q.931 통합에서는 Q.931 SETUP 메시징의 특정 ITU 번호 유형뿐 아니라 발신 또는 수신 번호에 따라 다이얼 피어를 확인하는 기능이 있습니다. 이는 VOIP 또는 POTS 다이얼 피어에서 numbering-type 명령을 통해 구성할 수 있습니다. Numbering-type은 단독으로 사용할 수 없으며 destination-pattern, answer-address 또는 incoming called-number와 함께 사용해야 합니다. 즉, 인바운드 및 아웃바운드 통화 라우팅에 대해 다이얼 피어가 고려되려면 인바운드/아웃바운드 일치 문의 조건과 번호 유형이 일치해야 성공할 수 있습니다.
Numbering-match는 일치하는 메커니즘이라기보다는 다이얼 피어 필터링 메커니즘으로 간주될 수 있습니다. 이는 적용된 번호 지정 유형 명령이 있는 다이얼 피어와 없는 다이얼 피어가 관리자 기본 설정이 없는 경우 동일한 기본 기본 설정 가중치로 간주되기 때문입니다. 이는 다른 일치 메커니즘과 함께 다이얼 피어에 적용될 때 두 조건이 모두 참인 경우 다른 조건보다 해당 다이얼 피어에 우선권을 추가하는 carrier-id와 다릅니다.
Numbering Type(번호 지정 유형) 일치를 Cisco IOS 12.0(7)XR1에 추가했으며 모든 Cisco IOS XE 릴리스에 포함되어 있습니다. 기존 POTS ISDN 회선이 협업 네트워크에 구축되는 경우가 감소하면서 번호 지정 유형을 사용하는 경우가 현대의 구축에서는 거의 나타나지 않습니다.
명령 구문: Cisco IOS Voice 명령 참조 - K ~ R
컨피그레이션 예시
이 다이얼 피어는 ISDN 번호 4085150000이 4085159999의 경우에만 IP를 통해 IP와 일치시킬 수 있습니다.
! dial-peer voice 408 voip numbering-type national destination-pattern 408515.... session target ipv4:10.1.1.2 !
가능한 번호 유형:
약어 |
이 네트워크에서 지원하는 전체 번호의 약식 표시 |
국제 |
다른 국가의 가입자에게 연결하기 위해 호출되는 번호입니다. |
국가 |
같은 국가이지만 로컬 네트워크 외부의 가입자에게 연결하기 위해 호출되는 번호입니다. |
네트워크 |
서비스 네트워크에 해당하는 관리 또는 서비스 번호 |
예약됨 |
내선용으로 예약됨 |
가입자 |
동일한 로컬 네트워크의 가입자에게 연결하기 위해 호출되는 번호입니다. |
알 수 없음 |
번호 유형을 네트워크에서 알 수 없음 |
데이터 다이얼 피어는 Cisco IOS 12.2(13)T에 도입되었으며 이러한 다이얼 피어를 사용하는 것은 Cisco 게이트웨이의 수신 데이터 모뎀 통화에 사용되었습니다. 이 다이얼 피어는 인바운드 방향에서만 사용되며 최신 구축에서는 거의 볼 수 없습니다.
명령 구문: Cisco IOS Voice Command Reference - D~I
컨피그레이션 예시
! dial-peer data 100 pots incoming called-number 100 !
이 기능은 15.1(2)T에서 추가되었지만 대부분의 최신 구축에서는 구현되지 않았습니다. IOS/CUBE에 대한 다른 보안 방법은 일반적으로 구축됩니다.
CUBE 애플리케이션 보안 개요는 섹션 4.2부터 이 백서에서 확인할 수 있습니다.
Cisco CUBE(Unified Border Element) 관리 및 관리 용이성 사양
명령 구문: 음성 소스 그룹 기능
이 컨피그레이션을 통해 관리자는 다이얼 피어를 제한하여 인바운드 연결(용어/종료)만 허용하거나 이그레스 연결(원본/원본)을 허용할 수 있습니다. 이는 인바운드 다이얼피어가 인바운드 통화에만 사용되고 아웃바운드 다이얼피어가 아웃바운드 통화에만 사용하도록 명시적으로 구성하는 것과 같습니다. 모든 다이얼 피어의 기본값은 인바운드 연결과 아웃바운드 연결을 모두 허용하는 것입니다. 이 CLI는 최신 구축에서는 구축되지 않는 경우가 많습니다.
Router(config)# dial-peer voice 1 voip
Router(config-dial-peer)# permission ?
both allow both orig/term on this dialpeer
none no orig/term allowed on this dialpeer
orig allow only orig on this dialpeer
term allow only term on this dialpeer
협업 구축의 특정 시점에 관리자는 숫자 또는 URI/SIP 헤더를 조작해야 할 수 있습니다. Cisco 게이트웨이에는 숫자 조작을 위한 다양한 방법이 있습니다. 이를 통해 관리자는 숫자 조작의 방법과 시기를 완벽하게 제어할 수 있습니다. 그러나 이러한 작업이 항상 쉽지는 않으며, 일부 사용자들은 각기 다른 옵션으로 인해 혼란에 빠지거나 관리자가 어떤 옵션이 있는지 알지 못합니다.
POTS 다이얼 피어는 VOIP 다이얼 피어에 없는 고유한 몇 가지 숫자 조작 기술을 가지고 있습니다.
첫 번째는 destination-pattern에서 명시적으로 정의된 왼쪽 맞춤 숫자를 제거하는 것입니다. POTS 다이얼 피어에서 no digit-strip 명령을 사용하여 비활성화할 수 있습니다.
예:
이 예에서 9011T는 destination-pattern에 대한 문자열로 정의됩니다.
이 기능을 사용하면 90113227045555 전화를 받을 수 있습니다. 이는 아웃바운드 통화 라우팅의 다이얼 피어와 일치하며, 통화가 음성 포트 외부로 라우팅되기 전에 명시적으로 정의된 숫자 9011이 제거됩니다.
! dial-peer voice 1 pots destination-pattern 9011T port 0/0/0:23 !
이 예에서는 digit-strip이 없는 컨피그레이션을 보여줍니다.
동일한 번호가 호출되면 9011이 전송됩니다.
! dial-peer voice 1 pots destination-pattern 9011T port 0/0/0:23
no digit-strip !
두 번째는 POTS 다이얼 피어에서 전달할 숫자 수를 지정하는 기능입니다.
CUCM에서 918005532447 전화를 받은 경우를 예로 들어보겠습니다. 이런 상황에서는 9를 빼고 1부터 시작하는 나머지 번호를 보내면 됩니다.
POTS 다이얼 피어에서 forward-digits 명령을 구성할 경우 전송할 자릿수를 정확하게 지정할 수 있습니다.
! dial-peer voice 1 pots destination-pattern 918005532447 forward-digits 11 port 0/2/0 !
마지막으로, POTS 다이얼 피어는 prefix 명령을 사용하여 음성 포트를 라우팅하기 전에 전화에 숫자를 추가할 수 있습니다. 이 예에서는 명시적으로 정의된 91 및 접두사 007을 음성 포트 외부로 통화를 전송하기 전에 해당 번호로 분리합니다.
! dial-peer voice 1 pots destination-pattern 91T prefix 007 port 0/1/0:15 !
음성 변환 규칙은 숫자를 변환하는 데 사용되는 정규식(regex)입니다. 12.0(7)XR1에서 Cisco IOS에 Translation-rules 및 Profiles가 추가되었습니다. 변환 규칙은 음성 변환 프로파일에 적용되며, 이는 다이얼 피어 또는 음성 포트에 적용됩니다. 변환 규칙에는 일치 입력 및 수정 출력이 포함됩니다. 번호에 대한 일치 입력과 함께 ISDN 계획 및 유형에 대한 일치 및 수정 입력이 있습니다. 일치 번호 문자열, 계획 및 유형의 조합은 일치로 간주됩니다. 즉, 정의된 모든 일치 입력이 true여야 변환이 발생합니다.
변환 규칙에는 ISDN, SIP 및 H323 신호 프로토콜에서 Called(호출됨), Calling(호출), redirect-called(리디렉션 호출됨), redirect-target(리디렉션 대상) 및 callback-number(콜백 번호)를 변경할 수 있는 기능이 있습니다. 변환-규칙은 하향식 검색을 기반으로 일치하므로 규칙의 순서가 가장 중요합니다. 상위 규칙에서 일치하는 항목이 발견되면 게이트웨이는 즉시 검색을 중지하고 변환을 처리합니다. 변환 규칙은 testuser@10.10.10.10과 같이 숫자가 아닌 sip 헤더를 변경할 수 없습니다. 이러한 조작을 위해 SIP 프로파일을 활용합니다.
전환 규칙은 Cisco 게이트웨이에서 통화를 차단하는 데 사용할 수 있습니다.
변환 프로파일 선택 기본 설정
다이얼 피어 regex 및 윌카드 변환 규칙에는 자체 regex 문자가 있습니다.
문자 |
정의 |
* | translation-rules에서 사용할 경우 이는 이전 문자의 0개 이상에 대한 regex입니다. 리터럴 *를 일치시키려면 이스케이프 문자 \*를 사용합니다. |
\ |
변환 규칙 \( \)에서 집합을 이스케이프하는 데 일반적으로 사용됩니다. |
& |
앰퍼샌드는 수정 세트의 초기 일치 세트에서 일치하는 항목을 가져오는 데 사용됩니다 |
( ) |
괄호로 감싸진 항목은 세트로 간주됩니다. |
^ | 문자열의 명시적 시작을 정의합니다. 다이얼 피어 변환 규칙과는 달리 문자열의 시작을 정의하지 않습니다. 즉, ^ 없이 문자열을 정의하면 입력 문자열의 어느 곳에서든 일치할 수 있으며, 이 경우 숫자 중간에 원치 않는 변환이 발생할 수 있습니다. |
수정 세트
두 개의 세트가 있는 변환 규칙 예
이 예에서는 숫자 000111000222을 검사할 수 있습니다.
번호에서 0을 제거하고 최종 111222 수를 구현해야 합니다.
이렇게 하려면 0을 삭제하는 동안 111 및 222를 각각 가져오도록 세트 1과 2를 구성합니다.
! voice translation-rule 333 rule 1 /000\(111\)000\(222\)/ /\1\2/ ! voice translation-profile SET-EXAMPLE translate called 333 ! Gateway# test voice translation-rule 333 000111000222 Matched with rule 1 Original number: 000111000222 Translated number: 111222 Original number type: none Translated number type: none Original number plan: none Translated number plan: none
호출된 번호에서 9개의 발신 다이얼 패턴을 제거하는 예
! voice translation-rule 9 rule 1 /^9\(.*\)/ /\1/ ! voice translation-profile STRIP-9 translate called 9 ! dial-peer voice 9 voip translation-profile outgoing STRIP-9 ! voice-port 0/0/0 translation-profile outgoing STRIP-9 ! Gateway# test voice translation-rule 9 918675309 Matched with rule 1 Original number: 918675309 Translated number: 18675309 Original number type: none Translated number type: none Original number plan: none Translated number plan: none
수신 번호를 4자리로 자르기
! voice translation-rule 4 rule 1 /.*\(....\)/ /\1/ ! voice translation-profile STRIP-TO-4 translate called 4 ! Gateway# test voice translation-rule 4 8675309 Matched with rule 1 Original number: 8675309 Translated number: 5309 Original number type: none Translated number type: none Original number plan: none Translated number plan: none
수신 번호에서 더하기 + 제거
! voice translation-rule 999 rule 1 /\+\(.*\)/ /\1/ ! voice translation-profile STRIP-PLUS translate called 999 ! Gateway# test voice translation-rule 999 +8675309 Matched with rule 1 Original number: +8675309 Translated number: 8675309 Original number type: none Translated number type: none Original number plan: none Translated number plan: none
변환 규칙을 변환 프로파일에 먼저 적용하지 않고 다이얼 피어에 직접 적용할 수도 있습니다.
! voice translation-rule 1 rule 1 /1234/ /8678309/ ! voice translation-rule 2 rule 2 /^4...$/ /1408515\0/ ! dial-peer voice 1 voip translate-outgoing called 1 ! dial-peer voice 2 voip translate-outgoing calling 2 !
트렁크 그룹의 변환 프로파일
! trunk group <name> translation-profile incoming <profile-name> translation-profile outgoing <profile-name> !
음성 변환 규칙 및 프로필 디버그
debug voip ccapi inout debug voice translation debug dialpeer test voice translation-rule <number> <string> type <type> plan <plan>
음성 클래스 e164 변환 기능은 관리자가 일치 문 목록을 만들고 플래시 또는 네트워크 디렉터리에서 구성 파일을 통해 로드될 문을 수정할 수 있는 최신 Cisco IOS XE 기능입니다. 이는 이 문서에서 설명한 e164-pattern-map 기능의 개념과 유사합니다. 이를 통해 관리자는 컨피그레이션 파일 내에서 최대 100개의 변환을 구성하고 이를 단일 변환 프로필에 적용할 수 있습니다. 자세한 내용은 Cisco IOS Voice Command Reference를 참조하십시오
.cfg 파일에 대한 다음 구문을 따르십시오.
pattern1_to_be_matched<tab>replaced_pattern<space><enter> pattern1_to_be_matched<tab>replaced_pattern<space><enter>
참고: 후행 공백이 매우 중요하므로 별도의 서식 지정 단계 없이 가져오기가 실패할 수 있습니다.
Sample.cfg
+111111 8897 +222222 8312 928747 +123456789 737362 +987654321
그러면 이 파일은 다음과 같이 참조합니다.
voice class e164-translation 164 url ftp://username:password@10.10.10.10/sample.cfg
이제 변환 프로파일에 일반적으로 적용한 다음 일반 변환 프로파일 구문을 사용하여 다이얼 피어에 적용합니다.
voice translation-profile e164 translate calling voice-class e164-translation 164 translate called voice-class e164-translation 164
명령 show voice class e164-translation e164-translation-number를 사용하여 변환 프로파일의 내용을 볼 수 있습니다.
ISDN MAPS는 숫자를 수정하는 이전 기술입니다. 이는 Cisco IOS 12.0(6)T에서 추가되었으며 대부분의 새 컨피그레이션에서는 음성 변환 규칙 및 프로필만큼 강력하지 않으므로 이 기능을 활용하지 않습니다. ISDN 맵은 시리얼 인터페이스 아래에 정의됩니다.
컨피그레이션 예시
Serial0/0/0:23 isdn map address ^911 plan isdn type unknown isdn map address ^1.......... plan isdn type national isdn map address ^2......... plan isdn type national isdn map address ^3......... plan isdn type national isdn map address ^4......... plan isdn type national isdn map address ^5......... plan isdn type national isdn map address ^6......... plan isdn type national isdn map address ^7......... plan isdn type national isdn map address ^8......... plan isdn type national isdn map address ^9......... plan isdn type national
ISDN 맵과 마찬가지로, 번호 확장은 Cisco IOS 11.3(1)T에서 추가된 이전 기술이며 새 네트워크에서 많이 사용되지 않습니다. 이 기능은 음성 변환 규칙 및 프로필이 존재하기 전에 추가되었습니다. Number Expansion(번호 확장)은 Cisco 게이트웨이의 모든 다이얼 피어에 적용되는 숫자의 전역 변경입니다. 수정 사항은 다이얼 피어가 일치한 후 통화가 다음 통화 에이전트로 전송되기 바로 전에 수신 번호에 적용됩니다.
컨피그레이션 예시
num-exp 4... 18005554...
num-exp 1234 8675309
SIP 프로필은 관리자가 SDP 및 SIP 헤더를 포함하는 SIP 메시지의 모든 부분을 변경할 수 있는 강력한 정규식(regex) Match 문입니다. 이는 다이얼 피어 또는 테넌트별로 전역적으로 활성화할 수 있습니다. SIP 프로필은 Cisco IOS 15.4(2)T 및 Cisco IOS XE 3.12S로 시작하는 인바운드 수정에 사용할 수 있습니다. SIP 프로필은 매우 강력하므로 이 문서에서는 몇 가지 구체적인 예만 다룹니다. SIP 프로필은 IOS 15.5(2)T 및 IOS-XE 3.13S에서 수정 또는 추가할 사용자 지정 SIP 헤더에 대한 기능도 추가합니다.
인바운드 및 아웃바운드 SIP 프로필에 대한 핵심 사항
sip 프로필 컨피그레이션에 대한 기타 참고 사항:
전체 문서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
SIP Profile Testing Tool: SIP-Profile Test Tool
인바운드/아웃바운드 SIP 프로필 구문 예
! voice class sip-profiles <number> request <message-type> sip-header <header> modify "match-pattern" "replace-pattern" request <message-type> sip-header <header> add "add-pattern" request <message-type> sip-header <header> remove
request <message-type> sdp-header <header> modify "match-pattern" "replace-pattern" request <message-type> sdp-header <header> add "add-pattern" request <message-type> sdp-header <header> remove
response <number> sip-header <header> modify "match-pattern" "replace-pattern" response <number> sip-header <header> add "add-pattern" response <number> sip-header <header> remove
response <number> sdp-header <header> modify "match-pattern" "replace-pattern" response <number> sdp-header <header> add "add-pattern" response <number> sdp-header <header> remove !
인바운드/아웃바운드 SIP 프로필 예(숫자 포함)
voice class sip-profiles 200
rule 1 response ANY sip-header Remote-Party-ID modify "match-pattern" "replace-pattern" rule 2 response ANY sdp-header Audio-Attribute modify "match-pattern" "replace-pattern"
아웃바운드 SIP 프로파일 적용 방법
! Global Application voice service voip sip sip-profiles <number> !
! Tenant Application
voice class tenant <tag>
sip-profiles <tag>
!
! Dial-peer Application
dial-peer voice <tag> voip
voice-class sip profiles <number>
!
인바운드 SIP 프로필 애플리케이션 메서드
참고: 글로벌 애플리케이션, 테넌트 또는 다이얼 피어 애플리케이션이 사용되는지 여부는 음성 서비스 voip sip에서 sip-profile inbound를 활성화해야 합니다.
! Global Application voice service voip sip sip-profiles inbound sip-profiles <number> inbound !
! Tenant Application
voice service voip
sip
sip-profiles inbound
! voice class tenant <tag>
sip-profiles <tag> inbound
!
! Dial-Peer Application
voice service voip
sip
sip-profiles inbound
! dial-peer voice <tag> voip voice-class sip profiles <number> inbound !
OPTIONS 킵얼라이브 메시지를 수정하는 SIP 프로필의 예
!
voice class sip-options-keepalive 200
transport tcp tls
sip-profiles 299
!
호스트, 도메인 또는 URI의 두 부분 모두를 수정하는 SIP 프로필의 예
! Host ! voice class sip-profiles 1 request ANY sip-header Contact modify "sip:(.*)@" "sip:8675309@" ! ! Domain ! voice class sip-profiles 2 request ANY sip-header Contact modify "10.67.138.241:5060" "cisco.com" ! ! Note: Port is optional ! ! Modify Both User and Host ! voice class sip-profiles 3 request ANY sip-header Contact modify "sip:(.*)>" "sip:8675309@cisco.com>" !
Diversion 헤더를 추가, 수정 또는 제거하는 SIP 프로필의 예
! Add ! voice class sip-profiles 777 request INVITE sip-header Diversion add "Diversion: <sip:1234@cisco.com>" ! ! ! Modify ! voice class sip-profiles 888 request INVITE sip-header Diversion modify "sip:(.*)>" "sip:1234@cisco.com>" ! ! ! Remove ! voice class sip-profiles 999 request INVITE sip-header Diversion remove !
SIP 헤더의 발신자 ID 이름 부분을 수정하는 SIP 프로필 예
! voice class sip-profiles 123 request INVITE sip-header From modify "\".*\"" "\"TEST CLID*\"" !
진행 중인 183 세션을 180 벨울림으로 변경하는 SIP 프로파일 예
! voice class sip-profiles 789 response 183 sip-header SIP-StatusLine modify "SIP/2.0 183 Session in Progress" "SIP/2.0 180 Ringing" !
제공자와의 단방향 또는 비양방향 오디오 상호 운용성을 위한 SIP 프로파일 예.
!
voice class sip-profiles 200 request ANY sdp-header Audio-Attribute modify "a=inactive" "a=sendrecv" request ANY sdp-header Audio-Connection-Info modify "0.0.0.0" "10.10.10.10"
!
! where 10.10.10.10 is CUBE's provider facing IP address
상호 운용성 문제에 대한 UPDATE 메서드를 제거하는 SIP 프로필의 예
!
voice class sip-profiles 200
request ANY sip-header Allow-Header modify ", UPDATE" ""
!
SIP 프로필 내에서 SET 사용을 보여주는 SIP 프로필의 예. 이는 voice translation-rule 섹션에 설명된 Sets와 동일한 개념입니다.
!
voice class sip-profiles 1 request ANY sip-header Contact modify "sip:(.*)@" "sip:\1@"
!
SIP 프로필을 사용하여 IF 논리와 줄바꿈 나누기를 구성합니다.
SIP 프로필에서는 줄바꿈 나누기가 지원되지만, 이에 대한 매우 구체적인 사용 사례는 하나만 있습니다. SIP 프로필에는 If, Then, Else 로직이 없으므로 이제 다른 헤더의 입력을 기반으로 한 하나의 헤더에 대한 수정을 수행할 수 있습니다. 예를 들어 관리자는 FROM 헤더에 1234@cisco.com이 포함된 경우에만 전환 헤더를 수정하려고 합니다. 줄 바꿈을 사용하면 SIP 프로필 내에서 IF 문을 스푸핑할 수 있습니다. 컨피그레이션 예 참조: From 헤더의 임의의 도메인에서 1234를 확인합니다. 그런 다음 첫 번째 세트를 가져오고 새 줄 바꿈 \x0D\x0AD를 추가합니다. 마지막으로 원하는 헤더를 추가합니다. 이 방법에서는 헤더를 추가할 수만 있습니다. 다른 헤더를 수정할 수 있는 방법은 없습니다. 따라서 이는 관리자가 이전에 달성하고자 했던 요구 사항을 일부만 충족합니다.
!
voice class sip-profiles 1 request INVITE sip-header From modify “(.*sip:1234@.*)” “\1\x0D\x0ADiversion: <sip:5678@example.com>” !
OR 논리를 사용하는 SIP 프로필의 예.
!
voice class sip-profiles 123 request ANY sdp-header Audio-Attribute modify "(a=sendonly|a=recvonly|a=inactive)" "a=sendrecv" response ANY sdp-header Audio-Attribute modify "(a=sendonly|a=recvonly|a=inactive)" "a=sendrecv" !
SIP 프로파일을 통한 레이어 7 SIP 검사의 예.
### Usage 10.21.15.10 replace with private IP of CUBE a.b.c.d replace with public IP ------------------------------------------------------ ### Inbound from ITSP Layer 7 Fixup !
voice class sip-profiles 888 request INVITE sip-header SIP-Req-URI modify "@.*;" "@10.21.15.100;" ! voice service voip sip sip-profiles inbound ! ### Outbound Layer 7 Fixup ! voice class sip-profiles 777 request ANY sip-header Contact modify "<sip:(.*)@10.21.15.100:5060>" "<sip:\1 a.b.c.d:5060>" response ANY sip-header Contact modify "<sip:(.*)@10.21.15.100:5060>" "<sip:\1 a.b.c.d:5060>" request ANY sip-header Via modify "SIP(.*) 10.21.15.100(.*)" "SIP\1 a.b.c.d\2" request ANY sdp-header Session-Owner modify "(.*IP4 ).*" "\1a.b.c.d" request ANY sdp-header Connection-Info modify "IN IP4 10.21.15.100" "IN IP4 a.b.c.d" request ANY sdp-header Audio-Connection-Info modify "IN IP4 10.21.15.100" "IN IP4 a.b.c.d" response ANY sdp-header Session-Owner modify "(.*IP4 ).*" "\1a.b.c.d" response ANY sdp-header Audio-Connection-Info modify "IN IP4 10.21.15.100" "IN IP4 a.b.c.d" response ANY sdp-header Connection-Info modify "IN IP4 10.21.15.100" "IN IP4 a.b.c.d" request ANY sip-header Remote-Party-ID modify "<sip:(.*)@10.21.15.100>" "<sip:\1 a.b.c.d>" response ANY sip-header Remote-Party-ID modify "<sip:(.*)@10.21.15.100>" "<sip:\1 a.b.c.d>" !
### Apply to dial-peers for the side of the CUBE facing the ITSP
!
dial-peer voice 1 voip
voice-class sip profiles 777
voice-class sip profile 888 inbound
!
dial-peer voice 2 voip
voice-class sip profiles 777
voice-class sip profile 888 inbound
!
SIP Copylists는 SIP 프로필의 확장으로서 게이트웨이가 통화의 인레그에서 헤더를 복사한 다음 아웃레그의 이그레스 SIP 메시지에 있는 다른 위치에 붙여넣을 수 있도록 합니다. SIP Copylist 지원은 Cisco IOS 15.1(3)T 및 Cisco IOS XE 3.6S에 추가되었습니다. 이는 통화의 인 레그에서 다른 헤더를 기반으로 동적 헤더를 생성하는 매우 강력한 방법입니다.
가장 일반적인 활용 사례는 FROM 헤더를 diversion 또는 p-asserted-id와 같은 다른 헤더에 동적으로 복사하여 사용자 부분의 값을 from 사용자로 만드는 것입니다. 이는 대부분 인증과 발신자 ID 목적으로 수행됩니다.
전체 문서: Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
SIP Copylist 예
! ! Create Copylist to copy the FROM header on the inbound message specified later. ! voice class sip-copylist <number> sip-header From ! ! Apply this to the inbound dial-peer of the call. ! dial-peer voice <tag> voip voice-class sip copy-list <number> ! ! Create SIP Profile to take From (peer-header) stored as variable "u01" and apply to a header of choice. ! This example modifies the user portion of the Contact by copying the user portion of the From header to the user portion of the Contact header. ! voice class sip-profiles <number> request INVITE peer-header sip From copy "<sip:(.*)@" u01 request INVITE sip-header Contact modify "<sip:(.*)>" "<sip:\u01@10.50.244.2>" ! ! Apply the SIP profile to an outbound dial-peer ! dial-peer voice <tag> voip voice-class sip profiles <number>
!
SIP 프로필 및 카피 목록 디버깅
debug voip ccapi inout debug ccsip mess debug ccsip info debug ccsip feature sip-profile
예제 SIP Copylist의 디버그 출력
### Ingress from CUCM Received: INVITE sip:1001@10.50.228.61:5060 SIP/2.0 Via: SIP/2.0/TCP 10.50.244.3:5060;branch=z9hG4bKaad21bc3ae7e From: "5001" <sip:5001@10.50.244.3>;tag=100442~cdffff43-5020-4e79-a10b-99d406971010-36470319 Contact: <sip:5001@10.50.244.3:5060;transport=tcp> ### Copylist Details 00440: Mar 8 18:59:49.796: //-1/xxxxxxxxxxxx/SIP/Info/info/64/sip_profiles_application_peer_copy_pattern: sed_match succeeded 000441: Mar 8 18:59:49.797: //187/D6138E000000/SIP/Info/info/64/sip_profiles_application_peer_copy_pattern: SIP Profiles COPY variables AVL tree created 000442: Mar 8 18:59:49.797: //-1/xxxxxxxxxxxx/SIP/Info/info/64/sip_profiles_prefix_slash_in_copy_var_val: ret_dst: 5001 000443: Mar 8 18:59:49.797: //187/D6138E000000/SIP/Info/info/64/sip_profiles_application_peer_copy_pattern: SIP Profiles COPY variable: u1 val: 5001 000444: Mar 8 18:59:49.797: //-1/xxxxxxxxxxxx/SIP/Info/info/64/sip_profiles_application_modify_remove_header: Header before modification : Contact: <sip:5001@10.50.228.61:5060> 000445: Mar 8 18:59:49.797: //187/D6138E000000/SIP/Info/info/64/sip_profiles_check_and_get_variables_in_replace_pattern: Node found: COPY variable: u1 val: 5001 000446: Mar 8 18:59:49.797: //187/D6138E000000/SIP/Info/info/64/sip_profiles_check_and_get_variables_in_replace_pattern: substituted_replace_pattern : : @168.117.64.94> 000448: Mar 8 18:59:49.797: //187/D6138E000000/SIP/Info/info/64/sip_profiles_check_and_get_variables_in_replace_pattern: Final substituted_replace_pattern : <sip:5001@168.117.64.94> 000449: Mar 8 18:59:49.797: //-1/xxxxxxxxxxxx/SIP/Info/info/64/sip_profiles_app_modify_header: Passing substituted replace pattern 000450: Mar 8 18:59:49.798: //-1/xxxxxxxxxxxx/SIP/Info/info/64/sip_profiles_application_modify_remove_header: Header after modification : Contact: <sip:5001@168.117.64.94> 000451: Mar 8 18:59:49.798: //187/D6138E000000/SIP/Msg/ccsipDisplayMsg: ### Egress from CUBE Sent: INVITE sip:1001@14.50.228.63:5060 SIP/2.0 Via: SIP/2.0/UDP 10.50.228.61:5060;branch=z9hG4bK3C7CD Remote-Party-ID: "5001" <sip:5001@10.50.228.61>;party=calling;screen=yes;privacy=off From: "5001" <sip:5001@10.50.228.61>;tag=34C458-D6 Contact: <sip:5001@168.117.64.94>
모든 시그널링 프로토콜을 통해 관리자는 특정 인터페이스에 시그널링을 바인딩할 수 있습니다. 기본적으로, 고정 정의 바인딩이 없는 게이트웨이는 패킷이 통과하는 물리적 인터페이스에서 통화에 대한 시그널링을 소싱합니다. 다이얼 피어에서 바인딩하면 패킷은 소스 헤더, 메시징 및 지정된 인터페이스의 패킷을 특징으로 하지만 실제 패킷은 여전히 물리적 인터페이스를 통해 라우팅됩니다. 다이얼 피어 바인딩은 항상 SIP(Session Initiation Protocol)를 사용하여 음성 클래스 테넌트 및 글로벌 음성 서비스 voip 바인딩을 대체합니다.
많은 경우 관리자가 루프백에 신호 처리를 바인딩합니다. 논리적 인터페이스이므로 이 인터페이스를 통과하는 패킷이 없습니다. 패킷 캡처를 수행하려면 물리적 인터페이스에서 캡처를 수행해야 합니다. show ip cef <remote-ip> 명령은 컨피그레이션이 가상 인터페이스에 바인딩되어 있는 경우에도 패킷이 대상/원격 IP로 라우팅하는 데 사용하는 물리적 인터페이스를 표시합니다.
미디어 및 신호 바인딩이 항상 동일한 IP일 필요는 없습니다. 관리자가 CUCM에/로부터 신호를 보내기 위해 특정 인터페이스에 바인딩해야 하지만 전화기와 게이트웨이 간의 오디오/미디어를 다른 인터페이스에 바인딩해야 하는 경우.
컨피그레이션 예시
이 예에서는 루프백 1에 바인딩된 다이얼 피어를 보여 주며 CUCM에서 전화를 받습니다.
미디어 및 신호(제어)가 루프백 1에 바인딩되어 있더라도 show ip cef 명령은 CUCM으로 전송된 모든 패킷이 물리적 인터페이스 GigabitEthernet0/0/1에 남아 있음을 보여줍니다.
! dial-peer voice 2 voip description "Incoming call from CUCM" session protocol sipv2 incoming called-number . voice-class sip bind control source-interface Loopback1 voice-class sip bind media source-interface Loopback1 !
레이어 7 애플리케이션 바인딩의 작업 순서
SIP 바인딩 명령
! Per Dial-peer
!
dial-peer voice 1 voip voice-class sip bind control source-interface <interface> voice-class sip bind media source-interface <interface> !
! Global Binding
! voice service voip sip bind control source-interface <interface> bind media source-interface <interface> !
MGCP 바인딩 명령
!
mgcp bind control source-interface <interface> mgcp bind media source-interface <interface>
!
SCCP 바인딩 명령
!
sccp local <interface> ! sccp ccm group <number> bind interface <interface> !
H323 Binding 명령
! inteface <interface> ! ! Media Bind Command: h323-gateway voip interface ! ! Signaling Bind Command: h323-gateway voip bind srcaddr <a.b.c.d> !
VOIP를 사용하는 DNS는 다른 DNS 솔루션과 마찬가지로 사용됩니다. 일반적인 컨피그레이션은 세션 대상 dns:FQDN.com을 활용하는 것입니다.
Cisco 게이트웨이는 게이트웨이에 전역으로 구성된 ip 도메인 조회가 없는 경우에도 DNS 확인을 수행합니다. 즉, DNS를 비활성화하더라도 VOIP 다이얼 피어가 DNS 항목을 계속 확인합니다. 그러나 최근 Cisco IOS XE 3.16S에서는 Cisco IOS XE 플랫폼 내의 전체 DNS 기능이 일부 변경되었습니다.
이 변경 후 세션 대상 dns:FQDN.com으로 구성된 다이얼 피어가 IP 도메인 조회 없이 DNS가 비활성화되었다는 사실을 따릅니다.
이 문제를 방지하기 위해 DNS로 작업할 때는 항상 "ip domain lookup" 명령을 구성하는 것이 좋습니다.
아웃바운드 SIP 연결의 경우 CUBE는 DNS 확인을 위해 이 작업 순서를 수행합니다.
SRV를 생성하는 방법 또는 SRV를 건너뛰고 세션 대상에서 A 레코드 쿼리를 수행하는 방법에 대한 자세한 내용은 설명서 전체(Cisco Unified Border Element Configuration Guide - Cisco IOS XE 17.6 이상)를 참조하십시오.
IOS 게이트웨이가 메시지에 응답하기 위해 헤더를 확인해야 하는 인바운드 SIP 연결의 경우 게이트웨이에서 DNS 확인에 이 작업 순서를 사용할 수 있습니다
Cisco IOS XE 17.9.1에서 CUBE는 옵션 킵얼라이브 메커니즘을 통해 DNS 세션 대상의 연결성을 확인할 수 있습니다. 전체 문서를 참조하십시오.
Cisco Unified Border Element 컨피그레이션 가이드 - Cisco IOS XE 17.6 이상
IOS DNS 컨피그레이션 샘플
ip host _sip._udp.cucmgroup.lab.local srv 1 50 5060 cucm1.lab.local ip host _sip._udp.cucmgroup.lab.local srv 1 50 5060 cucm2.lab.local ip host _sip._udp.cucmgroup.lab.local srv 1 50 5060 cucm3.lab.local ip host cucm1.lab.local 10.0.0.1 ip host cucm2.lab.local 10.0.0.2 ip host cucm3.lab.local 10.0.0.3 ip domain name lab.local ip name-server 8.8.8.8
참고: Cisco IOS XE의 DNS SRV 지원은 15.6(1)S / 3.17.00.S 이상에서 지원됩니다.
DNS 디버그 및 확인 명령
show host clear host all * ! debug ip dns view debug ip domain debug ccsip info
debug ccsip error
DNS 테스트 3.15S 이상
### Domain Name Verification Gateway# sh run | s lookup no ip domain lookup ### Checking the host table for no entry Gateway# show host Name lookup view: Global Default domain is cisco.com Name/address lookup uses static mappings Codes: UN - unknown, EX - expired, OK - OK, ?? - revalidate temp - temporary, perm - permanent NA - Not Applicable None - Not defined Host Port Flags Age Type Address(es) ### Verification of no PING on a FQDN Gateway# ping cucm.cisco.com Translating "cucm.cisco.com" % Unrecognized host or address, or protocol not running. ### Made a test call here ### Checking logs to see if it worked Gateway# sh log | s INVITE sip: INVITE sip:9001@14.50.228.70:5060 SIP/2.0 INVITE sip:5001@cucm.cisco.com:5060 SIP/2.0 ### Host Table now has an entry Gateway# sh host Name lookup view: Global Default domain is cisco.com Name/address lookup uses static mappings Codes: UN - unknown, EX - expired, OK - OK, ?? - revalidate temp - temporary, perm - permanent NA - Not Applicable None - Not defined Host Port Flags Age Type Address(es) cucm.cisco.com None (temp, OK) 0 IP 10.50.244.2 ### CCSIP All output showing a proper DNS Query for the FQDN on the dial-peer. 001338: Mar 9 15:29:07.437: //-1/xxxxxxxxxxxx/SIP/Info/info/1024/httpish_msg_free: Freed msg=0x7FE9873AE560 001339: Mar 9 15:29:07.437: //-1/xxxxxxxxxxxx/SIP/Info/notify/8192/sip_dns_type_srv_query: TYPE SRV query for _sip._udp.cucm.cisco.com and type:1 001340: Mar 9 15:29:07.438: //-1/xxxxxxxxxxxx/SIP/Info/info/8192/sip_dns_type_a_aaaa_query: DNS query for cucm.cisco.com and type:1 001341: Mar 9 15:29:07.441: //-1/xxxxxxxxxxxx/SIP/Info/notify/8192/sip_dns_type_a_query: TYPE A query successful for cucm.cisco.com 001342: Mar 9 15:29:07.441: //-1/xxxxxxxxxxxx/SIP/Info/info/8192/sip_dns_type_a_query: ttl for A records = 3600 seconds 001343: Mar 9 15:29:07.441: //-1/xxxxxxxxxxxx/SIP/Info/info/8192/sip_dns_type_a_aaaa_query: IP Address of cucm.cisco.com is: 001344: Mar 9 15:29:07.441: //-1/xxxxxxxxxxxx/SIP/Info/info/8192/sip_dns_type_a_aaaa_query: 10.50.244.2
DNS 테스트 3.16S 이상
### Checking the command is present Gateway# sh run | s lookup no ip domain lookup ### Verifying the gateway cannot ping a FQDN Gateway# ping cucm.cisco.com % Unrecognized host or address, or protocol not running. ### Checking the Host Table for entries Gateway# sh host Default domain is cisco.com Name servers are 10.50.244.52 NAME TTL CLASS TYPE DATA/ADDRESS ----------------------------------------- ### Made a test call here ### CCSIP All Outbound showing the failed call 000974: *Mar 9 15:53:01.222: //-1/xxxxxxxxxxxx/SIP/Info/info/1024/httpish_msg_free: Freed msg=0x7FF31DAAA848 000975: *Mar 9 15:53:01.222: //-1/xxxxxxxxxxxx/SIP/Info/notify/8192/sip_dns_type_srv_query: TYPE SRV query for _sip._udp.cucm.cisco.com and type:1 000976: *Mar 9 15:53:01.224: //-1/xxxxxxxxxxxx/SIP/Info/info/8192/sip_dns_type_a_aaaa_query: DNS query for cucm.cisco.com and type:1 000977: *Mar 9 15:53:01.225: //-1/xxxxxxxxxxxx/SIP/Error/sip_dns_type_a_query: TYPE A query failed for cucm.cisco.com 000978: *Mar 9 15:53:01.225: //-1/xxxxxxxxxxxx/SIP/Error/_send_dns_fail: DNS Query for cucm.cisco.com failed 000984: *Mar 9 20:53:01.225: %VOICE_IEC-3-GW: SIP: Internal Error (DNS query fail): IEC=10.1.128.7.47.0 on callID 6 GUID=37B668DF044111E7A950D832C82B325C
기본적으로 VOIP 및 POTS 다이얼 피어는 무제한 연결(통화) 및 대역폭(VOIP 다이얼 피어만)을 허용합니다. 사용할 수 있는 통화 수 또는 대역폭에 제한이 있는 트렁크의 경우 max-conn 또는 max-bandwidth 명령을 사용하는 것이 유용합니다. max-conn은 Cisco IOS 11.3(1)T에 추가되었으며 모든 Cisco IOS XE 버전에 있는 반면 max-bandwidth는 15.2(2)T 및 IOS-XE 3.7S에 추가되었습니다.
컨피그레이션 예시:
여기서는 게이트웨이가 "max-conn 30"을 사용하여 다이얼 피어 1을 30개로 제한하도록 지정합니다.
Dial-peer 2는 할당된 제한을 초과하지 않도록 해당 Dial-peer에 대한 대역폭을 제한합니다.
! dial-peer voice 1 voip description ITSP SIP Trunk - 30 Max Calls! session protocol sipv2 sess target ipv4:10.10.10.10 destination-pattern 8675309$ max-conn 30 !
dial-peer voice 2 voip
description SIP Trunk with Bandwidth Restrictions!
session protocol sipv2
sess target ipv4:10.10.10.10
destination-pattern 123456789$
max-bandwidth 400
!
max-conn 임계값을 초과할 경우 샘플 오류가 발생합니다.
000308: Oct 5 19:01:02.603: %CALL_CONTROL-6-MAX_CONNECTIONS: Maximum number of connections reached for dial-peer 1 000309: Oct 5 19:01:02.603: %VOICE_IEC-3-GW: CCAPI: Internal Error (Dial-peer connections exceeded): IEC=10.1.181.1.21.0 on callID 0 000310: Oct 5 19:01:02.604: %SIP-3-MAXCONNCAC: Call rejected due to CAC based on maximum number of connections on dial-peer 1, sent response 503 000311: Oct 5 19:01:02.604: //17084/86B070800000/SIP/Msg/ccsipDisplayMsg: Sent: SIP/2.0 503 Service Unavailable Via: SIP/2.0/TCP 10.50.244.62:5060;branch=z9hG4bKb78c35aa21b0 From: <sip:9001@10.50.244.62>;tag=72531~2e8ca155-3f0b-4f07-a1b2-b14ef77ceb7f-26250846 To: <sip:1234@10.50.245.70>;tag=3E19564D-1684 Date: Thu, 05 Oct 2017 19:01:02 GMT Call-ID: 86b07080-9d61816e-b762-3ef4320e@10.50.244.62 CSeq: 101 INVITE Allow-Events: telephone-event Warning: 399 10.50.245.70 "Maximum Number of Connections reached for dial-peer 1" Server: Cisco-SIPGateway/IOS-15.4.3.S4 Content-Length: 0
POTS 다이얼 피어에서 Direct Inward Dial이 활성화된 경우 인바운드 메시징에 통화를 라우팅하는 데 필요한 모든 숫자를 포함할 수 있습니다. Cisco 게이트웨이는 후속 숫자 수집을 수행할 수 없습니다. 라우터 또는 게이트웨이가 아웃바운드 다이얼 피어를 검색할 때 디바이스는 전체 수신 다이얼 문자열을 사용합니다. 이 일치는 기본적으로 variable-length입니다. DID 정의에 따라 모든 숫자가 수신되었으므로 이 일치는 자릿수별로 수행되지 않습니다. POTS 다이얼 피어의 기본 컨피그레이션입니다.
전체 문서: IOS Voice Digital(T1/E1) 인터페이스의 DID(Direct-Inward-Dial) 이해
컨피그레이션 예시
! dial-peer voice 1 pots incoming called-number 8675309 voice-port 0/0/0 direct-inward-dial !
수신 POTS 다이얼 피어가 직접 내부 다이얼 없이 구성된 경우 라우터 또는 게이트웨이가 숫자 수집 모드로 들어갑니다(숫자는 대역 내에서 수집됨). 아웃바운드 다이얼 피어 일치는 숫자 단위로 수행됩니다. 라우터나 게이트웨이는 디바이스가 각 숫자를 수신한 후 다이얼 피어 일치를 확인한 다음, 전체 일치를 수행하면 통화를 라우팅합니다.
컨피그레이션 예시
!
dial-peer voice 1 pots
incoming called-number 8675309
voice-port 0/0/0
no direct-inward-dial
!
각 프로토콜은 통화 차단을 약간 다르게 처리합니다. 대부분의 프로토콜은 숫자 문자열을 기반으로 차단하는 변환 규칙 거부 패턴을 사용할 수 있습니다. 관리자가 일반 숫자 조작을 위해 인바운드 변환 프로파일을 계속 적용하되 그 안의 숫자를 차단하지 않으려는 경우 call-block translation-profile 명령을 사용하여 통화 차단을 구현하는 옵션이 있습니다.
! voice translation-rule 164 rule 1 reject /8675309/ ! voice translation-profile CALLBLOCK translate calling 164 !
dial-peer voice 1 pots
desc INCOMING VOICE-PORT with BLOCK
translation-profile incoming ANOTHER
call-block translation-profile incoming CALLBLOCK
call-block disconnect-cause incoming invalid-number
incoming called-number .
port 0/0/0:23
! Gateway#test voice translation-rule 164 8675309 8675309 blocked on rule 1
E1 R2 내에는 관리자가 통화 수집을 차단할 수 있는 기능이 있습니다. 이는 주로 브라질 구축에서 확인되고 사용되지만 모든 cas-custom 그룹을 통해 구성할 수 있습니다.
두 가지 옵션은 다음과 같습니다.
Category II-8 Block message(디버그 vpm 신호)
009228: Nov 21 12:02:00.955 GMT: //-1/BF12BE36BAC8/VTSP:(0/0/0:0):-1:1:2/vtsp_report_cas_digit: Begin Digit=8, Mode=CC_TONE_R2_MF_BACKWARD_MODE 009229: Nov 21 12:02:00.955 GMT: htsp_digit_ready_up(0/0/0:0(2)): Rx digit='8' 009230: Nov 21 12:02:00.955 GMT: R2 Incoming Voice(0/0): DSX (E1 0/0/0:1): STATE: R2_IN_CATEGORY R2 Got Event 8 009231: Nov 21 12:02:00.955 GMT: Enter r2_comp_category 009232: Nov 21 12:02:00.955 GMT: R2 Event : 8 009233: Nov 21 12:02:00.955 GMT: #######R2_II8 TRUE######## 009234: Nov 21 12:02:00.955 GMT: ####### collect_call_enable = 0 009235: Nov 21 12:02:00.955 GMT: ############sending B7 ########## 009236: Nov 21 12:02:00.955 GMT: r2_reg_generate_digits(0/0/0:0(2)): Tx digit '7' 009237: Nov 21 12:02:01.055 GMT: //-1/BF12BE36BAC8/VTSP:(0/0/0:0):-1:1:2/vtsp_report_cas_digit: End Digit=8, Mode=CC_TONE_R2_MF_BACKWARD_MODE 009238: Nov 21 12:02:01.055 GMT: htsp_digit_ready(0/0/0:0(2)): Rx digit='#' 009239: Nov 21 12:02:01.055 GMT: R2 Incoming Voice(0/0): DSX (E1 0/0/0:1): STATE: R2_IN_CATEGORY R2 Got Event R2_TONE_OFF 009240: Nov 21 12:02:01.055 GMT: Enter r2_comp_category 009241: Nov 21 12:02:01.055 GMT: r2_reg_generate_digits(0/0/0:0(2)): Tx digit '#' 009242: Nov 21 12:02:01.359 GMT: htsp_dsp_message: SEND_SIG_STATUS: state=0x8 timestamp=22365 systime=225097425 009243: Nov 21 12:02:01.359 GMT: htsp_process_event: [0/0/0:0(2), R2_Q421_IC_WAIT_ANSWER, E_DSP_SIG_1000] 009244: Nov 21 12:02:01.359 GMT: r2_q421_ic_clr_fwd_idle(0/0/0:0(2)) Rx CLEAR FWD 009245: Nov 21 12:02:01.359 GMT: r2_reg_channel_disconnected(0/0/0:0(2)) 009246: Nov 21 12:02:01.359 GMT: R2 Incoming Voice(0/0): DSX (E1 0/0/0:1): STATE: R2_IN_CATEGORY R2 Got Event R2_STOP 009247: Nov 21 12:02:01.359 GMT: Enter r2_comp_category 009248: Nov 21 12:02:01.359 GMT: htsp_timer - 2000 msec 009249: Nov 21 12:02:01.359 GMT: htsp_process_event: [0/0/0:0(2), R2_Q421_IC_CLR_FWD, E_HTSP_RELEASE_REQ] 009250: Nov 21 12:02:01.359 GMT: r2_q421_null_release(0/0/0:0(2)) E_HTSP_RELEASE_REQ 009251: Nov 21 12:02:01.359 GMT: r2_reg_process_event: [0/0/0:0(2), R2_REG_COLLECTING, E_R2_REG_DISCONNECT(91)] 009252: Nov 21 12:02:01.359 GMT: r2_reg_disconnect_collect(0/0/0:0(2)) 009253: Nov 21 12:02:01.359 GMT: r2_reg_timer_stop(0/0/0:0(2)) 009254: Nov 21 12:02:01.711 GMT: htsp_process_event: [0/0/0:0(1), R2_Q421_IC_CLR_FWD, E_HTSP_EVENT_TIMER] 009255: Nov 21 12:02:01.711 GMT: htsp_timer_stop 009256: Nov 21 12:02:01.711 GMT: r2_q421_clr_fwd_idle(0/0/0:0(1)) Tx IDLEvnm_dsp_set_sig_state:[R2 Q.421 0/0/0:0(1)] set signal state = 0x8 009257: Nov 21 12:02:01.711 GMT: r2_reg_channel_disconnected(0/0/0:0(1)) 009258: Nov 21 12:02:01.711 GMT: //682206/0C63B263B9C9/VTSP:(0/0/0:0):0:1:1/vtsp_do_call_history: Coder Rate=5 009259: Nov 21 12:02:01.711 GMT: r2_reg_process_event: [0/0/0:0(1), R2_REG_IDLE, E_R2_REG_DISCONNECT(91)]
이중 응답 컨피그레이션 예
! controller e1 0/0/0 ds0-group 0 timeslots 1-15,17-31 type r2-digital r2-compelled ani cas-custom 0 country brazil double-answer cc-reanswer-to 3000 !
Double-Answer Debug(디버그 vpm 신호)
### Answer the call and start a 1 second timer May 23 09:52:59.180 BR: r2_q421_ic_answer(0/0/0:0(18)) Tx ANSWER seizure: delay 0 ms,elapsed 12404 msvnm_dsp_set_sig_state:[R2 Q.421 0/0/0:0(18)] set signal state = 0x4 May 23 09:52:59.180 BR: r2_reg_channel_connected(0/0/0:0(18)) May 23 09:52:59.180 BR: htsp_timer - 1000 msec May 23 09:52:59.180 BR: //23899578/92233E71B421/CCAPI/cc_api_voice_mode_event: Call Id=23899578 May 23 09:52:59.180 BR: //23899578/92233E71B421/CCAPI/cc_api_voice_mode_event: Call Entry(Context=0x1E73AD8) May 23 09:52:59.180 BR: htsp_process_event: [0/0/0:0(18), R2_Q421_IC_DOUBLE_ANS_ANS, E_HTSP_VOICE_CUT_THROUGH] all May 23 09:52:59.184 BR: //23899578/92233E71B421/CCAPI/cc_process_notify_bridge_done: Conference Id=0x10AD1, Call Id1=23899578, Call Id2=23899579 May 23 09:52:59.184 BR: r2_reg_process_event: [0/0/0:0(18), R2_REG_WAIT_FOR_CONNECT, E_R2_REG_CONNECT(90)] May 23 09:52:59.184 BR: r2_reg_connect(0/0/0:0(18)) ### One Second Passes and we clear the call and start a 2 second timer May 23 09:53:00.180 BR: htsp_process_event: [0/0/0:0(18), R2_Q421_IC_DOUBLE_ANS_ANS, E_HTSP_EVENT_TIMER] May 23 09:53:00.180 BR: r2_q421_ic_d_answ_answ_to(0/0/0:0(18)) E_TIMER_EVENT May 23 09:53:00.180 BR: htsp_timer - 2000 msec May 23 09:53:00.180 BR: r2_q421_ic_d_answ_answ_to(0/0/0:0(18)) Tx CLEAR BWDvnm_dsp_set_sig_state:[R2 Q.421 0/0/0:0(18)] set signal state = 0xC May 23 09:53:00.824 BR: htsp_process_event: [0/0/0:0(18), R2_Q421_IC_DOUBLE_ANS_RLS, E_DSP_SIG_1000] May 23 09:53:00.824 BR: r2_q421_ic_answer_clr_fwd(0/0/0:0(18)) Rx CLEAR FWD May 23 09:53:00.824 BR: r2_reg_channel_disconnected(0/0/0:0(18)) May 23 09:53:00.824 BR: htsp_timer - 2000 msec May 23 09:53:00.824 BR: r2_reg_process_event: [0/0/0:0(18), R2_REG_CONNECTED, E_R2_REG_DISCONNECT(91)] May 23 09:53:00.824 BR: r2_reg_disconnect_idle(0/0/0:0(18)) May 23 09:53:00.824 BR: R2 Incoming Voice(0/0): DSX (E1 0/0/0:17): STATE: R2_IN_IDLE R2 Got Event R2_STOP May 23 09:53:00.824 BR: r2_reg_timer_stop(0/0/0:0(18)) ### 2 second passes and the gateway release the call May 23 09:53:02.824 BR: htsp_process_event: [0/0/0:0(18), R2_Q421_IC_CLR_FWD, E_HTSP_EVENT_TIMER] May 23 09:53:02.824 BR: htsp_timer_stop May 23 09:53:02.824 BR: r2_reg_channel_disconnected(0/0/0:0(18)) May 23 09:53:02.824 BR: //23899578/92233E71B421/VTSP:(0/0/0:0):17:1:1/vtsp_cc_call_disconnected: Cause Value=16 May 23 09:53:02.824 BR: //23899578/92233E71B421/CCAPI/cc_api_call_disconnected: Cause Value=16, Interface=0xB41CEBC, Call Id=23899578
ISDN 인터페이스에 isdn overlap-receiving 명령이 구성된 경우 인바운드 다이얼 피어 매칭에 대한 영향이 있습니다. ISDN 레이어에서 모든 숫자를 수신한 후 다이얼 피어에서 일치가 확인됩니다. 전체 일치가 이루어지면 추가 숫자를 기다리지 않고 통화가 즉시 세션 앱으로 라우팅됩니다. T 종결자를 사용하여 이 자릿수 일치를 일시 중지하고 라우터나 게이트웨이가 모든 숫자를 받을 때까지 기다리도록 할 수 있습니다. T는 ISDN 레벨의 T302 인터숫자 타이머를 의미하며, ISDN 인터페이스와 연결된 직렬 인터페이스 아래에서 구성할 수 있습니다. ISDN은 또한 Q.931 정보 메시지의 Sending Complete Information Element (IE) 설정과 같은 숫자의 끝을 나타내는 다른 메커니즘을 제공합니다.
표시된 경고 메시지는 다이얼 피어가 수신 수신 수신 번호 T로 구성된 경우에 표시됩니다.
샘플 출력
Gateway(config)# dial-peer voice 1 pots
Gateway(config-dial-peer)# incoming called-number T
Warning: Pattern T defines a match with zero or more digits and hence could
match with an empty number. If this is not the desired behaviour please
configure pattern .T instead to match on one or more digits
수신 다이얼 피어 일치에 대한 특별 참고 사항으로 빈 수신 번호가 있습니다.
null 호출 번호는 음성 포트 및/또는 경우에 따라 응답 주소에 비해 자격이 낮은 것으로 간주됩니다. 따라서 null 호출 번호를 기반으로 하는 일치는 answer-address 또는 port-number를 기반으로 하는 일치가 없는 경우에만 발생할 수 있습니다.
중복 다이얼링의 경우 시간 초과가 발생하지 않았으므로 null 호출 번호가 수신 호출 번호 T와 일치하지 않습니다.
null called-number는 ENBLOCK의 경우에만 수신 called-number T와 일치할 수 있으며 answer-address 및 port-number로 인해 일치하지 않습니다. 관리자가 수신 수신 전화 번호 T를 구성할 때 표시되는 경고는 이 특정 경우를 참조합니다.
COR(Class of Restriction)은 Cisco 게이트웨이에 대한 통화를 제한하는 방법입니다. COR은 종종 자물쇠와 열쇠 장치로 묘사된다. 발신 COR 목록이 있는 다이얼 피어에 잠금이 할당됩니다. 키는 수신 COR 목록이 있는 다이얼 피어에 할당됩니다. COR Lists(COR 목록)가 적용될 때 사용 가능한 아웃바운드 다이얼 피어는 키의 잠금을 해제할 수 있는 것입니다. 이러한 필터링은 나머지 아웃바운드 다이얼 피어 일치 방법을 선택하기 전에 수행됩니다.
Class of Restriction의 두 가지 중요한 규칙:
COR(Class of Restriction), LPCOR(Logical Partitioning Class of Restriction) 및 FAC(Forced Authorization Codes)가 포함된 LPCOR의 구성은 이 문서의 범위를 벗어나지만 이 문서를 참조하여 더 자세히 읽을 수 있습니다.
코어 |
|
LPCOR(CME 포함) |
|
LPCOR(CME 및 FAC 포함) |
CME는 전화기 및 음성 레지스터 풀을 위한 시스템 다이얼 피어를 생성합니다. 실행 중인 컨피그레이션에서는 이러한 항목을 볼 수 없습니다. CME 다이얼 피어를 변경하려면 실제 전화기 또는 음성 레지스터 풀에서 변경해야 합니다. show dial-peer voice summary 출력을 볼 때 2000으로 시작하는 다이얼 피어는 SCCP 전화기이며 4000으로 시작하는 다이얼 피어는 SIP 음성 레지스터 풀입니다. 이 다이얼 피어는 CME 등록 전화기에서 걸려오는 통화의 인바운드 다이얼 피어로 표시되고 CME 등록 전화기에서 거는 통화의 아웃바운드 다이얼 피어로 표시됩니다.
show dial-peer voice summary with CME의 출력 예
Gateway# show dial-peer voice sum | s 2000|4000 20001 pots up up 1001$ 0 50/0/1 20002 pots up up 4001$ 0 50/0/2 20003 pots up up 4002$ 0 50/0/3 20004 pots up up 7001$ 0 50/0/4 20005 pots up up 3009$ 0 50/0/5 20006 pots up up 8810....$ 0 50/0/10 20007 pots up up 8811....$ 0 50/0/11 40001 voip up up 14085151111$ 0 syst ipv4:14.50.214.67:50 40002 voip up up 19725252222$ 0 syst ipv4:14.50.214.67:50 40003 voip up up 85225353333$ 0 syst ipv4:14.50.214.67:50 40004 voip up up 442084445555$ 0 syst ipv4:14.50.214.67:50 40005 voip up up 911$ 0 syst ipv4:14.50.214.67:50 40006 voip up up 18005550100$ 0 syst ipv4:14.50.214.67:50 40008 voip up up 2001$ 0 syst ipv4:14.50.214.51:50
show voice register dial-peers with SIP CME의 출력 예
Gateway# show voice register dial-peers Dial-peers for Pool 2: dial-peer voice 40006 voip destination-pattern 14085151111$ session target ipv4:14.50.214.67:5060 session protocol sipv2 dtmf-relay rtp-nte digit collect kpml codec g711ulaw bytes 160 no vad call-fwd-all 8888 after-hours-exempt FALSE dial-peer voice 40005 voip destination-pattern 19725252222$ session target ipv4:14.50.214.67:5060 session protocol sipv2 dtmf-relay rtp-nte digit collect kpml codec g711ulaw bytes 160 no vad after-hours-exempt FALSE
MGCP 및 SCCP는 다이얼 피어에 대해 고유한 규칙을 따릅니다. 이들이 사용하는 유일한 개념은 통화에 필요한 음성 포트를 사용하여 구성해야 한다는 것입니다. 나머지는 STCAPP 및 MGCPAPP 프로세스에 의해 처리됩니다. 이러한 다이얼 피어의 컨피그레이션을 검토할 때 명령 서비스 mgcpapp 또는 서비스 stcapp가 있습니다. 이렇게 하면 선택한 애플리케이션에 대해 다이얼 피어를 사용할 수 있을 뿐만 아니라, 다이얼 피어가 처리할 수 있는 다이얼 피어를 애플리케이션에 알릴 수 있습니다.
이러한 프로토콜을 디버깅할 때 출력에 인바운드 다이얼 피어 일치가 표시되지 않습니다. 항상 다이얼 피어 0으로 표시할 수 있습니다. 존재하지 않기 때문입니다. 게이트웨이를 통해서는 통화 레그를 제어할 수 없으므로 애플리케이션을 처리하는 통화 에이전트는 통화를 전송할 포트를 이미 선택했으며 인바운드 다이얼 피어 일치는 사용할 수 없습니다. 그러나 아웃바운드 다이얼 피어 일치를 관찰할 수 있습니다. 이는 궁극적으로 프로세스를 처리하는 통화 에이전트가 통화의 해당 부분을 제어하므로 보여주기 위한 것입니다.
다이얼 피어는 제어할 물리적 음성 포트를 애플리케이션에만 알려줍니다. 이 작업의 대부분은 외부 통화 에이전트 및 게이트웨이에 의해 제어되므로, 이 작업은 명령한 내용만 수행합니다. 이 섹션의 기본적인 방법을 건너뛰고 몇 가지 컨피그레이션을 제공하여 시작할 수 있습니다.
샘플 MGCP 컨피그레이션 [CUCM 자동 컨피그레이션 포함*]
!
mgcp call-agent 10.10.10.10
mgcp
!
ccm-manager mgcp [codec-all]
ccm-manager config server 10.10.10.10
ccm-manager config
ccm-manger redundant-host 10.10.10.20
!
voice-port 0/0/0
description The MGCP port to register
no shut
!
dial-peer voice 1 pots
description Defining the Port for the MGCP application
service mgcpapp
port 0/0/0
!
hostname myrouter
ip domain name cisco.com
ip name server 10.10.10.30
!
ip tftp source-interface gig0/0/0
!
전체 MGCP 설명서: Cisco Unified Communications Manager 및 상호 운용성 구성 설명서, Cisco IOS 릴리스 15M&T
샘플 SCCP/STCAPP 컨피그레이션 [CUCM 자동 컨피그레이션 포함*]
!
stcapp ccm-group 1
stcapp
!
sccp local gig0/0/0
sccp ccm 10.10.10.10 id 1 priority 1 version 7.0+
sccp ccm 10.10.10.20 id 1 priority 2 version 7.0+
sccp
!
sccp ccm group 1
bind interface gig0/0/0
associate ccm 1 priority 1
associate ccm 2 priority 2
!
ccm-manager config server 10.10.10.10
ccm-manager sccp local gig0/0/0
ccm-manager sccp
!
voice-port 0/0/0
description The SCCP port to register
no shut
!
dial-peer voice 1 pots
description Defining the Port for the SCCP application
service stcapp
port 0/0/0
!
ip tftp source-interface gig0/0/0
!
관리자가 CUCM에서 게이트웨이를 구성하지 않도록 하려는 경우 ccm-manager 명령을 제거하기만 하면 됩니다. 다이얼 피어 컨피그레이션은 이 개념의 작동 방식을 명확하게 설명하는 데 사용됩니다. CCM 관리자 컨피그레이션이 있으면 CUCM은 CUCM의 포트 컨피그레이션을 기반으로 이러한 다이얼 피어를 생성하므로 다이얼 피어를 실제로 정의할 필요가 없습니다. CUCM에서 생성한 다이얼 피어는 일반적으로 999로 시작하여 세 자릿수가 더 됩니다.
Cisco IOS XE 16.12.1+ 및 CUCM 12.5.1SU+에 SIP DSAPP 추가
이 기능을 사용하면 FXS와 같은 아날로그 음성 포트를 CUCM에서 등록하고 관리할 수 있습니다. DSAPP와의 통화 라우팅은 다이얼 피어가 여전히 정상적으로 일치하므로 MGCP 또는 SCCP와 약간 다릅니다. 즉, 게이트웨이는 FXS 포트에서 숫자를 수집하고 VOIP 다이얼 피어에서 다이얼 피어 조회를 수행할 수 있습니다. 일치 항목이 발견되면 INVITE는 CUCM용 CUCM 인블록으로 전송되어 추가 숫자 분석을 수행합니다.
샘플 SIP DSAPP 컨피그레이션 [CUCM 자동 컨피그레이션 포함*] | IOS-XE 16.12.1+ 및 CUCM 12.5.1SU+
!
dsapp line
!
voice service voip
sip
bind control source-interface GigabitEthernet0/0/0
bind media source-interface GigabitEthernet0/0/0
session transport tcp
!
application
service dsapp
param dialpeer 777
!
global
service default dsapp
!
ccm-manager config server 10.10.10.10
ccm-manager sipana auto-config local GigabitEthernet0/0/0
!
dial-peer voice 777 voip
destination-pattern 9T
session protocol sipv2
session target ipv4:10.10.10.10
session transport tcp
incoming called-number .
voice-class sip extension gw-ana
voice-class sip bind control source-interface GigabitEthernet0/0/0
dtmf-relay rtp-nte
codec g711ulaw
!
dial-peer voice 19990100 pots
service dsapp
destination-pattern 7776
voice-class sip extension gw-ana
port 0/1/0
!
sip-ua
registrar ipv4:10.10.10.10 expires 3600 tcp
!
전체 SIP DSAPP 문서: Cisco VG450 Voice Gateway 소프트웨어 구성 설명서
자세한 내용은 이 문서를 참조하십시오.
CUBE(Unified Border Element) 및 TDM(Time-Division Multiplexing) 게이트웨이에 대한 디버그 컬렉션 구성
개정 | 게시 날짜 | 의견 |
---|---|---|
4.0 |
24-May-2023 |
PII를 제거했습니다.
업데이트된 제목, 소개, SEO, 브랜딩 요구 사항, 스타일 요구 사항, 기계 번역, 대체 텍스트 및 서식. |
3.0 |
27-Apr-2022 |
사소한 변경 후 다시 게시 |
1.0 |
30-May-2017 |
최초 릴리스 |
참고: 이 규칙의 예외는 MGCP 및 SCCP 음성 포트입니다. 이러한 신호 프로토콜은 통화 라우팅 중에 일반적인 다이얼 피어 매칭 메커니즘을 따르지 않습니다. 자세한 내용은 SCCP 및 MGCP 섹션을 참조하십시오.