数字中继系统构架设计说明书.docx
《数字中继系统构架设计说明书.docx》由会员分享,可在线阅读,更多相关《数字中继系统构架设计说明书.docx(20页珍藏版)》请在冰豆网上搜索。
数字中继系统构架设计说明书
保密
公开
版本号
V1.0
文件编号
系统构架设计说明书
数字中继
修订记录
版次
起草
审核
批准
发行日期
摘要
陈维明
2010/2/22
目录
1文档历史3
2文档目的3
3背景介绍3
4系统分析4
4.1系统框图4
4.2系统信息流分析7
4.3系统接口14
5开发环境14
5.1硬件平台和开发装置14
5.2软件开发环境15
6系统各部分或子系统设计16
7测试相关设计18
8集成测试或单元测试用例18
9参考文献18
10缩略语19
11致谢19
1文档历史
版本号
日期
修改的原因
修改人
0.1
2012/3/15
创建初稿
孙陟
2文档目的
Ø写此文档的目的:
后续开发提供技术规范,方便维护以及扩展为.
Ø此文档所要起的作用,相关使用人:
开发人员,及感兴趣的相关人员。
Ø该文档所要包括的内容:
ROIP网关的简要介绍,框架接口,和关键模块的设计。
3背景介绍
Ø随着Internet网络的普及,一种可以通过IP网络传输语音、视频等业务的VoIP技术迅速发展。
VoIP技术是广泛地采用Internet和全球IP互连的环境,主要提供语音传输的服务,完成世界各地有网络覆盖地区之间的语音连接,比较传统的全球通话业务,VoIP的语音通信费用更低,组网更加方便,具有非常大的市场需求,才得以让VoIP技术迅速发展,充分体现了IP数据网络的巨大作用和应用潜力。
纵使VoIP的应用如此广泛,但VoIP仍不能完成无线电与IP网络互联的应用。
ØROIP-GW是一种专用的无线通讯终端网络接入设备,通过先进的语音处理技术和软交换技术可以使不同类型,不同频段的对讲机无缝接入到IP网络。
既可实现远距离的无线对讲通讯,也可实现无线设备与有线设备的互连互通,方便解决无线网络调度,管理,及大范围组网调度中存在的难题,可广泛适用于铁路,公安,军队以及其他有无线对讲机业务的单位,实现远距离大规模无线组网通信。
Ø转来自WIKI的原文描述:
RadiooverInternetProtocol,orRoIP,issimilartoVoIP,butaugmentstwo-wayradiocommunicationsratherthantelephonecalls.Fromthesystempointofview,itisessentiallyVoIPwithPTT(PushToTalk).Totheuseritcanbeimplementedlikeanyotherradionetwork.WithRoIP,atleastonenodeofanetworkisaradio(oraradiowithanIPinterfacedevice)connectedviaIPtoothernodesintheradionetwork.Theothernodescanbetwo-wayradios,butcouldalsobedispatchconsoleseithertraditional(hardware)ormodern(softwareonaPC),POTStelephones,softphoneapplicationsrunningonacomputersuchasSkypephone,PDA,smartphone,orsomeothercommunicationsdeviceaccessibleoverIP.RoIPcanbedeployedoverprivatenetworksaswellasthepublicInternet.Itisusefulinlandmobileradiosystemsusedbypublicsafetydepartmentsandfleetsofutilitiesspreadoverabroadgeographicarea.[1]Likeothercentralizedradiosystemssuchastrunkedradiosystems,issuesofdelayorlatencyandrelianceoncentralizedinfrastructurecanbeimpedimentstoadoptionbypublicsafetyagencies.
Refertohttp:
//en.wikipedia.org/wiki/RoIP
4系统分析
4.1系统框图
-BizEngine负责主要的业务逻辑,并派发任务给其他组件。
-SipListenerImpl负责监听来自SIP网络的呼叫进入和数据,并转发至BizEngine做进一步处理。
-DpmrListenerImpl负责监听来自DPMR模块的数据进入,并转发至BizEngine做进一步处理。
-SipDpmrManager负责发送消息数据至SIP网络和DPMR模块。
-SIPPackage支持ROIP-GW在SIP网络中扮演SIPUA的角色,支持SIP协议,和其他SIPUA交互(有些开源的项目的实现,如doubango)。
-DPMRPackage是DPMR功能模块,支持ROIP-GW与DPMR无线网设备通信。
-ROIP-GW由HOST和DPMR模块组成。
-HOST模块通过SIPAgent(doubango)与SIP网络通信。
-HOST模块通过DPMRAdapter组件与ROIP-GW模块交互(目前是基于串口和模拟音频接口)。
-DPMR模块可以是具体的DPMR对讲机,通过DPMRAdapterStub组件与HOST模块通信。
同时还与其他DPMR对讲机通信。
4.2系统信息流分析
TODO:
-呼叫流程图是否可以区分单呼和组呼的情况?
4.2.1.1SIP端发起代理方式呼叫流程
1.用户A(SIPUA)向其所属的域代理服务器(软交换)PROXY1发起INVITE请求消息,在该消息中的消息体中带有用户A的媒体属性SDP描述;
2.PROXY1返回407响应,要求鉴权;
3.用户A发送ACK确认消息;
4.用户A重新发送带有鉴权信息的INVITE请求;
5.经过路由分析,PROXY1将请求转发到ROIP-GW;
6.PROXY1向用户A发送确认消息”100TRYING”,表示正在对收到的请求进行处理。
7.ROIP-GW向PROXY1发送确认消息”100TRYING”;
8.ROIP-GW向PROXY1转发”180RINGING”;
9.PROXY1向用户A转发”180RINGING”,用户A所属的终端播放回铃音;
10.ROIP-GW(模拟用户摘机),向PROXY1返回对INVITE请求的”200OK”响应,在该消息中的消息体中带有ROIP-GW(模拟用户)的媒体属性SDP描述;
11.PROXY1向用户A转发”200OK”;
12.用户A向PROXY1发送针对200响应的ACK确认请求消息;
13.PROXY1向ROIP-GW转发ACK请求消息,用户A与ROIP-GW之间建立双向RTP媒体流;
14.ROIP-GW向DPMR用户B发起H:
E帧,请求建立连接。
(可选)
15.DPMR用户B向ROIP-GW回应ACK,确认连接请求。
(可选)
CASE#1:
SIP用户A开始说话
16.SIP用户A按“模拟PTT键”,SIPUA向PROXY申请话语权(用于组呼)。
17.用户A申请话语权成功后,解释“模拟PTT键”,并以SIPINFO命令发送至PROXY1.
18PROXY1转发此命令至ROIP-GW。
19.ROIP-GW收到此命令,检查信道可用,并进入PTT按下状态(发射状态)。
(需要ACK?
?
)
20.SIP用户A说话,并发送SIP/RTP语音帧至PROXY1.
21.PROXY1转发RTP语音帧至ROIP-GW。
22.ROIP-GW对收到的RTP语音帧转码(G.7xx=>CMX618),并发送至DPMR用户B。
CASE#2:
DPMR用户B开始说话
23.DPMR用户B按PPT说话,
24.DPMR语音帧被发送至ROIP-GW。
25.ROIP-GW首先向PROXY申请话语权(用于组呼)。
26.ROIP-GW申请话语权成功后,对收到的DPMR语音帧转码(CMX618=>G.7xx),并发送SIP语音帧至PROXY1.
27.PROXY1转发SIP/RTP语音帧至SIP用户A。
CASE#4:
DPMR用户B主动挂断
28.DPMR用户B按挂断键,结束通话。
29.DPMR用户B发送H:
E:
H:
E帧至ROIP-GW。
30.ROIP-GW解释H:
E:
H:
E帧为SIP挂断命令,发送BYE至PROXY1。
31.PROXY1转发BYE命令至SIP用户A。
32.SIP用户A发送确认200至PROXY1.
33.PROXY1转发200至ROIP-GW。
整个通话结束。
CASE#5:
SIP用户A结束说话
-用户A结束说话,并松开“模拟PPT键”。
-用户A发送“松开PPT键”命令至PROXY1.
-PROXY1转发“松开PPT键”命令至ROIP-GW。
-ROIP-GW收到“松开PPT键”命令,(发送“完毕”语音提示至用户B),并进入PPT松开状态(等待状态)。
(需要ACK?
?
)
CASE#6:
SIP用户A主动挂机:
-用户A挂机,用户A向PROXY1发送BYE请求消息。
-PROXY1向ROIP-GW转发BYE请求消息;
-ROIP-GW发送H:
E:
H:
E挂断请求帧至用户B。
-ROIP-GW向PROXY1转发200OK请求消息;
-PROXY1向用户A转发200OK响应消息,通话结束。
-
4.2.1.2DPMR端发起呼叫流程
-DPMR用户端按PPT,开始说话。
-ROIP-GW收到DPMR语音帧,并解析出被呼号码,如果该号码的SESSION还未建立,则开始以下与SIP用户端建立连接过程(同时,缓存DPMR语音帧):
-同时,在ROIP-GW与SIP用户端连接建立前,来自DPMR用户的语音帧被缓存至ROIP-GW。
-在ROIP-GW与SIP用户端连接建立后,如果是组呼,需要先向PROXY申请话权。
-然后,ROIP-GW对DPMR语音帧转码,发送至PROXY1。
-PROXY1转发语音帧至SIP用户端。
-后续过程(话语权切换,结束通话)参见SIP端发起呼叫流程相应部分。
。
。
4.2.1.3话权仲裁机制?
-ROIP-GW在发送来自DPMR的语音时,需要向PROXY(或其他SIP服务)申请话权。
-SIPUA发起的呼叫也需要向PROXY申请话权。
-话权申请有多种方式,DDMR/VAD/SIPINFO
-目前暂时考虑的是通过SIPINFO将PTT命令发出。
4.2.1.4ROIP-GW主模块与其DPMR模块命令交互
UART串口
//HOST模块向DPMR模块发送命令
#defineCMD_HOST_TO_DPMR_PTT_ON0
#defineCMD_HOST_TO_DPMR_PTT_OFF1
#defineCMD_HOST_TO_DPMR_SMS2
#defineCMD_HOST_TO_DPMR_VOICE3
#defineCMD_HOST_TO_DPMR_DISCONN4
typedefstruct{
unsignedcharmb_id;//theidofassociateddpmr模块
unsignedcharcmd;//命令ID,见宏定义
charto_dpmr_call_num[10];//被呼叫的DPMR终端号码
intlen;//后续数据包的长度,如果没有数据,设为
unsignedchar*data;//数据包(短信,语音)
}struct_host_to_dpmr;
//DPMR模块向HOST模块发送命令
#defineCMD_DPMR_TO_HOST_SMS0
#defineCMD_DPMR_TO_HOST_VOICE1
#defineCMD_DPMR_TO_HOST_VOICE_STOP2
#defineCMD_DPMR_TO_HOST_HANGUP3
typedefstruct{
unsignedcharcmd;
charto_sip_call_num[10];//被呼叫的SIP终端号码
intlen;
unsignedchar*data;
}struct_dpmr_to_host;
//HOST模块向SIPAGENT模块发送命令
#defineCMD_HOST_TO_SIP_INVITE0
#defineCMD_HOST_TO_SIP_SMS1
#defineCMD_HOST_TO_SIP_VOICE2
#defineCMD_HOST_TO_SIP_VOICE_STOP3
#defineCMD_HOST_TO_SIP_HANGUP4
typedefstruct{
unsignedcharcmd;
unsignedcharto_sip_call_num;//被呼叫的SIP终端号码
intlen;
unsignedchar*data;
}struct_host_to_sip;
//SIPAGENT模块向HOST模块发送命令
#defineCMD_SIP_TO_HOST_CONN0//ROIP-GW与SIP端建立连接
#defineCMD_SIP_TO_HOST_PTT_ON1
#defineCMD_SIP_TO_HOST_PTT_OFF2
#defineCMD_SIP_TO_HOST_VOICE3
#defineCMD_SIP_TO_HOST_DISCONN4
typedefstruct{
unsignedcharcmd;
charto_dpmr_call_num[10];//被呼叫的DPMR终端号码
intlen;
unsignedchar*data;
}struct_sip_to_host;
//HOST模块向DPMR模块发送语音数据
//TODO。
。
。
4.2.1.5ROIP-GW呼叫号码映射表
typedefstruct{
charsip_num[10];
chardpmr_num[10];
charuart_num;
}struct_sip_dpmr_call_num;
4.2.1.6ROIP-GW提示音文件列表
//提示音文件列表
typedefstruct{
unsignedcharno;
charpath[512];
charfilename[64];
}struct_audio_rec_list;
4.3系统接口
4.3.1.1系统的外部接口
-ROIP-GW与SIP端的交互,遵循SIP协议,实现上基于doubango开源项目,扮演SIPUA角色。
-ROIP-GW与DPMR端的交互,遵循DPMR协议。
4.3.1.2系统的内部接口
//hostside
inthost_to_dpmr_send(struct_host_to_dpmr*data);
inthost_to_sip_send(struct_host_to_sip*data);
intsip_to_host_send(struct_sip_to_host*data);
voidon_dpmr_to_host_recv(struct_dpmr_to_host*data);
voidon_host_to_sip_recv(struct_host_to_sip*data);
voidon_sip_to_host_recv(struct_sip_to_host*data);
//dpmrside
intdpmr_to_host_send(struct_dpmr_to_host*data);
voidon_host_to_dpmr_recv(struct_host_to_dpmr*data);
5开发环境
5.1硬件平台和开发装置
-阶段一:
X86+DPMR对讲机+UART+模拟AUDIO
-阶段二:
ARM9+DPMR板+硬件解决方案(UART+PCM?
)
5.2软件开发环境
-阶段一:
Host部分:
Windows+VS2008+doubango
DPMR部分:
UCOS+KEIL
-阶段二:
Host部分:
Linux+AMR9
DPMR部分:
UCOS+KEIL
6系统各部分或子系统设计
6.1.1.1DPMR子模块
ØHost模块发送音频数据至dpmr模块:
-ROIP-GWHost收到SIP/RTP音频帧,解码成PCM后,通过模拟音频接口发送至dpmr模块的CMX618芯片的PCM接口,CMX618然后进行AD转换,压缩后,通过中断输出到recvtask(618enc).
-Recvtask(618enc)转发编码音频数据至sendtask(7141).
-Sendtask(7141)通过CML7141发送音频数据,最终至空口。
ØHost模块发送消息数据至dpmr模块:
-ROIP-GWHost通过UART发送消息数据至DPMR模块。
-DPMR模块的uartrecvtask接受消息数据,并转发给maintask进行进一步处理。
Ødpmr模块发送音频数据至host模块:
-CML7141芯片接收音频数据,并通过中断通知recvtask(7141).
-Recvtask(7141)发送音频数据至618dectask。
-618dectask把音频数据写入CML618.
-CML618对编码的音频数据进行解码成PCM数据,并输出到模拟音频接口。
-模拟音频信号在HOST模块端接收,并AD转换成PCM,做进一步处理。
Ødpmr模块发送消息数据至host模块:
-DPMR模块的maintask发送消息数据至uartsendtask.
-Uartsendtask通过UART发送至HOST模块。
6.1.1.2HOST子模块
ØHost模块处理来自DPMR模块的消息数据:
-Uartrecvthread通过串口收到来自dpmr模块的消息数据后,转发给mainthread.
ØHost模块处理来自DPMR模块的模拟音频信号:
-Host模块的音频设备收到模拟音频信号,并通过音频驱动,转换成PCM数据给maintask.
-Mainthread收到pcm数据后,解析出被呼号码,检查该dpmr模块是否已连接到此SIPUA,如果没有,则开始建立SIP连接(查找与当前dpmr模块关联)。
并执行后续步骤。
-Mainthread压缩编码pcm数据,通过调用doubangoAPI,封装并发送RTP语音帧。
ØHost模块处理来自SIPUA的数据:
-通过doubango,来自远端SIPUA的呼入和语音数据被转发给mainthread.
-Mainthread收到数据后,根据业务逻辑,执行具体操作,例如:
1.解码RTP语音帧成PCM数据。
2.通过串口,发送消息数据至相应的dpmr模块。
3.通过音频设备,转换PCM数据从模拟音频信号至DPMR模块。
4.响应SIP命令和请求。
5.打开关闭SIP连接。
7测试相关设计
Ø测试模块或测试工具的设计?
Ø特殊的信息输出或记录?
Ø测试接口预留?
8集成测试或单元测试用例
Ø集成测试用例?
Ø单元测试用例?
可按系统各部分或子系统分别描述。
9参考文献
-IP调度系统设计V1.doc
-SIP协议简介与典型呼叫流程.doc
-FreeSwitch总体架构.doc
-数字无线对讲机系统构架设计说明书.doc
-Doubango开源项目
-RadiooverIP-TechnicalClass.pdf
-互联网相关信息搜索
-其他类似产品介绍
10缩略语
GUIGraphicalUserInterface
11致谢
描述相关的人员对文档的贡献,并致谢意。
焉笠,黄科军,陈维民,崔洪洲,曾润,熊发田
ENDOFDOCUMENT