`
javatoyou
  • 浏览: 1096420 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

基于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-pubRFC文档中文翻译计划已将部分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的呼叫建立及相关的扩展功能

主页: http://www.vovida.org/protocols/downloads/sip/

 

 

RTP协议栈(开放源代码)

主页: http://lumumba.luc.ac.be/jori/jrtplib/jrtplib.html

  • ortp: C; 许可: LGPL

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

主页: 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

主页: 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.

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.

A really impressive SIP phone with a lot of features. Can be extended with Java programs, but no free version available.

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协议栈实现的客户端代理源码

    通过深入分析和理解这个“基于sip协议栈实现的客户端代理源码”,开发者可以学习到如何使用SIP协议栈创建自己的VoIP应用,掌握SIP协议的实战运用,这对于在网络通信、实时通信领域工作的人来说是一项宝贵技能。...

    SIGTRAN协议栈 sip voip

    总结来说,SIGTRAN协议栈是VoIP技术的关键组成部分,它使得基于IP的SIP协议能够与SS7协议进行通信,从而推动了电话网络向IP网络的转型,促进了VoIP服务的广泛应用和发展。理解并掌握SIGTRAN、SIP以及VoIP的相关知识...

    基于SIP协议的VoIP终端平台的设计与实现.pdf

    总之,《基于SIP协议的VoIP终端平台的设计与实现》论文不仅详细阐述了基于SIP协议的VoIP终端平台的技术原理和实现过程,还展示了该平台在实际应用中的潜力和优势,为VoIP领域的研究人员和开发者提供了一份宝贵的参考...

    C#的SIP协议栈

    C#的SIP协议栈是专门为.NET开发者设计的一个库,它允许开发人员在C#环境中轻松集成SIP功能,以构建VoIP应用或其他基于SIP的通信系统。 首先,我们需要理解SIP协议的基本原理。SIP是一种基于文本的协议,采用客户端-...

    sip协议栈全套资料

    熟悉SIP协议栈的API能够使开发者更高效地构建基于SIP的IP电话应用。 2. **SIP消息格式**:SIP消息分为请求消息和响应消息,它们都是由首行、头域和可选的消息体组成。请求消息用于发起会话操作,如INVITE(邀请加入...

    Delphi6/7 SIP-0.6协议栈

    在Delphi 6和7这两个版本的集成开发环境中,开发者可以利用SIP协议栈来构建支持VoIP(Voice over Internet Protocol)功能的应用程序。本篇文章将深入探讨Delphi 6/7中的SIP-0.6协议栈,以及如何利用其源代码进行...

    vocal sip协议栈

    vocal sip协议栈不仅包含了SIP的基本功能,还提供了一系列扩展服务,如注册、重定向、会话邀请、媒体控制等,使得开发者能够轻松构建各种基于SIP的VoIP应用。 被思科收购后,vocal sip协议栈得到了更广泛的认可和...

    vocal 资源1.2 sip协议栈

    在"vocal 资源1.2 sip协议栈"中,我们可以看到这是一款专注于语音通信的资源库,版本为1.2,并且与SIP协议的实现紧密相关。1.5.0可能是这个资源的特定版本或者一个重要的更新里程碑。 SIP协议本身是一种基于文本的...

    sip2.zip_3M SIP2_SI_oSIP协议栈_sip_sip协议

    oSIP协议栈通常由多个组件组成,包括消息解析器、事务处理单元、会话管理模块等,这些组件协同工作,使得开发者能够快速构建基于SIP的应用。 "3M SIP2 SI"可能是对oSIP协议栈的增强版或特定配置,其中“3M”可能...

    一个简单得SIP协议栈实现

    总的来说,这个简单的SIP协议栈实现是一个宝贵的教育资源,可以帮助开发者理解SIP协议的工作原理,同时为开发实际的VoIP应用打下基础。通过深入研究,你可以提升在网络通信和多媒体应用开发方面的能力。

    基于SIP及WebSocket的VoIP电话呼叫技术.docx

    基于SIP及WebSocket的VoIP电话呼叫技术 通过对基于SIP及WebSocket的VoIP电话呼叫技术的研究,我们可以了解到VoIP电话呼叫中心平台的架构和实现方式。该平台基于SIP和WebSocket协议,使用FreeSWITCH作为电话软交换...

    sofia sip协议栈

    这个协议栈基于SIP(Session Initiation Protocol),一个用于控制多媒体通信会话(如语音和视频通话)的互联网标准协议。SIP在现代通信网络中扮演着核心角色,它允许用户发起、修改和终止多媒体会话。 sofia-sip的...

    java sip 协议栈实现客户端和服务

    Java Sip 协议栈是用于实现VoIP(Voice over IP)和其他实时通信服务的核心组件。SIP(Session Initiation Protocol)是一种应用层控制协议,主要用于建立、修改和终止多媒体会话,如语音通话、视频会议等。在这个...

    简单的基于SIP协议的VOIP软电话程序 VS2005

    在这个项目中,开发者使用了第三方的SIP协议栈,这可能是一个开源库,如pjsip或linphone-sdk,它们提供了API来简化SIP通信的实现。 2. **用户界面**:用户与软电话交互的界面,通常包括拨号盘、联系人列表、通话...

    SIP 协议栈研究

    ### SIP协议栈研究:关键技术与应用领域 #### 引言 会话初始化协议(Session Initiation Protocol,简称SIP)自其由IETF(Internet Engineering Task Force,互联网工程任务组)发布以来,迅速成为通信与网络领域...

    sip 开发的协议栈

    本篇文章将深入探讨与"SIP开发的协议栈"相关的知识点,特别是围绕osip开发库进行讨论。 1. SIP协议基本概念: SIP是一个基于文本的协议,它使用请求和响应消息来建立、修改、终止多媒体会话。这些会话可以包括电话...

    pjsip 开源sip协议栈

    总的来说,PJSIP作为一个开源的SIP协议栈,为开发者提供了构建VoIP应用的全套解决方案,无论是简单的电话应用还是复杂的多媒体会议系统,都可以基于PJSIP进行开发。通过深入理解和熟练使用PJSIP,开发者可以构建出...

    c++实现的sip协议栈invite流程源码

    本篇将详细解析基于C++实现的SIP协议栈中的Invite流程源码。 首先,我们要了解SIP协议的基本流程,Invite请求是SIP中建立呼叫的核心过程。它通常由呼叫发起者(UAC,User Agent Client)发送给呼叫接收者(UAS,...

Global site tag (gtag.js) - Google Analytics