在SUSE、Fedora等系统上运行 miniSIPServer

在SUSE、Fedora等系统上运行 miniSIPServer

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

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

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

下载 miniSIPServer 版本

使用非常简单,甚至无需安装。将下载的 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 传输实现加密,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 协议。目前不支持 DTLS-SRTP,主要考虑以下几点:(1)SIP over TLS 已经可以确保 master key & salt 的安全性,与 DTLS 的作用等效;(2)虽然 WebRTC 等互联网技术广泛采用了 DTLS-SRTP,但大部分 SIP 设备并不支持 DTLS-SRTP,在企业 SIP 通信领域会有互联互通的问题。

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 发起的呼叫。

miniSIPPhone 支持 Linux 系统(Debian、Ubuntu)

miniSIPPhone 支持 Linux 系统(Debian、Ubuntu)

miniSIPPhone 终于升级到 V10 版本,该版本最重要的特性就是支持 Linux 系统。当然,Linux 系统必须是 Debian 或者 Ubuntu 系列的发行版本。与 miniSIPServer 的要求一样,Debian 版本要求是 V10(Buster)及以上版本,Ubuntu 版本要求是 V18.04(Bionic Beaver)及以上版本。

同时支持 X86_64 以及 ARM64(AArch64)两种硬件架构。

现在在 Linux 系统运行 SIP 电话非常简单,请访问我们的网站下载最新的版本:

例如,您下载的版本是“msp_v10_amd64.deb”,采用以下命令安装:

sudo dpkg --install msp_v10_amd64.deb

接下来就可以点击图形界面快捷方式运行 miniSIPPhone:

如果想卸载 miniSIPPhone,则使用以下命令直接删除即可:

sudo apt remove minisipphone
Debian 以及 Ubuntu 版本支持问题

Debian 以及 Ubuntu 版本支持问题

最新的 miniSIPServer V60版本发布后,对 Debian 以及 Ubuntu 的版本支持做出了修改。Debian 最低版本要求是 oldoldstable 版本,即目前的 V10 版本,也就是说 miniSIPServer 后续将不再支持 Debian V8、V9等版本。

考虑到 Ubuntu 实际是基于 Debian 的系统,因此相应的最低版本要求变更为 Ubuntu V18.04。

请参考在线文档了解 miniSIPServer 对 Linux 系统的最低要求及相关细节。