miniSIPPhone V26.1

miniSIPPhone V26.1

最近发布了 miniSIPPhone V26.1 版本,这个版本主要包含以下关键特性或者修改:

一、支持 DTLS-SRTP

miniSIPServer 支持 DTLS-SRTP 之后,我们更新了 miniSIPPhone, 使其也可以过 DTLS-SRTP 加密传输语音流。我们在部署企业通信网络时(尤其是涉及在外部公共云系统部署)完全实现信令、媒体高强度的加密,确保企业通信安全。

在 miniSIPServer 和 miniSIPPhone 我们统一对 DTLS-SRTP 做出以下限制:

(1)DTLS 必须是 DTLSv1.2 及以上版本,不支持低于 v1.2 版本的握手协商。

(2)加密套件固定为 SRTP_AES128_CM_SHA1_80。规范中定义了若干个加密套件,我们采用最高强度的加密,不支持协商其他加密套件。

(3)fingerprint 总是采用 SHA-256 编码,不支持 SHA-1 或者其他的编码方式。

二、简化账号配置

新版本在配置 SIP 账号时,不再需要单独的配置来指定端口,如下图所示:

SIP 账号配置窗体

通常情况下SIP 服务器采用标准端口开放服务,用户确实没有必要了解协议规定的端口信息(我们访问互联网时也很少指定或者了解 80,443等端口),也没有必要去配置端口信息。因此我们删除了「服务器端口」配置项。

但是也存在 SIP 服务器采用非标准端口的情况(例如 miniSIPServer 云采用 6060 端口提供 SIP-TLS 接入,而不是标准定义的 5061 接口),新版本我们可以在「服务器地址」中一起指定地址和端口信息,例如:

15000.s2.minisipserver.com:6060

如果服务器提供的是 IPv6 地址和非标准端口,我们也可以采用以下示例的方式进行设置:

[fe80::5a11:22ff:fe74:8198]:6060
改进「基于 TLS 的 SIP」

改进「基于 TLS 的 SIP」

以前的 miniSIPServer 版本如果想启动「SIP over TLS」,必须配置证书和密钥文件(包括自签名证书和密钥)。如果在配置目录中没有这些文件,miniSIPServer 默认不启动 SIP over TLS。

大部分客户部署「SIP over TLS」都采用自签名证书和密钥。Linux 系统自带 openssl 工具,很容易、也很方便创建这些文件,然而 windows 系统默认没有 openssl 工具,客户需要下载工具来创建证书和密钥,略显麻烦。

为了简化客户的工作量,我们优化了 miniSIPServer 启动「SIP over TLS」的一点步骤:

miniSIPServer 默认总是启动「SIP over TLS」。如果配置了证书和密钥文件,则以客户的证书和密钥加密 SIP 消息;如果没有配置证书和密钥文件,miniSIPServer 自动创建自签名证书和密钥加密 SIP。

因此,miniSIPServer 启动时,我们能看到 TLS 端口信息,这表明 miniSIPServer 启动了「SIP over TLS」:

在SUSE、Fedora等系统上运行 miniSIPServer

在SUSE、Fedora等系统上运行 miniSIPServer

我们通常只在 Debian、Ubuntu 系统上开发和发布适用于 Linux 系统的 miniSIPServer 软件,默认采用 deb 安装包发布版本。如果用户是 Linux 宇宙另一个派系——RPM派,要部署 miniSIPServer 就不太方便。越来越多的客户希望能在 SUSE、Fedora、openEuler 等操作系统上部署 miniSIPServer。

考虑到我们没有充足的资源(包括人力、设备等),我们决定发布 AppImage 格式的安装包,这样几乎可以适配所有非 Debian 系列的 Linux 系统。当然,目前仅适配 X86_64 (AMD64) 架构,暂时没有适配 ARM64 架构。

请从网站下载对应的版本:

使用非常简单,甚至无需安装。将下载的 miniSIPServer 软件(比如 minisipserver_u500.AppImage)保存在任意目录下,然后设置「可执行权限」:

chmod +x minisipserver_u500.AppImage

双击该文件或者在命令行下直接运行该文件即可:

./minisipserver_u500.AppImage

其他与安装 deb 包的方式是一样的。配置文件也都是保存在 $HOME/.minisipserver 目录下。

我们分别测试了 openSUSE(Leap 16)、Fedora 42 以及 openEuler (24.03 LTS SP2) ,效果不错:

openSUSE 运行效果图
在 Fedora 系统中运行 miniSIPServer
在 openEuler 系统中运行 miniSIPServer

欢迎大家试用!

优化「连选组」业务

优化「连选组」业务

「连选组」是一项非常古老的企业通信业务,在电路电话时代就有广泛的应用, VoIP 时代也仍然有大量的企业部署该业务。然而时代毕竟变了,业务本身也需要与时俱进,适应 IP 网络的特点和要求。我们依据最近客户的需求和网络环境的变化,对 miniSIPServer 的「连选组」业务做了一些优化。

主要是对业务中的「话务员」特性进行修改和优化,请参考下图:

连选组话务员配置

修改一:一位话务员可以同时配置在多个连选组中。以往限定了一位话务员只能配置在一个连续组中,这已经不符合现代企业的要求。企业中有些员工往往承担复合性工作,因此有很大可能需要同时支持多个连选组,新特性适配了这个需求。

在电路电话时代,话机终端缺乏足够的能力,因此通常「连选组」会允许话务员拨打特定的电话登录、或者登出连选组。出于以下几方面的考虑,miniSIPServer 新连选组业务不再支持话务员登录、登出操作:(1)如今的 SIP 终端多数都具备足够的能力,可以在终端侧实现「免打扰」等功能,因此没有必要再手工登录或者登出。(2)一位话务员同时支持多个连选组后,简单的登录、登出无法满足需要,需要修改为针对特定的连选组进行操作,拨号变得繁琐而没有必要。

修改二:如果连选组的组策略是「线性策略」,我们可以指定话务员的顺序号,从而设定话务员被选择的顺序。以往是按照话务员登录系统的先后顺序默认为组的选择顺序,其实就是随机顺序,这无法满足目前的需求,实际情况中有些话务员在组内的优先级别总是会有差异。话务员设定的「线性策略顺序号」越小,则越先被连选组选中。如果顺序号相同,则以登录系统的时间进行排序,先登录的优先被选择。

当然,这个新配置项对「轮选策略」无效,「轮选策略」总是尽量均匀地选择话务员,均匀分配工作量。

本地 miniSIPServer 和 云 miniSIPServer 的「连选组」业务都已经更新。业务的配置和使用都没有差异,请参考业务文档了解更详细的信息。

安全的企业 SIP 通信

安全的企业 SIP 通信

企业内部的通信系统一般部署在私网内部,在网络边缘部署 SBC 或者语音网关与外部进行通信,因此大部分场景下企业通信都很安全。然而越来越多的企业在云端部署 SIP 服务器,而企业内部的 SIP 终端也越来越多地从外部网络接入企业 SIP 服务器,这使得部分(或者全部)企业通信系统暴露在公共网络中,安全问题日益严重。

企业 SIP 通信安全涉及网络系统的许多方面,例如防火墙等。仅就 SIP 通信本身而言必须加密,避免将通信信息暴露给其他网络用户。加密的 SIP 通信包含两个部分:(1)SIP 消息(信令)加密,以及(2)语音流(RTP)加密,如下图所示:

SIP 加密通信网络拓扑

当然,企业可以部署 VPN 将整个网络系统(不仅仅是通信系统,也包括办公系统等)进行加密,加密的 SIP 通信也可以建立在 VPN 之上。建立企业 VPN 成本比较高、系统比较复杂,本文仅讨论加密的 SIP 通信,不涉及VPN 等其他网络安全技术。

SIP 消息的加密通过「SIP over TLS」实现,云 miniSIPServer、本地 miniSIPServer 以及 miniSIPPhone 都支持 SIP over TLSv1.2 / TLSv1.3。请参考在线文档,本文不再赘述。

语音流通过 SRTP (或者 DTLS-SRTP)传输实现加密,SRTP 的 master key 和 master salt 通过 SIP 消息的 SDP ( RFC4568 )传输、协商,因此 SIP 消息加密才能确保 SRTP 的关键信息不会泄露,仅仅 SRTP 传输加密语音流、但是明文传递 SIP 消息,不能确保整个 SIP 通信的安全性。

RFC4568 中定义了几种加密套件,目前我们选择支持默认的 AES_CM_128_HMAC_SHA1_80 ,暂不支持其他加密套件。

SRTP 协议族包含诸多扩展,目前 miniSIPServer 和 miniSIPPhone 支持最基础的 RFC3711 协议,这也是绝大多数 SIP 设备(包括服务器、PBX、SBC 以及终端)都支持的基础 SRTP 协议;同时也支持 RFC5763, 也就是支持 DTLS-SRTP——目前市面上有很多 SIP 终端设备并不支持 DTLS-SRTP,如果需要部署,需要仔细检查终端的能力。

miniSIPServer 和 miniSIPPhone 默认可以选择 SRTP,无需额外的配置。部分 SIP 设备需要明确配置是否选择 SRTP,例如 MicroSIP 在配置账号时,「Media Encryption」需做以下设定:

MicroSIP 配置 SRTP
上传 IVR-XML 以及语音文件

上传 IVR-XML 以及语音文件

miniSIPServer 云允许用户定义自己的 IVR-XML 文件以及相关的语音文件,以满足用户自己公司 IVR 业务的特定要求。但是这些文件需要发送给我们的支持团队,帮助上传到用户的虚拟服务器中。

这确实有点繁琐,也非常不方便。

因此我们最近更新了云系统,允许用户自己上传 IVR-XML文件以及语音文件到虚拟服务器中。请点击菜单“账户 – IVR-XML 文件(或者语音文件)”完成操作即可。

当然, IVR-XML 文件必须遵循 IVR-XML 技术规范的要求,而语音文件也必须符合 miniSIPServer 语音编码要求。

欢迎! Debian 13 (Trixie)!

欢迎! Debian 13 (Trixie)!

Debian 13 (Trixie) 昨天发布了。这个版本是最新的稳定版本,非常适合商业部署。我们是 Debian 系统的忠诚粉丝,第一时间在该系统上安装、测试了 miniSIPServer。所有的测试用例都通过了,结果很完美!

在 Debian 13 (Trixie) 系统上运行 miniSIPServer

您可以在 Trixie 系统上部署 miniSIPServer,构建企业通讯环境,这绝对是一个令人兴奋的选择!

miniSIPPhone 支持 SIP over TCP/TLS

miniSIPPhone 支持 SIP over TCP/TLS

是的,我们又升级 miniSIPPhone了!

miniSIPPhone V10.10 现在可以支持 SIP over TCP/TLS。在 SIP 账户的配置中新增了“传输”一项,用于指定采用哪种传输方式连接 SIP 服务器:

SIP 账户中“传输”项的配置

如果采用 SIP over TLS,那所有的 SIP 消息都是加密传输。如果企业通信系统中的设备(分机或者服务器)是部署在公共网络,那就非常有必要对通信内容进行加密保护。我们知道云 miniSIPServer 系统支持 SIP over TLS,而且云系统都部署在公共网络中,因此如果客户端同时部署 miniSIPPhone 的话,整个企业 VoIP 系统显然会更安全。

当然,miniSIPPhone 也可以与其他支持 SIP over TCP/TLS 的服务器(或者 PBX )一起工作,共同构建完整、安全的企业通信系统。

发送和接收即时消息(Instant messages)

发送和接收即时消息(Instant messages)

今天我们发布了最新版本的 miniSIPPhone(一款小巧的、适合企业通信的软电话),主要包含了两个新特性:(1)通信录,以及(2)即时消息。

miniSIPPhone 用一个新的窗体来创建、管理通信人列表:

miniSIPPhone 通信录

在通信录中,您可以选择一个目标用户,然后双击(或者按“C”键、或者点击“呼叫”按钮)发起呼叫。

如果希望发送即时消息,选择目标用户后按“M”键(或者点击“发消息”按钮),显示即时通信窗体发送消息:

miniSIPPhone 即时消息窗体(Windows系统)
miniSIPPhone 即时消息窗体(Linux系统)

每个用户对应一个独立的即时消息会话窗体。每个窗体包含三个区域:(1)消息显示区域。本区域显示会话中的所有即时消息,包括发送的消息和接收的消息。(2)输入区域。在该区域中可以输入消息的内容,然后按“Ctrl+Enter”键发送消息。(3)“发送”按钮,当然也是发送消息。

miniSIPPhone 使用 SIP-MESSAGE 操作发送和接收即时消息,目前仅支持纯文本消息,也就是不支持:图片、文件、语音以及视频等内容。

当然,miniSIPPhone依然能够运行在 Windows 和 Linux 系统(包括 AMD64 和 ARM64 架构)。实际上,上图中的两个软终端就运行在不同的系统上。

希望您能喜欢 miniSIPPhone!:-)

电话号码URI

电话号码URI

众所周知 VoIP 域(SIP域)采用 SIP URI 建立呼叫对话。如果需要连接传统的 PSTN 电话网络,我们需要部署 VoIP 网关(或者 SBC 会话边界控制器)用于桥接两个不同的网络。大部分网关都支持 SIP URI,因此我们采用 SIP 中继连接 SIP-PSTN 网络时,与连接 SIP-SIP 网络并没有什么不同。

但有些网关并不支持 SIP URI,它们仅能支持传统电话号码格式的URI(RFC3966规范定义了这种 TEL URI格式)。这种 TEL URI 采用<tel:xxx>格式,而不是<sip:name@address>格式。请参考下图:

电话号码URI网络

以前版本的 miniSIPServer 总是能接受对方发起的 TEL URI 格式的呼叫,但是 miniSIPServer 本身并不会发起这种格式的呼叫。最近几个月先后有几位客户向我们反馈,希望 miniSIPServer 能支持采用 TEL URI 格式发起SIP 中继呼叫,以便和传统 PSTN 网络的网关进行对接,因此我们升级了 miniSIPServer (V60 build 20250208)扩展 SIP 中继的功能。在 SIP中继的“出呼叫”配置中,可以选择“采用电话号码格式”,miniSIPServer 据此将采用<tel> 格式发起呼叫,如下图配置所示:

miniSIPServer 中继“出呼叫”配置电话号码格式

对于 SIP 中继的入呼叫,无需任何改变,miniSIPServer 可以接受对方采用 SIP URI 或者 TEL URI 发起的呼叫。