求java 解析7号信令数据数据

求java 解析7号信令数据数据,第1张

1、七号信令的基本术语

1.1 信令网

N0.7信令网是独立于电信网的支撑网,是电信网中用于传输No.7信令消息的专用数据网。信令网的三要素:信令点、信令转接点、信令链路。 

1.2 信令点和信令转接点

信令点:信令网上产生和接收信令消息的节点,是信令消息的起源点和目的点。

信令转接点:若某信令点既非信令源点又非目的点,其作用仅是将从一条信令链路上接收的消息转发至另一条信令链路去,则称该信令点为信令转接点。

1.3 信令链路和信令链路集

信令链路(LINK):连接各个信令点、信令转接点,传送信令消息的物理链路称为信令链路。

信令链路集(LINK SET):具有相同属性的信令链路组成的一组链路集。即指本地信令点与一个相邻的信令点之间的链路的集合。

1.4 链路集号和信令链路编码

链路集号:对链路集的编号。对于同一信令点,链路集号是唯一的。

信令链路编码(SLC):对于相邻两信令点之间的所有链路,需对其统一编号,称为SLC,它们之间的编号应各不相同,而且两局应一一对应;对于到不同局向的信令链路可以有相同的链路编码。 

1.5 信令点编码

信令网中用于标识每一个节点的唯一编码。为便于信令网管理,国际和国内信令网采用各自独立的编号计划。国际信令网编码采用14位信令点编码,我国信令网采用24位信令点编码。

1.5.1 国际信令网编码

国际信令网编码采用14位信令点编码。 

大区识别:用于识别世界编号大区。我国的大区识别为4

区域网识别:用于识别每个世界编号大区内的区域网。我国的区域网识别为120。

信令点标识:用于识别区域网中的信令点。

1.5.2 国内信令网编码

国内信令网编码采用24位信令点编码。

我国信令网信令区的划分与我国信令网的三级结构相对应,分为主信令区、分信令区、信令点三级,这样HSTP设在主信令区,LSTP设在分信令区。

我国的信令网划分为33个主信令区,每个主信令区又划分为若干个分信令区。 主信令区按中央直辖市、省和自治区设置。一个主信令区内一般只设置一对HSTP。

分信令区的划分原则上以一个地区或一个地级市来进行。一个分信令区通常设置一对LSTP,一般设在地区或地级市电信局所在城市。 

1.5.3 ANSI信令点编码

以上提到的两种编码都属于ITU-T的点码,ANSI和以上提到的两种格式都不兼容。ANSI及ITU-T的信令网之间的信令交换必须通过一个转换器,可以是网关STP、协议转换器或具有两种格式点码的信令点。由于ANSI及ITU-T上层协议的实现方法不一样,所以这两种信令网之间的互连很复杂。

ANSI的点码由网络号、集团号及组员编码组成(如245-16-0)。每个号都是一个字节, 8 比特,其值从0到255。网络号0不使用,255保留做见将来使用。

1.6 源信令点与目的信令点

源信令点(OPC):生成信令消息的信令点。

目的信令点(DPC):信令消息发往的信令点。 

1.7 直连和准直连

信令传送方式即信令消息经由怎样的路线由起源点发送至目的地。在七号信令系统中常用两种传送方式:

直联方式:两个信令点之间通过直达信令链路传递消息。此时,话路和信令链路是平行的。(STP之间采用)

准直联方式:两个信令点之间通过预先设定的多个串接的信令链路传递消息。(SP之间采用) 

No.7信令网以准直联为主,直联为辅。

1.8 信令单元

信令点之间传递信令消息的最小单位,以数字编码的形式构成。信令单元的长度是可变的。 由多个8bit组成,插在PCM系统的某一个时隙中传输。

2、七号信令的功能级

2.1 七号信令系统的基本结构

七号信令系统的基本功能结构由两部分组成:公共的消息传递部分MTP,用来提供一个可靠的消息传递系统;适合不同用户的独立用户部分UP,负责信令消息的生成、语法检查和信令过程控制。如下图所示: 

2.2 七号信令系统的分层结构

七号信令系统与OSI七层的对应关系,如下图所示: 

NAP:智能网应用部分 OMAP:操作维护应用部分 

CAP:CAMEL应用部分 MAP:移动应用部分 

TCAP:事务处理能力应用部分BSSAP:基站子系统应用部分 

ISUP:ISDN用户部分TUP:电话用户部分 

SCCP:信令连接控制部分MTP:消息传递 

ISP:中间服务部分 

(1)MTP功能级

MTP的主要任务是保证信令消息的可靠传送,它可分为三级:信令数据链路(MTP-1)、信令链路功能(MTP-2)、信令网功能(MTP-3)。 

(2)TUP、ISUP功能级

TUP:支持电话业务,控制电话网的接续和运行,如呼叫的建立、监视、释放等。

ISUP:在ISDN环境中提供话音和非话业务所需的功能,以支持ISDN基本业务及补充业务。ISUP具有TUP的所有功能,因此可以代替TUP。 

(3)SCCP功能级

SCCP的设计宗旨是和MTP-3结合,提供增加的网络功能,主要是提供增强的寻址功能,如增加了按GT方式寻址功能。

SCCP也为MTP提供了附加功能,提供数据的无连接和面向连接业务。无连接业务是指不需预先建立连接就可传递消息,如智能网中帐号查询、移动网中用户鉴权等许多适时性很强的消息就是利用无连接业务传送的;面向连接业务是指预先建立连接,再大量传送消息,如移动网的A接口消息主要采用面向连接来传送。 

目前TCAP协议只建立在无连接业务上。 

(4)TCAP功能级

TCAP是No.7信令系统为各种通信网络业务提供的接口,如移动业务、智能业务等。TCAP为这些网络业务的应用提供信息请求、响应等对话能力。

TCAP是一种公共的规范,与具体应用无关。具体应用部分通过TCAP提供的接口实现消息传递。如移动通信应用部分MAP通过TCAP完成漫游用户的定位等业务。

TCAP在于提供了一个标准的消息封装机制。MAP、CAP等不同的应用对应于TCAP消息中不同的成份。 

 

(5)MAP功能级

MAP是公用陆地移动网(PLMN)在网内以及与其他网间进行互连而设计的移动网特有的信令协议规范。

MAP使GSM网络实体可以实现移动用户的位置更新、鉴权、加密、切换等功能,使移动用户可以正确地接入网络、发起和接收呼叫。 

(6)INAP、CAP功能级

INAP:智能网应用部分,应用于有线智能网,规定了有线智能网SCF与SSF互连的接口规程。

CAP:CAP是CAMEL 的应用部分,它基于智能网的INAP协议,应用于移动智能网,CAP规定了gsmSSF、gsmSRF与gsmSCF互连的接口规程。

3、七号信令MTP部分详解

3.1 MTP功能级结构

信令数据链路级:这是No.7信令传送的物理层,它定义了No.7信令的电气和功能特征等,要求一条独立的数据传输通道,是No.7消息的传送载体。在目前交换机上,一般由PCM系统的某一时隙提供,如实际常采用PCM的 TS0时隙。

信令链路控制级:定义信令消息在数据链路上的传送方式和过程,如帧格式、差错检测、纠错重发、链路定位过程等,提供信令两端的信令可靠传送。

信令网功能级:完成No.7信令的网络层功能,如目的地寻址,同时保证信令能正确传送到目的点,当信令网中某些点或传输链路发生故障时它能保证信令消息在信令网中仍能可靠地传递。 

3.2 No.7信令单元介绍

3.2.1 信令单元的分类

7号信令中,信令单元分成三类,MSU、LSSU以及FISU。

MSU:消息信令单元,用于传送各用户部分的消息、信令网管理消息及信令网测试和维护消息。

LSSU:链路状态单元,指示链路状态。

FISU:填充信令单元,用于链路空或链路拥塞时填补位置。当信令链路上没有消息(MSU或LSSU)可传时在链路上就双向的不间断的传送填充信令单元(FISU)。 FISU 中只承载level 2的消息(如对端信令单元接受证实信号)。信令链路两端的信令点不停的校验每个FISU的CRC校验码以检测信令链路的通信质量(注意:在日本有所不同,信令点是通过检测标志位(Flag)来检测信令链路的通信质量的而非FISU的CRC)。FISU发送的间隔是预先确定的,如每150 毫秒。

3.2.2 信令单元格式

(1)共有部分字段含义:

CK:检验码,16bit。

F:标志码,码型为01111110。当传送信令单元时,MTP Level 2 会在出现连续5个1的序列后加个0,以除去假标志位。当接受到信令单元并除去标志位,MTP Level 2 会在出现连续5个1的序列后去除一个0,恢复原始的数据。通过这样的方法,除去了信令单元中的重复标志位。

BSN:后向序号,7bit。用于信令单元的接受证实,向对端信令点确认相应信令单元已正确接受。 BSN中就是其证实接受的信令单元的序列号。BSN 号指示了对端正确接受的最后一个消息的序列号,它证实了序列号BSN之前的所有消息已正确接受。如果信令点在收到消息其BSN=5之后又收到消息BSN=10(而且BIB未置位),则后个消息表示了FSN从6到9的消息也都正确接受了。(参见下面对FIB的描述)。

BIB:后向指示语比特,1bit。当被置位时即向对端指示了一个负(错误)的证实信号。(参见下面对FIB的描述)

FSN:前向序号,7bit。是信令单元的序列号。(参见下面对FIB的描述)

FIB:前向指示语比特,1bit。 FIB和BIB一样用于出错时恢复之用。当一个信令单元准备传送时,信令点将其FSN(forward sequence number) 加1 (FSN = 0..127),同时CRC (cyclic redundancy check)也重新计算并加在前向消息之后。当接受到消息后,接受端首先校验CRC码,然后将其FSN号复制入准备向源端发送的下个后向消息的BSN字段。如果CRC校验正确,后向消息即被发送;如果校验出错,在发后向消息之前,信令点会将BIB置位以表示一个负(错误)指示。源点接受到这个负指示标志后,它会将从出错的消息序列号开始的所有消息重新传送,并且这些消息的FIB为1。

LI:长度指示语,指示LI和CK之间的八位位组的数目,6bit。如果在LI之后、CRC之前的字节数少于63,LI就是这个字节数;反之LI的值就是63。LI为63代表的意义是消息的长度等于或大于63(最多273 字节)。信令单元长度最大为279字节: 273 字节 (数据) + 1 字节 (flag) + 1 字节(BSN + BIB) + 1字节 (FSN + FIB) + 1字节 (LI + 2 bits spare) + 2 字节 (CRC)。 

(2)MSU独有部分字段含义:

SIO:业务信息段,8bit。其中高四比特为子业务字段,低四比特为业务表示语。 

业务表示语SI

D C B A 含 义

0 0 0 0 信令网管理消息 SNM

0 0 0 1 信令网测试和维护消SNT

0 0 1 0 备用

0 0 1 1 信令连接控制部分 SCCP

0 1 0 0 电话用户部分 TUP

0 1 0 1 ISDN用户部分 ISUP

0 1 1 0 与呼叫和电路有关的数据用户部分DUP

0 1 1 1 数据用户部分性能登记与撤消DUP

1 0 0 0

…… 备用

1 1 1 1

子业务字段SSF

D C B A 含义

0 0 0 0 国际网

0 1 0 0 国际备用网

1 0 0 0 国内网

1 1 0 0 国内备用网

SIF:信令信息字段。共分为四种类型,如下图所示: 

DPC:目的信令点编码

OPC:源信令点编码

SLC:信令链路编码,4bit

CIC:电路识别码,12bit

SLS:信令链路选择码,4bit。

出局链路的选择是根据DPC和SLS,SLS 有以下功能:

(1)保证信令消息的先后顺序。以同样的SLS发送的两个消息总是先发先到,后发后到,先后顺序不变。

(2)在所有可用的链路上平均分担流量。从理论上将,如果应用层以正常的时间间隔发送消息,并且循环的使用SLS值,这些流量在链路组中的所有链路上是平均分配的。 

在ANSI信令网上,SLS字段最初为5比特(32种可能值)。当一成对的链路组且各有两条链路时(总共有四条链路),就需要8个SLS的值以使流量在这些链路上平均分配。 

但随着网络的发展,链路超过了4条时,就会出现一些问题。在使用5 比特SLS情况下,对于一成对的链路组且各有五条链路(总共有十条链路),3个SLS值对应了8条链路,还有4个SLS值对应了余下的2条链路,导致了分配的不平均。为了避免这样的情况发生,ANSI及BELL实验室都采用了8比特的SLS(256个值)以使链路上的分担更为平均。

在ITU-T 实际实现方法中,把SLS作为MTP消息中的信令链路码(signaling link code)。在ITU-T电话用户部分消息中,一部分的电路识别码(CIC)就存储在了SLS字段中,换句话说,也就是SLS使用了部分的电路识别码。 

(3)LSSU独有部分字段含义:

SF:状态标志字段。是LSSU的主要组成部分,标志本端链路的状态,8或16bit。SF只用到了低三位,其它为备用位。

0 0 0 “O” 失去定位

0 0 1 “N” 正常定位

0 1 0 “E” 紧急定位

0 1 1 “OS”业务中断

1 1 0 “PO”处理机故障

1 0 1 “B” 链路拥塞

3.3 MTP-2的初始定位

初始定位是链路投入使用前必须经过的阶段,用于初始启用或链路发生故障后进行恢复时链路的定位过程,由LSSU中的SF来完成。整个过程分成五个阶段,未定位->已定位->验收周期->验收完成->投入业务使用。 

定位过程完成后,MTP三层发SLTM,收到SLTA后,链路才正式开通业务。

3.4 MTP-3的协议及功能

网络层规定了传送消息所使用的消息识别、分配、路由选择及在正常或异常情况下信令网管理调度的功能和程序,分为信令消息处理功能和信令网管理功能。 

主要的MTP-3层消息有:链路测试消息SLTM/SLTA,传递禁止及传递允许TFP/TFA,倒换与倒回消息 COO/COA,CBD/CBA,ECO/ECA,管理禁止及解除禁止 LIN/LIA、LUN/LUA。

(1)链路业务开通过程: 

(2)链路测试消息

1、在链路正常时,每隔一分钟信令链路会发SLTM消息,收到SLTM消息的信令点会回送SLTA消息,SLTA消息中的测试码的值与个数应等于SLTM消息。

2、如果6秒钟内仍收不到对方的SLTA消息,则不能进入开通业务状态。

3、SLTM和SLTA消息中的CIC代表相应的信令链路的编码(SLC),必须相等。 

4、七号信令呼叫流程

4.1 TUP呼叫信令流程

共有四种情况,如图(4.1-a)、(4.1-b)所示。 

(图4.1-a) 

(图4.1-b)

TUP基本术语注释:

IAM(Initial Address Message):初始地址消息(不带主叫)

IAI(Initial Address Message with Additional Information):初始地址消息(一般带主叫)

SAM(Subsequent Address Message):后续地址消息(两位以上)

SAO(Subsequent Address Message with One Signal):后续地址消息(只有一位)

GRQ(General Request Message):一般请求消息

GSM(General forward Set-up Information Message):一般前向建立消息

ACM(Address Complete Message):地址全消息

ANN(Answer Signal, No Charge):应答消息,免费

ANC(Answer Signal, Charge):应答消息,计费

CBK(Clear-Back Signal):后向挂机消息

CLF(Clear-Forwad Signal):前向拆线消息

CCL(Calling Party Clear Signal):主叫挂机信号

RLG(Release Guard Signal):释放监护消息

SLB(Subscriber Local Busy Signal):用户市话忙

STB(Subscriber Toll Busy Signal):用户长话忙

LOS(Line Out-of-Service Signal):线路不工作消息

UNN(Unallocated Number Signal):空号消息

SST(Send Special Information Tone Signal):发送专用消息音消息

4.2 ISUP呼叫信令流程

共有四种情况,如图(4.2-a)、(4.2-b)所示 

(图4.2-a) 

(图4.2-b)

ISUP基本术语注释:

IAM(Initial Address Message):初始地址消息

SAM(Subsequent Address Message):后续地址消息

INR:信息请求

INF:信息

ACM(Address Complete Message):地址全消息

CPG:呼叫进展

ANM(Answer Message):应答消息

SUS:暂停

REL(Release):释放

RLC(Release Complete):释放完成

CCL(Calling Party Clear Signal):主叫挂机信号

在WebRTC简介中提到信令服务器用于向中端传输数据,信令服务器是实现两个webRTC中端通信的重要角色。今天就来实现一下信令服务器。

作为前端开发对于后端的东西不是很熟悉,只能使用现成的一些服务器软件和nodejs来搭建信令服务器。

业务逻辑

当两个用户要进行通信时,他们首先要创建一个房间,成功加入房间之后,双方才能交换必要的信息。

当通信的双方结束通话后,用户需要发送离开房间的消息给信令服务器,此时信令服务器需要将房间内的所有人清除;如果房间里已经没有人了,还需要将空房间销毁掉。

这样的逻辑socket.io已经帮我们实现了,我们只需要使用就行,不需要自己重新开发。

因此,我们使用nodejs+express+socket.io实现信令服务器。

创建服务器

const http = require('http')//引入http库

const express = require('express')//引入express库

//创建HTTP服务,并侦听8980端口

const app = express()

const http_server = http.createServer(app)

http_server.listen(8080, '0.0.0.0')

1

2

3

4

5

6

7

1

2

3

4

5

6

7

首先,通过express创建一个Web应用;之后调用HTTP库的createServer()方法创建HTTP对象,即http_server;最后调用http_server对象的listen()方法侦听8080端口。通过上面的步骤就实现了一个HTTP服务。

注册socket.io的回调函数

io.sockets.on('connection', (socket) =>{

//收到message时,进行转发

socket.on('message', (message) =>{

//给另一端转发消息

socket.to(room).emit('message', message)

})

//收到 join 消息

socket.on('join', (room) =>{

var o = io.sockets.adapter.rooms[room]

//得到房


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/537227.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-25
下一篇2023-06-25

发表评论

登录后才能评论

评论列表(0条)

    保存