语音和数据呼叫流程
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的证实。
四种计费信息:
1:A10 Connection Setup Airlink Record,A10连接建立时,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步处理相同。