我用过的那些SIP客户端

Published on

本文原写于2020年,2022年8月份又增加了很多内容。

如果大家看过《FreeSWITCH权威指南》,必然还记得第一章的IP电话简介,IP电话是一种透过互联网或其他使用IP技术的网络来实现的新型电话通信。因具有低通话成本、低建设成本、易扩充性等特点而逐渐被广泛应用。为了更方便的研究IP电话,在学习和使用FreeSWITCH的进程中,我们常需要用到SIP客户端与FreeSWITCH对接测试,在此,我们简单点一下一些常见不常见的SIP客户端(排名不分先后)。

Zoiper

Zoiper是笔者比较早就用过的客户端,发展到今天,它几乎是全平台的,包含了Windows、Linux、Mac、iOS、Android。它不是开源的,既有商业版,也有免费版。功能更为全面,本身带有logdialog(在help中),方便查看debug,可音视频通话,支持短信、录音等功能。某些版本支持MSRP消息。

Zoiper新账户的创建:Settings→Create a new account ,依次填入相关信息,Zoiper的账户就创建完成了。

Settings→Preference,在此界面可补充详细信息并修改。

X-Lite、eyeBeam、Bria

这几款电话都出自同一个公司。eyeBeam和Bria都是商业版的,支持G729和H264;X-Lite是免费的,应用也比较广泛,不支持G729,视频仅支持H263,SIP协议栈好像是使用的开源的resiprocate

X-Lite

X-Lite的界面在大部分的SIP客户端中算是不错的,画面简洁并且可以改变你的在线状态,支持音视频、耳机模式、短信聊天、会议通话等功能,美中不足的是,一次只能建立一个账号。创建账号过程:Softphone→Account Settings

Eyebeam

Bria

Bria是一款非常好的产品,跨平台,支持视频通话,稳定。Bria也提供SDK。不过,Bria是商业产品,比较贵。Bria Stretto则集成了Provision,可以通过在线的账号系统自动配置话机,方便大规模部署和管理。

Blink号称是最好的开源SIP客户端。支持Windows、Linux、Mac。底层协议使用PJSIP,但主要开发使用了Python。支持视频,支持通过MSRP聊天和传文件,也可以更改在线状态,获取电话Log等。不过,在Mac上用起来视频通话好像不如Bria稳定。

新建账号:Blink→Accounts→Addaccount Sip Address注册方法较其他软件不同的是:username@domain

Doubango

Doubango实际上是一个开源协议栈,并能用于嵌入式和桌面系统的开源框架,该框架使用ANSCI-C编写,具有很好的可移植性。在Windows上有Boghe、Mac上有iDoubs、Android上有imsDroid等,也支持iOS。其相关的sipML5也支持WebRTC。应用比较广泛。底层是用C语言写的。支持XCAP和MSRP。Doubango包含了SIP/IMS (VoIP) 的客户端、服务器端的组件。

Telephone

Telephone是一款开源免费的电话,界面非常简洁,仅支持Mac,在Apple Store里可以直接下载,底层用PJSIP。不支持视频。

PC-Telephone

利用互联网和ISDN/PSTN拨打电话,把你的电脑变成一部网络电话,一个SDN电话、一部传真机,提供语音邮件、传真、数据传输等。

主要特色:自动拨打、自动应该、自动转移等。建立一个自动通话任务,选中“Outbox”,点击工具栏中的十字状“Add”按钮,弹出“Outbox Item”对话框,在“Phone”中输入对方的电话号码或者IP地址,“Time”用于自定义时间,再接下来在“Files”中选择语音文件的名称,当然也可以点击“Record”自行录制,按“Play”可以试听。实现在指定的时间内自动拨打电话,向对方播放事先录制好的内容。

CSipSimple(M7)

开源的Android版的SIP客户端,支持多种注册方式,如下图。使用起来不方便不支持计算机设备。

LinPhone

LinPhone是跨平台的,包含了Windows、Linux、Mac、Android、iOS,支持视频,它是开源的。可以切换各种状态,界面不大美观,但也不难使用。

创建账号:Options→首选项,如下,在账户管理里进行添加即可。

Jitsi

用Java开发的SIP客户端,支持音视频,支持录音,它是跨平台的,是开源的。功能简单,中文显示易懂。

创建账号:点击“文件”→选择“新建账号”→选择“sip”

FSComm

是基于FreeSWITCH的客户端,用Qt开发,它是跨平台的,很少有人使用。

FSClient

下载地址:http://wiki.freeswitch.org/wiki/FSClientequirements

适用于Windows。FSClient也是基于FreeSWITCH开发的客户端,用C#开发。不支持视频,注册界面简单易懂。

注册界面如下:

Baresip

Baresip是一个协议栈,不过,它带了一个完整的命令行SIP客户端,也很好用,它是开源的,跨平台的,支持语音和视频。

Ekiga

Ekiga,原名GnomeMeeting,支持Windows和Linux,是一个兼容SIP和H.323的视频会议程序,兼容VoIP,IP电话,通过Ekiga可以与使用任何SIP和H.323软硬件的远程用户进行视频和音频对话。

创建账户:编辑账户→添加XX账户

GSWave

Grandstream出品的免费的Android和iOS上的客户端。支持会议(6人会议)、短信、sip信息跟踪等,视频支持H.264。

创建账号:设置→账号设置→点击“+”→输入相关信息。

如下图所示,第一张为注册账号,第二张为账号注册完成后界面。

第三张点击更多,可实现视频拨打。

Polycom Realpresence Desktop

Polycom出品,商业软件,支持Windows、Mac、Android、iOS。移动版是免费的。支持视频与会议,支持SIP和H.323。

界面极其简单,中文显示,具体如下:

点击右下角设置即可出现注册界面,输入IP地址,号码等点击确定即可(验证名称一定要输入哦!)

Yate

Yate其实包含服务端和客户端,它是开源的,支持Window、Linux、Mac OS X。功能较为简单,不支持视频界面如下:

左下角显示状态,在setting中可查看debuglog。创建账号:点击“Yate”→选择“add account”或者“addaccount wizard”;Add account 选择协议,输入注册号码、注册密码以及服务器。

或者Add Account Wizard如下:

LifeSize

支持Windows、Mac、Android、iOS,不开源的,支持视频,支持会议,支持SIP和H323 。

登录后进入会话界面如下:

PJSIP

PJSIP是个协议栈,也有个客户端,它是开源的,支持语音和视频。支持STUN、ICE、WebRTC AEC等,很多客户端都是用它作协议栈。它的实现是为了能在嵌入式设备上高效实现SIP/VoIP。

TIPcon1

TIPcon1是一个Mac版的客户端工具。与众不同的是,它支持通过RTP传输文档消息,也就是传说中的RTT。

Kapanga

(https://www.kapanga.net/download/)

Kapanga是Windows版本的SIP客户端,下载测试版本后可以免费使用30天。

Kapanga有很多非常有用的特性,比如:

  • 可以同时侦听TCP和UDP,侦听的端口可以配置
  • 可以配置DTMF的传输方式
  • 可以配置编码的打包时间,比如PCM可以配置10毫秒,20毫秒,30毫秒,40毫秒,或者60毫秒
  • SIP信令有很多可以配置的参数,比如是否支持100-rel,是否支持rport等等
  • 可以配置SIP注册再呼叫,也可以直接呼叫远端的IP地址和端口,比如可以呼叫XSwitch的7080端口
  • 支持传真

PortSIP

https://www.portsip.com/download-portsip-softphone/

PortSIP是一款支持Windows、Android、iOS的SIP软电话,支持语音和视频,不开源。界面语言支持中文,英文,葡语和西班牙语。

lumicall

https://github.com/opentelecoms-org/lumicall

lumicall是一款开源的Android版本SIP终端。

QjSimple

https://github.com/klaus3000/QjSimple

开源,支持Windows和Linux,底层是pjsip,界面基于Qt 5

PhoneLite

http://phonerlite.de/index_en.htm

PhoneLite是一款支持Windows的SIP软电话,免费使用,但不开源。

Twinkle

https://github.com/LubosD/twinkle

Twinkle是支持Linux的SIP软电话,开源。

mjUA

http://www.mjsip.org/mjua.html

开源,用纯Java语言编写的SIP终端。

当然,除了上述这些外笔者好像还尝试过其它一些SIP客户端,一时想不起来,就不多写了。

你问我为什么会有这么多的SIP客户端,我也不知道,好像每个客户端都各有各的特色,但又好像每个人都在重新发明轮子。上面说的客户端笔者都或多或少都试过。如果没有用过大部分客户端,怎么好意思说自己是搞SIP的。如果你问我哪个最好用,我只能说没有最好。我买了Bria和Polycom是因为我要用它测H264以及H323。实际上,没有一款客户端是完美的,只能通过不断的测试才能选择出最适合你自己的,也许还有我曾用过但是忘记写的,也许有没用过但是你用过的,请不吝留言,我们可以共同完善本文。

SaraPhone

SaraPhone是一个开源的SIP WebRTC电话客户端,支持电话热线、重拨、BLF、MWE、DnD、电话号码本、Hold、静音、通知等。基于SIP.js开发。

我们有一个线上的演示版本:https://xswitch.cn/sara/

ctxPhone

ctxPhone是基于SIP.js、JavaScript开发,可通过WebRTC和WebSockets实现和SIP服务器端注册呼叫的简单软电话界面,用户可以非常方便地和第三方软件集成。

用户在启动软电话界面以后,根据服务器端创建的wss地址就可以注册到服务器端。

下载地址

https://github.com/collecttix/ctxSip

其他

下面是一个SIP软件的列表:

https://en.wikipedia.org/wiki/Comparison_of_VoIP_software

GitHub上有一个Awesome SIP项目