Elastix/Asterisk 主機設定
PBX > Tools > File Editor > File: sip_nat.conf,增加以下兩行。
externip=aaa.aaa.aaa.aaa localnet=bbb.bbb.bbb.bbb/255.255.255.0
externip - 主機所對應的外部網路 IP
localnet - 與主機在同一個LAN,所有內部分機的內部網路之網段,如有 vLan 環境可設多組網段。
aaa.aaa.aaa.aaa 外部網路 IP 位址
bbb.bbb.bbb.bbb 內部網路的子網路定義,例如 192.168.1.0。
如果沒有固定的 IP,可以使用 DDNS 服務,且設定將 externip 改成 externhost,並填寫正確的主機 FQDN 名稱。
externhost=mypbx.mydomain.com
變更設定後需重啟服務,才會生效。
檢查設定是否有被套用:
# Asterisk -rx "sip show settings"
Network Settings:
---------------------------
SIP address remapping: Enabled using externip
Externhost: <none>
Externip: 123.123.123.123:5060
Externrefresh: 10
Internal IP: 127.0.0.1:5060
Localnet: 192.168.9.0/255.255.255.0
STUN server: 0.0.0.0:0
注意:新版的 Asterisk 1.8+ 已經將 externip 改成 externaddr
- 官方的 Issue 連結: https://issues.asterisk.org/view.php?id=17665#c124720
- 如果使用 externaddr 遇到 one-way audio 情形,可加上 media_address=<myip>,參閱相關討論。
Router/Firewall 設備的設定
這裡的設定程序會依實際使用的設備而有所不同,不過大致區分有兩種作法:
- DMZ
將 Elastix 設定為 DMZ,且確保 SIP、RTP、IAX2 通訊埠允許通過,且都有對應到 Elastix 主機。
SIP - 5060 UDP。
RTP - 10000~20000 UDP,請參照 /etc/asterisk/rtp.conf。
IAX2 - 4569 TCP/UDP。 - Port Forwarding
確認 SIP、RTP、IAX2 這些通訊埠(各埠號同上述)可以轉送至 Elastix 主機,且無其他應用程式佔用。
常見問題
- 遠端網路的分機或另一台 Elastix 主機無法註冊?
Ans:請在 分機或 SIP Trunk 設定增加 nat=yes。 - 遠端的分機可以成功註冊但聽不到聲音,而內部分機是正常的?
Ans:這個問題多半是 RTP 無法正常通過兩邊的防火牆所致。- 在主機端,請重新檢查上述的所有步驟,尤其是 RTP 的部份。
- 在分機端,檢查防火牆有關 RTP 的設定。
- 主機放在網路防火牆內,不需要遠端分機註冊,防火牆該如何設定安全政策?
Ans:假使沒有遠端分機註冊的需求,在網路防火牆的安全政策設定,仍需要開啟 Port forwarding for RTP,否則當要接聽來自外網的其他 SIP 來電時,撥號者會聽不到任何聲音。 - 如何決定 RTP port 的可用範圍?
Ans:一個電話終端會用到 2 port,分機 A 撥給分機 B 就會用到 4 port,如使用視訊通話,則一個視訊通話會用到 4 port,可參閱此篇討論。 - 對於某些 Router 即使修改的 Asterisk 的設定,仍是聽不到聲音?
Ans:檢查 Router 是否開啟 SIP ALG(預設通常是開啟的),將它關閉試試。參閱:http://www.sysfix.co.uk/blog/2011/01...-sip-asterisk/ - 主機與遠端分機都在 NAT 網路下,遠端分機每隔幾秒或分鐘,就會出現未註冊或掉線狀態?
Ans:這通常是兩端的防火牆設備造成兩邊 NAT 網路不一致所引起,比較好的方法是更換其中一邊的防火牆設備試試。
如果仍不行或者無法更換設備,可以試著調整遠端分機的設定,找尋有關 keeplive,或 register expire 兩個參數,作法是啟用 keeplive,調低 register expire。(參閱此篇文章)
技巧
如何檢測主機 5060 port 有否正常對外通訊?
使用另一台在外網的 Linux 電腦,執行以下指令,偵測對方主機是否開啟 port 5060。
//若對方主機的網路未封鎖 ping 指令,請用
#>nmap -sU -p 5060 <對方主機 IP 位址>
//若對方主機的網路封鎖 ping 指令,請用
#>nmap -P0 -p 5060 <對方主機 IP 位址>
通訊埠可連線時狀態
Starting Nmap 4.68 ( http://nmap.org ) at 2009-01-23 18:51 PST Interesting ports on 192.168.1.254: PORT STATE SERVICE 5060/udp open|filtered sip
通訊埠不可連線時狀態
Starting Nmap 4.68 ( http://nmap.org ) at 2009-01-23 19:12 PST Interesting ports on 192.168.1.254: PORT STATE SERVICE 5060/udp closed sip
如何挑選適合 VoIP 的 Router
基於網路使用的安全性,VoIP 的基礎網路架構一定免不了要用到 NAT 網路,然而市售的 Router 其廠牌與售價又非常之混亂,若只是將它們用於一般上網、玩遊戲,可能差別不大;若要應用在 VoIP 的語音通訊上,可就不一定每個都能擔此重任了。
有些設備對於 VoIP 通訊不是這麼相容,有可能會衍生一些奇奇怪怪的問題,故挑選一個正確的 Router 對於 VoIP 通訊是非常重要的,設備除了非親自使用過以外,採購前也可以參考這個網站的列表
设置sip_nat.conf的范例如下:
bindport=5060
externaddr=xxx.xxx.xxx.xxx
localnet=172.16.9.0/255.255.255.0
localnet=10.49.30.0/255.255.255.0
nat=yes
allow=all
相关推荐
解决方案通常包括在sip.conf中设置`externip`为公网IP,或者使用STUN(Session Traversal Utilities for NAT)或TURN(Traversal Using Relays around NAT)服务器来帮助穿越NAT。 4. /etc/asterisk/backup.conf ...
接下来,在Elastix服务器上编辑`/etc/asterisk/sip_nat.conf`文件,配置如下: - `bindport=5060`:绑定SIP端口。 - `externip=11.22.33.44`:指定Elastix服务器的公网IP地址。 - `localnet=192.168.0.0/255.255....
`sip.conf`用于定义SIP用户代理和服务器之间的关系,而`extensions.conf`则定义了呼叫路由规则。 在serverA上,我们首先要在`/etc/asterisk/sip.conf`中添加两个用户,分别表示1495和1496的SIP电话。它们的类型设置...
3. **启用WebSocket**:若希望实现数据的实时更新,可以在`xml_rpc.conf.xml`中添加`<paramname="enable-websocket"value="true"/>`来启用WebSocket功能。 4. **系统事件查看**:在Chrome浏览器中使用开发者工具的...
< > SIP protocol support < > TFTP protocol support <M> Connection tracking netlink interface <M> Connection tracking timeout tuning via Netlink <*> Netfilter Xtables support (required for ip_...
使用 vim 编辑 `/etc/asterisk/sip.conf` 文件,添加分机配置: `[101]` `;SIP 分机注册账号` `callerid=ABC` `; 分机显示名称(可不设定)` `username=101` `;SIP 再注册时要使用的账号(可不设定)` `type=friend...
在服务器端,主要涉及两个关键文件的修改:`sip.conf`和`extension.conf`。 `sip.conf`用于定义用户账户和他们的属性。例如, `[1111]`、`[2222]`和`[9999]`是三个不同用户的配置,每个用户都有一个唯一的ID...
1. **编辑 sip.conf 文件:** - 创建一个新的节 (section),如 `[callman01]`。 - 配置类型为 `friend`。 - 指定上下文为 `xiuxiu`。 - 主机地址设置为 CUCM 的 IP 地址 (172.18.10.111)。 - 允许的编码格式: ...
- **网络ACL配置**:在`/etc/freeswitch/autoload_configs/acl.conf.xml`中,定义允许的网络范围,例如允许特定的局域网IP段,以支持内网部署。 - **应用ICE ACL**:在`/etc/freeswitch/sip_profiles/internal.xml...
然后,在Asterisk配置文件sip.conf中添加用户信息,并使用Mysql数据库连接实现在用户表中的数据。 Asterisk配置 在安装和配置Mysql用户表后,需要配置Asterisk以使用Mysql数据库。可以在sip.conf文件中添加用户...
首先,让我们打开/etc/asterisk/sip.conf文件,这是Asterisk配置SIP用户和设置的主要文件。在这个文件中,我们需要添加或修改一些关键参数来启用视频支持。在你的描述中提到,你需要在该文件中加入以下行: ```ini ...
- 修改`conf/sip_profiles/internal.xml`文件启用WebSocket绑定。 - 关闭Linux防火墙以避免访问拒绝错误。 ```bash service iptables stop ``` **测试场景**: - 使用默认的Freeswitch账户(例如1011、1012)...
- **概念解释**:由于NAT设备可能阻塞SIP和RTP通信,因此需要特殊的技术来确保穿透。 - **STUN/TURN/ICE协议**:实现NAT穿透的关键技术。 #### FreeSwitch基础和配置部分 **21. FreeSwitch简介** - **定义**:...
1. **配置Asterisk**:设置WebRTC支持,配置sip.conf、modules.conf、rtp.conf等文件,确保支持WebRTC的编解码器。 2. **Asterisk AGI(Asterisk Gateway Interface)或AMI(Asterisk Manager Interface)**:使用...
这一过程涉及到NATPMP和UPnP两种协议,这两种协议的目的是让FreeSwitch能够自动配置NAT,从而使得SIP通信可以正常进行。然而,这种自动配置方式存在安全隐患,因为它可能会在路由器上开放不必要的端口。如果不想暴露...