介绍
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 地址(如下方所示)。
<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。详细分机设置及电话会议号码如下表所示1
| 号码 | 说明 |
|---|---|
| 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 | 默认分机号 |
| 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 进行连接。与此同时,对于客户端也应该配置为“始终允许后台运行”和“允许无限制地使用数据连接”,并开启“自动运行”。