语音和统一通信 : Cisco Unified Border Element

带有SIP配置文件的统一边界网元(多维数据集)会话启动协议(SIP)标准化配置示例

2016 年 10 月 24 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录


简介

协议转换和修复是关键思科统一的边界网元(多维数据集)功能。多维数据集可以部署在支持同一份VoIP协议的两个设备之间(SIP),但是不相互作用由于在协议如何的差异实现或解释。多维数据集能在任何一方定制SIP消息传送到什么在网络的该分段的设备期望通过规范化在网络边界的SIP消息传送发现,或者在网络内的两个不能共同操作的设备之间。

服务提供商可能有为SIP消息传送字段应该存在的策略(或什么构成报头字段的有效值),在SIP呼叫进入他们的网络前。同样地,企业和小型企业可能有策略对于能进入或退出他们的策略的从服务提供商SIP的网络或安全原因建立中继的信息。

如此镜像所显示,为了定制在两个方向的SIP消息传送,您能放置与SIP标准化配置的多维数据集在这些网络边界:

/image/gif/paws/105624/cube_sip_normalization_01.gif

除网络策略标准之外,多维数据集SIP标准化功能可以用于解决在SIP设备之间的不相容在企业网络里面。这些是不相容能出现的情况:

  • 设备拒绝一个未知报头(值或参数)而不是忽略它

  • 设备发送在SIP消息的不正确的数据

  • 设备不实现(或不正确地实现)协议步骤

  • 设备期待一个可选报头值或参数或者在多种方式可以实现的一个可选协议步骤

  • 设备发送必须更改或抑制的值或参数,在离开或进入网络前

  • 在SIP标准上的变化关于怎样达到某些功能

在多维数据集的SIP配置文件功能提供一解决方案给这些SIP标准化和自定义问题。

先决条件

要求

尝试进行此配置之前,请确保满足以下要求:

  • 基础知识如何配置和使用Cisco IOS语音功能(例如dial-peer)

  • 基础知识如何配置和使用Cisco Unified Border Element (多维数据集)

  • SIP协议的半成品知识和其消息、字段和参数

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • 在Cisco ISR, Cisco AS5400XM的Cisco Unified Border Element版本接入网关, Cisco运行Cisco IOS版本12.4.15XZ或以上的AS5350XM接入网关、Cisco 7200路由器或者Cisco 7300路由器

  • Cisco在Cisco ISR Cisco AS5400XM接入网关的TDM对SIP网关或者运行Cisco IOS版本12.4.15XZ或以上的Cisco AS5350XM接入网关

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

配置

SIP配置文件功能的配置给您添加,修改或者取消在一个流出的SIP消息的所有SIP或SDP报头值在多维数据集。支持的确切的消息和报头的列表在本文的支持的SIP Messages Section提供。SIP配置文件可以配置在dial-peer级别或全局级别。

消息修改的语法使用常规表示符号匹配替换消息的字段。匹配的子链可以用于替换模式。当多个常规表示规则适用对同样[method/response] :报头组合,第二个规则适用于第一个规则的结果字符串。

SIP配置文件不允许您去除添加必须SIP报头。仅修改选项为必须报头是可用的。必须SIP报头包括对,从,通过, CSeq、呼叫ID和Max-forwards。必须SDP报头包括v、o、s、t、c和m。

ANY特殊关键字在CLI提供表明必须应用规则到在指定的类别内的所有消息。为邀请消息配置的规则在呼叫的协议顺序仅应用对第一邀请。特殊关键字支持定义在随后需要的操作的REINVITE在呼叫的一个协议顺序邀请。

SIP配置文件可能也用于更改从较长的形式的一报头名称到紧凑表;例如,f。这可以使用作为方式减少SIP消息的长度。默认情况下Cisco IOS SIP从未发送SIP消息,虽然接收长或简易格式的紧凑表。

SIP配置文件功能影响仅流出的SIP消息。当在消息前的最后一步离开多维数据集路由器,规则应用;即在目的地以后拨号对端匹配发生了。对SIP消息的更改没有由多维数据集应用程序记住也没有操作。

在SIP配置文件规则应用对出局信息后,内容长度字段重新计算。

注意: 使用命令查找工具仅限注册用户)可获取有关本部分所使用命令的详细信息。

一般配置命令结构

定义了规则添加字段对SIP方法/答复的一般命令是:

<request/response> <message code> <sip-header/sdp-header> <header-name>添加<add-value>

定义了规则删除字段到SIP方法/答复的一般命令是:

<request/response> <message code> <sip-header/sdp-header> <header-name>删除

定义了规则修改字段成SIP方法/答复的一般命令是:

<request/response> <message code> <sip-header/sdp-header> <header-name>修改<match-pattern> <replace-pattern>

配置步骤

第一步将定义规则。为了定义规则,请使用给的一般命令指令结构在前面部分。例如:

voice class sip-profiles 100
  request INVITE sip-header…
  response 100 sip-header…
  request INVITE sdp-header…

第二步将运用规则对全局或dial-peer级多维数据集配置。为了运用规则全局到横断多维数据集的所有呼叫,请使用此命令结构:

voice service voip 
   sip
     sip-profiles 100

为了选择性地运用规则到横断只有一个特定的流出拨号对等体的呼叫,请使用此命令结构:

dial-peer voice 555 voip
   voice-class sip-profiles 100

如果规则配置在级全局和的dial-peer,拨号对等配置优先于全局级别配置。

这些笔记适用一般于使用常规表达(包括SIP配置文件)的所有Cisco IOS功能:

  • Add值,匹配模式或者替换模式包含怀特空间字符时,必须包括整个值在双引号之间。例如:

    答复100 SIP报头添加“用户代理:思科多维数据集”

  • Add值,匹配模式或者替换模式包含双引号(")和白色空格符,斜线(\)必须加前缀内在报价单。例如,为了添加“思科”多维数据集,请使用此命令:

    答复100 SIP报头添加“用户代理:\ “思科\ “多维数据集”

配置警告

  • 为了提供多数灵活性,句法检查在发生的SIP消息没有进行,在规则应用后。您必须通过足够的测试保证您在配置文件规则指定的更改导致有效SIP协议交换。

  • SIP消息类型不可能更改与SIP配置文件。即一180敲响的答复不可能更改对一183会话进展答复。

  • 可能只修改必须报头;他们不可能被添加或删除。必须SIP报头包括对,从,通过, CSeq、呼叫ID和Max-forwards。必须SDP报头包括v、o、s、t、c和m。

  • 当常规表示变量能用于匹配替换子链为了存储和重新使用值时,信息不可能从一个消息解压缩和应用到另一个。例如,呼叫号码不可能从邀请解压缩和插入到一个随后的参考的消息。指定的规则每次适用对单个消息;在该消息的仅信息被操作。

配置示例

此部分提供SIP配置文件规则示例达到对SIP消息的特定更改。

添加

此部分如何提供示例添加SIP和SDP报头给消息。

示例 1

消息:邀请

操作:添加b=AS:4000 SDP报头到视频梅迪亚线路

规则:

voice class sip-profiles 100
  request INVITE sdp-header Video-Bandwidth-Info add "b=AS:4000"

示例 2

消息:480临时地不可用

操作:添加重试次数在SIP报头以后

规则:

voice class sip-profiles 100
  response 480 sip-header Retry-After add “Retry-After: 60”

示例 3

消息:邀请和REINVITEs

操作:添加“user=phone”标记到SIP URI报头

规则:

voice class sip-profiles 100
  request INVITE sip-header SIP-Req-URI modify "; SIP/2.0" ";user=phone SIP/2.0"
  request REINVITE sip-header SIP-Req-URI modify "; SIP/2.0" ";user=phone SIP/2.0"

示例 4

消息:200答复

操作:添加用户代理SIP报头

规则:

voice class sip-profiles 100
  response 200 sip-header User-Agent add "User-Agent: CiscoSystems-SIP-GW-UA"

删除

此部分提供示例关于怎样去除SIP和SDP报头到消息。

示例5

消息:所有请求和答复

操作:去除思科Guid SIP报头

规则:

voice class sip-profiles 100
  request ANY sip-header Cisco-Guid remove
  response ANY sip-header Cisco-Guid remove

示例6

消息:BYE和取消

操作:去除原因SIP报头

规则:

voice class sip-profiles 100
  request BYE sip-header Reason remove
  request CANCEL sip-header Reason remove

示例7

消息:100和180答复

操作:去除服务器SIP报头

规则:

voice class sip-profiles 100
	 response 100 sip-header Server remove
	 response 180 sip-header Server remove

修改

此部分提供示例关于怎样修改在消息的SIP和SDP报头。

示例8

消息:邀请

操作:修改从:对“gateway@gw-ip-address”格式更改2222000020@9.13.24.7的即报头对gateway@9.13.24.7

规则:

voice class sip-profiles 100
  request INVITE sip-header From modify "(<.*:)(.*@)" "\1gateway@"

示例9

消息:邀请

操作:替换“Cisco Systems SIP GWUserAgent”用“-”在SDP报头的o=线路

规则:

voice class sip-profiles 100
  request INVITE sdp-header Session-Owner modify "CiscoSystems-SIP-GW-UserAgent“ "-"

示例10

消息:邀请

操作:即转换“sip URL”对“tel URL”在Req URI,从和对报头从“sip:2222000020@9.13.24.6:5060”对“tel:2222000020”

规则:

voice class sip-profiles 100
  request INVITE sip-header SIP-Req-URI modify "sip:(.*)@[^ ]+" "tel:\1"
  request INVITE sip-header From modify "<sip:(.*)@.*>" "<tel:\1>"
  request INVITE sip-header To modify "<sip:(.*)@.*>" "<tel:\1>"

与SIP配置文件的全双工配置示例

此部分为配置的多维数据集路由器提供一完全配置示例以SIP配置文件。

多维数据集
CUBE#show run
Building configuration...
Current configuration : 5888 bytes
!
! Last configuration change at 13:16:50 CDT Mon Feb 11 2008
! NVRAM config last updated at 13:24:35 CDT Mon Feb 11 2008
!
version 12.4
service timestamps debug datetime msec localtime
service timestamps log datetime msec localtime
service password-encryption
!
hostname CUBE
!
boot-start-marker
boot system flash:c2800nm-ipvoice_ivs-mz.124-18.2.2.PIA1p.bin
boot-end-marker
!
logging message-counter syslog
logging buffered 2000000
no logging console
no logging monitor
enable lab 0 
!
no aaa new-model
memory-size iomem 10
clock timezone CDT -6
clock summer-time CDT recurring
no network-clock-participate slot 1
!
voice-card 0
 no dspfarm
!
ip cef
!
voice service voip
 media flow-around
 allow-connections sip to sip
 sip
  sip-profiles 100
!
voice class sip-profiles 100
 request INVITE sip-header SIP-Req-URI modify "; SIP/2.0" ";user=phone SIP/2.0"
 request REINVITE sip-header SIP-Req-URI modify "; SIP/2.0" ";user=phone SIP/2.0"
!
interface GigabitEthernet0/0
 ip address x.x.x.x 255.255.255.0
 duplex full
 speed 100
!
ip http server
!
control-plane
!
dial-peer voice 100 voip
 destination-pattern .T
 session protocol sipv2
 session target ipv4:x.x.x.x
 dtmf-relay rtp-nte
 codec g711ulaw
 no vad
!
sip-ua
!
line con 0
line aux 0
line vty 0 4
 exec-timeout 90 0
!
scheduler allocate 20000 1000
end

更多的配置笔记

  • 包括报头名称)的报头长度(不应该在与SIP配置文件的修改以后超出300个字符。Add值的最大报头长度是大约220个字符。最大数量SDP报头长度是2048个字符。如果任何报头长度超出在规则以后的最大值应用,该规则将忽略,并且更改没有应用。如果总计SDP长度在修改以后超出2048个字符,对SDP的所有更改忽略和没有应用。

  • SIP配置文件功能不可能用于丢弃一个整个SIP消息;它可能只用于操作(请添加,修改或者删除)在消息的内容

  • 常规表示变量可以用于解压缩和存储从一个现有报头的参数,但是在一个规则的变量存储的值在同一个规则的替换模式可以仅使用;它不可能由任何其他规则使用,含义您不能插入一个规则解压缩的值到另一个规则。

    内容指定在开放括号(()和关闭的括号之间())在匹配模式在1表示的变量存储, 2, 3,… 9按顺序找到他们。存储的值这些变量在替换模式可能再然后插入通过参考与\1的变量, \2,…各自\9。

    例如,如果我们要更改:

    Remote-Party-ID: “CUBE”
      <sip:2001@123.123.123.123>;privacy=off;screen=no to P-Asserted-Identity:
      “CUBE” <sip:2001@123.123.123.123> 

    这可以由以下SIP配置文件规则达到:

    request INVITE sip-header Remote-Party-ID modify 
    "Remote-Party-ID:(.*>).*" "P-Asserted-Identity:\1"

    在本例中,顺序(。*>)匹配“多维数据集” <sip:2001@123.123.123.123>。此值在variable1存储,被参考与\1的替换模式。

支持的SIP消息

此部分提供可以定制与多维数据集SIP配置文件功能SIP消息的CLI选项。

SIP请求

支持这些SIP请求:

router(config-class)#request ?
  ACK	sip ack
  ANY	any sip request
  BYE	sip bye
  CANCEL	sip cancel
  COMET	sip comet
  INFO	sip info
  INVITE	sip invite
  NOTIFY	sip notify
  OPTIONS	sip options
  PRACK	sip prack
  PUBLISH	sip publish
  REFER	sip refer
  REGISTER	sip register
  REINVITE	sip reinvite
  SUBSCRIBE	sip subscribe
  UPDATE	sip info

SIP答复

支持这些SIP答复:

router(config-class)#response ?
  100  Response code 100
  180  Response code 180
  181  Response code 181
  182  Response code 182
  183  Response code 183
  200  Response code 200
  202  Response code 202
  300  Response code 300
  301  Response code 301
  302  Response code 302
  305  Response code 305
  380  Response code 380
  400  Response code 400
  401  Response code 401
  402  Response code 402
  403  Response code 403
  404  Response code 404
  405  Response code 405
  406  Response code 406
  407  Response code 407
  408  Response code 408
  409  Response code 409
  410  Response code 410
  412  Response code 412
  413  Response code 413
  414  Response code 414
  415  Response code 415
  416  Response code 416
  417  Response code 417
  420  Response code 420
  421  Response code 421
  422  Response code 422
  423  Response code 423
  480  Response code 480
  481  Response code 481
  482  Response code 482
  483  Response code 483
  484  Response code 484
  485  Response code 485
  486  Response code 486
  487  Response code 487
  488  Response code 488
  489  Response code 489
  491  Response code 491
  493  Response code 493
  500  Response code 500
  501  Response code 501
  502  Response code 502
  503  Response code 503
  504  Response code 504
  505  Response code 505
  513  Response code 513
  580  Response code 580
  600  Response code 600
  603  Response code 603
  604  Response code 604
  606  Response code 606
  ANY  Any Response

SIP报头

支持这些SIP报头:

rtr(config-class)#request INVITE sip-header ?
  Accept-Contact
  Accept-Encoding
  Accept-Header
  Accept-Language
  Accept-Resource-Priority
  Alert-Info
  Allow-Events
  Allow-Header
  Also
  Authorization
  CC-Diversion
  CC-Redirect
  CSeq
  Call-ID
  Call-Info
  Cisco-Gcid
  Cisco-Guid
  Contact
  Content-Disposition
  Content-Encoding
  Content-Id
  Content-Length
  Content-Type
  Date
  Diversion
  Event
  Expires
  From
  History-Info
  Location
  MIME-Version
  Max-Forwards
  Min-Expires
  Min-SE
  Orig-dial-plan            
  P-Asserted-Identity       
  P-Preferred-Identity      
  Privacy                   
  Proxy-Authenticate        
  Proxy-Authorization       
  Proxy-Require             
  Rack                      
  Reason                    
  Record-Route              
  Refer-To                  
  Referred-By               
  Reject-Contact            
  Remote-Party-ID           
  Replaces                  
  Request-Disposition       
  Requested-By              
  Require                   
  Resource-Priority         
  Retry-After               
  Route
  Rseq
  SIP-ETag
  SIP-If-Match
  SIP-Req-URI
  Server                    
  Session-Expires           
  Session-Header            
  Subscription-State        
  Supported                 
  Term-dial-plan            
  Timestamp                 
  To                        
  Unsupported               
  User-Agent                
  Via                       
  WWW-Authenticate          
  Warning

SDP报头

支持这些SDP报头:

rtr(config-class)#response 200 sdp-header ?
  Attribute				a=
  Audio-Attribute			a=
  Audio-Bandwidth-Info		b=
  Audio-Connection-Info		c=
  Audio-Encryption-Key		k=
  Audio-Media				m=audio
  Audio-Session-Info			i=
  Bandwidth-Key			b=
  Connection-Info			c=
  Email-Address			e=
  Encrypt-Key				k=
  Phone-Number				p=
  Repeat-Times				r=
  Session-Info				i=
  Session-Name				s=
  Session-Owner			o=
  Time-Adjust-Key			z=
  Time-Header				t=
  Url-Descriptor			u=
  Version				v=
  Video-Attribute			a=
  Video-Bandwidth-Info		b=
  Video-Connection-Info		c=
  Video-Encryption-Key		k=
  Video-Media				m=video
  Video-Session-Info			i=

验证

与(和没有)应用的SIP配置文件配置的邀请消息在此部分表示。请使用此方法验证SIP配置文件规则在配置里影响在SIP消息上的正确和希望的变化。

此示例显示配置示例:

voice class sip-profiles 1
  request INVITE sdp-header Audio-Bandwidth-Info add "b=AS:1600“
  request ANY sip-header Cisco-Guid remove
  request INVITE sdp-header Session-Owner modify "CiscoSystems-SIP-GW-UserAgent" "-“

此示例显示示例SIP邀请消息,不用应用的SIP配置文件配置(明显字段用黑体字表示) :

INVITE sip:2222000020@9.13.40.250:5060 SIP/2.0
Via: SIP/2.0/UDP 9.13.40.249:5060;branch=z9hG4bK1A203F
From: "sipp " <sip:1111000010@9.13.40.249>;tag=F11AE0-1D8D
To: <sip:2222000020@9.13.40.250>
Date: Mon, 29 Oct 2007 19:02:04 GMT
Call-ID: 4561B116-858811DC-804DEF2E-4CF2D71B@9.13.40.249
Cisco-Guid: 1163870326-2240287196-2152197934-1290983195
Content-Length: 290

v=0
o=CiscoSystemsSIP-GW-UserAgent 6906 8069 IN IP4 9.13.40.249
s=SIP Call
c=IN IP4 9.13.40.249
t=0 0
m=audio 17070 RTP/AVP 0
c=IN IP4 9.13.40.249
a=rtpmap:0 PCMU/8000
a=ptime:20

此示例显示同样示例SIP邀请与应用的SIP配置文件配置的消息(已更改字段用黑体字表示) :

INVITE sip:2222000020@9.13.40.250:5060 SIP/2.0
Via: SIP/2.0/UDP 9.13.40.249:5060;branch=z9hG4bK1A203F
From: "sipp " <sip:1111000010@9.13.40.249>;tag=F11AE0-1D8D
To: <sip:2222000020@9.13.40.250>
Date: Mon, 29 Oct 2007 19:02:04 GMT
Call-ID: 4561B116-858811DC-804DEF2E-4CF2D71B@9.13.40.249
Content-Length: 279

v=0
o=- 6906 8069 IN IP4 9.13.40.249
s=SIP Call
c=IN IP4 9.13.40.249
t=0 0
m=audio 17070 RTP/AVP 0
c=IN IP4 9.13.40.249
a=rtpmap:0 PCMU/8000
a=ptime:20
b=AS:1600

故障排除

调试ccsip全部是SIP配置文件的一有用的故障排除命令。

在本例中,文本“语音类SIP配置文件”显示哪SIP配置文件应用。这是命令输出的示例:

router#debug ccsip all
…
Oct 12 06:51:53.619: //-1/735085DC8F3D/SIP/Info/sipSPIGetShrlPeer: 
                     Try match incoming dialpeer for Calling number:  
                     : sippOct 12 06:51:53.619:  
                     //-1/735085DC8F3D/SIP/Info/sipSPIGetCallConfig:  
                     Peer tag 2 matched for incoming call 
Oct 12 06:51:53.619: //-1/xxxxxxxxxxxx/SIP/Info/sipSPIGetCallConfig:  
                     voice class SIP Profiles tag is set : 1
Oct 12 06:51:53.619: //-1/735085DC8F3D/SIP/Info/sipSPIGetCallConfig:  
                     Not using Voice Class Codec
Oct 12 06:51:53.619: //-1/735085DC8F3D/SIP/Info/sipSPIGetCallConfig:  
                     xcoder high-density disabled
Oct 12 06:51:53.619: //-1/735085DC8F3D/SIP/Info/sipSPIGetCallConfig:  
                     Flow Mode set to FLOW_THROUGH 
…

在本例中,文本“sip_profiles”突出显示SIP配置文件配置进行的修改。这是命令输出的示例:

router#debug ccsip all
…
Oct 12 06:51:53.647: //-1/xxxxxxxxxxxx/SIP/Info/ 
                     sip_profiles_application_change_sdp_line:  
                     New SDP header is added : b=AS: 1600
Oct 12 06:51:53.647: //-1/xxxxxxxxxxxx/SIP/Info/ 
                     sip_profiles_update_content_length:  
                     Content length header before modification :   
                     Content-Length: 290
Oct 12 06:51:53.647: //-1/xxxxxxxxxxxx/SIP/Info/ 
                     sip_profiles_update_content_length:  
                     Content length header after modification :   
                     Content-Length: 279
…

相关信息


Document ID: 105624