SIP和ISUP协议互通的研究
凌颖, 钮颖彬, 李青
(中国电信集团上海研究与开发中心, 上海 200122)
摘要:本文是基于软交换(SoftSwitch)技术的发展而提出的,从网络融合的角度分析了SIP和ISUP互通单元(IWU,即Interworking Unit )的结构模型,着重介绍了IWU上实现SIP和ISUP互通的原则和机制,为实现PSTN向软交换网络的平滑过渡提供了可行的解决方案。
关键词:软交换;SIP;ISUP;IWU
Research on Interworking between SIP and ISUP Protocol
LING Ying,NIU Ying-bin,LI Qing
(Shanghai Research and Development Center of China Telecom Group,Shanghai 200122,China)
Abstract: Based on the rapid development of technology on softswitch, the interworking unit architecture model about SIP and ISUP protocol are analysed from the point of view of the integrating network. The principle of realization Interworking Unit(IWU) and its mechanism are explained which provides an effective solution for the PSTN network to evolve into softswitch network smoothly.
Keywords: Soft switch; SIP; ISUP; IWU
一、前言
随着技术的进步和用户要求的不断提高,能够提供高质量语音、数据和视频等多媒体业务的软交换网络体系结构正逐步成为电信网络发展的热点。但从目前来看,尤其是对于中国市场,原有电话网的发展还有很大潜力,还有很多用户可以挖掘,因此电路交换技术还将继续得到应用和发展,电信运营商也将极力保护现有电话网络的投资,并希望技术能够平滑过渡,从而将会呈现出不同技术长期并存的局面,所以对新旧两个网络融合互通问题的研究具有现实性、迫切性。
SIP协议是目前VoIP领域中主流控制协议之一,它以其简单、高效、易于扩充等优势展现出强大的生命力;ISUP是NO.7信令系统的用户部分中的一种,它为支持ISDN中话音和非话音用途的基本承载业务和补充业务提供所需的信号功能,是在电话用户部分(TUP)的基础上扩展而成的,属于交换机之间的控制信令。我们对ISUP与SIP协议互通的研究对于软交换技术的实际应用具有重要的价值。
二、IWU在网络中的位置
本节定义了ISUP协议与SIP/SDP协议之间互通单元(IWU,即Interworking Unit)上的结构模型,并详细介绍了IWU的实现机制。图1指出了IWU在网络中的具体位置。
IWU是一个能够完成两种协议之间融合互通的功能模块,它可以独立设置,也可与ISUP交换机合设。为了描述方便起见,我们将IWU从对外的接口上分成I-IWU(Incoming Interworking Unit)和O-IWU(Outgoing Interworking Unit)两个部分。其中I-IWU负责传递从SIP网域到ISUP网域的呼叫,O-IWU负责传递从ISUP网域到SIP网域的呼叫。IWU与SIP网域的接口属于NNI(Network-to-Network Interface)接口。与IWU相连的邻接SIP节点(ASN,即Adjacent SIP Node)是可靠的网络实体,而非用户实体。如果NNI接口支持SIP-I,则远端的SIP用户代理必须能够处理ISUP消息。
三、IWU的结构模型
IWU的体系结构模型如图2所示,主要包括3个模块:呼叫业务功能模块(CSF,即Call Service Function)、承载控制功能模块(BCF,即Bearer Control Function)和媒体映射/交换功能模块(MMSF,即Media Mapping/Switching Function)。
CSF主要功能是向对等实体发送呼叫控制信令、管理呼叫状态、访问业务控制实体以及发起资源请求等;
BCF的功能与SDP承载控制信息的处理和映射有关,主要包括接入控制和媒体资源获取的功能;
MMSF功能提供两种承载之间的可控互连功能,并能随意将载体从一种工艺和适配/编码技术转换成另外一种,比如实现ISUP(Q.761-764)与SDP/SIP之间媒体格式的相互转换。
四、IWU实现协议互通的机制
1. 基本原则
在SIP接口上,IWU作为用户代理(User Agent,简称UA)支持IETF的有关SIP和SDP协议标准中的定义;在ISUP接口上,IWU支持ISUP标准Q.761至Q.764中相关的定义。
IWU必须能够识别呼叫、对话以及相关的呼叫控制,因此它必须在SIP对话和ISUP呼叫/承载控制实例之间建立一对一的关系,这样才能保证同一呼叫的相关信令之间的互通。
2. ISUP消息的封装与映射
(1) SIP消息结构简介
SIP消息有请求和响应2种类型,每个消息包含3个元素:请求行/状态行、头域、消息体。RFC 3261中定义的SIP消息头域包括Via、From、To、Call-ID、CSeq、Contact、Content-Type、Content-Length、Max-Forwards、Proxy-Authenticate等在内共有44个,并且这些头域的数目是可扩展的。SIP消息的Content-Type域指示携带的消息体的媒体类型,Content-Length域用十进制方式表示出消息体的字节数。SIP消息中可携带多种类型的消息体,比如文本格式的SDP消息体,或二进制格式的ISUP消息体等。
(2)ISUP消息的封装
为了维护端到端的业务,在SIP网络中透明地传送ISUP消息被认为是重要的。IWU提供了将ISUP消息以MIME(Multi-Purpose Internet Mail Extensions,即多功能Internet邮件扩展)格式封装在SIP消息体中的功能。比如可以将ISUP消息封装在下面的SIP消息体中,在SIP网络中透明转发:
1) INVITE消息;
2) 183 Session Progress临时响应(如果该响应是SIP的第一个后向消息);
3) 200 OK消息;
4) 任何情况下的INFO消息。
但CANCEL消息体中不能携带任何消息体,也有些ISUP消息是不能封装在SIP消息体中的,因为这些消息涉及的程序只与呼叫的ISUP侧有关,典型的情况就是与ISUP线路维护有关的消息。如果IWU接收到封装在SIP消息体中的这些消息时,则丢弃。另外,分段的ISUP消息本身也是不能封装在SIP消息体中的,而是由I-IWU(ISUP侧接口)将分段的部分重新装配成原始的ISUP消息,然后再行封装。
(3) ISUP消息的映射
对于ISUP与SIP消息的映射主要包括以下2种情况:
1) SIP到ISUP消息映射的情况:如果IWU接收到的SIP消息体中携带了MIME格式封装的ISUP消息,则IWU从其中提取ISUP消息。由于SIP网络中的业务调用可能会引起SIP头域和ISUP参数之间的冲突,所以IWU要维护ISUP参数和SIP头域之间的一致性(关于是用SIP头域覆盖ISUP参数还是ISUP参数覆盖SIP头域的合并原则,将取决于相关的应用/业务情况)。如果SIP消息体中没有封装ISUP消息,则IWU调用相关的ISUP程序,利用SIP头域和SDP消息体合成恰当的ISUP消息的参数。
为了保持网络的完整性和不同网络间可能存在的欺诈行为,SIP状态码和ISUP释放原因值映射坚持下面的原则:映射只使用Q.850建议中描述的原因值,该原因值在ISUP/DSS1应用中同时也都有定义。子域的位置应该包括超出互通节点值的网络,国际交换机采用Q.767编码结构。
2) ISUP到SIP消息映射的情况:IWU接收到ISUP消息后,根据接收到的消息类型,按照本地策略将ISUP消息中的参数进行格式转换生成SIP消息中对应的头域值。比如Request-URI,From,To等,并以MIME格式将ISUP消息封装在恰当SIP消息的消息体中。
3. 消息映射举例
下面我们以O-IWU(ISUP侧的接口)接收到ISUP的IAM消息为例介绍一下生成SIP的INVITE消息的详细过程。
O-IWU从ISUP网络接收到IAM消息后执行对应ISUP程序对IAM(初始地址消息)消息进行处理,将其映射为INVITE消息,并选择到SIP网域中的呼叫路由。之后,O-IWU从本地配置中确定在SIP侧是否使用“成组发送”地址机制。
1) 如果使用“成组发送”地址机制,则O-IWU将按照下面①~④的标准确定地址结束信号,并调用恰当的SIP信令程序。
地址结束信令由以下标准确定:
① 接收到ST信号,或者
② 接收到的号码个数达到国家级拨号方案中的最大数,或者
③ 分析被叫方号码,指出将呼叫路由到被叫方所需的号码个数,或者
④ 在已经获得了路由所需的最少号码个数后,又接收到一个最新的地址消息之后4~6 s。
2) 如果使用“重叠发送”地址机制,则O-IWU将:
① 启动定时器Toiw3(4~6 s)
② 调用恰当的去向SIP信令程序,并且
③ 按规定处理后继的SAM(后继地址消息)消息。
在满足预处理条件的SIP网络中,O-IWU在确认完成预处理之后再发送INVITE消息。如果来向IAM消息的“连接性质表示语”参数中的“导通检验表示语”设置成“在该电路上需要导通检验”或“在前一电路上完成导通检验”, O-IWU将配合前导电路完成导通检验。
O-IWU将从呼叫建立的上下关系中映射出INVITE的两个主要的URI,一个代表会话的发起者,一个代表它的目的地。前者用来生成From域 ,后者用于产生To域和Request-URI域。
O-IWU将IAM消息中的CPN(被叫用户号码)参数读取出来,将其从ISUP格式翻译成目的方的“tel URL”用于生成INVITE消息的Request-URI,或者先用“电话号码映射(Telephone Number Mapping,ENUM)”将其解析成URI。
ISUP格式到“tel URL”的翻译过程如下:当IAM消息的NPI(连接性质表示语)参数指示电话号码采用E.164格式时,具体的翻译过程应视CPN参数的NoA(地址性质表示语)字段的值而定。如果NoA指示该号码是一个“国际号码”,则将转换后的电话号码直接附加在“tel:+”字符串之后;如果NoA的值是“国内号码”,则必须在提交给“tel URL”的电话号码上加国家代码的前缀。如果执行该转换的O-IWU与若干个交换机相连,这些交换机又归属于不同的国家,则应根据发端交换机和中继群来选择合适的国家代码。如果NoA的值是“用户号码”,为了采用国际化的电话号码表示格式,需要添加国家代码和编号计划中其它必需的部分(例如区域代码和城市代码)。只有在NoA使用了“国家或网络-特定的”值的情况下,“tel URL”中才不包含“+”符号,此时O-IWU只是复制电话号码数字。如果使用SIP URI地址格式,则需要添加“user=phone”参数。
ISUP还有一些附加的参数需要在翻译完成后添加到“tel URI”之后。如果IWU支持基于载波的路由,则必须检查IAM消息中是否存在TNS(转接网选择)参数,如果这些值有效,则O-IWU从给出的参数中提取CIC(承载网络识别码)值并加以分析,最后将携带CIC值的“cic=”参数添加到目的URL之后。 如果CIC没有指明IWU所属的网络,为保持与本地策略的一致性,也应添加“cic=”参数。 创建“cic=”参数时,必须以已使用的国家代码或隐含在CPN中的国家代码作为前缀。所以CIC如果是“5062”,在中国就写成“+86-5062”。
如果O-IWU支持基于号码携带的路由,则需要察看其它的一些域。为了正确地映射FCI(前向呼叫表示语),如果“号码翻译”位指示在PSTN中已经执行过本地号码携带汲取的操作,则在“tel URL”之后附加一个“npdi=yes”参数。如果IAM中存在GDP(通用数字参数)参数,则应该将CPN的内容(位置路由号码-LRN)从ISUP格式翻译过来并拷贝到“rn=”域中,并且也要将该域附加在“tel URL”之后。GDP参数本身也要从ISUP格式翻译过来用以生成“tel URL”的主电话号码。
在有些国家级编号方案中,LRN和被拨出的号码都存储在CPN参数中,这种情况下,应该将它们分离出来,分别存储到“tel URL”的不同域中。注意:LRN必须是国家级的,所以“rn=”域之前不能有前导符号“+”。
大多数情况下,最终产生的目的方的“tel URL”可以同时被O-IWU用于To和Request-URI域。但是如果IAM中出现OCN(原被叫号码)参数,则应该将OCN参数从ISUP格式翻译过来用来产生To域,因此Request-URI和To域是有区别的。
From头域的构造有赖于CIN(主叫用户号码)参数。如果CIN参数无效,则O-IWU产生一个只包含主机名的虚拟的SIP URI(比如:“sip:gw.sipcarrier.com”)来构造From头域。在转换CIN参数时,必须考虑两个附加的信息字段:限制地址提供表示语(PrI)和鉴别表示语(ScI)。如果PrI置为“限制提供”,则O-IWU创建一个特殊的SIP URI(省去主叫用户的身份)传送给远端,其中“display-name”和“username”为“Anonymous”,例如:From: Anonymous <sip:anonymous@anonymous.invalid>。如果允许传送主叫用户的名字(例如ANSI中的通用名字参数),则通常该信息用于构成“From”字段的“display-name”部分。
IAM消息中的TMR(传输媒介要求)和USI(用户业务信息)参数指示出了用户要求的承载业务特征,这些编码将被O-IWU映射到SDP消息体中对应的媒体描述行中。
最后IAM消息以MIME格式封装在INVITE消息的消息体中,这时INVITE消息携带了2个消息体。
我们用图3简单说明一下映射与封装的过程。
五、流程举例
图4列举了一个从ISUP到SIP方向的基本呼叫建立成功时的消息序列图,从中我们可以看出PSTN和SIP网络是如何在IWU的协调下实现无缝互通的。O-IWU发送的INVITE消息中要求SIP网络对本次会话进行资源预留,SIP网络返回183响应表示同意。双方进入资源预留过程。SIP网络完成资源预留,并从收到的UPDATE消息中确认O-IWU也已完成资源预留后,指示SIP用户振铃。O-IWU接收到“180 Ringing”消息后将其映射为ACM消息发送到ISUP网络,指示ISUP用户振铃。在接收到最终的200 OK响应消息后,O-IWU将其映射成ANM消息,并向SIP网络返回ACK消息。至此,呼叫建立过程完毕。
六、结束语
实现传统电信网络向软交换网络的平滑过渡是目前电信技术发展中的一个热点。本文通过详细介绍IWU的结构模型以及它的实现原则与机制,为SIP网络与PSTN网络的互连互通提供了可行的解决方案。当然,现实中还有很多问题需要考虑,要实现两种协议的完全互通还会涉及到多种因素,比如安全性、计费等方面。我们相信,不久的将来,有关这SIP和ISUP互通的研究将会更加成熟和完善,这将极大地加快软交换技术向实用化方向发展的步伐。
参考文献
[1]RFC3261, SIP: Session Initiation Protocol[S]
[2]RFC3312, Integration of Resource Management and Session Initiation Protocol (SIP)[S].
[3]ITU-T Recommendation Q.761, Signalling System No. 7 - ISDN User Part, functional description[S].
[4]ITU-T Recommendation Q.763, Signalling System No. 7 - ISDN User Part formats and codes[S].
[5]ITU-T Recommendation Q.764, Signalling System No. 7 - ISDN User Part Signalling procedures[s].