数字中继系统构架设计说明书.doc_第1页
数字中继系统构架设计说明书.doc_第2页
数字中继系统构架设计说明书.doc_第3页
数字中继系统构架设计说明书.doc_第4页
数字中继系统构架设计说明书.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统构架设计说明书保密公开版本号V1.0文件编号系统构架设计说明书数字中继修订记录版次起草审核批准发行日期摘要陈维明2010/2/22目 录1文档历史32文档目的33背景介绍34系统分析44.1系统框图44.2系统信息流分析74.3系统接口145开发环境145.1硬件平台和开发装置145.2软件开发环境156系统各部分或子系统设计167测试相关设计188集成测试或单元测试用例189参考文献1810缩略语1911致谢19CRSC Shanghai Rail Transportation Technologies Co., LTD. - PROPRIETARYUse pursuant to Company Instructions 系统构架设计说明书1 文档历史版本号日期修改的原因修改人0.12012/3/15创建初稿孙陟2 文档目的 写此文档的目的:后续开发提供技术规范,方便维护以及扩展为. 此文档所要起的作用,相关使用人: 开发人员,及感兴趣的相关人员。 该文档所要包括的内容:ROIP网关的简要介绍,框架接口,和关键模块的设计。3 背景介绍 随着Internet网络的普及,一种可以通过IP网络传输语音、视频等业务的VoIP技术迅速发展。VoIP技术是广泛地采用Internet和全球IP互连的环境,主要提供语音传输的服务,完成世界各地有网络覆盖地区之间的语音连接,比较传统的全球通话业务,VoIP的语音通信费用更低,组网更加方便,具有非常大的市场需求,才得以让VoIP技术迅速发展,充分体现了IP数据网络的巨大作用和应用潜力。纵使VoIP的应用如此广泛,但VoIP仍不能完成无线电与IP网络互联的应用。 ROIP-GW是一种专用的无线通讯终端网络接入设备,通过先进的语音处理技术和软交换技术可以使不同类型,不同频段的对讲机无缝接入到IP网络。既可实现远距离的无线对讲通讯,也可实现无线设备与有线设备的互连互通,方便解决无线网络调度,管理,及大范围组网调度中存在的难题,可广泛适用于铁路,公安,军队以及其他有无线对讲机业务的单位,实现远距离大规模无线组网通信。 转来自WIKI的原文描述:Radio over Internet Protocol, or RoIP, is similar to VoIP, but augments two-way radio communications rather than telephone calls. From the system point of view, it is essentially VoIP with PTT (Push To Talk). To the user it can be implemented like any other radio network. With RoIP, at least one node of a network is a radio (or a radio with an IP interface device) connected via IP to other nodes in the radio network. The other nodes can be two-way radios, but could also be dispatch consoles either traditional (hardware) or modern (software on a PC), POTS telephones, softphone applications running on a computer such as Skype phone, PDA, smartphone, or some other communications device accessible over IP. RoIP can be deployed over private networks as well as the public Internet. It is useful in land mobile radio systems used by public safety departments and fleets of utilities spread over a broad geographic area.1 Like other centralized radio systems such as trunked radio systems, issues of delay or latency and reliance on centralized infrastructure can be impediments to adoption by public safety agencies.Refer to /wiki/RoIP4 系统分析 4.1 系统框图 - BizEngine负责主要的业务逻辑,并派发任务给其他组件。- SipListenerImpl负责监听来自SIP网络的呼叫进入和数据,并转发至BizEngine做进一步处理。- DpmrListenerImpl负责监听来自DPMR模块的数据进入,并转发至BizEngine做进一步处理。- SipDpmrManager负责发送消息数据至SIP网络和DPMR模块。- SIP Package支持ROIP-GW在SIP网络中扮演SIP UA的角色,支持SIP协议,和其他SIP UA交互(有些开源的项目的实现,如doubango)。- DPMR Package是DPMR功能模块,支持ROIP-GW与DPMR无线网设备通信。- ROIP-GW由HOST和DPMR模块组成。- HOST模块通过SIP Agent(doubango)与SIP网络通信。- HOST模块通过DPMR Adapter组件与ROIP-GW模块交互(目前是基于串口和模拟音频接口)。- DPMR模块可以是具体的DPMR对讲机,通过DPMR Adapter Stub组件与HOST模块通信。同时还与其他DPMR对讲机通信。4.2 系统信息流分析 TODO: - 呼叫流程图是否可以区分单呼和组呼的情况? SIP端发起代理方式呼叫流程1用户A(SIP UA)向其所属的域代理服务器(软交换)PROXY1发起INVITE请求消息,在该消息中的消息体中带有用户A的媒体属性SDP描述;2PROXY1返回407响应,要求鉴权;3用户A发送ACK确认消息;4用户A重新发送带有鉴权信息的INVITE请求;5经过路由分析,PROXY1将请求转发到ROIP-GW;6PROXY1向用户A发送确认消息”100 TRYING”,表示正在对收到的请求进行处理。7ROIP-GW向PROXY1发送确认消息”100 TRYING”;8ROIP-GW向PROXY1转发” 180 RINGING”;9PROXY1向用户A转发” 180 RINGING”,用户A所属的终端播放回铃音;10ROIP-GW(模拟用户摘机),向PROXY1返回对INVITE请求的”200 OK”响应,在该消息中的消息体中带有ROIP-GW(模拟用户)的媒体属性SDP描述;11PROXY1向用户A转发”200 OK”;12用户A向PROXY1发送针对200响应的ACK确认请求消息;13PROXY1向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键”,SIP UA向PROXY申请话语权(用于组呼)。17. 用户A申请话语权成功后,解释“模拟PTT键”,并以SIP INFO命令发送至PROXY1.18 PROXY1转发此命令至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转发200 OK请求消息;- PROXY1向用户A转发200 OK响应消息,通话结束。- DPMR端发起呼叫流程- 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端发起呼叫流程相应部分。 话权仲裁机制?- ROIP-GW在发送来自DPMR的语音时,需要向PROXY(或其他SIP服务)申请话权。- SIP UA发起的呼叫也需要向PROXY申请话权。- 话权申请有多种方式,DDMR/VAD/SIPINFO- 目前暂时考虑的是通过SIP INFO将PTT命令发出。 ROIP-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_DISCONN4typedef structunsigned charmb_id;/the id of associated dpmr 模块unsigned charcmd;/命令ID,见宏定义charto_dpmr_call_num10;/被呼叫的DPMR终端号码intlen;/后续数据包的长度,如果没有数据,设为unsigned char*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_HANGUP3typedef structunsigned charcmd;charto_sip_call_num10;/被呼叫的SIP终端号码intlen;unsigned char*data;struct_dpmr_to_host;/HOST模块向SIP AGENT模块发送命令#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_HANGUP4typedef structunsigned charcmd;unsigned charto_sip_call_num;/被呼叫的SIP终端号码intlen;unsigned char*data;struct_host_to_sip;/SIP AGENT模块向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_DISCONN4typedef structunsigned charcmd;charto_dpmr_call_num10;/被呼叫的DPMR终端号码intlen;unsigned char*data;struct_sip_to_host;/HOST模块向DPMR模块发送语音数据/TODO。 ROIP-GW呼叫号码映射表typedef structcharsip_num10;chardpmr_num10;charuart_num;struct_sip_dpmr_call_num; ROIP-GW提示音文件列表/提示音文件列表typedef structunsigned charno;charpath512;charfilename64;struct_audio_rec_list;4.3 系统接口 系统的外部接口- ROIP-GW与SIP端的交互,遵循SIP协议,实现上基于doubango开源项目,扮演SIP UA角色。- ROIP-GW与DPMR端的交互,遵循DPMR协议。 系统的内部接口/host sideint host_to_dpmr_send(struct_host_to_dpmr *data);int host_to_sip_send(struct_host_to_sip *data);int sip_to_host_send(struct_sip_to_host *data);void on_dpmr_to_host_recv(struct_dpmr_to_host *data);void on_host_to_sip_recv(struct_host_to_sip *data);void on_sip_to_host_recv(struct_sip_to_host *data);/dpmr sideint dpmr_to_host_send(struct_dpmr_to_host *data);void on_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 + doubangoDPMR部分:UCOS + KEIL- 阶段二:Host部分:Linux+AMR9 DPMR部分:UCOS + KEIL6 系统各部分或子系统设计 DPMR子模块 Host模块发送音频数据至dpmr模块: - ROIP-GW Host收到SIP/RTP音频帧,解码成PCM后,通过模拟音频接口发送至dpmr模块的CMX618芯片的PCM接口,CMX618然后进行AD转换,压缩后,通过中断输出到recv task(618 enc).- Recv task (618 enc)转发编码音频数据至send task(7141).- Send task(7141)通过CML7141发送音频数据,最终至空口。 Host模块发送消息数据至dpmr模块: - ROIP-GW Host通过UART发送消息数据至DPMR模块。- DPMR模块的uart recv task接受消息数据,并转发给main task进行进一步处理。 dpmr模块发送音频数据至host模块: - CML7141芯片接收音频数据,并通过中断通知recv task(7141).- Recv task(7141)发送音频数据至618 dec task。- 618 dec task把音频数据写入CML618.- CML618对编码的音频数据进行解码成PCM数据,并输出到模拟音频接口。- 模拟音频信号在HOST模块端接收,并AD转换成PCM,做进一步处理。 dpmr模块发送消息数据至host模块: - DPMR模块的main task发送消息数据至uart send task.- Uart send task通过UART发送至HOST模块。 HOST子模块 Hos

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论