论文部分内容阅读
VoIP是一种利用IP网络来传输话音的业务,它在为用户提供高质量通话服务的同时还能大大降低用户的通话成本。随着2010年初我国工信部宣布解除对手机Wi-Fi入网的限制,带宽将不再是阻碍移动终端发展的问题,VoIP也以其低廉的价格越来越多的受到用户的青睐。然而近两年来,智能手机平台发展的势头迅猛,由于其性能强劲,可以支持更多更复杂的多媒体业务,这就导致传统的,以单一话音业务为主的VoIP业务已经不再能满足用户的需求,用户更希望能享受到一些高级的业务如视频通话,视频短信所带来的乐趣。因此,基于多领域业务的融合已成为目前VoIP发展的一个重要趋势。出于上述考虑,本文设计并实现了一个小型的VoIP系统。该系统支持位于不同内网用户的P2P语音通话、视频通话及收发视频短信的功能。系统实现主要分为三大部分,即协议的制定,服务器的设计和移动终端功能模块的开发。本文选用Android作为移动终端的操作系统,原因是Android是目前智能手机操作系统中功能最强大,开放性最好的系统,使开发人员可以灵活的根据自己的需求而开发特定的功能。在协议方面,本文采用会话初始协议(SIP)作为呼叫信令,负责建立端到端的通话。在媒体流的传输方面,本文选用H.264作为视频编解码标准,并选用实时传输协议(RTP)负责媒体数据的传输。在防火墙的穿透问题上,本文采用STUN协议(RFC 5389)配合UDP打洞的方法完成NAT的穿透。在服务器的设计方面,本文充分考虑到实际应用中的情况,采用Windows下效率最高的完成端口(ICOP)作为服务器内核来处理大量的并发请求,同时综合使用了BOOST库,设计模式等技术来优化服务器的设计。本文首先对系统结构、用到的工具以及系统设涉及的基本知识做了简单的介绍。然后针对系统中重要环节的实现做了深入的分析并给出了实现方法,这些环节包括,高效的UDP服务器设计方法,NAT的穿透方法以及Android下H.264视频传输的方法。最后本文给出了各个功能模块的实现过程,并展示了实验结果。本文对于在Android系统上开发VoIP业务有一定的借鉴作用。