数字中继系统构架设计说明书.docx

上传人:b****4 文档编号:6068634 上传时间:2023-05-09 格式:DOCX 页数:20 大小:917.52KB
下载 相关 举报
数字中继系统构架设计说明书.docx_第1页
第1页 / 共20页
数字中继系统构架设计说明书.docx_第2页
第2页 / 共20页
数字中继系统构架设计说明书.docx_第3页
第3页 / 共20页
数字中继系统构架设计说明书.docx_第4页
第4页 / 共20页
数字中继系统构架设计说明书.docx_第5页
第5页 / 共20页
数字中继系统构架设计说明书.docx_第6页
第6页 / 共20页
数字中继系统构架设计说明书.docx_第7页
第7页 / 共20页
数字中继系统构架设计说明书.docx_第8页
第8页 / 共20页
数字中继系统构架设计说明书.docx_第9页
第9页 / 共20页
数字中继系统构架设计说明书.docx_第10页
第10页 / 共20页
数字中继系统构架设计说明书.docx_第11页
第11页 / 共20页
数字中继系统构架设计说明书.docx_第12页
第12页 / 共20页
数字中继系统构架设计说明书.docx_第13页
第13页 / 共20页
数字中继系统构架设计说明书.docx_第14页
第14页 / 共20页
数字中继系统构架设计说明书.docx_第15页
第15页 / 共20页
数字中继系统构架设计说明书.docx_第16页
第16页 / 共20页
数字中继系统构架设计说明书.docx_第17页
第17页 / 共20页
数字中继系统构架设计说明书.docx_第18页
第18页 / 共20页
数字中继系统构架设计说明书.docx_第19页
第19页 / 共20页
数字中继系统构架设计说明书.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字中继系统构架设计说明书.docx

《数字中继系统构架设计说明书.docx》由会员分享,可在线阅读,更多相关《数字中继系统构架设计说明书.docx(20页珍藏版)》请在冰点文库上搜索。

数字中继系统构架设计说明书.docx

数字中继系统构架设计说明书

保密

公开

版本号

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2