Chinaunix首页 | 论坛 | 博客
  • 博客访问: 206419
  • 博文数量: 40
  • 博客积分: 945
  • 博客等级: 准尉
  • 技术积分: 395
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 18:45
文章分类
文章存档

2020年(14)

2017年(1)

2013年(1)

2012年(6)

2011年(1)

2010年(7)

2009年(3)

2008年(7)

我的朋友

分类: 系统运维

2008-08-25 13:05:37

IP电话的呼叫过程
  整个IP电话的呼叫流程可分为3部分:连接阶段、通话阶段、拆线阶段。
  (1)建立连接阶段
  在空闲状态下,CPU一直循环检测是否有摘机或其它用户呼入的信号。用户摘机时, CPU检测到摘机信号,就发送拨号音给用户并准备接收用户所拨的电话号码。待号码收齐后,CPU给服务器发送ARP请求,收到服务器的应答后再发送ICMP请求,从服务器的ICMP应答
中获取对端的IP地址及物理地址,然后开始发起呼叫。通过ICMP包送到Ethernet,等待被叫用户回应,如果等待一段时间,用户未回应,说明用户不在或线路故障,给用户送忙音;如果被叫用户回应,就给话筒送回铃音,同时被叫用户一方振铃;若被叫久不摘机,被叫停止振铃,并发ICMP消息给主叫用户拆线,主叫用户收到此消息,送忙音,等待主叫用户挂机;如果被叫用户在规定时间内摘机,则停止送振铃音,并用ICMP应答信号,通知主叫用户,被叫已应答,主叫用户收到此消息,停止送铃音,通话开始。
  (2)通话阶段
  进入通话阶段,主叫用户就开始发送话音数据的IP包。具体过程如下:首先,将编码后的语音数据进行接收,并按照UDP进行封装,再封装成IP包送往Ethernet;同时,将Ethernet Card接收到的语音IP包进行拆包,并按一定节拍将解封语音数据进行解码,从而将被叫用户的话音送到听筒,将话筒的话音送到被叫方。被叫用户在通话阶段与主叫用户通
话阶段所处理的过程完全相同。
  (3)拆线阶段
  当双方通话阶段结束时,如果主叫先挂机,CPU检测了挂机信号,就经被叫方送拆线信号ICMP。被叫方收到此拆线信号,就给被叫方送忙音,提醒被叫方挂机。如果被叫方挂机,就经主叫方送1个释放应答信号,并停止送忙音,这次通话就宣告结束。相反地,如果被叫方先挂机,其处理过程与上面是相同的。1次通话过程结束后,双方进入空闲状态,CPU再进行循环检测是否有摘机以及其它用户呼入的信号,然后重复上面的处理过程。

ICMP模块
  ICMP模块主要实现对电话信令的封装。ICMP包可分为2种:ICMP请求和ICMP应答。ICMP请求包括2种情况:向服务器发送请求获取对方用户的IP地址及物理地址和向对端用户发送请求进行通话连接。相应的ICMP应答也有2种:服务器发送的应答和普通用户的应答。 
  主叫用户与服务器取得联系后,向服务器发送1ICMP请求并等待应答,从服务器的应答中获取对方的IP地址和物理地址,然后再向对端发送1ICMP请求包,从叫用户收到主叫用户的请求,做出应答。ICMP包的格式如图3所示。

 用数据区的第1个字节来标识2种情况:若第1个字节全为零,则在后面的数据区域中可填入IP地址及物理地址。若不全为零,则第1个字节为电话信令。电话信令可以自己定义,按照程控交换机的技术规范,只需要以下一些基本信令即可:(通过观察通话过程,发现只有结束通话时才通过ICMP通知对方说,不可达)

 

阅读(2173) | 评论(0) | 转发(0) |
0

上一篇:NAT穿透

下一篇:DHCP消息格式

给主人留下些什么吧!~~