此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
目前,电信行业正在经历从建立已久的交换和传输技术向基于 IP 的传输和边缘设备的转变。IP 通信革命已经开始在中小型企业中产生巨大的商业影响。这些中小型企业意识到使用 IP 非常高效,因为 IP 可以通过单个网络使用语音、视频和数据功能,而无需使用三个单独的专用网络。图 1 显示了 IP 电话部署向 IP 中继发展的趋势。
图 1 - IP 电话系统
IP PBX 已开始在语音技术业务中占据优势,而 TDM PBX 不再是作为两个语音网络之间连接点的主要来源。过去几年中,TDM PBX 的使用率有所降低,而 IP PBX 的使用正逐渐成为 IP LAN 和 WAN 中的有利投资。为连接到 PSTN,PBX 需要使用某种中继,如 TDM (T1/E1) 或模拟线路。IP PBX 可以使用上述类型的中继访问 PSTN,但是需要一个将 IP 语音数据流转换为传统 PSTN 的媒体网关,这有时会造成从 IP 域到 TDM 域的连续转换。这些连续转换会增加网关的维护成本,增加延迟,并降低语音质量。
为避免这些问题,IP PBX 使用了会话初始化和管理协议,其中最突出的是 Session Initiation Protocol (SIP)。 本文档介绍 SIP 中继和 Cisco CallManager Express (CME),并提供通过 CME 使用 SIP 中继进行呼入和呼出的实施基于 IP 的电话系统的配置。
尝试进行此配置之前,请确保满足以下要求:
已安装 CME 版本 4.1
路由器上有 Cisco IOS® 软件版本 12.4(11)XJ 或 IOS 12.4(6th)T 的镜像
NM-CUE 模块已随 CUE 版本 2.3.4 一同安装
本文档中的信息基于以下软件和硬件版本:
适用 Cisco IOS 软件版本 12.4(11)XJ 的 Cisco 3825 路由器
适用 Cisco IOS 软件版本 12.4 的 Cisco Catalyst 3550 交换机
Cisco IP 7960 电话
Cisco CallManager Express 4.1
Cisco Unity Express 2.3.4
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档约定的更多信息,请参考 Cisco 技术提示约定。
SIP 是基于 ASCII 的应用层控制协议,可用于建立、保持和终止两个或多个端点之间的呼叫。SIP 已迅速发展为用于 IP 通信的标准协议,因为它是除语音外还可用于视频会话和即时消息的多媒体协议。此外,SIP 还可以处理会议会话和广播,以及一对一会话。SIP 具有转变和发展人们通信方式的巨大潜力。因此,Cisco 一直并将继续扮演重要的领导角色,致力于创造使 SIP 及其应用成为 IP 通信标准的新技术。
SIP 中继与电话线路类似,区别在于 SIP 中继使用 IP 网络而不是 PSTN。另外,SIP 中继允许将语音和数据集中到通用全 IP 连接中。要使用SIP中继访问IP网络,必须在服务提供商和客户端进行配置。用户需要设置并配置 CME,也就是将对 SIP 信号进行恰当解释并顺利传递数据流的 PBX。服务提供商需要配置 SIP 代理服务器。但与常规 PSTN 中继相比,SIP 中继的建立更加复杂。原因是用户要面对各种难题,包括处理设备供应商提供的 SIP 的不同解释和实施,提供安全性,管理服务质量 (QoS),实现网络地址转换 (NAT) 和防火墙通过,以及确保服务达到运营商级可靠性和连续性。
以下几点说明了 SIP 中继为何在中小型企业中变得如此普及:
部署快速而简单
提高网络容量的利用率
提供结合并降低电话成本的可能性
经济节约的直接拨入 (DID)
业务连续性
Cisco CME 是一个直接集成在 Cisco IOS 软件中的 IP 电话解决方案。CME 使中小型企业能够在单一平台上部署语音、数据和视频。IP 电话网络设置简单,因为 CME 在单个路由器上运行,从而为企业提供了 PBX 功能。因此,通过使用 CME,中小型企业能够以最低成本使用单个融合解决方案提供 IP 电话和数据路由。
自 CME 3.1 发布时起,CME 开始支持 SIP 中继。然而当 SIP 电话呼叫 SCCP 电话或尝试访问语音邮件时,存在一些问题。问题是,连接到CME的SCCP电话需要使用带外DTMF中继来跨VoIP连接传输DTMF(数字),而SIP电话则使用带内传输。两个设备之间存在 DTMF 失真。CME 3.2 发布时,增加了对 DTMF 中继的支持。通过 RFC2833 或通知方法,可以将来自 SCCP 的 DTMF 位转换为带内 DTMF 中继方案。
CME 目前支持使用下列 DTMF 互联网络进行 SIP 到 SIP 的呼叫:
通知<—>自12.4(4)T起通知
RFC2833 <—>自12.4(4)T起通知
自12.4(4)T起通知<—> RFC2833
自12.4(11)T以来的带内G711 <—> [需要转码器]
CME 目前支持使用以下 DTMF 互联网络进行 SIP 到 SCCP 的呼叫:
SCCP带外 — 自12.4(4)T以来的SIP通知/RFC2833
设置 SIP 中继时需要考虑的另一个重要方面是支持的编解码。编解码表示采用语音频率的信号的脉冲编码调制示例。SIP 中继支持以下编解码:G.711和G.729。但是,对于Cisco Unity Express(CUE)和保留音乐(MOH)等不同功能,仅支持编解码器G.711。这意味着,除非有可用于对语音流进行压缩和解压缩以匹配 CUE 功能的代码转换器,否则使用采用编解码 G.729 的 SIP 中继的语音呼叫无法访问 CUE。MOH 也可以使用编解码 G.729 保存带宽,但该编解码无法提供具有足够质量的 MOH 流。这是因为 G.729 是针对语音优化的编解码。因此必须强迫 MOH 使用 G.711。
当呼叫进入SIP中继并转发(CFNA/CFB/CFA)时,默认行为是CME将302“临时移动”SIP消息发送到服务提供商(SP)代理。可能需要对 302 消息中“Contact Header”的用户部分进行转换以反映 SP 代理可路由至的 DID。应对 302 消息中“Contact Header”的主机部分进行修改,以反映在 sip-ua 下使用 host-registrar CLI 并在以 CUE 为目标的 VoIP 拨号对等体下使用 b2bua CLI 记录地址 (AOR)。
某些 SIP 代理可能不支持此功能。如果是这样,则需要添加以下内容:
Router(config)#voice service voip
Router(conf-voi-serv)#no supplementary-service sip moved-temporarily
图 2 显示禁用 302 消息时 CME 系统的行为。
图 2 - 禁用 302 消息时的占线呼叫转移 (CFB) 流
此方法将允许对 CME 上的呼叫转移使用 302 SIP 消息的发夹功能。如果某些分机没有 DID 映射,也需要使用上述方法,因为 SP 代理可能不知道如何对这样的呼叫进行路由。如果禁用 3xx 响应,则可以使用 calling-number initiator 保留原始主叫方的呼叫方 ID。
当呼叫通过 SIP 中继进入 SCCP 电话或 CUE AutoAttendant (AA) 并被转移时,CME 在默认情况下会将 SIP REFER 消息发送到 SP 代理。大部分 SP 代理服务器不支持 REFER 方法。需要对此进行配置以强迫 CME 对呼叫进行发夹处理:
Router(config)#voice service voip
Router(conf-voi-serv)#no supplementary-service sip refer
图 3 显示禁用 REFER 方法时 CME 系统的行为。
图 3 - 禁用 REFER 时的转移
如果 SIP 代理支持 REFER,则必须将“Refer-To”和“Referred-By”的用户部分转换为 SP 代理可以识别的 DID。“Refer-To”和“Referred-By”的主机部分必须是 SP 代理可以路由至的 IP 地址或 DNS(这在 CME 4.1 中是默认行为)。
如果 SCCP 电话将来自 PSTN 的呼叫保留,CME 将对媒体进行本地更改。不会通过 SIP 中继发送任何 SIP 消息。根据 CME 配置,将通过 SIP 中继为用户播放保留音乐。
本部分提供有关如何配置本文档所述功能的信息。
本文档使用以下网络设置:
以下配置元素概括了配置使用 SIP 中继的 CME 所需的步骤:
基础架构元素:接口、TFTP 和 DHCP 服务、NTP 等.
电话服务:启用 CME 平台上的 IOS“PBX”呼叫控制,包括电话管理元素
Ephones-dns 的 Ephone 实现:定义 IP 电话及其电话号码
拨号方案:拨号对等体、分机、语音转换规则
IOS SIP 配置:启用 SIP、使用 SIP 代理的电话注册、中继呼叫路由等.
语音邮件支持:Cisco Unity Express
交换机 Catalyst 配置:IP 地址、接口等.
下面是部署使用 SIP 中继的 CME 系统所需的完整配置:
路由器 - CME 配置 |
---|
! AUSNML-3825-01#show run Building configuration... Current configuration : 8634 bytes ! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname AUSNML-3825-01 ! boot-start-marker boot-end-marker ! enable secret 5 $1$vBU1$MCMG1rXM5ejME8Wap6W0H1 ! no aaa new-model clock timezone central -8 clock summer-time central recurring ip cef ! !--- DHCP Configuration --- ip dhcp pool Voice network 172.22.100.0 255.255.255.0 option 150 ip 172.22.1.107 default-router 172.22.100.1 ! ip dhcp pool Data network 172.22.101.0 255.255.255.0 option 150 ip 172.22.1.107 default-router 172.22.101.1 ! ! ip domain name cisco.com ip name-server 205.152.0.20 multilink bundle-name authenticated ! voice-card 0 no dspfarm ! ! ! ! !--- Voice Class and Service VoIP Configuration --- voice service voip allow-connections sip to sip no supplementary-service sip moved-temporarily !---Disable 302 sending no supplementary-service sip refer !---Disable REFER sending sip registrar server expires max 3600 min 3600 localhost dns:domain.test.com ! ! voice class codec 1 codec preference 1 g711ulaw ! ! ! ! ! ! ! ! ! ! ! !--- Voice Translation Rules --- voice translation-rule 1 rule 1 /5123781291/ /601/ !--- An inbound rule for AA pilot "601 rule 2 /5123781290/ /600/ !--- An inbound rule for the voicemail pilot "600" ! voice translation-rule 2 rule 1 /^911$/ /911/ !--- An outbound rule to allow "911" rule 2 /^9\(.*\)/ /\1/ !--- An outbound rule to strip "9" from PSTN calls ! voice translation-rule 3 rule 1 /^.*/ /5123781291/ !--- An outbound rule to change calling-number CLID to a |
路由器 - CUE 配置 |
---|
se-172-22-1-253#show run Generating configuration: clock timezone America/Chicago hostname se-172-22-1-253 ip domain-name localdomain groupname Administrators create groupname Broadcasters create !--- Users --- username Enrique create username John create username Enrique phonenumberE164 "5123781202" username John phonenumberE164 "5123781201" username Enrique phonenumber "202" username John phonenumber "201" !--- AutoAttendant --- ccn application autoattendant description "**AutoAttendant**" enabled maxsessions 4 script "aa.aef" parameter "busOpenPrompt" "AABusinessOpen.wav" parameter "operExtn" "601" parameter "welcomePrompt" "AAWelcome.wav" parameter "disconnectAfterMenu" "false" parameter "busClosedPrompt" "AABusinessClosed.wav" parameter "allowExternalTransfers" "false" parameter "holidayPrompt" "AAHolidayPrompt.wav" parameter "businessSchedule" "systemschedule" parameter "MaxRetry" "3" end application !--- MWI --- ccn application ciscomwiapplication description "ciscomwiapplication" enabled maxsessions 8 script "setmwi.aef" parameter "CallControlGroupID" "0" parameter "strMWI_OFF_DN" "8001" parameter "strMWI_ON_DN" "8000" end application !--- Voicemail --- ccn application voicemail description "**Voicemail**" enabled maxsessions 4 script "voicebrowser.aef" parameter "uri" "http://localhost/voicemail/vxmlscripts/login.vxml" parameter "logoutUri" "http://localhost/voicemail/vxmlscripts/mbxLogout.jsp" end application !--- SIP --- ccn subsystem sip gateway address "172.22.100.1" !--- Must match the "ip source-address" in telephony-service dtmf-relay sip-notify mwi sip outcall !--- Subscribe / Notify and Unsolicited Notify have not been tested transfer-mode blind bye-also !--- Testing with REFER method on CUE has caused certain call flows to break end subsystem !--- Trigger Phones --- ccn trigger sip phonenumber 600 application "voicemail" enabled maxsessions 4 end trigger ccn trigger sip phonenumber 601 application "autoattendant" enabled maxsessions 4 end trigger service phone-authentication end phone-authentication service voiceview enable end voiceview !--- Voicemail Mailboxes --- voicemail default mailboxsize 21120 voicemail broadcast recording time 300 voicemail mailbox owner "Enrique" size 300 description "**Enrique_Mailbox**" expiration time 10 messagesize 120 end mailbox voicemail mailbox owner "John" size 300 description "**John'sMailbox**" expiration time 10 messagesize 120 end mailbox end |
交换机配置 |
---|
!--- Interface Connected to CME/CUE Router --- interface FastEthernet0/2 description Trunk to 3825 switchport trunk encapsulation dot1q switchport mode trunk no ip address duplex full speed 100 !--- Interfaces Connected to the IP Phones --- interface FastEthernet0/7 switchport trunk encapsulation dot1q switchport trunk native vlan 20 !--- Data Traffic --- switchport mode trunk switchport voice vlan 100 !--- Voice Traffic --- no ip address spanning-tree portfast interface FastEthernet0/8 switchport trunk encapsulation dot1q switchport trunk native vlan 20 switchport mode trunk switchport voice vlan 100 no ip address spanning-tree portfast !--- IP Address --- interface Vlan1 ip address 172.22.1.194 255.255.255.0 ! ip classless ip route 0.0.0.0 0.0.0.0 172.22.1.1 ip http server |
当前没有可用于此配置的验证过程。
本部分提供的信息可用于对配置进行故障排除。
思科 CLI 分析器(仅适用于注册客户)支持某些 show 命令。要查看对 show 命令输出的分析,请使用思科 CLI 分析器。
注意:在使用debug命令之前,请参阅有关Debug命令的重要信息。
对 CME 上的 SIP 进行故障排除需要使用一些用于 IOS SIP GW 故障排除和 CME 故障排除的命令。使用以下命令检查您的 DN 是否已注册:
show sip-ua register status — 使用此命令可显示SIP网关向外部主SIP注册器注册的E.164号码的状态。
debug ccsip message — 启用所有SIP SPI消息跟踪,例如在SIP用户代理客户端(UAC)和接入服务器之间交换的SIP SPI消息跟踪。
用于对使用 SIP 中继的呼叫进行故障排除的命令与用于常规 SIP GW 和 CME 故障排除的命令基本相同。
显示命令:
show ephone registered — 验证ephone注册。
show voip rtp connection -显示有关RTP命名事件数据包的信息,例如本地和远程终端的主叫方ID号、IP地址和端口。
show sip-ua call — 显示有关SIP呼叫的活动UAC和用户代理服务器(UAS)信息。
show call active voice brief — 显示正在进行的语音呼叫或传真传输的活动呼叫信息。
调试命令:
debug ccsip message — 启用所有SIP SPI消息跟踪,例如在SIP UAC和接入服务器之间交换的SIP SPI消息跟踪。
debug voip ccapi inout — 通过呼叫控制API跟踪执行路径。
debug voice translation — 检查转换规则的功能。
debug ephone detail mac-address<mac of phone> -设置Cisco IP电话的详细调试。
debug voip rtp session named-events — 启用实时传输协议(RTP)命名事件数据包的调试。
debug sccp message -显示SCCP消息的顺序。