我爱编程

语音和数据呼叫流程

2017-10-24  本文已影响0人  ownsky

1业务模块接口图

2语音呼叫流程

2.1语音呼叫流程

动作

动作描述

A

MS在接入信道上发送起呼消息,CEC模块收到接入信道消息后转发给CSCHP模块处理。

B

CSCHP的Main进程经过解码(只对LAC层字段解码)获得该接入MS的地址信息:(ESN,IMSI),根据该地址信息在HASH表中进行查找,如果发现是一个新的MS,则创建相应的移动台处理进程MSHandler,再把解码后的起呼消息:EV_S_Origination发送给移动台处理进程:MSHandler。

MSHandler进程在寻呼信道上对MS的起呼消息进行证实:BSAckORDM封装在EV_S_AmcfPagingCHMsg消息中,经由S_CEC模块转发;

MS收到基站证实指令后,设置定时器T42m等待基站的指配消息。

结合UmcrOrigination信令跟踪的消息结构来介绍。

LAC层数据包包含下述内容:

Authentication Sublayer

ARQ Sublayer

Addressing Sublayer

Utility Sublayer

Message Type Fields

Extended-Encryption Fields

Radio Environment Report Fields

Segmentation and Reassembly Sublayer

PD字段:表示MS当前使用的协议版本号。

00:版本号小于6;

01:版本号等6;

10:版本号大于或等于7;

C

MSHandler进程对起呼消息进行LAC字段处理后,把解析后的LAC字段和接入信道消息中的层三部分以及部分未处理的LAC字段(Authentication Sublayer、Utility Sublayer),封装在EV_S_AbiscrAccessCHMsgTransfer消息中,向BSC发送,然后关闭本动态进程。

这条消息由接口板DSM、ABMP透明传送到MDM单板上的CMP选择进程。MDM的地址预先配置,系统上电后不再改动,CSCHP从数据库中得到MDM板的地址,利用这地址向MDM发送消息。(固定地址配置)

CPMSelectHandler进程收到接入信道消息后,从消息中取出IMSI和消息类型,再根据IMSI选择一块CMP,判消息类型,如为起呼消息,把消息转发给选择的CMP上的CallMain进程处理。

CallMain进程收到接入信道消息后,调用空中接口消息解码函数解码,再根据解码后的LAC字段判断接入基站是不是源基站,如不是源基站,执行接入试探切换的流程;如是源基站且消息为起呼消息,分配呼叫参考号和SCCP连接号,创建呼叫进程,把呼叫参考号、SCCP连接号、本板的ModuleId和创建呼叫进程的PNO保存在全局变量中,建立根据SCCP连接号索引呼叫参考号的哈希链表,建立根据IMSI索引呼叫参考号的哈希链表,把起呼消息转发给呼叫进程处理。

1:介绍怎么判断本基站是不是源基站。

2:简单介绍CMP的选择算法。

D

BSSAP呼叫进程收到起呼消息后,保存起呼消息中带的信息,根据业务选项判定是否是语音呼叫?如是语音呼叫,调用数据库接口判断是否支持优选CIC?如不支持优选CIC转到G步;如支持优选CIC,调用DBAccess分配优选的CIC、DSPM、SE和VE。

由数据库判断是否需要远程访问?如数据库需要使用异步消息访问时,在函数的出参告诉BSSAP。当不需要远程访问时,不执行E步;当需要远程访问时,CallHandler进程设置定时器Tdbaccess等待数据库返回证实。

E

RMP分配优选的资源后,向BSSAP发送GetPreferCICAck消息;BSSAP收到后复位定时器Tdbaccess。

EV_D_S_GetHandoffProc_V消息和EV_D_S_GetHandoffProc_V_ACK消息

如MS版本号大于或等于4执行接入试探切换判决,当MS版本号大于或等于4时才支持接入切换和接入试探切换,这里不通过过PN数判断而是通过MS版本号判断,是为了避免MS第一次接入只带一个PN,不按接入切换的流程处理,由BTS来分配资源,当第二次接入时带多个PN时,流程很难处理。

F

CallHandler进程构造A1r_CMServiceRequest消息,调用A1接口编码函数编码,把此消息放在完全层3消息中发给MSC,设置定时器T3230,等待SCCP连接建立确认,设置定时器T303,等待MSC指配请求消息。

结合信令跟踪介绍CMServiceRequest消息中的主要字段。

G

在与F步同一次调度中,CallHandler进程向RCM发送Abisdf_BTSSetup消息,请求RCM分配无线资源,建立无线链路,设置定时器Tsetupb,等待RCM的证实消息。

消息中指定了要建立的信道类型、帧类型和BSC分配的选择器的帧偏置(优选CIC的情况)。

1:完全由BTS分配资源;2:由于BSC指定资源分配。

H

RCM的Main进程收到EV_S_AbisdfBTSSetup消息,从消息中解出呼叫参考号字段dwCallRefId,根据dwCallRefId查询对应的wBTSCallRefId。

如果没有查询到wBTSCallRefId,则分配一个wBTSCalRefId,根据wBTSCallRefId分配一个呼叫处理进程。然后把EV_S_AbisdfBTSSetup消息封装在EV_S_TCHfBTSSetup消息中发送给呼叫处理进程。

如果查询到一个wBTSCallRefId,则根据dwCallRefId查询到对应的呼叫处理进程RCM_CallHandler的PID。把EV_S_AbisdfBTSSetup消息封装在EV_S_TCHfBTSSetup消息中发送给呼叫处理进程。如果没有查询到对应的呼叫处理进程PID,则报错,基本信道建立失败,向BSC返回EV_S_AbisdrBTSSetupAck;删除dwCallRefIdàwBTSCallRefId的对应关系。

如果查询到多个wBTSCallRefId,则报错,基本信道建立失败,向BSC返回EV_S_AbisdrBTSSetupAck。同时释放dwCallRefIdàwBTSCallRefId对应关系,释放wBTSCallRefId对应的呼叫处理进程。

RCM_Main获取消息源VPID,并发送给呼叫处理进程。该次基本信道建立流程中的AbisdrConnect和AbisdrBTSSetupAck消息,就以这个VPID作为消息的目标地址。收到AbisdfPhysicalTransitionDirective消息会更新VPID,因为从这之后RCM就跟DSPM交互了。

RCM的CallHandler收到EV_S_TCHfBTSSetup消息后,调用数据库接口完成基本信道资源的分配,包括FCHCE、FrameOffset、RC、Walsh、BTSIP和BTSPort。

资源分配成功,RCM_CallHandler构造AbisdrConnect消息把资源信息发送给BSSAP,请求建立Abis业务连接。启动定时器Tconnb,等待BSC的Abis连接建立证实。

结合信令跟踪介绍AbiscrConnect消息中的主要字段。

如果分配资源失败,则直接给BSC侧发送EV_S_AbisdrBTSSetupAck消息,原因为数据库返回的失败原因。

注:在HIRS基站接入IPBSC时,消息带有CE的网络地址。

I

CallHandler进程保存Abisdr_Connect消息中的信息,根据BTS的外部IP地址确定BSC侧接口板(ABPM)的外部IP地址,分配ABPM的外部端口号,向RCM发送Abisdf_ConnectAck消息,消息中带有BSC侧的业务地址(ABPM板的外部IP地址和端口号)。RCM收到Absidf_ConnectAck消息后,复位定时器Tconnb。

CallHandler进程根据Abiscr_Connect消息的信息知道这次呼叫建立的小区中哪些小区属于同一条腿,分配腿号,在连接证实消息中带给RCM。

1:同一次呼叫,业务和信令可能走不同的ABPM板。

2:介绍BSSAP根据哪些字段来判断是否需要分配腿号。Connect消息有两字段表示新建立的A3连接和新加的小区。

3:Absidf_ConnectAck带有BSC侧的业务地址,如是新加腿,带有BSC侧分析的腿号。

注:在HIRS系统中,Abisdf_ConnectAck消息中不带BSC侧的业务地址(业务地址为无效值),由DSPM发送Abisdf_PhysicalTransitionDirective消息把BSC侧的业务地址(SDU的网络地址)带给BTS。

RCM的Main进程根据BSCCallRefId->wBTSCallRefId的对应关系查询到对应的RCM_CallHandler进程PID,然后向RCM_CallHandler转发EV_S_TCHfConnectAck消息。

RCM_CallHandler进程收到TCHfConnectAck消息后,停止定时器Tconnb。

J

RCM_CallHandler然后构造Amf_FCHSetup消息,发送给CEC_Main进程,请求配置基本信道单元,启动定时器Tconfigtch,等待CEC证实消息。

在IP平台,消息中带DSM的内部IP地址和BTS的端口号,根据tBSCTrafficAddr.tNetAddr.dwIP从数据库获取DSM内部媒体流地址,在HIRS平台直接把AbisdfConnectAck消息中的BSC侧业务地址带给CES。

K

在与J步同一次调度中,RCM_CallHandler向接口板DSM发送消息指示接口板增加地址通道表项,设置定时器Taddchannelitem等待接口板的证实消息。

1:介绍DSM板上通道表结构,AcfBTSAddChannelItem消息。

2:简单介绍媒体流转发方式。

L

在与J步同一次调度中,RCM_CallHandler向BSC发送AbisdrBTSSetupAck证实。消息中指示哪些小区建立成功,哪些小区建立失败。

BSSAP收到AbisdrBTSSetupAck,停止定时器Tsetupb,记录哪些小区收到了成功证实,哪些小区建立失败,哪些小区没有收到证实,对定时器超时没有收到证实的小区要向RCM发送释放消息。

AbisdrBTSSetupAck消息中带有RC和帧偏置,RC是通过物理信道类型来识别。

如收到所有小区的证实,或Tsetupb定时器超时,存在建立成功的小区,就判断是否收到了A接口的指配请求消息,如没有收到,继续等待,如已经收到,转到P步执行。

M

进程P_S_CEC_Main收到Amdf_FCHSetup消息后,通过V_Sender()获得RCM的VPID,创建呼叫处理进程P_S_CEC_CallHandler,并指定源发送转发给进程P_S_CEC_CallHandler

进程P_S_CEC_CallHandler接收到消息EV_S_AmdfFCHSetup后,向CEM发送配置前向业务信道的命令CEM_CMD_FTCH_ENABLE_ID和配置反向基本信道的命令CEM_CMD_RTCH_ENABLE_ID,设置定时器Twaitcemresponse。

CEM配置前反向基本信道后向进程P_S_CEC_CallHandler发送响应,成功发送EV_C_CEM_RSP_COMMAND_ACCEPTED_ID,失败发送EV_C_CEM_RSP_COMMAND_REJECTED_ID;

进程P_S_CEC_CallHandler收到证实消息后复位定时器,向RCM发送应答信号EV_S_AmdrFCHSetupAck,设置反向基本信道捕获定时器Tacquire。

在业务信道信息g_atCEStateInfo中设置业务帧的类型,是标准的A3/A7接口业务帧、还是非标准的业务帧类型,用于前反向业务帧转发模块采用标准业务帧格式、还是非标准的业务帧格式。对于标准业务帧,如果是HIRS平台,设置bCRCCheckForSTD为FALSE,由微码完成CRC的校验;如果是IP平台,设置bCRCCheckForSTD为TRUE,由CES完成CRC的校验。

不与其它厂商的BSC对接标准的A3/A7接口时,都使用非标准帧格式,这样可以使用功率同步算法,在业务帧的帧头中把上一帧的发射频功率传送给SDM。

RCM收到证实消息后复位定时器Tconfigtch。

N

DSM完成通道表项增加操作后,向RCM发送AddChannelItemAck消息,RCM收到消息后复位定时器Taddchannelitem。

O

MSC完成MS的鉴权,如支持优选的CIC,使用BSC分配的CIC,否则分配CIC,向BSC发送指配请求消息,设置定时器T10等待指配完成消息。

如CMServiceRequest消息中带的CIC在MSC侧不可用,MSC会另外分配一条CIC,然后在指配请求中带给BSC。

SCCP收到A1f_AssignmentRequest消息后,调用SCCPDispatch函数把消息转发给CallHandler进程。CallHandler进程收到指配请求消息后,复位定时器T303和T3230。

如收到所有腿的建立证实消息,执行P步,否则继续等待。

介绍A接口CMP板选择算法,SCCPDispatch函数的处理流程。

P

如支持优选CIC,且MSC指配的CIC与BSC优选的CIC相同时,不执行P、Q步,跳到R步;不相同时,CallHandler调用DBAccess(本地函数调用)获得管理优选CIC和指配的CIC的RMP的模块号,如是同一块RMP,调用DBAccess根据CE帧偏置和指配的CIC分配DSPM、SE和VE,在这次函数调用中,数据库释放分配的优选CIC、DSPM、SE、VE。如不是同一块RMP,CallHandler进程调用DBAccess释放优选CIC、DSPM、SE和VE,再调用DBAccess根据CE帧偏置和指配的CIC分配DSPM、SE和VE。

不支持优选CIC时执行P、Q步。

现在的方案设计是支持多RMP的,但目前的系统还不支持多RMP,RMP处理能力还不是系统的瓶颈。

BSSAP的CallHandler进程调用DBAccess函数,根据指配消息中带有MSC分配的CIC和CE的帧偏置,请求分配DSPM、选择器和声码器,设置定时器Tdbaccess等待RMP返回证实。

注:要求根据CE的帧偏置分配选择器。

Q

RMP完成资源分配后,向BSSAP的CallHandler发送证实消息,CallHandler收到后复位定时器Tdbaccess。

R

BSSAP的CallHandler进程构造空中接口的信道指配消息,调用空中接口编码函数编码,封装在Abiscf_PagingChannelMessageTransfer消息中传送给CSCHP,设置定时器Tassignment等待指配完成;

95手机发送信道指配消息,1X手机发送扩展信道指配消息。

P_S_CSCHP_Main进程收到来自S_BSSAP模块的信道指配消息,构造相应的LAC字段,并编码成标准比特流,与层3部分一起,选择所要发送的寻呼信道,经由EV_S_AmcfPagingCHMsg发送到S_CEC模块。

CEC在空中口的寻呼信道上把消息发送给MS。

MS收到信道指配消息后,复位定时器T42m,转到业务信道等待接收基站发送的空帧。

S

在与R步同一次调度中,BSSAP的CallHandler向分配的DSPM发送Avf_ServiceAssignment消息激活相应的DSPM进程。

ServiceAssignment消息中带有BSSAP分配的资源、BTS的业务地址和BSC业务地址等信息。

T

DSPM的CLH子模块收到业务指配消息后,依次调用其它DSPM的业务处理子模块的启动函数,各业务处理类从空闲态跃迁到相应的状态并保存相关信息。

DSPM采用模块化设计思想,设计不同的模块来实现不同的业务,一共设计了7个子模块,

CLH:呼叫处理子模块

CMH:公用处理子模块

SNH:业务协商子模块

HOH:切换处理子模块

SCHH:补充信道处理子模块

MBH:移动性管理子模块

SSH:补充业务处理子模块

CLH向接口板ABPM发送消息指示接口板增加地址通道表项,设置定时器Taddchannelitem等待接口板的证实消息。

1:介绍ABPM板上通道表结构,AcfBSCAddChannelItem消息。

2:简单介绍媒体流转发方式。

U

在与T步同一次调试中,CLH向分配的SDM发送Abaf_ActiveSDM消息,通知SDM开始工作,CLH打开定时器TactivateSDM,等待接收SDM的激活证实消息。如果定时器超时或SDM上报激活失败消息,则CLH发起资源的释放动作。

CLH发送StartL2消息,激活对应的LAC层二信令处理模块。

V

在与T步同一次调度中,CLH向呼叫建立的每条腿对应的RCM发送Abisdf_PhysicalTransitionDirective消息,设置定时器Tphytransdir等待证实。

RCM收到这条消息后,转发给CEC。

在标准消息结构中该消息用来通知CE改变本次呼叫的改变长码、加密信息、反向导频门控速率、功控信息、前向功控增益比信息等。

现在系统中,这消息主要用途:

1:DSPM、RCM、CEC间的握手消息。

2:RCM通过取源PID获得DSPM的信令地址,用于后续RCM与DSPM间的消息交互。

3:如运行在HIRS平台时,该消息用于把SDU的网络地址传给CES。

W

ABPM完成通道表项增加操作后,向DSPM发送AddChannelItemAck消息,DSPM收到后复位定时器Taddchannelitem。

X

CES收到Amf_PhysicalTransitionDirective消息以后,返回证实消息Amr_PhysicalTransitionDirectiveAck消息,RCM收到证实消息以后,向DSPM发送证实消息Abisdr_PhysicalTransitionDirectiveAck消息,DSPM接收到该消息以后复位定时器Tphytansdir。

Y

SDM_SD进程接收到DSPM的激活消息后,根据其中的呼叫类型字段判断出是语音呼叫还是数据呼叫,并存储变量;同时,存储前反向复用选项、RC、业务类型等资源配置,VTC的IP地址,并且根据VTC的逻辑地址计算出VTC的端口号,存储VTC转发进程的VPID。调用OSS函数,OSS开始启动时间控制。

注意在3G中Vocoder与SDM不是在一块硬件单板上,HIRS系统中也视为分离处理。

SDM_SD进程开始每20ms向各条腿的CE发送一个Idle Frame,并且启动帧序号校验算法。

SDM_SD进程判断当前为语音呼叫,便向向VTC发消息初始化声码器进程。

SDM_SD进程设置建链定时器TsetupVoiceCall,等待VTC的响应以及业务信道前缀。如果定时器超时,则说明初始化声码器失败或者前缀捕获失败,SDM_SD进程将向DSPM上报激活失败消息。

Z

MS收到信道指配消息后,就从控制信道转到业务信道等待接收基站发送的空帧,当MS收到前向NULL帧后,反向发送Premable,CEC捕获前缀后,复位等待捕获前缀的定时器,把前缀转发给SDM。

IP系统与HIRS系统流程的差别:HIRS系统是由CES解析Premable帧,然后通过信令通知SDM已经捕获MS,IP系统中是把Premable帧直接传送给SDM,由于SDM解析Premable帧确定是否捕获了MS。

SDM收到Premable后,开始每20ms向CE发送一个non-Idle Frame,同时判断是否收到了VTC的证实消息,如果收到了则复位定时器TsetupVoiceCall,执行BB步,没有收到则继续等待。

AA

VTC完成声码器的初始化操作后,返回Asvr_InitaVocoderAck消息证实。

SDM收到VTC对InitialVocoder的证实消息,同时判断是否捕获到前缀,如果捕获到了则关闭定时器TinitialVocoder,执行BB步,没有捕获到则继续等待。

BB

SDM_SD进程捕获到业务信道前缀并且收到VTC的证实消息后,向DSPM发送激活SDM进程应答消息,将捕获到的MS的信息传给DSPM。

若定时器到时,向DSPM报错,并释放声码器,清空缓冲区。

SDM_SD进程设置Tconfig定时器,等待层三业务协商后的消息(StartVocoderCodingOrder),定时器到时将释放资源。

CC

DSPM向移动台发送基站证实指令Umf_BSAckOrder,通知MS已经捕获了反向FCH的preamble。

DD

MS发送Umr_MSAckOrder指令证实。

EE

基站与MS进行业务协商。

SNH根据当前的呼叫配置,决定是否需要与移动台进行一次业务协商。如果不需要,则SNH向移动台发送业务连接消息Umf_ServiceConnectMsg,告诉移动台此次呼叫所要用到的配置信息。SNH打开定时器Tserviceconnect等待移动台发来的业务连接完成消息。

移动台在反向基本信道上发送Umr_ServiceConnectCompletionMsg消息。SNH关闭定时器Tserviceconnect,调用CLH的CLHStartSNAck(),告知CLH业务协商已经完成。

DSMP详细设计文档5.4.3节和6.4节描述了业务协商的实现。

1:业务协商和业务选项协商

ServiceRequest

ServiceResponse

ServiceConnect

ServiceConnectComplete

Umf_ServiceOptionRequestOrder

Umr_ServiceOptionResponseOrder

2:两阶段协商,空中接口的信道指配消息和进入通话前的业务协商。

3:协商参数和不可协商参数。

FF

完成业务协商后,CLH向BSSAP发送指配完成消息,BSSAP收到指配完成消息后复位定时器Tassignment。

GG

完成业务协商后,CLH向SDM发送开始声码器编码消息,将协商后的资源配置、业务配置情况传给SDM。SDM进程进行存储并改变业务信道配置。

同时CLH向UIM发送HwSwitchConfig消息,配置并开启UIM时隙交换,并打开定时器Tswitchconfig,等待UIM应答。CLH收到配置应答消息后复位定时器Tswitchconfig。

这两条消息在信令跟踪和应用层协议的流程图中都没有画出来。

HH

BSSAP向MSC发送指配完成消息,MSC收到指配完成消息后复位定时器T10。

II

SDM向VTC转发EV_S_AsvrStartVocoderCoding消息,设置定时器TstartVocoderCoding,等待VTC的响应;如果定时器超时,则向DSPM上报操作声码器失败消息。

JJ

SDM_SD进程收到VTC对开始声码器编码消息的证实消息,接着关闭定时器TstartVocoderCoding。

SDM_SD进程接收到VTC发过来的的前向语音帧,开始进行复用处理。

KK~LL

语音呼叫进入通话状态。

2.2语音被呼流程

动作

动作描述

A

MSC通过A1接口向BSSAP模块发送寻呼请求消息A1f_PagingRequest,设置定时器T3113等待寻呼响应。

BSC的SCCP收到寻呼消息后调用SCCPDispatch函数把消息发送给本板的CallMain进程,在这呼叫流程中,寻呼消息发到了CMP2板上的CallMain进程。

BSC发往MSC的消息,都是发到本板的SCCP,由SCCP再选择一条链路发给MSC,从MSC发到BSC的消息,都由SCCP调用SCCPDispatch函数分发。

B

CMP2上的CallMain进程收到寻呼请求消息后,构造空中接口的寻呼消息,调用编码函数编码,把编码后的消息封装在Abiscf_PagingChannelMessageTransfer消息中发送给CSCHP。CSCHP通过寻呼信道发送给MS。

C

在与B步同一次调度中,CallMain进程向MDM板上的CMPSelectHandler进程发送RegisterTag消息,注册IMSI与Tag字段的映射关系。

这一步的目的是收到寻呼响应消息后,能根据IMSI找到TAG字段,然后把TAG字段填到寻呼响应消息中带给MSC,HIRS系统中,TAG字段是由CSCHP来保存,支持BTS间的接入试探切换时有问题。

D

MS收到寻呼消息后,向基站发送寻呼响应消息。CEC模块在接入信道接收到寻呼响应消息后转发给CSCHP模块。

CSCHP对接入信道消息的LAC字段进行处理,然后把解析后的LAC字段和接入信道消息中的层三部分封装在Abiscr_AccessChannelMessageTransfer消息中传送给MDM板上的CMPSelectHandler进程。

注:系统上电运行后,限制修改控制框UIM(MDM)的逻辑地址,CSCHP模块上电时从数据库读取控制框的MDM板的逻辑地址。CSCHP发送反向Abisc接口消息时,如知道BSSAP的PID,直接把消息发送给BSSAP进程,如不知道BSSAP的PID,把消息发送给MDM,由MDM上的选择进行选择CMP后转发。

E

CSCHP收到接入信道消息后发送Ump_BSAckOrder证实。MS收到基站证实指令后设置定时器T42m等待基站的指配消息。

F

CPMSelectHandler进程收到接入信道消息后,从消息中取出IMSI和消息类型,根据IMSI选择一块CMP,判消息类型,如为寻呼响应消息,先根据IMSI查找TAG字段,然后把找到的TAG字段填到Abiscr_AccessChannelMessageTransfer消息中,把消息转发给选择的CMP上的CallMain进程处理。

CallMain进程收到接入信道消息后,调用空中接口消息解码函数解码,再根据解码后的LAC字段判断接入基站是不是源基站,如不是源基站,执行接入试探切换的流程;如是源基站且消息为寻呼响应消息,分配呼叫参考号和SCCP连接号,创建呼叫进程,把呼叫参考号、SCCP连接号、本板的ModuleId和创建呼叫进程的PNO保存在全局变量中,建立根据SCCP连接号索引呼叫参考号的哈希链表,建立根据IMSI索引呼叫参考号的哈希链表,把寻呼响应消息转发给呼叫进程处理。

CallHandler进程收到寻呼响应消息后,保存寻呼响应消息中带的信息。

G

与语音主叫流程的D到E步处理相同。

H

BSSAP构造A接口的PageResponse消息,调用A接口编码函数编码,把此消息放在完全层3消息中发给MSC,设置定时器T3230,等待SCCP连接建立确认,设置定时器T303,等待MSC指配请求消息。

I

i步与语音主叫流程的g步到jj步处理相同。

MSC在收到AssignmentComplete消息后,如判断是被叫,会设置定时器T301等待用户应答。

J

DSPM在发送启动声码器编码消息的同时,在业务信道上向MS发送振铃消息,设置定时器Tuserconnect等待用户应答。

K

MS收到振铃消息后发送Umr_MSAckOrder证实。

L

当用户接听后,MS向基站发送用户连接消息。DSPM收到连接消息后复位定时器Tuserconnect。

M

DSPM发送Umf_BSAckOrder证实。

N

在与M步同一次调度中,DSPM向BSSAP发送Avr_UserConnect消息。

O

BSSAP收到Avr_UserConnect消息后向MSC发送A1r_UserConnect消息,MSC收到UserConnect消息后复位定时器T301。

P~

Q语音呼叫进入通话状态。

3数据呼叫流程

3.1MS发起的数据起呼流程

动作

动作描述

A~C

与语音主叫流程的A~E步处理基本相同。不同之处就是数据呼叫不需要分配优选资源的处理,其它处理相同。

D

CallHandler根据业务选项判定是数据呼叫,构造A1r_CMServiceRequest消息,调用A1接口编码函数编码,把此消息放在完全层3消息中发给MSC,设置定时器T3230,等待SCCP连接建立确认,设置定时器T303,等待MSC指配请求消息。

G~M

与语音主叫流程的G~O步处理相同。

N

CallHandler进程调用DBAccess根据CE帧偏置分配DSPM和SE。

由数据库判断是否需要远程访问,如数据库需要使用异步消息访问时,在函数的出参告诉BSSAP。当不需要远程访问时,不执行O步;当需要远程访问时,CallHandler进程设置定时器Tdbaccess等待数据库返回证实。

注:要求根据CE的帧偏置分配选择器,这步需要在收到Abisdr_BTSSetupAck和A1f_AssignmentRequest消息后执行。

O

RMP完成资源分配后,向CallHandler进程发送DBAccessAck消息,CallHandler进程收到后复位定时器Tdbaccess。

P~V

与语音主叫流程的R~X处理相同。

W

SDM_SD进程接收到激活消息后,根据其中的呼叫类型字段判断出是语音呼叫还是数据呼叫,并存储变量;同时,存储前反向复用选项、RC、业务类型等资源配置。调用OSS函数,OSS开始启动时间控制。

SDM_SD进程开始每20ms向CE发送一个Idle Frame,填写帧序号,启动帧序号调整算法。

SDM_SD进程判断出此次呼叫为数据呼叫,便向RLP进程发消息激活RLP进程。

SDM_SD设置建链定时器TsetupDataCall,等待业务信道前缀和激活RLP响应消息。如果定时器超时,则说明RLP激活失败或者前缀捕获失败,SDM_SD进程将向DSPM上报激活失败消息。

X

MS收到信道指配消息后,就从控制信道转到业务信道等待接收基站发送的空帧,当MS收到前向NULL帧后,反向发送Premable,CEC捕获前缀后,复位等待捕获前缀的定时器,把前缀转发给SDM。

SDM_SD判断捕获到信道前缀后,开始每20ms向CE发送一个non-Idle Frame,同时判断是否收到RLP应答消息,未收到则继续等待;如收到则复位定时器TsetupDataCall,执行Z步。

Y

RLP Main进程收到SDM的激活消息后,创建Entity进程,并向Entity进程转发SDM的激活消息EV_S_AsdrActivateRLP,向SDM回激活应答,带有RLPEntityPid,以及RLP的IP地址和GREKey(RLP进程的实例号)。

SDM_SD接收到RLP激活应答消息,将返回A8连接的RLP端IP地址和相应RLP_Entity的进程号存储;判断是否收到信道捕获消息,如收到才复位TsetupDataCall定时器,执行Z步;若没收到信道捕获消息,继续等待。

Z

当SDM捕获MS发送的前缀,同时收到RLP激活应答消息后,向DSPM发送激活SDM进程应答消息,将返回A8连接的RLP端IP地址和相应RLP_Entity的进程号及捕获到的CE信息传给DSPM,同时SDM_SD进程跃迁到S_Conversation状态,设置Tconfig定时器等待Abaf_PCFInfoL3消息,如Tconfig定时器超时释放呼叫。

TsetupDataCall定时器到时,向DSPM报错,释放RLP进程,清空各缓冲区,转入S_Idle态。

AA

DSPM的CLH收到激活响应消息后复位定时器Tactivatesdm,保存消息中带的RLP的IP地址及GREKey信息,向移动台发送基站证实指令Umf_BSAckOrder,通知MS已经捕获了反向FCH的preamble。

BB

在与AA步同一次调度中,CLH向PCF发送A9-Setup-A8消息,将从SDM传送回来的RLP的IP地址及反向A8连接的GREKey信息传给PCF,要求建立A8连接,设置定时器Ta8setup等待A9连接A8消息。

CC

MS发送Umr_MSAckOrder指令证实Umf_BSAckOrder。

DD

处在Null状态的Entity进程收到来自DSPM发来的A9SetupA8,检查其中的A9Indicator,如果HI=0,DRS=1,表示有数据要传送,为正常起呼,应取出其中的A8TrafficID,修改路由表表项数据。

A9SetupA8消息中的A8_Traffic_ID和A9Indicator字段,可以结合信令跟踪看一下。

PCF的Entity进程管理一个公共的状态表,该表所在数据区为一个固定数组,每一数组元素对应一路数据呼叫,把数组的下标作为该路数据呼叫的PSI(PCF Session

Identifier),也是A10/A11接口的Key和A8接口反向的Key。

Entity按一定算法选择一个可用的PDSN,更新路由表项数据,向该PDSN发A11RegRequest(Lifetime,YI=1-SETUP,YI=2-START),取SessionID为路由表表项的数组下标,设置定时器Tregreq等待PDSN的证实。

四种计费信息:

1A10 Connection Setup Airlink RecordA10连接建立时,A11-Registration Request包含该记录。

2:Active-Start Airlink Record移动台开始使用业务信道时,A11-Registration Request消息包含该记录。

3:Active-Stop Airlink Record移动台停止使用业务信道时,A11-Registration Request消息包含该记录。

4:SDB Airlink Record发送和接收SDB数据时,A11-Registration Request消息包含该记录。

EE

PDSN向PCF发送A11-RegistrationReply

Entity在收到来自PDSN回送的A11RegReply(A11RegReply中的SessionID应与A11RegRequest中的SessionID相同)后,复位定时器Tregreq,分析Code字段中的值。

如果Code=00H,表示呼叫成功00H,应根据A11RegReply字段中的Lifetime的值来设置Trp,并且修改路由表表项,。

如果Code>0,并且不等于88H,表示呼叫失败。

如果Code=88H,应根据取A11RegReply中返回的PDSN地址,修改向新的PDSN发A11RegRequest。

如果Tregreq超时还未收到,重复DD步。

FF

如果起呼登记成功,Entity应在路由表里绑定A8和A10的连接,并将状态设为Active(应尽可能快,因PDSN即将发LCP配置请求。如果PDSN返回的A11RegReply和LCP配置数据同时到,那么应在处理LCP配置数据之前将Status设为Active,否则最先发来的包将丢失),并向BSSAP返回A9ConnectA8,Cause=13H,表示呼叫成功。同时,启动周期登记定时器Trp。

如果起呼登记失败,应清除路由表项,向BSSAP返回A9ReleaseA8Complete,表示呼叫失败。

A9_ConnectA8消息中带有PCF的IP地址和PCF分配的前向A8连接的GREKey。DSPM的CLH收到A9_ConnectA8消息后,复位定时器Ta8setup。

GG~HH

CLH在收到UmrMSAckOrder消息后,调用业务协商处理类SNH的SNHStartSN()函数,要求SNH发起业务协商。

SNH根据当前的呼叫配置,决定是否需要与移动台进行一次业务协商。如果不需要,则SNH向移动台发送业务连接消息Umf_ServiceConnectMsg,告诉移动台此次呼叫所要用到的配置信息。SNH打开定时器Tserviceconnect等待移动台发来的业务连接完成消息。

移动台在反向基本信道上发送Umr_ServiceConnectCompletionMsg消息。SNH关闭定时器Tserviceconnect,调用CLH的CLHStartSNAck(),告知CLH业务协商已经完成。

II

CLH在业务协商完成以及A8连接建立后,向SDM发送Abaf_PCFInfoL3消息,通知SDM有关PCF的IP,GREKey,协商后的资源配置和业务配置等信息。

JJ

SDM收到Abaf_PCFInfoL3消息后,存储并改变业务信道配置,复位定时器Tconfig,向RLP发送Asdf_NegotiationInfo消息,把PCF的IP地址和前向A8连接的Key及协商参数通知RLP。

RLP收到此消息后,进行各状态变量的赋值,确定当前RLP版本号。

若是RLP版本1,则根据业务选项RLP向IWF协议栈或ISLP(军网)发送初始化消息,进行SVE通道号和RLP实例的绑定。初始化IWF协议栈消息发出后需要设置定时器TinitProt。

KK

SDM向DSPM发送Abar_PCFInfoL3响应。

LL

DSPM完成业务协商和A8连接建立后,向BSSAP发送指配完成消息,BSSAP收到指配完成消息后复位定时器Tassignment。

MM

BSSAP向MSC发送指配完成消息,MSC收到指配完成消息后复位定时器T10。

NN~OO

移动台和PDSN之间建立PPP连接,完成PPP协商后,移动台和PDSN之间在FCH上传送低速的分组数据。

3.2PDSN发起的数据呼叫激活流程

动作

动作描述

A~B

数据呼叫从激活状态释放到DORMANT状态,并保持在Dormant状态。

C

PDSN有数据要发给MS,把数据发给PCF。

PCF收到来自PDSN的数据包,微码首先将数据包存放到一个空的缓冲区中,并发送DataFromPDSN通知相应Entity。

Entity收到数据来的通知后,应向BSSAP发送A9BSServiceRequest请求建立空中链路,消息中的CorrelationID字段应设为进程对应的KEY,DataCount字段可设为缓冲区中的数据字节数(不精确的数量),并设置定时器Tbsreq等待响应。

注:A9_BSServiceRequest消息发到MDM板上的选择进程,由MDM板上的选择进程根据CMP板选择算法选择一块CMP板处理。

D

CMPSelectHandler进程收到A9_BSServiceRequest消息后,根据IMSI选择CMP,把消息转发给选择的CMP板上的CallMain进程处理。

CallMain进程根据IMSI查找是否存在语音呼叫,如存在语音呼叫,走并发业务的流程;不存在语音呼叫,CallMain进程把消息转发给DiscriminateSDBorDA进程处理。

DiscriminateSDBorDA进程分配A1r_BSServiceRequest消息中使用的Tag字段,并建立Tag与A9_BSServiceRequest消息的CorrelationID的映射,向MSC发送A1r_BSServiceRequest消息,设置定时器T311等待响应。

注:A1f_BSServiceResponse是无连接消息,SCCP不能保证把消息发送给BSC侧发送A1r_BSServiceRequest消息的CMP板,要用消息中的Tag字段选择CMP板,同时区分是SDB或是数据业务的激活,通过Tag字段得到A9接口的CorrelationID,放到A9_BSServiceResponse消息中带给PCF。

E

MSC收到A1r_BSServiceRequest消息后,如能建立数据呼叫,向BSC发送A1f_BSServiceResponse消息。

BSC的SCCP收到A1f_BSServiceResponse消息后,调用SCCPDispatch函数把消息转发给DiscriminateSDBorDA进程,DiscriminateSDBorDA进程复位定时器T311。

语音主叫流程中介绍的SCCPDispatch函数完成A1f_BSServiceResponse消息的分发。

F

DiscriminateSDBorDA进程根据A1f_BSServiceResponse消息中的Tag字段找到CorrelationID,并判断是SDB或是数据业务的激活,如是Dormant数据业务的激活,向PCF发送A9_BSServiceResponse消息。

PCF的Entity进程收到A9_BSServiceResponse消息后复位定时器Tbsreq,分析其中的Cause字段。

如果Cause=08H,表示MS忙(即MS在Dormant的状态下有话音业务)。那么应启动定时器Tmsbusy,等Tmsbusy超时后重复C步,可重复2~3次。

如果不存在Cause,表示BSSAP正在为呼叫建立空中链路。Entity应等待来自BSSAP的A9SetupA8。

G

MSC通过A1接口向BSSAP模块发送寻呼请求消息A1f_PagingRequest,设置定时器T3113等待寻呼响应。

BSC侧的SCCP收到寻呼消息后调用SCCPDispatch函数把消息发送给本板的CallMain进程。

H~K

数据业务的寻呼过程与语音业务的寻呼过程处理相同。

L~II

与MS发起的数据呼叫(NULL到ACTIVE状态)的处理流程D步~AA步处理相同。

JJ

在与EE步同一次调度中,DSPM向PCF发送A9_SetupA8消息建立A8连接,设置定时器Ta8setup等待A9连接A8消息。

KK

与MS发起的数据呼叫(NULL到ACTIVE状态)的处理流程的CC步处理相同。

LL

Dormant数据业务激活,不需要建立A10连接,PCF的Entity进程收到来自BSSAP的A9SetupA8后,取出其中的A8TrafficID,修改路由表表项数据,并向BSSAP回送A9ConnectA8,消息中带有PCF的IP地址和PCF分配的前向A8连接的Key。DSPM收到A9_ConnectA8消息后,复位定时器Ta8setup。

Entity同时向Unit发送ChannelIndicator(TRUE),表示空中信道已准备好,同时设置状态为Active。Unit收到该指示后,应将缓冲区中的数据发往RLP。

MM~UU

与MS发起的数据呼叫(NULL到ACTIVE状态)的处理流程的GG步~OO步处理相同。


上一篇 下一篇

猜你喜欢

热点阅读