`
weiyuhu
  • 浏览: 235952 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

基于SIP的VoIP相关协议、协议栈及应用

阅读更多
基于SIP的VoIP相关协议、协议栈及应用

相关协议

SIP(Session Initiation Protocol)协议是IETF多媒体数据和控制体系结构的一个组成部分,是一个基于文本的协议。

SIP协议的出发点是想借鉴Web业务成功的经验,以现有的Internet为基础来构架IP电话业务网,因此SIP有着与H.323完全不同的设计思想。它是一个分散式的协议,它将网络设备的复杂性向网络边缘推,使核心网络仍是一个“Best Effort″的传送通道,这就是SIP系统中核心网络服务器可以不保留状态(stateless)的原因(SIP消息本身含有一个呼叫的所有信息)。因为核心网络服务器需要处理大量的呼叫,不保留每一呼叫的状态,将大大提高系统的处理能力,为组建大规模的IP电话业务网奠定了基础,而边缘网络服务器可以是有状态的(stateful)。这种stateless和stateful结合的模式既可以充分发挥SIP的特点(如用户定位和查找)又保留了Internet无法连接数据传送的设计思路。相对于H.323而言,SIP协议更简单,易于实现,易于扩展以支持智能用户设备和实现一些高级功能,并支持终端的移动性,3GPP已经要求3G的终端设备需要支持SIP协议,因此尽管现在市场上还是H.323的设备占据相当大的份额,但SIP设备前景看好。

SIP主要相关协议有:

RFC3261(2000年发布版本): SIP: Session Initiation Protocol

RFC2543(99年发布版本): SIP: Session Initiation Protocol

SDP: SDP: Session Description Protocol

用于描述呼叫双方媒体信息的协议。

在SIP应用中的Invite方法及其200ok回应以及Options方法中用来描述

RTP负载类型、地址及端口信息

 

相关协议有:

RTP/RTCP协议:

RFC3550(2003年发布,现为标准草案)

RTP: A Transport Protocol for Real-Time Applications
RFC1889(1996年发布)

RTP: A Transport Protocol for Real-Time Applications

RFC1890:

RTP Profile for Audio and Video Conferences with Minimal Control

RFC2833: 描述电话相关的一些信号在RTP上的传输方法

RTP Payload for DTMF Digits, Telephony Tones

and Telephony Signals

RFC3389: 描述在不支持舒适噪音(CN)生成的编码方式上如何传输舒适噪音

Real-time Transport Protocol (RTP) Payload for Comfort Noise (CN)
etc.

 

RTSP协议: Real Time Streaming Protocol (RTSP)

SAP协议: Session Announcement Protocol
 

STUN协议: 用于查询NAT类型的轻量级协议

STUN - Simple Traversal of User Datagram Protocol (UDP)

Through Network Address Translators (NATs)

RFC3235:

Network Address Translator (NAT)-Friendly Application Design Guidelines

 

其它协议见ietf官方主页,可使用IETF rfc搜索引擎进行查询

目前China-pub的RFC文档中文翻译计划已将部分RFC文档翻译为中文。


 

协议栈

SIP协议栈:
dissipate: C++; 许可: GPL
主页:http://www.div8.net/dissipate/

dissipate2: C++; 许可: GPL
主页: http://www.wirlab.net/kphone/

前者的更新版本,是kphone的一部分

GNU osip; C; 许可: LGPL
主页: http://www.gnu.org/software/osip/

即libosip,现在版本已经升为libosip2

GNU eXosip; C; License: GPL
主页: http://savannah.nongnu.org/projects/exosip/

在libosip上提供了一个UA层以控制SIP的呼叫建立及相关的扩展功能

SIP from vovida.org: C++; License: Vovida Software License
主页: http://www.vovida.org/protocols/downloads/sip/

 

 

RTP协议栈(开放源代码)
Common Multimedia Library:来自UCL London; C; 许可: Free
主页:http://www-mice.cs.ucl.ac.uk/multimedia/software/common/

jrtplib: C++; 许可: Free
主页: http://lumumba.luc.ac.be/jori/jrtplib/jrtplib.html

ortp: C; 许可: LGPL
主页: http://www.linphone.org/ortp/; 无RTCP, 是linphone的一部分

GNU ccRTP: C++; 许可: GPL (with linking exception)
主页: http://www.gnu.org/software/ccrtp/

LIVE.COM Streaming Media: C++; 许可: LGPL
主页: http://live.com/liveMedia/

Morgan RTP DirectShow Filters: C++
主页: http://www.morgan-multimedia.com/RTP/; based on liveMedia library

RTP from vovida.org: C++; 许可: Vovida Software License
主页: http://www.vovida.org/protocols/downloads/rtp/

RTPlib: RTP library from Lucent Technologies/Cloumbia University; C
许可: Non-exklusive source code license;

主页: http://www-out.bell-labs.com/project/RTPlib/

librtp: C; 许可: GPL
主页: http://gphone.sourceforge.net/template.php3?page=librtp;

源自 Gnome-o-phone

 

应用

SIP Phone (User Agent, Softphone, Proxy)
Ubiquity User Agent: Java based SIP Client for Windows, very useful, you have to register (free) to get an license
主页: http://www.ubiquity.net/useragent.php

Linphone: A SIP Softphone for Linux (GNOME), needs libosip and oRTP
主页: http://www.linphone.org/

KPhone: A SIP Softphone for Linux (KDE)
主页: http://www.wirlab.net/kphone/index.html

Vovida: Complete SIP Suite for Linux (Uaser Agent, Proxy, ...), very, very big software
主页: Vovida.org

Siphon: Linux SIP Softphone
主页: http://siphon.sourceforge.net/index.html

AVAZ SIP Phone: Cool looking SIP Phone for Windows, crashes very often at my PC, but works well on my friends PC
主页:http://www.avaz.com/products/software/sip/index.html

EZ-Phone (Evaluation Version): SIP Phone for Windows
主页: http://www.hssworld.com/voip/download.htm

MySIP: SIP User Agent from Siemens
主页: http://www.mysip.ch/

MSN Messenger: Microsofts Messenger, Version 4.6 allows also connections to other SIP servers than microsofts one. Nice design, works very well. Can be used with the SIP service of iptel.org.
主页: http://messenger.microsoft.com/; local download of Version 4.6 for Windows NT (2000).

MSN Messenger: Microsofts Messenger, Version 4.7 allows also connections to other SIP servers than microsofts one. Nice design, works very well. Can be used with the SIP service of iptel.org.
主页: http://messenger.microsoft.com/; local download of Version 4.7 for Windows XP.

SJPhone: SIP and H.323 Softphone for Windows, Linux and PocketPC from: http://www.sjlabs.com/products.html.
The configuration for SIP is a little bit tweaky. And there must not be another SIP client running on port 5060 or the SJPhone won't work.

instant xpressa: The software version of the xpressa SIP phone from pingtel: http://www.pingtel.com/appdev.jsp;
A really impressive SIP phone with a lot of features. Can be extended with Java programs, but no free version available.

xphone: A SIP client for Windows and Windows CE, http://xphone.xten.net/.
The beta version is free.

SIPPS: SIP softphone with answering machine and a lot of features, but, IMHO, a not very intuitive user interface, which should be better in the next version (try it yourself).http://www.sippstar.com/en/index.html.
A Demo for testing is available.

 

SIP 应用 (Proxy, Location Server)
Sip Express Router (ser): Highspeed GNU SIP proxy with a lot of features and a lot of ongoing development.
主页: http://www.iptel.org/ser/,开发主页在:development homepage.

Asterisk: Linux Software PBX with Gateway, SIP Proxy, Gateway (SIP, H.323, PSTN, ...)
主页: http://www.asteriskpbx.com/

 

 

SIP测试
sipsak: SIP Swiss Army Knife, very useful test utility (Linux)
主页: http://sipsak.berlios.de/

SIPNess: Ortena Networks SIP Messenger, very useful test utility for windows;
主页: http://www.ortena.com/download.htm





RTP应用
RAT - Robust Audio Tool; Supports a large number of codecs, ... 许可: Free
主页: http://www-mice.cs.ucl.ac.uk/multimedia/software/rat/

JMF - Java Media Framework: Can receive and send RTP streams
主页: http://java.sun.com/products/java-media/jmf/

MP3/RTP Plugin for Winamp:
主页: http://www.live.com/multikit/winamp-plugin.html

Vomit - Voice over Missconfigured Internet Telephones: Plays back captured voice conversation
主页: http://vomit.xtdnet.nl/

RTP Tools: Several RTP utilities from the Columbia University
主页: http://www.cs.columbia.edu/IRT/software/rtptools/

UDP Packet Reflector/Forwarder: A tiny tool which forwards or reflects UDP packets. You can also add delay and packet loss. Very useful if you want to test RTP applications.
主页: http://www.cs.ucl.ac.uk/staff/s.bhatti/teaching/z02/reflector.html. As I was not able to compile this tool I searched and found a binary somewhere in the web. 也可在镜像下载

 

NAT相关

Vocal1.5 from vovida.org增加了对NAT的部分支持,但还需做些修改,并提供了STUN测试工具,可在vovida.org上下载

Ridgeway公司提供VoIP穿越NAT的解决方案,可以去Ridgewaysystems主页看看,他们在国内也有代理
分享到:
评论

相关推荐

    基于SIP协议的音视频的软件开发.pdf

    SIP协议栈的实现包括 SIP 协议栈(如 osip、pjsip)、媒体处理(如 rtp、ffmpeg)和实时传输控制协议(RTCP)等。例如,pjsip是一个开源的SIP协议栈,可用于Linux和Windows平台,支持语音、视频和即时消息等业务。 ...

    一种SIP协议栈的设计与实现方法

    本文提出了一种基于模块化的SIP协议栈设计方案——SipStack,通过对协议栈各组成部分的详细描述,展示了如何通过模块化设计提高协议栈的灵活性和可扩展性,从而更好地服务于多媒体通信领域的应用开发。

    基于SIP 协议的WEB CALL设计与实现

    在本文档中,我们专注于"WebCall ActiveX控件的创建及应用",这是预先研究项目的一部分,旨在实现基于B/S架构的软电话服务。B/S(Browser/Server)模式意味着用户无需安装任何客户端软件,只需通过浏览器就能访问和...

    delphi sip 协议及测试程序

    总之,这个"delphi sip 协议及测试程序"提供了在Delphi环境中实现和测试SIP协议的实例,对于学习和开发基于SIP的VoIP应用具有很高的参考价值。用户可以通过分析源代码和运行测试程序,深入了解SIP协议的工作原理以及...

    sip协议中文版.rar

    这里提到的"sip协议中文版.rar"压缩包包含了多个关于SIP及相关协议的中文文档,以及开源库eXosip的API函数说明。 1. RFC3621(SIP)中文.doc:这是SIP协议的核心文档之一,RFC3621详细定义了SIP的消息结构、语法和...

    基于SIP协议的音视频的软件开发(20210921151509).pdf

    5. **sipXtapi** 和 **sipXecs**:分别是sipXtapi项目中的API和sipXecs企业通信服务器项目,它们都是基于SIP的解决方案。 6. **SIPp**:是一个开源的性能测试工具,用于SIP协议,可用来生成或接收SIP消息,对SIP...

    协议栈 3.1.1.2 及文档

    以下是一些关于SIP协议栈3.1.1.2及SIP工具包的知识点: 1. **SIP协议基础**:SIP是一种基于文本的协议,使用UDP或TCP作为传输层协议。它主要由请求和响应消息组成,用于控制多媒体会话的建立和结束。 2. **SIP架构...

    JAIN SIP实例代码及文档

    **JAIN SIP实例代码及文档**是一份涵盖了JAIN SIP协议栈相关知识的资源集合,主要包含协议栈的JAR文件、详细的协议栈文档以及基于message实现的实例代码。这份资源对于理解并应用SIP(Session Initiation Protocol)...

    Radvision SIP 4.5 编程指导

    Radvision SIP 协议栈是一款功能强大、高度可定制的软件解决方案,用于实现 SIP(Session Initiation Protocol)协议,该协议在 VoIP(Voice over Internet Protocol)通信中扮演着核心角色。 #### Session ...

    oSIP协议栈(及eXoSIP,Ortp等)使用入门1.docx

    总之,oSIP协议栈是构建基于SIP的应用程序的关键工具,而在Windows环境下编译和使用oSIP涉及了设置开发环境、处理库依赖以及理解和应用oSIP的API。通过本文档提供的步骤,开发者可以顺利在Windows上搭建oSIP环境并...

    最完整的OSIP资料及应用实例

    总之,"最完整的OSIP资料及应用实例"是一份宝贵的资源,它涵盖了从基础理论到实际应用的全部知识,是学习和应用SIP技术的不二之选。无论你是初学者还是经验丰富的开发者,都能从中获益,提升你的SIP开发能力。

    sip的入门教程和资料

    它可能涵盖了硬件选型、软件设计、协议栈实现以及实际部署中的问题和解决方案。 ### 学习资源推荐 对于初学者,可以从以下几方面入手学习SIP: 1. **基础理论**: 了解TCP/IP协议栈、会话控制协议的基础概念。 2. ...

    一种基于FPGA的无线网络电话终端的研究.pdf

    8. 开源IP核和软件:使用开源IP核及操作系统、协议栈和编解码算法,可以降低成本并验证设计方案的可行性。 9. FPGA外围硬件设计:研究包括FPGA的IP核设计、外围硬件设计等,对FPGA进行编程使其能够与外部设备,例如...

    osip源代码和资料整理

    OSIP(Open SIP Interface Platform)是一个开源的SIP(Session Initiation Protocol)栈,用于实现VoIP(Voice over IP)和其他基于SIP的应用。本文将深入解析OSIP源代码,并介绍如何在Microsoft Visual C++ 6.0...

    行业分类-设备装置-于无线局域网络存取网际协议多媒体子系统的方法及架构.zip

    《行业分类-设备装置-于无线局域网络存取网际协议多媒体子系统的方法及架构》这个主题涉及到了多个IT领域的关键知识点,包括无线局域网络(WLAN)、网际协议(IP)、多媒体子系统(IMS)以及相关存取方法和架构设计...

    libeXosip2-3.6.0.zip_eXosip2_libeXosi_libeXosip2_libeXosip2-3.6_

    在Linux开发环境中,exosip2是一个备受推崇的开源SIP协议栈,而libeXosip2则是其核心库,为开发者提供了丰富的API接口,便于构建基于SIP的应用。本文将深入探讨libeXosip2-3.6.0版本的相关知识点。 1. exosip2概述...

    安卓开发-sipdroid语音及视频通话.zip

    1. 源代码文件:可能包含Java或Kotlin代码,实现了SIP协议栈和用户界面。 2. 文档:可能是README文件,提供了项目介绍、安装指南、使用方法等信息。 3. 资源文件:如音频和视频的配置文件,以及UI设计的XML文件。 4....

    论文研究-H.323协议穿越NAT的方法研究及实现.pdf

    OpenH.323是一个开源的H.323协议栈实现,它支持VoIP和视频会议应用。而GNUGK是基于H.323协议的,提供认证、注册、路由等网守功能。通过这两个开源工具,作者实现了他们的NAT穿越方案,其中包括修改H.323协议栈和网守...

    exoSip开发手册

    exoSip是一款开源的SIP(Session Initiation Protocol)栈,用于构建VoIP(Voice over Internet Protocol)应用和多媒体通信系统。SIP是一种互联网协议,用于控制多媒体通信会话,如语音和视频通话、即时消息和在线...

Global site tag (gtag.js) - Google Analytics