Nat

更改 Asterisk UDP 埠後無法獲得語音

  • July 7, 2015

測試環境由一個 CSipSimple 客戶端、Asterisk 伺服器和一個帶有 NAT 的路由器組成。以前設備使用UDP埠5060,一切都很好。然後我在 Asterisk、路由器的轉發規則和客戶端應用程序中將埠號更改為 15000。現在,當從外部訪問網路時,客戶端可以註冊,但是當它呼叫某個擴展時,Asterisk 抱怨無法創建 DAHDI 通道。當客戶端在 LAN 中時,呼叫正在工作。

什麼地方出了錯?我只更改了控制埠號。

更新

首先我需要提一下,當我撥打分機號碼 100 時,無論語音是否正常,Asterisk 總是抱怨無法創建 DAHDI 頻道。因此,可以忽略此錯誤消息。

現在,詳細呼叫日誌的不同尾部:

手機客戶端註冊過3G,沒有聲音(通話、代答、超時):

-- SIP/103-00000001 answered SIP/101-00000000
  > 0x7fda800295a0 -- Probation passed - setting RTP source address to 192.168.1.100:5062

就這樣。沒有進一步的消息。

通過WiFi註冊的移動客戶端,聲音作品(通話,接聽,通話,掛斷):

 -- SIP/103-00000003 answered SIP/101-00000002
    > 0x7fda88026620 -- Probation passed - setting RTP source address to 192.168.1.100:5062
    > 0x7fda78013fb0 -- Probation passed - setting RTP source address to 192.168.1.112:4000
    > 0x7fda78013fb0 -- Probation passed - setting RTP source address to 192.168.1.112:4000
 -- Executing [h@macro-dial-one:1] Macro("SIP/101-00000002", "hangupcall,") in new stack
 -- Executing [s@macro-hangupcall:1] GotoIf("SIP/101-00000002", "1?theend") in new stack
 -- Goto (macro-hangupcall,s,3)
 -- Executing [s@macro-hangupcall:3] ExecIf("SIP/101-00000002", "0?Set(CDR(recordingfile)=)") in new stack
 -- Executing [s@macro-hangupcall:4] Hangup("SIP/101-00000002", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/101-00000002' in macro 'hangupcall'
== Spawn extension (macro-dial-one, h, 1) exited non-zero on 'SIP/101-00000002'
== Spawn extension (macro-dial-one, s, 43) exited non-zero on 'SIP/101-00000002' in macro 'dial-one'
== Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'SIP/101-00000002' in macro 'exten-vm'
== Spawn extension (from-internal, 103, 2) exited non-zero on 'SIP/101-00000002'

我懷疑你的 SIP 埠現在在 RTP 範圍內,所以 Asterisk 沒有意識到這是一個 SIP 連接。移動 SIP 埠或移動 RTP 埠範圍,以免它們重疊。

請擷取失敗呼叫(區域網路外)和成功呼叫(區域網路)的 CLI 輸出,並在此處發布結果。


要從 bash 提示符擷取 CLI 輸出:

asterisk -r
core set verbose 10

然後從你的區域網路撥打電話,然後從你的區域網路外撥打電話,但失敗發布上述的完整輸出(我假設你有一個簡單的撥號計劃)。如果您使用的是 Elastix 或 FreePBX 等罐裝 PBX,則輸出可能太長,無法在此處發布…

引用自:https://serverfault.com/questions/702721