一、对接 Twilio SIP Trunk
Twilio 提供基于 SIP Trunk 的电话服务,FreePBX 需要正确配置 Trunk 以接入 Twilio 网络。
1. 创建 Twilio SIP Trunk
- 登录 FreePBX Web 界面。
- 进入 “Connectivity” → “Trunks”。
- 点击 “Add Trunk” → “Add SIP (PJSIP) Trunk”。
2. 配置基本信息
- Trunk Name:
Twilio
- Outbound CallerID:
你的 Twilio 号码
- Maximum Channels:
根据需要填写(一般 10-20)
3. 配置 PJSIP 设置
- SIP Server:
your_twilio_domain.pstn.twilio.com
- SIP Server Port:
5060
(Twilio 默认) - Authentication:
Outbound
- SIP Username:
Twilio 提供的账号
- SIP Password:
Twilio 提供的密码
- SIP Transport:
UDP
(或根据 Twilio 需求调整)
4. 配置 “Advanced”(高级)
- Rewrite Contact:
Yes
- From Domain:
your_twilio_domain.pstn.twilio.com
- From User:
你的 Twilio 账号
- Send RPID/PAI:
Send P-Asserted-Identity header
5. 配置 “Codecs”(编解码)
- 允许的 Codecs:
ulaw, alaw, g729, opus
6. 保存 & 应用
- 点击 Submit 并 Apply Config。
二、上传 IVR 语音导航
IVR(Interactive Voice Response)允许来电者选择不同的分机或部门。
1. 录制并上传语音
- 进入 “Admin” → “System Recordings”。
- 点击 “Upload Recording”。
- 上传 .wav 或 .mp3 语音文件(格式建议 16-bit, 8kHz, Mono)。
- 录音名称可设为
Main_IVR
。
2. 创建 IVR
- 进入 “Applications” → “IVR”。
- 点击 “Add IVR”,设置:
- IVR Name:
Main_Menu
- Announcement:
Main_IVR
- Timeout:
5s
- Invalid Retries:
3
- IVR Name:
- 配置按键映射
1 → 业务部
2 → 客服
3 → 技术支持
0 → 语音信箱
- 保存并应用。
三、修改 FreePBX SIP 监听端口 5060 → 7080
- 进入 “Settings” → “Asterisk SIP Settings”。
- 在 Chan PJSIP Settings:
- Port to Listen On → 7080
- 禁用 Chan_SIP
- 在 Chan SIP Settings → 监听端口改为
0
- 在 Chan SIP Settings → 监听端口改为
- 重启 Asterisk
fwconsole restart
四、配置出局路由
1. 创建出局路由
- 进入 “Connectivity” → “Outbound Routes”。
- 点击 “Add Outbound Route”。
2. 配置基本信息
- Route Name:
Twilio_Out
- Trunk Sequence:
Twilio
3. 配置拨号模式
在 Dial Patterns 中添加:
- Match Pattern:
X.
(匹配所有外部号码) - Prefix: (留空)
4. 保存 & 应用
点击 Submit 并 Apply Config。
五、设置分机分组 & 分组振铃
1. 创建 Ring Group
- 进入 “Applications” → “Ring Groups”。
- 点击 “Add Ring Group”:
- Ring Group Number:
600
- Ring Strategy:
Ring All
- Extensions:
100, 101, 102
- Destination if no answer:
Voicemail
- Ring Group Number:
2. 绑定到 IVR
- 进入 IVR 设置,将
按键 2
绑定到 Ring Group 600。
六、限制分机只能通过域名注册
1. 修改 FreePBX 网络设置
- 进入 “Settings” → “Asterisk SIP Settings”。
- 在 General SIP Settings:
- External Address:
pbx.yourdomain.com
- Local Networks: 删除所有 IP,仅保留公网 IP
- Allow Anonymous Inbound SIP Calls:
No
- External Address:
- 仅允许域名注册
- 进入 Firewall,屏蔽所有非
pbx.yourdomain.com
的注册请求。
- 进入 Firewall,屏蔽所有非
七、企业内网话机注册防火墙设置
如果话机在企业内网,而 FreePBX 在公网,可能会被 NAT 或防火墙拦截。
1. 确保 FreePBX 允许内网 IP
- 在 “Asterisk SIP Settings” → “Local Networks” 添加:
192.168.1.0/24 10.0.0.0/8
2. 配置企业防火墙
- 允许以下端口出入:
7080/UDP
(SIP)10000-20000/UDP
(RTP)443/TCP
(HTTPS Web 接口)
3. 配置 STUN & NAT
- 进入 “Asterisk SIP Settings”:
- NAT Mode:
Yes
- STUN Server:
stun.l.google.com:19302
- Media Address:
pbx.yourdomain.com
- NAT Mode:
4. 内网话机设置
在话机的 SIP Server 设置:
- SIP Server:
pbx.yourdomain.com
- Outbound Proxy:
pbx.yourdomain.com:7080
- Transport:
TLS
(推荐)