基于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(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主页看看,他们在国内也有代理