引言
通过语音传递信息是人类最重要、最常用和最方便的交换信息的形式。语言是人类持有的功能,声音是人类常用的工具,是相互传递信息的最主要的手段。因此,语音是人们构成思想疏通和感情交流的最主要的途径。当我们还在用着普通电话(插电话线)的时候,数字语音电话(简称IP电话)已经走人了每个人的生活。
随着计算机技术和网络技术的发展,语音压缩和实时传输控制技术的不断发展,使得在IP网络上传输语音数据变得不再困难。VoIP就是利用IP网络传送话音的技术,也称网络电话或IP电话。在多媒体技术和网络互连技术的推动下,VoIP技术诞生虽然时间很短,但发展迅猛。同时,随着嵌入式技术的不断发展,嵌入式技术从过去工业控制的应用模式逐步渗透进入消费电子产业。嵌入式VoIP终端作为嵌入式技术与VoIP技术的结合,有着广阔的发展前景。
什么是VoIP
VoIP(Voice over Internet Protocol)简而言之就是将模拟信号(Voice)数字化,以数据封包(Data Packet)的形式在IP网络(IP Network)上做实时传递。VoIP最大的优势是能广泛地采用Internet和全球IP互连的环境,提供比传统业务更多、更好的服务。
---摘自<百度百科>
通俗说VOIP是把话音或传真转换成数据,然后与数据一起共享同一个IP网络(Internet互联网)。 由于话音和传真在Internet上免费搭乘了"顺风车",所以点对点(网关---网关)国际或国内长途通讯是完全免费的(点融网各地分公司通过拨打内部分机号至上海总部内部的电话就是免费的)。
IP网络可以是Internet、IPLC(国际专线)、无线网络等,只要是采用IP协议( Internet Protocol ) 就可以了。VoIP系统就是把传统的电话网与互联网组合搭配在一起使用。
在浩瀚的IP网络中要如何正确的寻找到要通话的对方并建立对答,同时也能依照彼此资料的处理能力来传送语音数据,这中间必须藉由国际电信组织所拟定的标准协议才能达到。如今,市面上的网络电话大致都会遵循VoIP走向的三大主流协定 H.323、MGCP及SIP等3种标准协议。目前产品支持SIP已经渐渐代替H.323成为现在的主流。
什么是SIP
SIP 是 Session Initation Protocol (会话初始协议)的缩写;IETF制订的多媒体通信系统框架协议之一,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。这些会话包括Internet多媒体会议、Internet电话、远程教育以及远程医疗等。即所有的因特网上交互式两方或多方多媒体通信活动,统称为多媒体会话。有关SIP的完整定义最早出现在 1999 年公布的RFC 2543 中;当前SIP详细定义于RFC 3261 (June 2002)。
SIP在网络中的位置
在TCP/IP五层模型中属于应用层协议;在OSI七层模型中属于Session层协议
SIP 单独不能完成多媒体呼叫,必须要与其他协议一起才能组建完整的多媒体通信系统,与RTP/RTCP、SDP、 MGCP 、DNS等协议配合共同完成多媒体会话过程。
SIP的主要消息
SIP消息是基于文本的协议(UTF-8 字符集),与E-mail 和 HTTP类似,便于跟踪和调试。SIP 消息 用于从Client到Server的请求和从Server到Client的响应。
消息分为两类:请求和响应
以下为实例来详解一个完整的呼叫流程。
我们基于以下约定:
SoftX3000A的IP地址为192.169.200.61;
SoftX3000B的IP地址为192.169.100.50;
SoftX3000A控制的SIP PhoneA的电话号码为66600003;
SoftX3000B控制的SIP PhoneB的电话号码为5550045;
SIP PhoneA为主叫、SIP PhoneB为被叫,被叫先挂机。
事件1:SoftX3000A控制的SIP PhoneA摘机,拨打 SoftX3000B控制的SIP PhoneB。SoftX3000A向SoftX3000B发INVITE消息,邀请SoftX3000B加入会话。SoftX3000A还通过INVITE消息的会话描述,将自身的IP地址:192.169.200.61,SIP PhoneA的IP地址:192.169.200.101、端口号:30014、支持的静荷类型、静荷类型对应的编码等信息传送给SoftX3000B。
INVITE sip:5550045@192.169.100.50 SIP/2.0
From: ;tag=64e3f587
To:
CSeq: 1 INVITE
Call-ID: 9e62b921769c9ae546ed4329a3c04182@sx3000
Via: SIP/2.0/UDP 192.169.200.61:5061;branch=z9hG4bKff661c627
Contact:
Supported: 100rel,100rel
Max-Forwards: 70
Allow: INVITE,ACK,CANCEL,OPTIONS,BYE,REGISTER,PRACK,INFO,UPDATE,SUBSCRIBE,NOTIFY,MESSAGE,REFER
Content-Length: 184
Content-Type: application/sdp
v=0
o=HuaweiSoftX3000 1073741831 1073741831 IN IP4 192.169.200.61
s=Sip Call
c=IN IP4 192.169.200.101
t=0 0
m=audio 30014 RTP/AVP 8 0
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
事件2:SoftX3000B给SoftX3000A回100 Trying表示已经接收到请求消息,正在对其进行处理。
SIP/2.0 100 Trying
From: ;tag=64e3f587
To:
CSeq: 1 INVITE
Call-ID: 9e62b921769c9ae546ed4329a3c04182@sx3000
Via: SIP/2.0/UDP 192.169.200.61:5061;branch=z9hG4bKff661c627
Content-Length: 0
事件3:SoftX3000B给SoftX3000A回180 Ringing响应通知SoftX3000A SIP PhoneB已振铃。
SIP/2.0 180 Ringing
From: ;tag=64e3f587
To: ;tag=2dc18caf
CSeq: 1 INVITE
Call-ID: 9e62b921769c9ae546ed4329a3c04182@sx3000
Via: SIP/2.0/UDP 192.169.200.61:5061;branch=z9hG4bKff661c627
Contact:
Content-Length: 0
事件4:SoftX3000B给SoftX3000A回200 OK响应表示其发过来的INVITE请求已经被成功接受、处理。并且通过该消息将自身的IP地址:192.169.100.50,SIP PhoneB的IP地址:192.169.100.71、端口号:40000、支持的静荷类型、静荷类型对应的编码等信息传送给SoftX3000A。
SIP/2.0 200 OK
From: ;tag=64e3f587
To: ;tag=2dc18caf
CSeq: 1 INVITE
Call-ID: 9e62b921769c9ae546ed4329a3c04182@sx3000
Via: SIP/2.0/UDP 192.169.200.61:5061;branch=z9hG4bKff661c627
Contact:
Content-Length: 159
Content-Type: application/sdp
v=0
o=HuaweiSoftX3000 1073741826 1073741826 IN IP4 192.169.100.50
s=Sip Call
c=IN IP4 192.169.100.71
t=0 0
m=audio 40000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
事件5:SoftX3000A发ACK消息给SoftX3000B,证实已经收到SoftX3000B对于INVITE请求的最终响应。
ACK sip:5550045@192.169.100.50:5061;transport=udp SIP/2.0
From: ;tag=64e3f587
To: ;tag=2dc18caf
CSeq: 1 ACK
Call-ID: 9e62b921769c9ae546ed4329a3c04182@sx3000
Via: SIP/2.0/UDP 192.169.200.61:5061;branch=z9hG4bK7d4f55f15
Max-Forwards: 70
Content-Length: 0
事件6:SIP PhoneB挂机,SoftX3000B发BYE请求消息给SoftX3000A,请求结束本次会话。
BYE sip:66600003@192.169.200.61:5061 SIP/2.0
From: ;tag=2dc18caf
To: ;tag=64e3f587
CSeq: 1 BYE
Call-ID: 9e62b921769c9ae546ed4329a3c04182@sx3000
Via: SIP/2.0/UDP 192.169.100.50:5061;branch=z9hG4bK2a292692a
Max-Forwards: 70
Content-Length: 0
事件7:SoftX3000A给SoftX3000B回487响应,表明请求终止。
SIP/2.0 487 Request Terminated
From: ;tag=2dc18caf
To: ;tag=64e3f587
CSeq: 1 BYE
Call-ID: 9e62b921769c9ae546ed4329a3c04182@sx3000
Via: SIP/2.0/UDP 192.169.100.50:5061;branch=z9hG4bK2a292692a
Content-Length: 0
到此,就是最简单的呼叫过程。该过程简单在于两个终端之间没有其它设备,完全的点对点连接,它们之间只需要知道对方 IP 地址即可。
在生活中每天在办公室里都发生例子中相同的过程。
小方法
其实每个人都可以自己建立像SKYPE一样的语音电话。
步骤一:下载一个软件电话(eyebeam、MicroSIP Lite、X-Lite等)。
步骤二:在网上搜索free sip帐号(有些需要注册帐号才能获得sip帐号)
步骤三:根据每个软电话设置步骤将获取的sip帐号填入。
步骤四:设置完成就可以享受免费电话以及免费的国际长途了。
结束语
让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。随着计算机越来越向便携化方向发展,随着计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚而代之以语音输入这样便于使用的、自然的、人性化的输人方式。
作为高科技应用领域的研究热点,语音的研究到产品的开发已经走过了几十个春秋并且取得了长足的进步。它正在直接与办公、交通、金融、公安、商业、旅游等行业的语音咨询与管理.工业生产部门的语声控制,电话、电信系统的自动拨号、辅助控制与查询以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面。可见,语音研究将是一项极具市场价值和挑战性的工作。我们今天进行这一领域的研究与开拓就是要让语音处理技术走人人们的日常生活当中,并不断朝更高目标而努力。
本文作者:江汝栋(点融黑帮),目前就职于点融Infrastructure部门,担任Network Engineer,负责分公司网络事项。爱好足球,是点融足球队守门员。