扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
导言
近年来,IP语音(VoIP)变得越来越普及。与传统的汇接解决方案相比,VoIP能够降低初始部署成本和长途费用。互联网工程任务组(IETF)制定的会话发起协议(SIP)是使用最广泛的信令协议之一,该协议凝聚了互联网行业的很大努力,适用于互联网会议、电话、在线状态、事件通知和即时信息处理。过去,人们无法以合理的低成本来实施这些附加功能,但现在使用会话发起协议(SIP),只需向对方发送一些数据包,然后建立一个具有所需功能的会话,即可实现这些功能。因而,相对于传统电话网络来说,VoIP具备了一些优势。
接下来,人们可能会提出如何连接互联网的问题。无线局域网(WLAN)是一种可行方法。无线局域网提供了一定的移动性,用户能在WLAN接入点的附近区域内移动,从而实现VoIP over WiFi应用。但是,由于WLAN属于局域网,只限于室内应用,一旦用户离开接入点的覆盖范围,VoIP呼叫就会掉线。尽管GSM和VoIP之间可以切换,但这些机制和协议又增加了额外成本。
WiMax 和 GPRS 是提供移动性的两种可能解决方案。WiMax是城域网,覆盖范围长达数英里。但是,它需要引入802.16e标准,才能支持移动。虽然与GPRS相比,WiMax的数据速率快得多,但它目前仍然是一种正在演进的技术,尚未确定最终标准。几家公司提供的现有芯片组没有遵循一定的标准,因而无法进行互操作。此外,这种芯片组的成本也比较高。因此,VoIP over WiMax可能是未来的发展趋势,但就目前而言,这种技术还没有推广。
相反,GPRS现在已经成为最常见的无线数据业务,在几乎所有GSM网络上部署。它通过互联网协议(IP)接入互联网网关。其吞吐速率高达40KB/秒,用户可以获得适当的接入速率,能够非常便利地从任何地方连接到互联网。目前,全球有1/5以上的人口使用GSM技术,截至2006年3月中旬,GSM用户人数超过17亿,占据全球手机市场的77%左右。GSM的渗透率如此之高,使得GPRS成为连接互联网、提供VoIP业务的合适物理移动媒介。
早期模拟表明,在GSM网络中,VoIP over GPRS比电路切换语音的容量更大。在本文中,我们将重点介绍VoIP over GPRS在运行实时操作系统(RTOS)的低成本GSM移动电话上的实施。我们还将介绍VoIP over GPRS的系统和架构,以及它的设计局限。接下来,我们将介绍在飞思卡尔i.250 2.5G 平台上实施的概念验证原型。
概况
IP语音(VoIP)是利用IP网络来传送语音信息的一系列新技术。在发送端,语音首先进行数字化、压缩、打包,然后通过IP网络,将这些数据包发送到目的地。一旦在远端收到这些语音数据包,它们就会被记录、解压,然后重新生成语音。由于IP网络的带宽远高于传统的固话汇接网络,VoIP的呼叫费用也远低于传统呼叫。然而,IP网络最初设计用于传输非实时数据,因此,对于VoIP而言,如何实时传输语音服务,确保语音服务质量就成为一种挑战。随着IP技术和宽带互联网业务的发展,这些问题已经部分地得到解决,VoIP进入实际应用阶段。ITU(国际电信联盟)和IETF(互联网工程任务组)是制定VoIP协议的两个主要标准机构,负责确保VoIP的更好质量和互操作性。
与非实时通信不同,VoIP要求对等方在实际语音传输之前建立会话。会话的功能包括:位置搜索、功能协调、呼叫建立和资源预留等。当前,人们单独使用 H.323 (ITU) 和SIP (IETF)来实施呼叫控制功能。就简单性而言,SIP优于H.323,因此这个VoIP项目选择了SIP。
图1显示了典型的VoIP协议堆栈。呼叫控制协议包括两个选项:H.323 和SIP。H.323只能通过TCP接入IP网络,而SIP可以同时通过TCP或UDP接入IP网络。绿色方块表示支持实时语音会话的媒介引擎和IP协议。黄色方块表示用于数据包传输的MAC/PHY层。我们的重点将放在 SIP、 RTP、 RTCP、 UDP、 TCP、 IP和 GPRS上。
会话发起协议(SIP)是一种信令协议,用于初始化、管理和终止分组网络之间的语音和视频会话。与HTTP 或SMTP类似,SIP也属于文本编码,具有很强的可扩展性。SIP能够进行扩展,以支持各种功能和服务,例如移动服务、与现有电话系统的互操作。SIP网络包括5类逻辑实体。每类实体都具有特定功能,作为客户端(发起请求)或服务器(响应请求)参与SIP通信,或者同时以两种身份参与通信。这5类实体是:用户代理、代理服务器、重定向服务器、注册服务器和背靠背用户代理(B2BUA)。VoIP电话应该是用户代理,因为它是端点实体。
注意,在呼叫过程中,SIP不参与语音/视频编码/解码,而只是为语音/视频谈话建立/终止一次会话。一旦建立会话,语音就由适当类型的编解码器(如GSM AMR)进行编码,然后在RTP/UDP/IP中打包。在这里,RTP代表Real Time Protocol(实时协议),UDP代表User Datagram Protocol(用户数据报协议),IP代表Internet Protocol(互联网协议)。如需了解更多信息,请咨询IETF。
该协议的公布名称为RFC3261。所有SIP消息分为3个部分:
·起始行
·报头
·消息本体
所有SIP消息的开头都是起始行。起始行说明了消息类型(在请求情况下,消息为方法类型,在响应情况下,消息为响应代码)和协议版本。报头字段包含了信息属性,这些属性可以提供更多信息。报头的格式为:<name>:<value>。报头可以横跨多行。一些SIP报头,例如Via、Contact、 Route 和 Record Route可能在一条消息中出现多次,或者也可能在一个报头中提供多个值,以逗号分隔。
消息本体用于描述将要发起的会话,它可能出现在请求和响应消息中。
一旦在网络上建立会话,实时语音数据就会通过RTP/RTCP、UDP 和 IP发送。 这些协议分别在RFC 3550、768和 791 中进行了定义。
RFC 3550指定了为具有实时特征的数据(例如互动音频和视频)提供端到端传送服务的实时传输协议(RTP)。这些服务包括:净负荷类型识别、顺序编号、时间戳和传送监控。这些应用通常在UDP的顶层上运行RTP,以利用它的多路复用和校验和服务。注意,RTP本身不提供任何机制来确保实时传送,也不提供其它服务质量保证,而是依靠较低层的服务来实现这些目标。它不能保证传送和防止无序传送,也不能确保底层是可靠的,能够按照顺序传送数据包。根据RTP中包含的序列号,接收方能够重建发送者的数据包顺序。
RFC3550还规定,RTP控制协议(RTCP)应该监控服务质量,并传输关于当前会话参与者的信息。
UDP (RFC768) 代表用户数据报协议(User Datagram Protocol),假定使用互联网协议作为底层协议。该协议为应用程序提供了一个将消息传送到其它程序的流程,只需很少的协议机制。该协议是面向事务处理的,不保证提供传送和复制保护。如果应用需要可靠、有序的数据流传送,应使用传输控制协议(TCP)。
互联网协议(RFC791、IPv4)实施两种基本功能:寻址和分割。IP使用报头中的地址,将互联网数据报传送到目的地。选择传输路径的过程称为路由。当需要通过“小数据包”网络传输时,它还使用报头中的字段,对互联网数据报进行分割和重组。此外,这些IP模块(特别是网关中的模块)拥有执行路由决策和其它功能的程序。
互联网协议将互联网数据报当作一个独立实体处理,与其它任何互联网数据报无关。没有连接或逻辑电路。在提供服务时,它使用四种主要机制:服务类型、生存时间、选项、报头校验和。
“MOS”列为“Mean Opinion Score”(主观平均得分),用于度量语音质量。得分越高,表明质量越好。
本项目的目的是在飞思卡尔i.250 2.5G 平台上增加VoIP over GPRS功能。该平台上的基带处理器Neptune LTE 带有双核,ARM7运行VRTXmc OS 和 16 位Onyx DSP。时钟频率分别为52MHz 和130MHz。与通常在 200MHz频率下运行的其它应用处理器相比, Neptune LTE 的处理功率是一个限制因素,影响我们对支持的编解码器的选择。在本项目中,我们实施的GSM-AMR主要用于演示用途,因为现有平台支持AMR 编解码器,并且已经采用了DSP代码。
系统架构
图2显示了飞思卡尔 i.250 2.5G 平台上的VoIP over GPRS模块图。VoIP 应用是整个VoIP over GPRS系统的核心控制部分。它包含了一个状态机,用于控制不同模块流和初始化流程。通过人机界面 (MMI)通信,用户能够向对等实体发出VoIP呼叫。
网络传输服务提供商目前对用户是透明的。
网络传输引擎包括:RTP/RTCP堆栈、SIP堆栈、抖动控制堆栈等。SIP负责包括呼叫建立程序的呼叫控制协议。RTP/RTCP堆栈是实时流协议和实时流控制协议,通过网络传送实时数据。
抖动控制堆栈负责处理网络延迟,确保接收数据包的正确顺序。
多媒体引擎(MME)经过修改,用于管理VoIP的全双工语音信道。
网络传输的数据流通过数据流服务提供商(DFSP)传输到GSM堆栈。在该堆栈中,子网相关收敛协议(SNDCP)处理分组交换数据。
蓝色方块表示现有平台的新应用,包括网络传输协议、核心控制VoIP应用。由于支持GPRS功能的每部移动电话都应该带有TCP/UDP IP堆栈,因而只需重复使用现有堆栈,而无需重新实施。注意,所有新模块都是软件。不需要其它硬件。
在i.250 2.5G平台中,基带处理器带有双核,一个为ARM7 MCU,另一个为Onyx-lite DSP。GPRS L1活动和语音编解码器计算工作都在DSP中完成,这有助于减少MCU的MIPS要求,在一个运行ARM7的平台上实现 VoIP over GPRS功能。与此相反,一些现有解决方案通常需要至少一个ARM9 ,甚至ARM11 MCU。
MDI是MCU DSP接口,可以实现双方之间的通信。
一旦与对方建立了呼叫,上行链路的运行方式如下:
1. Mic 检测到语音,并将其转换成电信号。
2. DSP对音频信号进行编码,转换为AMR格式。
3. DSP将编码后的ARM语音帧放入MDI音频队列中。
4. MME从MDI音频队列提取编码的ARM语音帧,然后执行一定类型的流量控制和缓冲。MDI报头删除,传送到RTP堆栈中。
5. RTP堆栈添加RTP报头,构建RTP净负荷,然后发送到DFSP。
6. DFSP触发UDP/IP堆栈,添加IP报头,并传送到GSM堆栈。
7. GSM堆栈控制GPRS信令和调度,通过DSP中的MDI、L1和空中接口将GPRS数据包发送到基站。
下行链路的运行方式与上述流程相反,但需要添加抖动控制模块,以调节不可靠的数据包接收时间。
设计局限
在运行RTOS的低成本平台上实施VoIP over GPRS是非常困难的。智能电话通常运行开放式操作系统,例如Linux、Window CE 或 Symbian OS,而低成本的 i.250 2.5G 平台则在专有RTOS系统上运行,所需的内存容量较低。坦白地说,它的软件开发支持不及那些开放式操作系统。我们可以很容易地在网络上找到开放式操作系统的技术论坛和知识中心,进行技术共享。而互联网上提供的代码样品通常只在开放式操作系统上运行,我们不能将这些代码直接移植到专有RTOS系统上。此外,我们还需要耗费大量精力来重新编写代码,以提高内存使用效率,最大程度地缩短代码,由此增加了编写代码的难度和时间。
此外,在 i.250 2.5G平台上的 RTOS系统中,我们使用的多任务机制与开放式操作系统中的多任务机制是完全不同的。Linux 或Window CE使用“线程”概念来处理多个任务,而专有RTOS则使用“任务切换”概念。在多线程环境中,当需要新应用程序时,用户只需创建一个线程,运行该应用程序的代码。不同线程同时运行,各自完成自己的任务,但彼此能够看到对方。所有资源共享机制都由操作系统管理。而在任务切换RTOS机制中,代码开发人员需要牢记一点:有很多其它任务也在同时运行。任务切换只能在功能进入点/退出点或中断时进行。因此,他们必须将代码划分成更小片断,以防止应用程序长期占用资源。在编写嵌入式RTOS系统上的代码时,应该使用特殊的技术。
另一个限制是双方传输的延迟。我们知道,GPRS和互联网是为数据传输设计的,数据包传输路径是随意选择的。不能保证数据包能够成功地传送到目的地,并按照发送端的顺序接收。要将收到的数据包重新排列成正确顺序,应在接收端实施抖动控制。实现方式是:将接收到的一些数据包保存在缓冲区中,然后根据它们的时间戳重新排列序。缓冲区容量越大,抖动控制性能就越好。但是,该过程会导致音频路径的延迟,再加上GPRS和互联网的固有延迟,总延迟时间长达几秒。设计者应当优化电话软件中的音频延迟路径,或者实施某些类型的服务质量控制协议,以确保质量。
原型的验证
上述的RTOS系统是在i.250 2.5G 平台上实施的。为了进行演示,这里的移动电话的IP地址固定不变。图3介绍了设备设置和连接过程。
首先,在接通电源后,用户只需按下“**”就能注册登录到代理服务器。代理服务器维持一个数据库,列出所有用户名和内容信息。只需通过GPRS网络将SIP注册消息发送到服务器,即可完成注册。同时,电话软件激活GPRS连接,获取GPRS网络分配的IP地址,并且打开传输和接收数据的逻辑路径。如果不激活GPRS连接,DUT身份对公用网络就是不可知的,因而不能接到来电。代理服务器只存在于设置过程。
由于代理服务器被用作中间代理,主叫人应向代理服务器IP发送呼叫请求。然后,服务器将查询数据库,获得被叫方位置,再将请求转发到被叫方。本演示利用两个Agilent 8960 ,将GRPS实验室应用测试集用作媒介,将 i.250 2.5G 开发板卡 (ADS板卡)连接到互联网。ADS板卡在接通电源时,注册登录到GPRS网络,测试集然后通过路由器连接到互联网。测试集充当连接到GPRS的DUT的桥梁,让它们接入互联网。一旦GPRS上下文激活,测试集将为ADS分配一个固定IP地址。此外,在PC上运行的代理服务器也连接到同一个路由器。通过这种安排,确保三个实体都能在同一网段内运行。这样就能对同一个网段内的分组流量进行监控,用于开发目的。
按照图3的设置过程,2个i.250 2.5G 开发板之间能够成功建立VoIP呼叫连接。图4对详细的呼叫流程进行了介绍。
结语
VoIP变得日益普及,通常与以太网或WLAN集成。在本文中,我们介绍了GPRS的使用和优势,并将其与其它无线技术进行了比较。经济高效的VoIP over GPRS 解决方案的设计会受到大量限制,包括MIPS和RTOS的局限。但是,通过VoIP over GPRS 解决方案的详细设计,我们在低成本的飞思卡尔 i.250 2.5G平台上建立了概念验证原型,并在实验室进行了验证。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。