sip开源库选择

转载自:http://blog.csdn.net/situnan666999/article/details/19117633

目录(?)[+]

下面将详细对比最具有代表性的5个开源项目:OPAL,VOCAL,sipX,ReSIProcate,oSIP

OPAL是Open Phone Abstraction Library,是Openh323的下一个版本,它仍然使用了

Openh323的体系结构,并在其基础上进行扩展,同时实现了SIP,H.323,但在音频和视频的编码和传输部分有较大改动。OPAL初衷设计是包含任何电话通信协议,所以其底层进行了高度的抽象化,所以也能够很容易的支持MGCP,PSTN和将来会出现的协议。不过由于Openh323的最后一个版本还在开发中,所以原本6月发布的OPAL也被推迟,现有的OPAL还非常不完善,BUG也非常多,不过相信以Openh323的开发班底,一定能让OPAL十分优秀。

CVS : :pserver:anonymous@cvs.sourceforge.net:/cvsroot/openh323/opal

Language : C++

VxWorks port : Yes

Win32 port : Yes

Linux port : Yes

Supports RFC 3261 : Yes

Supports RFC 2327 : Yes

Supports RFC 3264 : Yes

Supports RFC 3263 : No

Supports RFC 3515 : Yes

Supports RFC 3262 : No

Supports RFC 3311 : No

TCP : Yes

UDP : Yes

SIZE :  8MB

License : MPL

Document : None

Samples : UA,GK

 

 

VOCAL是vovida.org开发的SIP系统,VOCAL应该是目前功能最完善,使用者最多的开源SIP协议栈了.它不只包括了协议栈,还包括了h323与sip转换网关,对SIP的各种Server的功能支持也非常完善.不过很可惜,不支持windows平台,而且自从vovida被CISCO收购以后就停止了开发,最后的版本是2003年4月的1.5.0。

CVS : :pserver:anonymous@cvs.vovida.org:/cvsroot/vocal

Language : C++

VxWorks port : No

Win32 port : Partial

Linux port : Yes

Supports RFC 3261 : Partial

Supports RFC 2327 : Yes

Supports RFC 3264 :

Supports RFC 3263 :

Supports RFC 3515 : Yes

Supports RFC 3262 :

Supports RFC 3311 :

TCP : Yes

UDP : Yes

SIZE : 6MB

License: Vovida software licencse

Document : Few

Samples : UA,GK,GW

 

 

sipX是一个SIP系统,由SIPFoundry开发。sipX是从reSIProcate分离出来的,sipX除了包括SIP stack外,还包括了sipXphone,sipXproxy,sipXregistry等等...,由它们构成了完整的SIP系统,而且sipx还支持嵌入式系统,各个模块可以按需取舍。不过可惜是几乎没有任何开发文档。

SVN : http://scm.sipfoundry.org/viewsvn/

Language : C++

VxWorks port : Yes

Win32 port : Yes

Linux port : Yes

Supports RFC 3261 : Yes

Supports RFC 2327 : Yes

Supports RFC 3264 : Yes

Supports RFC 3263 : Yes

Supports RFC 3515 : Yes

Supports RFC 3262 : No

Supports RFC 3311 : No

TCP : Yes

UDP : Yes

SIZE : <4 Mb

License : LGPL

Document : None

Samples : UA,GK,GW

 

 

ReSIProcate同样也是由SIPFoundry开发,ReSIProcate最开始起源于Vocal,由于Vocal开始只支持rfc3254,为了支持最新的rfc3261,ReSIProcate诞生了,但现在,ReSIProcate已经成为一个独立SIP协议栈了,它十分稳定,并且很多商业程序都在使用。

SVN : http://scm.sipfoundry.org/viewsvn/resiprocate/main/sip/

Language : C++

VxWorks port : No

Win32 port : Yes

Linux port : Yes

Supports RFC 3261 : Yes

Supports RFC 2327 : Yes

Supports RFC 3264 : Yes

Supports RFC 3263 : Partial

Supports RFC 3515 : Yes

Supports RFC 3262 : No

Supports RFC 3311 : No

TCP : Yes

UDP : Yes

SIZE : < 2.5 Mb

License : Vovida

Document : Few

Samples : None

 

 

oSIP的开发开始于2000年7月,第一个版本在2001年5月发布,到现在已经发展到2.0.9了。它采用ANSI C编写,而且结构简单小巧,所以速度特别快,它并不提供高层的SIP会话控制API,它主要提供一些解析SIP/SDP消息的API和事务处理的状态机,oSIP的作者还开发了基于oSIP的UA lib:exosip和proxy server lib:partysip.

 

Osip2和eXosip协议栈的简析

Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。但缺点也很明显,首先就是可用性差,没有很好的api封装,使得上层应用在调用协议栈时很破碎;其次,只做到了transaction层次的协议过程解析,缺少call、session、dialog等过程的解析,这也增加了使用的难度;再次,缺少线程并发处理的机制,使得它的处理能力有限。

eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。eXosip增加了call、dialog、registration、subscription等过程的解析,使得实用性更强。但是eXosip局限于UA的实现,使得它用于registrar、sip server等应用时极其不容易。另外,它并没有增加线程并发处理的机制。而且只实现了音频支持,缺少对视频和其它数据格式的支持。

综合来说,Osip2加上eXosip协议栈仍然是个实现Sip协议不错的选择。当然需要根据不同的需求来增加更多的内容。

 

 

CVS : :ext:anoncvs@savannah.gnu.org:/cvsroot/osip

Language : C

VxWorks port : Yes

Win32 port : Yes

Linux port : Yes

Supports RFC 3261 : Yes

Supports RFC 2327 : Yes

Supports RFC 3264 : Yes

Supports RFC 3263 : Yes

Supports RFC 3515 : No

Supports RFC 3262 : No

Supports RFC 3311 : Yes

TCP : Yes

UDP : Yes

SIZE : 400kb

License : LGPL

Samples : UA,GK

综合上述评测,可以看出5种SIP协议栈各有千秋,OPAL有发展潜力,VOCAL比较完善,sipX兼容性好,ReSIProcate教稳定,oSIP小巧而快速。所以要根据应用的不同选择恰当的协议栈进行研究开发。

 

 

最后提交一下,老外选择文档:

When a body of independent auditors and expertsrecommended that the State of California consider open-source software and Voice over Internet Protocol telephony (VoIP) as two measures to cut costs in 2004, that was the signal that open source and VoIP should unite. After all, what’s better than free software? Open source projects in other fields like medicine have revolutionized the toolsused in ultrasoundx-rayssurgeryradiologyand even data. Why can’t the same happen with communications? (Hint: it can.) Open source is better, because you have access to the code. What’s better than open source? Open source that’s focused on VoIP. That’s what you get here — 74 open source apps tucked into categories that you can use “as is” or change to fit your specific VoIP needs.

The following apps and resources are categorized by SIP, H.323, IAX, and RTP protocols and include clients, libraries, gatekeepers, and any other open source resource available for those specific protocols plus PBX and IVR platforms. You’ll also find tools like faxwarevoicemail apps, and middleware that applies to one or more of the previously mentioned protocols.

H.323 Clients (User Agents)

VoIP traditionally uses H.323, a rather complicated protocol that uses multiple ports and a binary code for data. But apps like FreeSWITCH make H.323 seem like a piece of cake with its all-in-one application. The following H.323 clients are broken down into Multiplatform, Linux, MacOS X, and Windows.

Multiplatform

  1. FreeSWITCH – FreeSWITCH is a telephony platform designed to facilitate the creation of voice and chat driven products scaling from a soft-phone up to a soft-switch. It can be used as a simple switching engine, a media gateway or a media server to host IVR applications using simple scripts or XML to control the callflow. FreeSWITCH runs on several operating systems including Windows, Max OS X, Linux, BSD, and Solaris on both 32- and 64- bit platforms. Note: FreeSWITCH is also multiprotocol, as it works with SIP, IAX2 and GoogleTalk to make it easy to interface with other open source PBX systems.
  2. YATE – Yate (Yet Another Telephony Engine) is a next-generation telephony engine that is the first open source telephony application capable of handling 600 H323 calls; while currently focused on Voice over Internet Protocol (VoIP) and PSTN, its power lies in its ability to be easily extended. Voice, video, data and instant messaging can all be unified under Yate’s flexible routing engine, maximizing communications efficiency and minimizing infrastructure costs for businesses. YATE can be used for anything from a VoIP server to an IVR engine. The software is written in C++ and it supports scripting in various programming languages (such as those supported by the currently implemented embedded PHP, Python and Perl interpreters) and even any Unix shell. Note: YATE is multiprotocol, as it works with SIP and IAX, and H.323 protocol is stable supported just by Yate. The most used application of Yate is as a SIP-H323 translator because is the only open source stable translator.

Linux

  1. Ekiga – Ekiga (formely known as GnomeMeeting) is an open source VoIP and video conferencing application forGNOMENote: Ekiga uses both the H.323 and SIP protocols. It supports many audio and video codecs, and is interoperable with other SIP compliant software and also with Microsoft NetMeeting.

MacOS X

  1. XMeeting – XMeeting is the first H.323 compatible video conferencing client for Mac OS X.

Windows

  1. OpenH323 Project – The OpenH323 project aims to create a full featured, interoperable implementation of the ITU-T H.323 teleconferencing protocol that can be used by personal developers and by commercial users without charge.
H.323 Gatekeeper
  1. OpenH323 Gatekeeper – The GNU Gatekeeper (GnuGk) is a full featured cross-platform H.323 gatekeeper, available freely under GPL license.
H.232 Radius Platform
  1. BSDRadius – While there are quite large number of Radius servers (including free) available in the world, little number of them (if any) are developed with VoIP specific needs in mind. BSDRadius is a RADIUS – compliant AAA (Authentication, Authorization, Accounting) server with CHAP-password authentication for H.323. Platform-independent, but has not been tested on Windows.
SIP Clients (User Agents)

SIP (Session Initiation Protocol) is currently described by the rfc2543 SIP is a popular open standard replacement from IETF (Internet Engineering TasForce) for H.323 signaling standard for managing multimedia session initiation. SIP can be used to initiate voice, video and multimedia sessions, for both interactive applications (e.g. an IP phone call or a videoconference) and not interactive ones (e.g. a Video Streaming). It is the more promising candidate as call setup signaling for the present day and future IP based telephony services, as it has been also proposed for session initiation related uses, such as for messaging, gaming, etc.SIP needs two ports, one for the command exchange and one for the RTP stream which contains the voice. It’s easier to work with firewalls than H.323, but you still need to have a proxy running. The following SIP UAs are divided into two groups for Multiplatform and Linux only:

Multi-Platform

  1. SFLphone – A nifty little default skin (Metal Gear) for SFLphone holds a multi-protocol (SIP/IAX) multi-GUI desktop VoIP phone for use in Desktop environments. The project is being developed on Linux, but should (“and must”) be portable to various flavors of BSD operating systems (and maybe win32) with some involvement.
  2. Linphone – With linphone you can communicate freely with people over the internet, with voice, video, and text instant messaging. Linphone is stable under Linux, but FreeBSD and OpenBSD are reported to work.
  3. Minisip – Minisip was developed by Ph.D and Master students at the Royal Institute of Technology (KTH, Stockholm, Sweden). It can be used to make phone calls, instant message and videocalls to your buddies connected to the same SIP network. Runs on multiple Operating Systems (Linux PC, Linux familiar IPAQ PDA, Windows XP and soon Windows Mobile 2003 SE).
  4. OpenWengo – The flagship product of the OpenWengo project is a softphone which allows you to make free PC to PC video and voice calls, and to integrate all your IM contacts in one place. Through their partnership withWengo, they also offer very cheap PC to telephone and SMS rates. Available for Linux, MacOSX, and Windows.
  5. PhoneGaim – Make phone calls to your friends and family directly from your Linspire computer with the latest software from Linspire. PhoneGaim is built right into Gaim.
  6. sipXtapi – sipXtapi is a comprehensive client library and software development kit (SDK) for SIP-based user agents. It includes SIP signaling support as well as a media framework. A complete and very feature rich softphone can be built easily by adding a graphical user interface on top of sipXtapi. Alternatively, sipXtapi was engineered to be embedded into existing applications adding real-time communications to such applications. sipXtapi is primarily developed under WIN32; however, sipXtapi can be built and used under Linux and MacOs X. WinCE support is in development.
  7. OpenZoep – OpenZoep (pronounced “open soup”), developed by Voipster, is a client-side telephony and instant messaging (IM) communications engine. It supports computer-to-computer (peer-to-peer) VoIP calls, instant messaging, and outbound PSTN and SIP calls to free and premium SIP providers.

Linux

  1. Cockatoo – Cockatoo is a project that focuses on implementing SIP/SIMPLE as an extension for Thunderbird (XPCOM component/XUL interface) that enables users to phone contacts from an address book and see their presence state. Functionalities are included into Thunderbird as an XPCOM component.
  2. YeaPhone – The goal of the YeaPhone project is to bring VoIP-Software together with the Yealink USB handset(USB-P1K) and at the same time make a PC keyboard and monitor unnecessary. This makes YeaPhone ideal for “Embedded Devices” as these do typically need extra devices for user interaction (in this case the handset) while working very energy efficient.
  3. Twinkle – Twinkle is a soft phone for your voice over IP communications using the SIP protocol. You can use it for direct IP phone to IP phone communication or in a network using a SIP proxy to route your calls.

Windows

  1. 1videoConference – 1VideoConference allows its Web, Audio/ Video phone, Skype, Msn and Yahoo users to instantly participate in live web conferences without the need for lengthy downloads or complicated installations. Simply drop a small piece of code onto your website and instantly create an online video conference room. All you need is a web cam and an internet connection and seconds later you can show presentations, share applications or users’ desktops, hold live webinars, discuss new strategies face to face with business partners, and more…
SIP Proxies
  1. Open Source SIP – Open Source SIP was created in March 2006 as a project to foster the development of commercially viable SIP applications. The Open Source SIP project is sponsored by Solegy, and draws on over six years of research and development.
  2. Partysip – Partysip is a modular application where some capabilities are added and removed through GPL plugins. Depending on the list of included plugins, partysip can be used as a SIP registrar, a SIP redirect server or statefull server, or a SIP service provider (game session, answering machine, etc.).
  3. MjSip – MjSip is a complete java-based implementation of a SIP stack that provides API and implementation bound together into one package. The MjSip stack has been used in research activities by Dpt. of Information Engineering at University of Parma and by DIE – University of Roma “Tor Vergata”. MjSip includes all classes and methods for creating SIP-based applications.
  4. OpenSER – OpenSER is an open source GPL project that aims to develop a robust and scalable SIP server. Spawned from FhG FOKUS SIP Express Router (SER) by two core developers and one main contributor of SER, OpenSER promotes a development strategy open for contributions.
  5. SIP Express Router – SIP Express Router (ser) is a high-performance, configurable, free SIP server. It can act as registrar, proxy or redirect server. SER features an application-server interface, presence support, SMS gateway, SIMPLE2Jabber gateway, RADIUS/syslog accounting and authorization, server status monitoring, FCP security, etc. Web-based user provisioning, serweb, available.
  6. Siproxd – Siprox is an proxy/masquerading daemon for the SIP protocol that handles registrations of SIP clients on a private IP network and performs rewriting of the SIP message bodies to make SIP connections possible via an masquerading firewall. It allows SIP clients (like kphone, linphone) to work behind an IP masquerading firewall or router.
SIP Protocol Stacks and Libraries
  1. OpenSIPStack – The OpenSIPStack Library is an implementation of the Session Initiation Protocol as described in RFC 3261. The primary goal of the library is to provide application developers with a fully compliant interface to the SIP protocol with scalability and stability in mind. The OpenSIPStack Library has both low level interface and high level interface ideal for use in SIP Proxies, Presence Servers, Softphones and Instant Messaging clients.
  2. The GNU oSIP Library – This library aims to provide multimedia and telecom software developers an easy and powerful interface to initiate and control SIP based sessions in their applications.
  3. The eXtended osip Library – eXosip is a library that hides the complexity of using the SIP protocol for mutlimedia session establishment. This protocol is mainly to be used by VoIP telephony applications (endpoints or conference server) but might be also usefull for any application that wish to establish sessions like multiplayer games.
  4. Vovida SIP Stack – The version is not supported on Win32 platforms, although some community members have shown interest in Windows port.
  5. reSIProcate – The reSIProcate project is part of the SIPfoundry community. The project aims at building a freely available, completely standards based and complete reference implementation of a SIP stack including an easy to use application layer API. The reSIProcate stack is currently used in several commercial products and is very stable.
  6. Twisted – Twisted Matrix Laboratories is a distributed group of open-source developers working on Twisted, an event-driven networking framework written in Python and licensed under the LGPL. Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols (including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more.
  7. PJSIP – The PJSIP.ORG website is the home of PJSIP and PJMEDIA, the Open Source, high performance, small footprint SIP and media stack written in C language for building embedded/non-embedded VoIP applications. PJSIP is built on top of PJLIB, and since PJLIB is a very very portable library, basically PJSIP can run on any platforms where PJLIB are ported (including platforms where normally it would be hard to port existing programs to, such as Symbian and some custom OSes).
SIP Test Tools

The following tools basically test SIP applications and devices, but each one is different in how it tests the protocols and in their focuses and additional applications:

  1. Callflow – Callflow is a collection of awk and shell scripts that will capture a file that can be read by ethereal and that will produce a callflow sequence diagram. The scripts have been primarily tested with SIP call flows, but should work for other network traffic as well. You can view callflow.svg with the Adobe SVG plugin, or you can view index.html with any web browser. The Callflow directive is a clean little script complete with a “to-do” list that you can play with.
  2. SipBomber 0.8 – SipBomber is an invaluable sip-protocol testing tool for Linux originally developed by Metalink in 2003 for internal use. It was later released as a GPL open source product.
  3. SIP Proxy – With SIP Proxy you will have the opportunity to eavesdrop and manipulate SIP traffic. Furthermore, predefined security test cases can be executed to find weak spots in VoIP devices.
  4. sipsak – sipsak is a small command line tool for developers and administrators of Session Initiation Protocol (SIP) applications. It can be used for some simple tests on SIP applications and devices.
  5. SIPp – SIPp is a test tool / traffic generator for the SIP protocol. It includes a few basic SipStone user agent scenarios (UAC and UAS) and establishes and releases multiple calls with the INVITE and BYE methods. It can also reads custom XML scenario files describing from very simple to complex call flows. It features the dynamic display of statistics about running tests (call rate, round trip delay, and message statistics), periodic CSV statistics dumps, TCP and UDP over multiple socket or multiplexed with retransmission management and dynamically adjustable call rates.
  6. PROTOS Test-Suite: c07-sip – The purpose of this test-suite is to evaluate implementation level security and robustness of SIP implementations. The focus was set on a specific protocol data unit (PDU), namely INVITE message (a subset of SIP).
  7. Vovida.org Load Balancer – The Load Balancer is a very simple proxy that is useful in SIP-based VoIP installations where there are multiple ingress proxy servers. The Load Balancer permits pooling these servers, thereby eliminating the need to balance user demands for connectivity through a complicated provisioning algorithm. The Load Balancer adds itself to the Via header of requests to enable responses to return before being sent to orginating endpoint. This only works with SIP messages sent over UDP (User Datagram Protocol).
IAX Clients (User Agents)

The open source project Asterisk (see below in PBX platforms) implements a software based PBX (Private Branch Exchange), or a private telephone switch that provides switching (including a full set of switching features) for an office or campus. As an internal protocol to trunk two or more PBX servers, the IAX (Inter Asterisk Exchange) protocol was created. IAX is a lightweight app based on UDP and bundles call signalling and voice into one data stream. This streaming makes it perfectly suited for connection-based simple firewalls.

  1. IAXComm – iaxComm is a cross-platform application for the Asterisk PBX. It was developed on aWindows XP system.
  2. Kiax – Kiax is an IAX client application which allows PC users to make ordinary VoIP calls to Asterisk servers. It aims to provide a simple and user-friendly graphical interface and desktop integration for calling, contact list, call register management and easy configuration.
  3. QtIAX – QtIAX is based on iaxclient (see below), but files were stripped for a bare bones environment.
  4. MozIAX – MozIAX is a Firefox VoIP extension, a cross platform software IAX2 phone (softphone) to be used with Asterisk.
  5. YakaSoftware – YakaSoftware is the open source code behind the YakaPhone, a simple, Skinnable IAX/IAX2 Softphone from YakaSoftware.
IAX/PBX Library
  1. IAXClient – IAXClient is an Open Source library to implement the IAX protocol used by The Asterisk Software PBX. Although asterisk supports other VOIP protocols (including SIP, and with patches, H.323), IAX’s simple, lightweight nature gives it several advantages, particularly in that it can operate easily through NAT and packet firewalls, and it is easily extensible and simple to understand.
RTP Proxies

RTP, or Real-time transport protocol, is the Internet-standard protocol for the transport of real-time data, including audio and video. RTP is used in virtually all voice-over-IP architectures, for videoconferencing, media-on-demand, and other applications. A thin protocol, it supports content identification, timing reconstruction, and detection of lost packets.

  1. Maxim Sobolev’s RTPproxy – RTPproxy is a proxy for RTP streams that can help SER (SIP Express Router) handle NAT (Network Address Translation, defined in RFC 1631) situations, as well as proxy IP telephony between IPv4 and IPv6 networks. The code has been extensively tested on FreeBSD, Linux, MacOS and Solaris. It should be relatively easy to port it to any system which has a POSIX layer.
RTP Protocol Stacks
  1. JRTPLIB – JRTPLIB is an object-oriented RTP library written in C++. The library offers support for the Real-time Transport Protocol (RTP), defined in RFC 3550. It makes it very easy to send and receive RTP packets and the RTCP (RTP Control Protocol) functions are handled entirely internally. The latest version of the library is 3.7.0 (January 2007).
  2. oRTP – oRTP is a Real-time Transport Protocol (RFC3550) stack under LGPL. Written in C, works under Linux (and probably any Unix) and Windows.
  3. GNU ccRTP – ccRTP is a C++ library based on GNU Common C++ which provides a high performance, flexible and extensible standards-compliant RTP stack with full RTCP support. The design and implementation of ccRTP make it suitable for high capacity servers and gateways as well as personal client applications.
  4. Vovida RTP Stack – Vovida RTP is augmented by a control protocal (RTCP) to monitor data delivery and network statistics. Together they resolve of many of the problems a UDP network enviroment may experience, such as lost packets, jitter, and out of sequence packets.
  5. RTPlib – This library, offered by Bell Labs, is based on the most recent version of the specification, incorporating some of the newest features, including RTCP scalability algorithms.
PBX Platforms
  1. Asterisk – Asterisk is a popular and extensible open source telephone that offers flexibility, functionality and features not available in advanced, high-end (high-cost) proprietary business systems. Asterisk is a complete IP PBX (private branch exchange) for businesses and Dallas Fort Worth trucking accident attorney‘s that runs on Linux, BSD, Windows and OS X and provides all of the features you would expect from a PBX and more. It has support for three-way calling, caller ID services, ADSI, IAX, SIP, H.323 (as both client and gateway), MGCP (call manager only) and SCCP/Skinny.
  2. OpenPBX.org 1.2 RC3 – This release includes the highly anticipated and robust new conference bridge application called NConference. OpenPBX.org RC2 is now generally available as a tarball that includes the ability to run on several BSDs as well as MacOS X. Both are forks of Asterisk with T.38 termination.
  3. Open Source Software PBX – Open Source PBX developed using Perl. OpenPBX.org will be stable, featureful, easy to use, and easy to deploy on a range of operating systems.
  4. PBX4Linux – PBX4Linux is an ISDN PBX which interconnects ISDN telephones, ISDN lines, and a H.323 gateway. This is a pure software solution except for the ISDN cards and telephones, as it connects to a Linux box. The great benefit is the NT-mode that allows to connect telephones to an ISDN card.
  5. SIPxchange – An enterprise-grade SIP PBX, SIP call manager and router, and SIP Softphone based on 100% SIP and 100% open source software. Produced by Pingtel, SIPxchange product suite runs on commodity server hardware using the Linux operating system, supports a large variety of IP phones and gateways, and seamlessly interoperates with legacy components.
  6. sipX – sipX is a modular server based solution that runs on standard Linux complete with voice mail and auto-attendant. Alternatively, sipX can be used as a high performance Enterprise toll-bypass SIP router. It combines all common calling features, XML-based SIP call routing, voice mail and auto-attendant, Web-based configuration, as well as integrated management and configuration of the PBX and attached phones and gateways. sipX does not require any additional hardware as it interoperates with any SIP compliant gateway, phone or application.
IVR Platforms
  1. GNU Bayonne – GNU Bayonne 2 was developed starting in 2005, with a special focus on SIP. GNU Bayonne is an integral part of GNU Telephony that offers free, scalable, media independent software environment for development and deployment of telephony solutions for use with current and next generation telephone networks.
  2. CT Server – A client/server library for rapid Computer Telephony (CT) application development in Perl. It uses Voicetronix hardware, and runs under Linux. Supports OpenSwitch cards for building PC PBXes.
Voicemail Apps
  1. lintad – Linux Telephone Answering Device (lintad) is a fax and voicemail application. Lintad uses a softmodem as a soundcard attached to the phoneline to play greetings and record messages. Messages and faxes are made available to browersers via Apache and PHP.
  2. Linux Voicemail/OpenUMS – The purpose of this project is to create an open source voicemail/unified messaging system that runs on Linux that has the ability to integrate with business telephone systems.
  3. VOCP System – VOCP is a complete messaging solution for voice modems, with voicemail, fax, email pager, DTMF command shell and Text-to-Speech support, 3 GUIs and a web interface. Send and receive faxes and voicemail, listen to emails and execute programs on the host.
  4. OpenVXI – The Open VXI VoiceXML interpreter is a portable open source library that interprets the VoiceXML dialog markup language. It is designed to serve as a reference for parties interested in understanding how VoiceXML markup might be executed.
Speech Software
  1. The Festival Speech Synthesis System – Festival offers a general framework for building speech synthesis systems as well as including examples of various modules. As a whole it offers full text to speech through a number APIs: from shell level, though a Scheme command interpreter, as a C++ library, from Java, and an Emacs interface. Festival is multi-lingual (currently English (British and American), and Spanish) though English is the most advanced. The system is written in C++ and uses the Edinburgh Speech Tools Library for low level architecture and has a Scheme (SIOD) based command interpreter for control. Documentation is given in the FSF texinfo format which can generate, a printed manual, info files and HTML.
  2. OpenSALT – SALT (Speech Application Language Tags) is a lighweight markup language that integrates speech services into standard markup languages such as HTML. SALT supports the authoring of multi-modal dialogs as well as voice-only dialogs and is suitable for the development of applications across desktop and telephony platforms. SALT is defined through the efforts of the SALT Forum, of which Carnegie Mellon is a contributor. The OpenSALT project makes available a SALT 1.0 compliant open-source browser based on the open source Mozilla web browser and make use of open source Sphinx recognition and Festival synthesis software. Their first Windows release is available for download. A Linux version will follow when a fully featured Windows version is complete. They will subsequently focus on developing a version suitable for mobile devices and a version for telephony-based systems.
  3. CMU Sphinx Projects – The packages that the CMU Sphinx Group is releasing are a set of reasonably mature, world-class speech components that provide a basic level of technology to anyone interested in creating speech-using applications without the once-prohibitive initial investment cost in research and development; the same components are open to peer review by all researchers in the field, and are used for linguistic research as well.
Fax Servers
  1. HylaFAX – HylaFAX is an enterprise-class system for sending and receiving facsimiles as well as for sending alpha-numeric pages. The software is designed around a client-server architecture. Fax modems may reside on a single machine on a network and clients can submit an outbound job from any other machine on the network. Client software is designed to be lightweight and easy to port.
  2. AstFax – AstFax provides an outgoing email to fax gateway for the Asterisk PBX package. Incoming fax to email can also be configured so your Asterisk server can act as both an outgoing and incoming fax server.
Development Stacks
  1. OpenSS7 – OpenSS7 provides a robust and GPL’ed SS7, SIGTRAN, ISDN and VoIP stack for Linux and other UN*X operating systems.
  2. ooh323c – Objective Systems Open H.323 for C (ooh323c) is a simple H.323 protocol stack developed in C. The ASN.1 PER messaging code was developed using the ASN1C compiler using a modified version of our core run-time libraries. Additional open source components as well as code developed in-house were added to produce a functioning stack. The goal is to produce a reusable framework that contains the signaling logic to allow channels to be created and terminated for different H.323 applications. ooH323c is now included as an add-on to the Asterisk open source PBX.
  3. ++Skype Library – ++Skype library is a new, modern way to develop platform independent Skype add-on software. The ++Skype is a C++ library of thoroughly designed classes that can help you to build platform-independent add-on software. Be sure to read the documentation, as this software requires several tools and libraries not included in this article.
  4. OpenBloX™ – The OpenBloX™ framework is an Open Source set of directories and files, implementing in a whole or part of the 3GPP and 3GPP2 Diameter specifications. The package contain at minimum the Diameter base protocol as described by IETF RFC 3588 and any extensions provided to support upper layers as specified by the 3GPP specifications, such as Rx, Gx, Ro, Cx, Sh and other 3GPP defined interfaces.
Middleware
  1. MobiCent – Mobicents is the first and only open source VoIP Platform certified for JSLEE 1.0 compliance. Mobicents brings to telecom applications a robust component model and execution environment. It compliments J2EE to enable convergence of voice, video and data in next generation intelligent applications.
  2. Ernie – Software application that integrates Web 2.0 design principals with next generation communications technologies, including VoIP, presence and web languages such as Python. LAMPdevelopers are Ernie’s primary users.
  3. SIP Thor – SIP Thor is based on P2PSIP technology that enables scalability with no single point of failure. SIP Thor is based on P2PSIP, a set of technologies that combines exiting IETF standards like SIP, DNS and ENUM with Peer-To-Peer techniques like distributed hash tables (DHT).

 

附录:

和SIP有关的RFC: 

RFC 2543  SIP: Session Initiation Protocol
RFC 2848  The PINT Service Protocol: Extensions to SIP and SDP for IP Access to Telephone Call Services
RFC 2976  The SIP INFO Method
RFC 3050  Common Gateway Interface for SIP
RFC 3087  Control of Service Context using SIP Request-URI.
RFC 3261  SIP: Session Initiation Protocol
RFC 3262  Reliability of Provisional Responses in the SIP
RFC 3263  Session Initiation Protocol (SIP): Locating SIP Servers
RFC 3265  Session Initiation Protocol (SIP)-Specific Event Notification
RFC 3311  The Session Initiation Protocol (SIP) UPDATE Method
RFC 3312  Integration of Resource Management and SIP 
RFC 3313  Private SIP Extensions for Media Authorization 
RFC 3319  DHCPv6 Options for SIP Servers 
RFC 3323  A Privacy Mechanism for the Session Initiation Protocol (SIP)
RFC 3325  Private Extensions to SIP for Asserted Identity within Trusted Networks
RFC 3326  The Reason Header Field for the Session Initiation Protocol (SIP)
RFC 3327  SIP Extension Header Field for Registering Non-Adjacent Contacts 
RFC 3329  Security Mechanism Agreement for SIP
RFC 3351  User Requirements for the SIP in Support of Deaf, Hard of Hearing and Speech-impaired Individuals
RFC 3361  DHCP-for-IPv4 Option for SIP Servers
RFC 3372  SIP for Telephones (SIP-T): Context and Architectures 
RFC 3398  ISUP to SIP Mapping 
RFC 3420  Internet Media Type message/sipfrag
RFC 3427  Change Process for the SIP
RFC 3428  Session Initiation Protocol (SIP) Extension for Instant Messaging
RFC 3455  Private Header (P-Header) Extensions to the SIP for the 3GPP
RFC 3485  The SIP and SDP Static Dictionary for Signaling Compression
RFC 3486  Compressing the Session Initiation Protocol (SIP)
RFC 3487  Requirements for Resource Priority Mechanisms for the SIP.
RFC 3515  The Session Initiation Protocol (SIP) Refer Method 
RFC 3578  Mapping of Integrated Services Digital Network (ISDN) User Part (ISUP) Overlap Signalling to the SIP
RFC 3581  An Extension to the SIP for Symmetric Response Routing
RFC 3603  Private SIP Proxy-to-Proxy Extensions for Supporting the PacketCable Distributed Call Signaling Architecture.
RFC 3608  SIP Extension Header Field for Service Route Discovery During Registration
RFC 3665  Session Initiation Protocol (SIP) Basic Call Flow Examples
RFC 3666  SIP Public Switched Telephone Network (PSTN) Call Flows. 
RFC 3680  SIP Event Package for Registrations
RFC 3702  Authentication, Authorization, and Accounting Requirements for the SIP
RFC 3725  Best Current Practices for Third Party Call Control (3pcc) n the Session Initiation Protocol (SIP)
RFC 3764  Enumservice registration for Session Initiation Protocol (SIP)
RFC 3824  Using E.164 numbers with the Session Initiation Protocol (SIP).
RFC 3840  Indicating User Agent Capabilities in SIP
RFC 3841  Caller Preferences for SIP 
RFC 3842  A Message Summary and Message Waiting Indication Event Package for SIP
RFC 3853  S/MIME Advanced Encryption Standard (AES) Requirement for the SIP
RFC 3856  A Presence Event Package for the Session Initiation Protocol (SIP)
RFC 3857  A Watcher Information Event Template-Package for the SIP
RFC 3891  The Session Initiation Protocol (SIP) "Replaces" Header
RFC 3892  The Session Initiation Protocol (SIP) Referred-By Mechanism
RFC 3893  Session Initiation Protocol (SIP) Authenticated Identity Body (AIB) Format
RFC 3903  Session Initiation Protocol (SIP) Extension for Event State Publication
RFC 3911  The Session Initiation Protocol (SIP) "Join" Header
RFC 3959  The Early Session Disposition Type for SIP
RFC 3960  Early Media and Ringing Tone Generation in SIP
RFC 3968  The Internet Assigned Number Authority (IANA) Header Field Parameter Registry for the SIP
RFC 3969  The Internet Assigned Number Authority (IANA) URI Parameter Registry for the SIP
RFC 3976  Interworking SIP and Intelligent Network (IN) Applications
RFC 4028  Session Timers in the Session Initiation Protocol (SIP)
RFC 4032  Update to the Session Initiation Protocol (SIP) Preconditions Framework
RFC 4083  Input 3GPP Release 5 Requirements on the SIP
RFC 4092  Usage of the SDP Alternative Network Address Types (ANAT) Semantics in the SIP
RFC 4117  Transcoding Services Invocation in the SIP Using Third Party Call Control (3pcc)
RFC 4123  Session Initiation Protocol (SIP)-H.323 Interworking Requirements
RFC 4168  The Stream Control Transmission Protocol (SCTP) as a Transport for the SIP
RFC 4189  Requirements for End-to-Middle Security for the SIP
RFC 4235  An INVITE-Initiated Dialog Event Package for the SIP
RFC 4240  Basic Network Media Services with SIP
RFC 4244  An Extension to the SIP for Request History Information
RFC 4245  High-Level Requirements for Tightly Coupled SIP Conferencing
RFC 4320  Actions Addressing Identified Issues with the SIP's Non-INVITE Transaction
RFC 4321  Problems Identified Associated with the SIP's Non-INVITE Transaction
RFC 4353  A Framework for Conferencing with the SIP.
RFC 4354  A SIP Event Package and Data Format for Various Settings in Support for the Push-to-Talk over Cellular (PoC) Service
RFC 4411  Extending the SIP Reason Header for Preemption Events
RFC 4412  Communications Resource Priority for the SIP
RFC 4453  Requirements for Consent-Based Communications in the SIP
RFC 4457  The SIP P-User-Database Private-Header (P-Header)
RFC 4458  SIP URIs for Applications such as Voicemail and Interactive Voice Response (IVR)
RFC 4474  Enhancements for Authenticated Identity Management in the SIP
RFC 4475  Session Initiation Protocol (SIP) Torture Test Messages.
RFC 4483  A Mechanism for Content Indirection in SIP
RFC 4484  Trait-Based Authorization Requirements for the SIP
RFC 4485  Guidelines for Authors of Extensions to the SIP
RFC 4488  Suppression of SIP REFER Method Implicit Subscription
RFC 4497  Interworking between the SIP and QSIG
RFC 4504  SIP Telephony Device Requirements and Configuration
RFC 4508  Conveying Feature Tags with the SIP REFER Method
RFC 4538  Request Authorization through Dialog Identification in the SIP
RFC 4575  A SIP Event Package for Conference State
RFC 4579  SIP Call Control - Conferencing for User Agents
RFC 4596  Guidelines for Usage of the SIP Caller Preferences Extension
RFC 4662  A SIP Event Notification Extension for Resource Lists
RFC 4730  A SIP Event Package for Key Press Stimulus (KPML).
RFC 4740  Diameter Session Initiation Protocol (SIP) Application. 


和SDP有关的RFC:
RFC 2327  SDP: Session Description Protocol
RFC 3108  Conventions for the use of the SDP for ATM Bearer Connections. 
RFC 3264  An Offer/Answer Model with the Session Description Protocol (SDP)
RFC 3266  Support for IPv6 in Session Description Protocol (SDP)
RFC 3388  Grouping Media Lines in SDP
RFC 3407  Session Description Protocol (SDP) Simple Capability Declaration
RFC 3556  Session Description Protocol (SDP) Bandwidth Modifiers for RTCP Bandwidth
RFC 3605  Real Time Control Protocol (RTCP) attribute in SDP
RFC 3890  A Transport Independent Bandwidth Modifier for the SDP
RFC 4091  The Alternative Network Address Types (ANAT) Semantics for the SDP Grouping Framework
RFC 4145  TCP-Based Media Transport in the Session Description Protocol (SDP)
RFC 4317  Session Description Protocol (SDP) Offer/Answer Examples
RFC 4566  SDP: Session Description Protocol. 
RFC 4567  Key Management Extensions for SDP and Real Time Streaming Protocol (RTSP)
RFC 4568  Session Description Protocol (SDP) Security Descriptions for Media Streams
RFC 4570  Session Description Protocol (SDP) Source Filters
RFC 4572  Connection-Oriented Media Transport over the TLS Protocol in the SDP
RFC 4574  The Session Description Protocol (SDP) Label Attribute
RFC 4583  SDP Format for Binary Floor Control Protocol (BFCP) Streams.
RFC 4796  The Session Description Protocol (SDP) Content Attribute


和Presence, IM有关的RFC:

RFC 2778  A Model for Presence and Instant Messaging
RFC 3858  An Extensible Markup Language (XML) Based Format for Watcher Information
RFC 3859  Common Profile for Presence (CPP)
RFC 3860  Common Profile for Instant Messaging (CPIM)
RFC 3863  Presence Information Data Format (PIDF)
RFC 4119  A Presence-based GEOPRIV Location Object Format
RFC 4479  A Data Model for Presence
RFC 4480  RPID: Rich Presence Extensions to the PIDF
RFC 4660  Functional Description of Event Notification Filtering 
RFC 4661  An XML-Based Format for Event Notification Filtering
RFC 4745  Common Policy: A Document Format for Expressing Privacy Preferences

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值