Q: 外線撥入後約 15 sec 會自動掛斷,且出現錯誤訊息:
[2012-02-29 16:41:42] WARNING[2713] chan_sip.c: Maximum retries exceeded on transmission 3c417d294417b1ff2139128123697520@sip2sip.info for seqno 103 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
[2012-02-29 16:41:42] WARNING[2713] chan_sip.c: Hanging up call 3c417d294417b1ff2139128123697520@sip2sip.info - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions ).
A: 這問題通常發生在 Asterisk 主機放在 NAT 網路環境,請依序檢查這幾項:
- 檢查 sip.conf 的 externip, localnet 是否正確,以及 firewall 啟用 5060(UDP), 10000-20000(UDP) 的 port forwarding。
- 檢查 canreinvite=no
- Asterisk 執行重新開機
- 更換其他的 firewall,pfsense 2.0.1 已確認有此問題,請參閱此篇討論,或執行下述步驟即可獲解決。
- Firewall > NAT > Port Forward 新增 5060(UDP) 與 10000-20000(UDP) 的 port forward 規則。
- Firewall > NAT > Outbound,選擇 Manual Outbound NAT rule generation (AON) 模式,並且新增規則:
- Interface = WAN
- Source = <Asterisk's IP>/32 ; netmask 為 32 表示為 single IP
- Source Port = any
- Destination = any
- Destination Port = any
- NAT address = any
- NAT Port = any
- Static Port = yes ;重要
- NOTE:
- 模式 Auto NAT 切換到 Static NAT 後,系統會自動新增 3 個 rule,這不可刪除,否則 LAN 上網會有問題。
- Static NAT Rule for Asterisk 必須在上方,否則無法被優先套用。
- pfsense 套用新設定後,Asterisk 需要重啟機器。
- 如果撥入時是透過 SIP Provider,與 SIP Provider 端可能也會有關系,例如 CCNet 就會發生這問題,但換成 sip2sip.info 後就不會。
- 其他非 pfsense 的 Firewall,設定時需要注意 Automatic NAT & Static NAT 的項目。