因为要做个跟sip phone相关又跟TTS扯点关系的东西;忙活了3周了初步拿着源码可以拨电话放个录音了,因此把些东西整理下。因为要求是使用Java,当然最初定的是jain-sip sip-servlet一个做客户端一个做服务端,而且服务端是不用改的。对于sip从零开始了。
首先是了解到服务端可以用Asterisk、sip-foundry,因为采用通用的sip协议,而且不用修改,因此直接拷贝了个sip-foundry,然后下载网上的X-Lite拨打测试了下。而后得知SIP(会话初始协议)从字面看是不关心你怎么在会话中交互数据的,因此光看jain-sip似乎没多大用处,当时看到Oracle官网上是有段jain-sip的例子,只是发送即时消息的,而且示例代码也没下载下来,只好去开源社区寻找开源软件拿来修改了。前面提到的X-Lite由于不是开源,只好放弃。找到了几款,虽然有C/C++的,但是还是列出来:视频会议系统
Ekiga、Yate 下一代的电话引擎、视频通话和聊天工具 Jitsi和Java SIP softphone(peers)。
Ekiga是一个兼容SIP和H.323的视频会议程序,兼容VoIP,IP电话,通过Ekiga可以与使用任何SIP和H.323软硬件的远程用户进行视频和音频对话。Ekiga的前身是GnomeMeeting。首页是http://ekiga.org/;可惜不是Java的。
Yate (Yet Another Telephony Engine)是下一代的电话引擎,使用 VoIP 和 PSTN 协议,既可以作为VoIP服务端和客户端,支持200路的会议服务,还可以作为电话后PC间的网关,支持H.232和sip以及H.323<->SIP Proxy(忘了说明了,H.232,sip都是可用于VoIP的协议,一个是ITU-T提出的,类似于传统电话系统方式的,但是目前也在不断改进;sip是IETF提出的更符合互联网的,并不代表一定比H.323好);同时还支持Call center
server和IVR engine等等,功能非常强大,首页是http://yate.null.ro/pmwiki/index.php,可惜也是C/C++的。
Jitsi是一个开源的,安全(ZRTP加密),高质量的SIP/XMPP视频通话、会议、聊天、桌面共享、文件传传输。可以安装在你喜欢的操作系统中并且支持多种IM网络。Jitsi是当最功能最完整的高级通信工具。Jitsi让你可以在同一个软件中连到Facebook、GoogleTalk、XMPP、Windows Live、Yahoo!、AIM和ICQ进行通信。看着这么强大的功能与支持的多样,我觉得就应该用它了;而且它是基于OSGi(Open Service Gateway Initiative)框架的(具体是阿帕奇的Felix开源框架),这个框架号称提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方。而且确实从下载到的源码中看到了felix.client.run.properties配置文件,里面配置了felix.auto.start的等级启动顺序;而且在源码包中sip实现看到了sip.provider.manifest.mf文件,里面详细定义了Import-Package、Export-Package等关系,架构非常清晰。而且在源码工程中直接包含了Ant编写的build文件,简单设置一下就可以编译运行了,这个激动的啊。于是我又下载了Felix框架实现,按照tutorial把示例跑一下,问题开始来了,示例跑不通,我太愚笨了又不肯下载更多的东西配置,只是知道了可以从org.apache.felix.main.Main来启动,通过配置服务(Bundle)启动,也可以直接调用这个类(jitsi中就是在net.java.sip.communicator.launcher.SIPCommunicator中调用Main.main(new
String[0]);来启动的)而后发现想单独取出来使用其中的SIP协议相关的(由于它支持Facebook、GoogleTalk、XMPP、Windows Live)也不容易,和protocolProvider等牵扯的关系挺多,代码量巨大,似乎不是短期内能搞定的,因此只好放弃了最初的想法,找个功能强大的,却是不容易修改的。
否决了这些个,再找就困难了,合适的更不容易,有下了jphonelite,据说还支持Android,估计Android上是好用的,但是从界面上看,PC上不行,下载软件之后居然不会用。。。;jVoiceBridge官方找不到源码了,好像已经停止了。或者归到其它项目中,总之没找到。最后在快要放弃的时候(想去找原来实验室有用flex在mjsip上实验过的源码,准备看那个的时候)在SourceForge上找到了Java SIP softphone(peers),一个简单好用,功能又满足需要得开源软件。代码比较容易懂,直接找到录音地方,换成播放音乐文件,直接可以实现播放音乐文件;而且可以生成多个拨号见面,不知道是不是支持同时拨打多个终端,继续查看中。软件首页http://sourceforge.net/projects/peers/?source=directory
来几个图,虽然没有前面的华丽,非常简洁:


就在写这个得时候,发现mjsip貌似也非常好用啊,功能强大,代码量也适中,而且有商用和研究用的,难道我选错了。。。。。。?
分享到:
相关推荐
标题"SIP Phone_sip_phone_"和描述"Manual fonte supplier"暗示了我们正在讨论与SIP(Session Initiation Protocol)电话相关的技术知识,特别是可能涉及一个SIP电话软件的源代码或开发文档。SIP是一种互联网协议,...
SipPhone15_b0610.msi是一个Windows安装程序文件,根据文件名推测,这可能是SIP Phone的某个版本15的构建号为b0610的安装包。用户可以通过运行这个文件来安装SIP Phone客户端软件。安装过程中,系统可能会询问关于...
在Sipphone VC6中,开发者可能会关注以下几个技术点: - SIP协议的实现:如何编写SIP消息,处理各种SIP方法如REGISTER、INVITE、ACK等。 - NAT穿透:解决因NAT(网络地址转换)导致的通信问题,如STUN、TURN、ICE等...
IPHONE上好用的SIPPHONE软件。。亲测。可以呼入呼出。。。支持后台呼入。
在本例中,“sipphone.zip”是一个包含SIP客户端软件的压缩包,旨在提供一个便捷的音视频通讯解决方案。 "Readme-说明.htm" 文件通常是安装或使用软件前的重要参考文档,它包含了关于软件的功能介绍、安装步骤、...
SipPhone 安装文件 网络电话 SipPhone 安装文件 网络电话 SipPhone 安装文件 网络电话
sipphone 控件 sipphone 控件 sipphone 控件 sipphone 控件 sipphone 控件 sipphone 控件 sipphone 控件 sipphone 控件 sipphone 控件
4. **sipphone.ini**:这是一个配置文件,可能包含了SIP电话的应用设置,如服务器地址、用户名、密码等,用于自定义软件的行为。 5. **Microsoft.VC80.DebugCRT.manifest**:这是一个清单文件,指示系统加载Visual ...
标题 "MAC (inter) 下的sip phone" 指的是在苹果MAC操作系统环境下运行的一款SIP(Session Initiation Protocol)电话应用。SIP是一种网络协议,主要用于多媒体通信系统的控制,如VoIP(Voice over Internet ...
Sipphone是一个基于SIP的软件电话应用,它利用osip(Open SIP stack)和exosip库来实现SIP协议的功能,允许用户通过互联网进行语音、视频通话。 osip是一个开源的SIP栈,它提供了完整的SIP消息处理功能,包括消息的...
该压缩包文件的核心是SipPhone_Setup_b0305pm.msi,这是一款基于SIP技术的软电话(Softphone)的安装程序,版本号可能为b0305pm。 SIP电话是一种通过互联网进行语音通信的应用,它允许用户在计算机或移动设备上进行...
标题中的“支持G.723的SIPPHONE软件”是指该软件是一款SIP电话应用,特别强调了它能够处理G.723编码的语音数据。G.723是一种压缩音频的标准,由国际电信联盟(ITU)制定,主要用于低带宽环境下的语音通信,如VoIP...
《VC++实现的SipPhone:深入理解网络电话技术》 在信息技术日新月异的今天,网络通信已经成为人们日常生活和工作中不可或缺的一部分。SIP(Session Initiation Protocol)协议作为互联网电话的重要标准,广泛应用于...
### SipPhone开发说明 #### 一、项目概述与环境搭建 本开发说明主要介绍如何使用Visual Studio 2008结合MFC框架来构建一个简单的SIP电话应用。SIP(Session Initiation Protocol)是一种用于控制多媒体通信会话...
【标题】"VOIP sipphone 软电话 客户端"揭示了我们要讨论的核心技术——VoIP(Voice over Internet Protocol)以及SIP(Session Initiation Protocol)软电话客户端。VoIP是一种通过互联网进行语音通信的技术,而SIP...
为了深入了解SIPPHONE SOURSECODE,我们需要掌握以下几点: 1. **SIP协议基础**:理解SIP的基本工作流程,包括注册、邀请、确认、媒体协商等步骤,以及如何处理会话的建立、修改和结束。 2. **源代码结构**:分析...
sip phone客户端程序。一个sip客户端,运行于xp/2k下,可以拨打pstn。
标题中的“支持iLBC的Android版SIP Phone的源代码”揭示了这是一个与语音通话技术相关的项目,特别提到了SIP(Session Initiation Protocol)和iLBC(Internet Low Bitrate Codec)。SIP是一种应用层协议,常用于...
SOOCALL SIPPhone是一款基于SIP(Session Initiation Protocol)协议的软件电话应用,它允许用户通过互联网进行语音通话,实现VoIP(Voice over Internet Protocol)通信。这款软件拨号电话在现代通信技术中扮演着...
标题中的“sip.rar_SIP java_java sip _java sip phone_mobile sip”揭示了这个压缩包主要包含与SIP(Session Initiation Protocol)相关的Java编程资源,特别是关于在移动设备上实现SIP电话的功能。SIP是一种用于...