第五课 一个基于IP插口的ISUP服务器例子
1. 概述
ISUP服务器是什么?一个ISUP服务器可以是信令网关的一部分,用于提供基本呼叫控制所需的一系列API,以取代NMS公司Natural Access平台提供的呼叫控制API。
更具体地说,ISUP服务器就是:在至少插有一块TX卡的系统(或叫机器)上运行的软件。这个时候,其它机器上插上别的语音卡(如AG4000)就可以作为ISUP服务器的客户端,这样的客户端就是利用插口API函数通过网络和ISUP服务器进行通信的。
ISUP服务器对呼叫控制作出响应,而客户端则是对语音处理作出响应。
ISUP服务器提供的一些功能:
ISUP服务器是建立在NMS公司提供的SS7 ISUP层之上的;
是一个支持多线程编程的服务器;
提供的API是基于TCP插口的;
是操作系统无关的(同时支持Solaris和NT)。
可以用到ISUP服务器的地方有:
IP电话网关;
交互式语音应答(IVR)服务器;
任何需要用SS7接入的语音系统。
系统框图如下:
系统中ISUP服务器通过SS7链路和PSTN连接,通过IP网络和语音处理机连接,这两个连接传送的是信令信号。语音处理机通过话路和PSTN连接,这个连接传输的是语音。
2. 技术基础
SS7 ISUP层协议
ISUP建立在MTP1、2、3层之上,直接和MTP3层进行通信,大部份的消息都是直接在MTP3和ISUP层间传递。只有支持ISDN终端之间的直接通信,ISUP才经过SCCP层再连接到MTP3。
ISUP的功能主要是提供在交换机之间的电路连接控制(非三方通话控制)。它和ISDN用户接入到交换机的ISDN协议(Q.931)是密切相关的。下图是ISUP在SS7协议栈中的位置图:
ISUP提供的基本业务:
连接建立;
连接管理;
连接释放;
ISUP提供的补充业务:
用户到用户的信息传递;
主叫识别;
其它。
ISUP消息格式
其中:箭头方向表示首先发送的比特。
F-8 bits, 固定为01111110。
BSN-7 bits, 后向序号。
BIB-1 bits, 后向表示语。
FSN-7 bits, 前向序号。
FIB-7 bits, 前向表示语。
LI-6 bits, 长度表示语。
\-2 bits, 空。
SIO-8 bits, 业务信息八位位组。ISUP为10000101。
SS7中各层消息的格式区别在信号信息字段(SIF),所有ISUP消息中的(SIF)都包含:
标准的MTP3路由识别码(OPC、DPC、SLS);
消息指向的话音电路识别码(CIC);
消息的类型,唯一性地指定该消息的功能和消息其它部分的格式;
一系列的固定参数和可选参数,参数有时又叫信息元素,它们可以是固定长度的,也可以是可变长度的。
ISUP编程模型
在一个多线程的应用程序中,必须要有一个单独的接收线程,用来接收所有从ISUP层发来的异步事件,然后根据事件中包含的电路号、suInstId、或其它事务信息,把它们发送到对应的处理线程去。
下面是ISUP编程模型示意图:
TCP协议
TCP/IP协议栈:
插口处理基本流程:
TCP和UDP的比较:
TCP |
UDP |
数据流协议 |
数据报协议 |
保证数据的可靠传送 |
不保证数据的可靠传送 |
面向连接 |
无连接 |
保证数据按顺序发送 |
不保证数据按顺序发送 |
接口编程较易 |
编程相对较难 |
服务器端必须先起动,应用很广 |
应用相对较少,如:DNS,NFS,SNMP等 |