Linphone 是一种开源的语音和视频通信应用程序,它提供了基于互联网协议(IP)的实时通信功能。用于语音/视频通话、即时消息和电话会议的开源 SIP 电话。它适用于移动和桌面环境(iOS、Android、GNU/Linux、macOS、Windows)。
Linphone 的架构中,SIP协议的处理基于osip和exosip两个开源库,媒体数据的处理使用mediastream2完成,并通过ortp库基于RTP协议进行音视频数据传输。Linphone还支持与IMS网络的互操作性,适合构建与VoLTE兼容的客户端,并且提供了录音、音频会议等功能。
用户可以通过Linphone的官方网站下载适用于不同平台的客户端,并根据需要配置SIP账户来使用通信服务。Linphone的开源特性也允许开发者在其基础上进行二次开发,以满足特定的通信需求。
Linphone 具有用户界面和核心引擎之间的分离功能,允许在相同的功能之上创建各种用户界面。用户界面前端包括:
- 适用于Windows桌面、macOS和GNU/Linux的Qt/QML接口
- 控制台接口 (linphone-daemon)
- 内置于 Swift 的 iPhone 应用程序
- 用 Kotlin 构建的 Android 应用程序
Liblinphone 依赖于以下软件组件:
Mediastreamer2,一款功能强大的多媒体SDK,用于音频/视频流和处理
- oRTP,一个简单的 RTP 库
- belle-sip,SIP 库
下面是关于 Linphone 的一些详细信息:
功能特点
整体特点
- 高清音频和视频通话
- 多个呼叫管理(暂停和恢复)
- 呼叫转移(盲人和有人值守)
- 音频和视频会议,基于现代选择性转发单元 (SFU)
- 通话录音和回放
- 即时通讯和群聊
- 消息传递状态 (IMDN)
- 文件共享(音频、视频、文档、GIF......
- 消息转发、复制、回复
- 通话期间的聊天访问权限
- 联系人列表
- “邀请您的朋友”功能
- 在线状态
- 通话记录
- 支持蓝牙耳机
- 显示高级呼叫统计信息
- 回声消除
- 通话质量指示器
- 支持的语言:英语、法语
- 帐户创建助手
- 远程配置(通过二维码或 URL)
- 安全用户身份验证:md5 / SHA256 摘要、TLS 客户端证书
- 通过 SRTP、zRTP 和 SRTP-DTLS 对呼叫进行端到端加密
- 使用 Linphone 即时消息加密 (LIME) 对消息进行端到端加密
高级功能
- 音频编解码器:opus、speex、g711、g729、gsm、iLBC、AMR、AMR-WB、g722、SILK、iSAC、BV16、Codec2
- 视频编解码器:VP8、H.264 和 H.265,分辨率高达 1080P、MPEG4
- 硬件加速 H.264 和 H.265 编解码器,适用于 Mac OSX / iOS (VideoToolbox) 和 Android (MediaCodec)
- 创新的RTP抖动缓冲算法,可快速适应抖动较大的网络条件,改善对音频延迟的控制
- 自适应比特率控制算法:拥塞控制和可用带宽的估计,以优化音频和视频质量
- 与推送通知集成(需要兼容的 SIP 服务器; linphone.org SIP 服务已启用推送)
- ICE (RFC 5245)、STUN 和 TURN (RFC 5766) 用于优化 NAT 遍历,尽可能实现点对点音频和视频连接
- 通过网络接入类型的变化进行呼叫切换(例如,在 wifi 中开始呼叫并在 3G 中继续)
- 能够使用不同的传输协议(UDP、TCP、TLS)配置多个代理帐户
- IPv6(双栈和仅 v6 支持)
- 使用 SIP INFO 或 RFC 4733 的 DTMF(电话音)支持
平台支持
- Linux:Linphone可以在多种Linux发行版上运行,这包括但不限于Ubuntu、Fedora、Debian等。
- Windows:Linphone提供了Windows版本,适用于桌面和笔记本电脑。
- macOS:Linphone也有针对Mac操作系统的版本。
- iOS:Linphone有iOS应用,可以在iPhone和iPad设备上使用。
- Android:Linphone同样提供了Android应用,适用于各种Android设备。
- 其他平台:Linphone还支持其他一些操作系统和移动平台,如BlackBerry等。
Linphone的跨平台能力得益于其开源软件的构建,它使用了多种开源库来实现SIP协议处理、媒体数据传输等功能,确保了在不同操作系统上的兼容性和一致的用户体验。
协议支持
用户界面
安全性
Linphone如何保证通信安全性和质量?
Linphone是一款开源的VoIP(Voice over Internet Protocol)通信软件,它通过多种技术手段来保证通信的安全性和质量。
安全性保证
Linphone采用了端到端加密(E2EE)技术,确保了通信内容在传输过程中的安全性。它使用了SRTP(Secure Real-time Transport Protocol)协议来加密音频和视频流,以及ZRTP(Zero-knowledge Real-time Transport)协议来安全地交换加密密钥。此外,Linphone还支持TLS(Transport Layer Security)和SIPS(Secure SIP)来加密SIP(Session Initiation Protocol)信令,保护用户身份和通信会话的安全。
质量保证
Linphone通过优化网络传输来保证通信质量。它使用了自适应抖动缓冲区(Jitter Buffer)来减少网络延迟和丢包对通话质量的影响。此外,Linphone还支持多种编解码器,如Opus和VP8,这些编解码器能够在不同网络条件下提供高质量的音频和视频传输。Linphone的网络适应性技术能够根据用户的网络状况自动调整传输参数,以确保通信的流畅性。
通过这些技术的结合,Linphone能够在提供安全通信的同时,保证通话和视频会议的质量。