Was this page helpful?

主機在防火牆內 (Firewall-NAT) 的設定

    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

    Router/Firewall 設備的設定

    這裡的設定程序會依實際使用的設備而有所不同,不過大致區分有兩種作法:

    1. DMZ
      將 Elastix 設定為 DMZ,且確保 SIP、RTP、IAX2 通訊埠允許通過,且都有對應到 Elastix 主機。
      SIP - 5060 UDP。
      RTP - 10000~20000 UDP,請參照 /etc/asterisk/rtp.conf
      IAX2 - 4569 TCP/UDP。

       
    2. Port Forwarding
      確認 SIP、RTP、IAX2 這些通訊埠(各埠號同上述)可以轉送至 Elastix 主機,且無其他應用程式佔用。

    常見問題

    1. 遠端網路的分機或另一台 Elastix 主機無法註冊?
      Ans:請在 分機或 SIP Trunk 設定增加 nat=yes。
       
    2. 遠端的分機可以成功註冊但聽不到聲音,而內部分機是正常的?
      Ans:這個問題多半是 RTP 無法正常通過兩邊的防火牆所致。
      • 在主機端,請重新檢查上述的所有步驟,尤其是 RTP 的部份。
      • 在分機端,檢查防火牆有關 RTP 的設定。
         
    3. 主機放在網路防火牆內,不需要遠端分機註冊,防火牆該如何設定安全政策?
      Ans:假使沒有遠端分機註冊的需求,在網路防火牆的安全政策設定,仍需要開啟 Port forwarding for RTP,否則當要接聽來自外網的其他 SIP 來電時,撥號者會聽不到任何聲音。
       
    4. 如何決定 RTP port 的可用範圍?
      Ans:一個電話終端會用到 2 port,分機 A 撥給分機 B 就會用到 4 port,如使用視訊通話,則一個視訊通話會用到 4 port,可參閱此篇討論
       
    5. 對於某些 Router 即使修改的 Asterisk 的設定,仍是聽不到聲音?
      Ans:檢查 Router 是否開啟 SIP ALG(預設通常是開啟的),將它關閉試試。參閱:http://www.sysfix.co.uk/blog/2011/01...-sip-asterisk/
       
    6. 主機與遠端分機都在 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 通訊是非常重要的,設備除了非親自使用過以外,採購前也可以參考這個網站的列表 http://businesssupport.vonage.com/ap...1546/kw/router

    參考文件

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    查看第3個(總3個)評論: 查看所有
    這樣的設置,如果是使用動態網址,在sip_nat.conf裡,需要同時加入:
    externip=aaa.aaa.aaa.aaa
    externhost=xyzxyz.domain.com
    嗎?
    如果只設置externhost=xyzxyz.domain.com,而不設置externip的話,由遠端的分機(Soft Phone)撥其他分機或撥出市話,會不會只有單方通話(一方能聽到,另一方則聽不到對方的聲音)的問題?
    我是在實際使用中遇到這樣(單通)的問題,不知是不是因為只設置了externhost,而沒設置externip?
    發佈時間 22:41, 28 Oct 2009 ()
    extenip & extenhost 要使用哪一個?
    這個要視主機的外部 IP 是否為固定
    - 若是,要設 externip。
    - 若不是,要設 externhost
    不過,這兩個參數與單通的問題,比較沒直接關係,請檢查防火牆規則。
    發佈時間 16:29, 29 Oct 2009 ()
    只有使用nmap -sU -p 5060 <對方主機 IP 位址>才可以看到对方端口状态,这命令需要root权限
    nmap -P0 -p 5060 <對方主機 IP 位址>看到的总是5060/tcp closed sip
    發佈時間 10:55, 4 Feb 2010 ()
    查看第3個(總3個)評論: 查看所有
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core