FreeSWITCH 电话软交换系统搭建(一):初始化安装
2019-04-11 10:44:28
This post is also available in English and alternative languages.
介绍
FreeSWITCH 是一个跨平台的开源电话软交换系统,与 Asterisk 类似,常被用于开发各类视频会议系统、客服系统、电话转接等服务。FreeSWITCH 可以被当作一个 PBX(Private Branch eXchange)作为内部电话交换机使用,也可以对接第三方 SIP 落地网关,将语音业务延伸至传统语音通信网,实现电话业务的内外网互通。
部署
运行环境:Microsoft Azure A3 (4 vCPU, 7 GB RAM)
操作系统:Windows Server 2016
连接方式:客户端 (4G / WLAN) <-> Internet <-> Azure (10.0.0.0/24)
- 从 files.freeswitch.org 下载 x64 架构的安装包。
- 进行典型安装(Typical)。
- 将
FreeSwitchConsole.exe
添加至防火墙放行列表。 - 修改
/conf/sip_profiles
目录下的external.xml
及internal.xml
,将value
字段修改为 Azure 实例的公网 IP 地址(如下方所示)。1
2<param name="ext-rtp-ip" value="[external_ip]"/>
<param name="ext-sip-ip" value="[external_ip]"/> - 从
/conf/directory/default
目录下配置分机号(did)及密码;默认分机号为1000
至1019
,密码为$${default_password}
即1234
。详细分机设置及电话会议号码如下表所示[^3]
号码 | 说明 |
---|---|
9664 | 保持音乐 |
9196 | echo,回音测试 |
9195 | echo,回音测试,延迟5秒 |
9197 | milliwatte extension,铃音生成 |
9198 | TGML 铃音生成示例 |
5000 | 示例IVR |
4000 | 听取语音信箱 |
33xx | 电话会议,48K(其中xx可为00-99,下同) |
32xx | 电话会议,32K |
31xx | 电话会议,16K |
30xx | 电话会议,8K |
2000-2002 | 呼叫组 |
1000-1019 | 默认分机号 |
从
/conf/vars.xml
修改默认密码(注意:如果不修改此处的默认密码,通话连接将会被系统强制延迟[^1])为 Azure 实例的网络安全组根据需要放行入站端口,如下表所示[^2]
FireWall Ports | Network Protocol | Application Protocol | Description |
---|---|---|---|
1719 | UDP | H.323 Gatekeeper RAS port | |
1720 | TCP | H.323 Call Signaling | |
3478 | UDP | STUN service | 用于 NAT 穿透 |
3479 | UDP | STUN service | 用于 NAT 穿透 |
5002 | TCP | MLP protocol server | |
5003 | UDP | Neighborhood service | |
5060 | UDP & TCP | SIP UAS | 用于 SIP 信令 (标准 SIP 端口,对于默认 ”Internal” 配置文件) |
5070 | UDP & TCP | SIP UAS | 用于 SIP 信令 (对于默认 “NAT” 配置文件) |
5080 | UDP & TCP | SIP UAS | 用于 SIP 信令 (对于默认 “External” 配置文件) |
8021 | TCP | ESL | 用于 mod_event_socket |
16384-32768 | UDP | RTP/ RTCP multimedia streaming | 用于 SIP、交换以及其他协议的语音或视频的数据传输 |
5066 | TCP | Websocket | 用于 WebRTC |
7443 | TCP | Websocket | 用于 WebRTC |
以管理员身份运行
FreeSwitch
。使用之前所填写的登录凭据在 SIP 客户端上进行注册,例如在 Zoiper 上,使用
[用户名]@[PBX/VoIP 运营商]
,如1000@[服务器地址]
,密码为1234
。考虑到 NAT 对于连接可能构成影响,需要启用 SIP 客户端的 STUN 并使用 TCP 而非 UDP 进行连接。与此同时,对于客户端也应该配置为“始终允许后台运行”和“允许无限制地使用数据连接”,并开启“自动运行”。
参考文献
[^1]: FreeSWITCH very slow - Stack OverFlow
[^2]: Firewall - FreeSWITCH - Confluence
[^3]: FreeSWITCH 初步
[^4]: 百问 FreeSWITCH