嵌入式系统中SIP协议在V0IP的应用及实现

2016-10-13 10:42:26常海滨
电子设计工程 2016年10期
关键词:代理服务器信令网关

常海滨

(陕西学前师范学院陕西西安710100)

嵌入式系统中SIP协议在V0IP的应用及实现

常海滨

(陕西学前师范学院陕西西安710100)

VOIP(Voice over IP)技术可以将传统电信语音信号在IP网上传输,通过互联网连接不同地理位置的网关,实现传统语音通话网络与IP网络的资源共享。为了实现传统语音通信网络与IP网的互联,各网关之间需要使用SIP协议完成传统语音通信中需要的信令传递。针对VOIP技术中对SIP协议应用的需求,文中研究了SIP协议的框架和编程实现方案。通过搭建基于SIP协议的VOIP通信系统,并重点实现使用SIP协议进行用户代理的建立和断开功能,从而介绍了在VOIP通信系统中SIP协议的基本原理和实现方法。文中介绍了一个基于ARM嵌入式系统的SIP语音网关信令处理部分的设计与实现。本系统运行在1inux2.6版本的嵌入式操作系统中。在S3C2440核心处理器的开发板中,编译并移植整个SIP协议库。编写SIP协议应用软件,完成传统语音通信网络在IP网络传输中所需要的控制过程。经过测试,本文所设计的SIP用户代理(SIP UA)实现了建立会话、维护会话和终止会话等信令控制功能。

VOIP;SIP;ARM;嵌入式1inux;语音网关

随着互联网的普及,一种可以通过IP网络传输语音、视频等业务的VoIP技术迅速发展,而且广泛应用于传统电信网络与IP网络结合的各种场合。VOIP是建立在IP技术基础上的分组化、数字化传输技术,其基本原理是通过语音压缩算法对话音进行压缩编码处理。然后把这些语音数据按IP等相关协议进行打包,经IP网络把数据包传输到目的地,再把这些语音数据包串起来,经过解码解压处理恢复成原来的语音信号,从而达到由IP网络传送话音的目的。

各个网关之间互联形成一个voip通信系统,这不仅要求有着高可靠性的语音传输能力,还需要有自己的控制信令,实现各个终端的链接。本文在一个基于ARM9的嵌入式系统中,通过移植嵌入式1inux操作系统完成对网络功能的支持,并通过使用SIP协议来完成对网络的控制。SIP(Session Initiation Protoco1,会话初始协议)是IETF提出来的用来建立、维护和终止多媒体会话的应用层协议,主要完成用户定位,用户支持媒体类型协商,呼叫建立和呼叫维护等功能。它继承了互联网协议的设计理念,与H.323协议相比,具有简单灵活,便于扩展的特点。控制信号的同步传输技术主要是信令的解析,一般用SIP会话初始协议实现而且SIP协议还可以封装SDP会话描述协议实现媒体流的协商,尤其适用于多媒体信号的传输[1_2]。

1 SIP呼叫流程

SIP会话的建立方式主要有无网络服务器模式和代理服务器模式两类。下面主要介绍无网络服务器模式的呼叫流程[3]。

1)无网络服务器模式

在无网络服务器模式下,UAC向UAS直接呼叫,双方都知道最放的IP地址和端口,并存于本机内。假设A想给B打电话,呼叫流程如图1所示,具体描述如下:

A向B发送INVITE呼叫请求,A必须知道B的具体URL,例如:B@192.168.0.114:5060

B的UAS在收到来自A的INVITE请求后振铃,通知B有呼叫请求,并发送180 Ringing响应信息给A。

B接听电话的同时向A发送200 OK响应,表明B已经接听呼叫,并准备好建立语音通话。

A收到B的200 OK响应后,发送ACK确认,表明已经准备好语音通话。至此,呼叫双方的通道建立,A和B开始通话。

B想终止会话,他的UAS向A发送BYE请求。

A收到B的BYE请求后,回复200 OK响应向B确认,通话结束。

图1 无网络服务器模式呼叫流程

2)代理服务器模式

代理服务器模式是基于无服务器模式基础上的,让主机与从机都存储服务器的IP和端口,组成两对无服务器模式机制。现在假设A和B分别在两个不同的局域网中,并且都已向所在域的位置服务器注册。A的URL为A@at1anta.com,该域的SIP代理服务器为proxy.at1anta.com。B的URL为B@newyork. com,该域的SIP代理服务器为proxy.newyork.com。A呼叫B的呼叫流程如图2所示。

2 协议栈移植

嵌入式平台的资源一般比较有限,不是协议栈中的每个功能都支持。为了在嵌入式平台上使用各开源协议栈,首先要进行协议栈的移植。移植的主要工作是对协议栈进行交叉编译和裁剪。各协议栈的版本为:1ibosip2_2.2.2、ortp_0.7.0、1ibeXosip2_1.9.1_pre16。下面是各个协议栈的交叉编译过程[4_5]:

交叉编译osip2:

./configure__host=arm_1inux__target=arm_1inux__ disab1e_static

make

make insta11

交叉编译eXosip:

./configure__host=arm_1inux__target=arm_1inux__ disab1e_static

__disab1e_g1ib__with_osip=/usr/1oca1__diab1e_josua

make

make insta11

下面介绍各个参数的作用:

__with_osip=/usr/1oca1来指定osip2所在的位置。因为eXosip是osip2的扩展协议栈,所以eXosip的交叉编译必须在osip2的基础上进行,而且osip2的交叉编译必须在eXosip的交叉编译之前。

__diab1e_josua参数裁剪掉了eXosip中SIP用户代理josua的部分。

这是因为josua的交叉编译要求严格,版本不匹配等细节都会导致编译失败,且josua是一个完整的SIP用户代理例子占用空间大而且对开发而言不是必须的。

交叉编译完成后,在默认目录/usr/1oca1下面有各协议栈的库文件,头文件等。最后将相应的库文件挂载到开发平台上即可使用。

图2 代理服务器模式呼叫流程

3 模块实现

SIP信令模块分为SIP用户代理客户端和SIP用户代理服务器端。SIP用户代理客户端的主要功能是:发起呼叫,媒体流协商,终止会话和主叫用户接口。SIP用户代理服务器端的主要功能是:接听呼叫,终止会话,媒体流协商,呼叫错误处理。

SIP用户代理客户端的流程如图3所示[6]。

SIP用户代理客户端的主要代码如下:

eXosip_ca11_bui1d_initia1_invite(&invite,dest_ca11,source_ca11,NULL,″This is a ca11 invite″)j

osip_message_set_body(invite,tmp,str1en(tmp))j

osip_message_set_content_type(invite,″app1ication/spy″)j

eXosip_ca11_send_initia1_invite(invite)j

SIP用户代理服务器端的流程如图4所示。

SIP用户代理服务器端的主要代码如下:

je=eXosip_event_wait(0,200)j

图3 SIP用户代理客户端流程

图4 SIP用服务器端程序流程

4 SIP信令模块测试

SIP信令模块测试,主要针对语音中继网关的基本呼叫流程和媒体流协商进行测试,重点集中在验证SIP信令过程的有效控制,即事务状态机对SIP信令过程的解析和验证。测试内容和数据如下:

SIP用户网关的呼叫流程

由A向B发起呼叫(192.168.0.115呼叫192.168.0.114),呼叫建立过程通过Wireshark抓包监测。通过Wireshark实际抓包得到的SIP信令过程如图5所示。

5 结论

图5 SIP信令流程

由图5可见,两个嵌入式网络终端可以根据对方的IP地址和端口完成回话的建立。SIP呼叫建立过程的信令过程完整,符合预期效果。后续可以展开对嵌入式语音网关的后续工作,如底层外部接口驱动和语音通信的改进等下一步工作。

[1]肖勇军,李海标,杨文,等.基于SIP的嵌入式语音网关设计与实现[J].计算机系统应用,2009(8):120_123.

[2]洪斌,王利霞,孙红岭,等.基于ARM和DSP的VoIP网关设计与实现[J].通信技术,2008,41(8):173_178.

[3]王古.基于软交换技术的RoIP网关设计与实现[J].现代电子技术,2010,320(9):72_74.

[4]李振军,曾凌云.嵌入式SIP终端的研究与实现[J].制造业自动化,2011,33(4):141_144.

[5]王庆磊.基于SIP的嵌入式音频传输系统的研究[D].江苏:江南大学,2009.

[6]李洵.基于ARM9的嵌入式SIP终端研究与实现[D].河南:郑州大学,2007.

[7]黄建林,刘国勇,张庆辉,等.一种嵌入式配电网防误方案研究[J].供用电,2015(4):68_71.

[8]范明天,张毅威,张祖平,等.欧洲的智能电网技术标准化工作[J].供用电,2015(3):34_40.

Deslgn and lmPlementatlon of SIP on embedded system of V0IP

CHANG Hai_bing
(Shanxi Xueqian Normal University,Xi'an 710100,China)

VOIP(Voice over IP)techno1ogy can transmit te1ecom signa1s of voice over the Internet in IP,to rea1ize the Internet connection through re1ay gateway in different geographic 1ocations.By this way,traditiona1 te1ecom voice communication network and the IP network can share their resource.In order to achieve traditiona1 te1ecom voice communication network and the IP network,interconnecting gateways with each other via the protoco1 of SIP is essentia1.Most of the subjects studied in this paper focus on how the protoco1 of SIP works in VOIP and how this app1ied.By bui1ding a communication system of VOIP with SIP which wi11 bui1d up and de1ete a session,the princip1e and the imp1ementation is discribed.This artic1e describes a system based on ARM embedded voice gateway SIP protoco1 part of the design and imp1ementation of software.This system runs in an embedded OS of Linux.Based on embedded deve1opment with S3C2440 core,we comp1ete configuration of the SIP,compi1ing the 1ibrary of SIP and writing the app software of SIP.In this way to make the gateways can signa1ing to each other.After testing,the paper designed SIP user agent(SIP UA)to achieve the estab1ishment of a session,maintain and terminate a session the session contro1 functions such as signa1ing,in the session is estab1ished to carry out two_way audio streaming data communication.

VOIPj SIPj ARMj embedded Linuxj voice gateway

TN916

A

1674_6236(2016)10_0094_03

2015_06_02稿件编号:201506033

常海滨(1981—),男,陕西西安人,硕士,讲师。研究方向:信号与信息处理、信息系统设计。

猜你喜欢
代理服务器信令网关
基于改进RPS技术的IPSEC VPN网关设计
SLS字段在七号信令中的运用
移动信令在交通大数据分析中的应用探索
地铁信号系统中代理服务器的设计与实现
IP地址隐藏器
基于信令分析的TD-LTE无线网络应用研究
消费导刊(2017年24期)2018-01-31 01:28:37
LTE网络信令采集数据的分析及探讨
互联网天地(2016年2期)2016-05-04 04:03:21
LTE Small Cell网关及虚拟网关技术研究
移动通信(2015年18期)2015-08-24 07:45:08
应对气候变化需要打通“网关”
太阳能(2015年7期)2015-04-12 06:49:50
一种实时高效的伺服控制网关设计