• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 資訊 > 文章精選 >
     首頁(yè) > 資訊 > 文章精選 >

    基于開(kāi)源FreeSWITCH的管理界面-FusionPBX基于云平臺呼入呼出配置-網(wǎng)關(guān)落地

    --fail2ban過(guò)濾地址其他問(wèn)題討論

    2021-03-22 09:20:17   作者:james.zhu    來(lái)源:Asterisk開(kāi)源派   評論:0  點(diǎn)擊:


      前面的文章介紹了關(guān)于FusionPBX的漢化以及安裝配置的討論。今天,筆者再介紹一些關(guān)于云部署環(huán)境中,使用SIP trunk和對接落地FXO網(wǎng)關(guān)的配置和使用測試中當前遇到的問(wèn)題做一個(gè)分享。筆者介紹如何在阿里云安裝FusionPBX,如何對接SIP trunk,如何對接落地網(wǎng)關(guān),使用期間遇到的一些問(wèn)題和通過(guò)fail2ban過(guò)濾非法注冊地址的配置流程。
      說(shuō)明:
      在測試fusionpbx時(shí),用戶(hù)需要對阿里云安全策略有一定的了解,用戶(hù)需要對FreeSWITCH的基礎配置有一定的了解。
      測試環(huán)境包括:基于阿里云的FusionPBX,SIP trunk, 和落地網(wǎng)關(guān)和SIP終端。具體拓撲示例如下:
      簡(jiǎn)單配置說(shuō)明:
    • 用戶(hù)呼出呼入使用SIP trunk 和FXO/E1/LET方式實(shí)現
    • 分機可以支持安卓版本的SIP APP,電腦端 SIP終端和物理SIP話(huà)機
    • 在云服務(wù)器配置必要的安全策略
      基于云平臺的fusionpbx可以應用的業(yè)務(wù)場(chǎng)景:
    • 分公司員工異地通信(無(wú)需VPN異地部署,各地分機直接注冊到云PBX,支持安卓蘋(píng)果SIP客戶(hù)端,支持基于PC的SIP 軟電話(huà),支持物理SIP 終端)
    • 云通信對講平臺對接
    • 跨國公司之間的溝通
      1通過(guò)腳本安裝FusionPBX
      FusionPBX官方提供了各種開(kāi)源操作系統支持的安裝方式,為了安裝方便,保證成功安裝,筆者建議用戶(hù)安裝Debian操作系統。所以在開(kāi)啟云實(shí)例前,選擇Debian系統。其他系統包括FreeSWITCH官方也不推薦,因此,為了節省時(shí)間,建議用戶(hù)使用Debian比較新的版本。再次提醒,如果安裝云平臺的話(huà),基于國內客戶(hù)使用清華的源來(lái)更新系統的支持包,否則會(huì )相當慢。
      首先下載官方的安裝腳本,但是,官方腳本我們國內可能訪(fǎng)問(wèn)有問(wèn)題,用戶(hù)使用VPN方式獲得腳本代碼,保存到示例中。
      wget -O - https://raw.githubusercontent.com/fusionpbx/fusionpbx-install.sh/master/debian/pre-install.sh | sh;
      cd /usr/src/fusionpbx-install.sh/debian && ./install.sh
      注意,如果國內用戶(hù)訪(fǎng)問(wèn)以上鏈接時(shí),其鏈接已經(jīng)被屏蔽,如果需要獲取安裝腳本的話(huà),用戶(hù)需要通過(guò)VPN獲得此腳本。
      #!/bin/sh
      #upgrade the packages
      apt-get update && apt-get upgrade -y  // debian 或者centos 使用不同命令-yum
      #install packages
      apt-get install -y git lsb-release
      #get the install script
      cd /usr/src && git clone https://github.com/fusionpbx/fusionpbx-install.sh.git
      #change the working directory
      cd /usr/src/fusionpbx-install.sh/debian
      或者切換到centos 路徑下安裝centos系統資源支持包
      注意,我們需要訪(fǎng)問(wèn)github,最近國內訪(fǎng)問(wèn)github非常慢,我們需要訪(fǎng)問(wèn)github的fusionpbx代碼,所以,我們需要修改github.com 切換到github加速的域名上,訪(fǎng)問(wèn)速度會(huì )比較快。因此,用戶(hù)需要修改install.sh 腳本中fusionpbx的訪(fǎng)問(wèn)路徑來(lái)加速。
      修改好了install.php 以后,然后執行安裝腳本:
      ./install.sh的安裝命令,一步步安裝系統支持包,fusionpbx 包和freeswitch支持包,數據庫配置,最好提示安裝的IP地址和訪(fǎng)問(wèn)界面。
      這里,如果無(wú)需FreeSWITCH高清語(yǔ)音支持的話(huà),可以移除下載安裝命令。
      如果一切正常的話(huà),安裝完成后會(huì )顯示用戶(hù)名稱(chēng)和其數據庫,界面登錄密碼。
      
      如果出現80端口被占用的錯誤的話(huà),用戶(hù)可以移除apache2 或者關(guān)閉其服務(wù),或者修改apache2端口。
      官方?jīng)]有ISO鏡像文件,用戶(hù)只能通過(guò)腳本安裝。如果是后期再次使用的話(huà),基于用戶(hù)自己手動(dòng)下載源代碼,然后拷貝到目的地鏈接,無(wú)需通過(guò)github下載。因為是基于互聯(lián)網(wǎng)環(huán)境的安裝,用戶(hù)每次安裝不能保證其版本和連接正常,因此會(huì )帶來(lái)很多維護的不確定性。
      2配置FusionPBX的SIP trunk
      為了實(shí)現呼入呼出的測試,我們使用SIP trunk的方式來(lái)進(jìn)行接入支持。SIP trunk配置非常簡(jiǎn)單,在賬號子菜單中網(wǎng)關(guān)中添加SIP  trunk IP,用戶(hù)名稱(chēng)和密碼即可。然后在A(yíng)CL中添加SIP trunk 地址 允許設置。
     
      reload sip external 設置,可以看到SIP trunk已經(jīng)注冊成功。
      
      注意,一般運營(yíng)商提供的對接是5060端口,FusionPBX的外部端口是5080端口,所以在配置時(shí)用戶(hù)需要核實(shí)具體配置。如果需要對接5060端口,需要特別在SIP IP地址處指定,當然如果用戶(hù)熟悉freeswitch的話(huà),也可以通過(guò)xml修改,或者通過(guò)fusionpbx 高級設置中修改全局變量。
     
      3通過(guò)FusionPBX設置SIP trunk呼入呼出
      因為FusinPBX的很多設置需要特別注意,因此,筆者把這些配置步驟都分開(kāi)介紹。FusionPBX設置呼入呼出相對比較迷惑,用戶(hù)需要使用不同瀏覽器多次配置才能保證其呼叫正常。簡(jiǎn)單配置的方式是,用戶(hù)通過(guò)撥號規則子菜單提供目的地設置選擇呼入還是呼出的方式進(jìn)行設置。
      
      點(diǎn)擊“show all”才能看到所有配置
      
      通過(guò)SIP trunk 呼入路由,路由到分機 100:
      
      配置呼出方式:

      用戶(hù)如果自己可以修改xml的話(huà),也可以修改xml文件實(shí)現非常靈活的配置:
      以上配置中,呼出號碼是15位號碼(國際長(cháng)途呼叫手機)。但是,在Fusionpbx環(huán)境中,筆者不建議這樣使用。這樣的配置和界面看到的配置有時(shí)可能是完全不同的,數據不能同步,這樣會(huì )導致后期很多的維護問(wèn)題,并且增加了系統的風(fēng)險。
      4FusionPBX呼入呼出配置界面存在的一些問(wèn)題
      通過(guò)FusionPBX設置呼入呼出時(shí),因為可以通過(guò)編輯xml文件來(lái)實(shí)現某些特定的路由功能,因此用戶(hù)需要注意修改記錄的維護。
      圖片界面顯示的語(yǔ)法和xml原始xml配置不同。用戶(hù)需要手動(dòng)添加到界面。如果需要通過(guò)界面修改語(yǔ)法的話(huà),用戶(hù)一定要非常熟悉FreeSWITCH的語(yǔ)法配置。
      點(diǎn)擊目的地設置以后,沒(méi)有顯示分機選項。需要換不同瀏覽器測試或者重新刷新。
     
      通過(guò)SIP 分機呼叫國內手機號碼,手機接聽(tīng)。
      呼入以后,轉分機100
      
      
      5云FusionPBX通過(guò)落地網(wǎng)關(guān)實(shí)現呼入呼出
      這里,我們討論通過(guò)落地網(wǎng)關(guān)實(shí)現云Fusionpbx 呼入呼出的設置。因為相關(guān)部門(mén)對SIP trunk的管理不斷的規范,一些SIP trunk,甚至是正常的SIP trunk 雙向呼叫有時(shí)會(huì )遇到問(wèn)題,一些客戶(hù)不得不使用落地網(wǎng)關(guān)的方式來(lái)實(shí)現企業(yè)通信的業(yè)務(wù)需求。但是,因為云FusionPBX在外網(wǎng)環(huán)境中,通過(guò)落地網(wǎng)關(guān)對接云FusionPBX的話(huà),網(wǎng)關(guān)需要注冊到FusionPBX(一般,同一網(wǎng)段直接通過(guò)IP對接)。比較頭疼的是,FusionPBX本身的設計初衷是針對SIP trunk來(lái)支持呼入呼出的,它本身并沒(méi)有一個(gè)良好的配置方式來(lái)支持落地網(wǎng)關(guān)的路由。網(wǎng)關(guān)注冊到fusionPBX的話(huà),網(wǎng)關(guān)可以作為一個(gè)SIP賬號的方式實(shí)現注冊,呼入呼出時(shí)通過(guò)bridge的方式橋接到這個(gè)SIP 分機。因此,用戶(hù)需要首先在SIP 分機注冊的基礎上,再添加一個(gè)橋接方式:
     
      然后,如果用戶(hù)需要呼出的時(shí)候,選擇橋接的地址。FusionPBX 通過(guò)橋接呼叫到分機1000(網(wǎng)關(guān)分機),然后出局。注意,目的地地址的IP的分機的設置地址,用戶(hù)需要根據FreeSWITCH的語(yǔ)法自己手動(dòng)添加。界面無(wú)選擇選項和提示,可能會(huì )讓用戶(hù)非常迷惑。有時(shí),填寫(xiě)了錯誤的語(yǔ)法,系統也可能不會(huì )提示錯誤。
     
      如果用戶(hù)需要通過(guò)界面控制注冊分機的呼入呼出的話(huà),用戶(hù)需要修改界面很多配置選項,例如context配置,xml配置選項。如果在呼入流程中涉及到其他業(yè)務(wù)處理的話(huà),如果使用分機網(wǎng)關(guān)注冊的方式的話(huà),控制界面就很難實(shí)現對其業(yè)務(wù)層面的管理。另外,因為fusionpbx可以實(shí)現多租戶(hù)的方式,如果多租戶(hù)方式在呼入路由方面有很多不同的路由策略的話(huà),fusionpbx不修改xml文件很難實(shí)現其豐富的呼入路由功能,界面管理就會(huì )非常復雜或者失控。所以,如果用戶(hù)需要通過(guò)分機網(wǎng)關(guān)注冊模式對云FusionPBX實(shí)現雙向呼叫的話(huà),簡(jiǎn)單的辦法就是通過(guò)修改xml文件來(lái)實(shí)現。我們在測試環(huán)境中使用了openvox的無(wú)線(xiàn)落地網(wǎng)關(guān),在xml配置落地網(wǎng)關(guān)可以實(shí)現呼入呼出的功能。
      在Openvox的無(wú)線(xiàn)網(wǎng)關(guān)設置中,呼入設置的話(huà),可以修改xml文件來(lái)指定路由規則。
      首先,修改freeswitch 配置文件/etc/freeswitch/dialplan/default.xml  (呼出規則)
      <extension name="gw">
      <condition field="${sofia_contact(1008@$${local_ip_v4})}" expression="^sofia\/internal\/sip:s\@(.*)$" break="never">
      <action application="set" data="openvox=$1"/>
      </condition>
      <condition field="destination_number" expression="^55(\d{+})$">
      <action application="bridge" data="SOFIA/internal/$1@${openvox}"/>
      </condition>
      </extension>
      以55開(kāi)頭的號碼匹配此規則,改匹配規則可以自動(dòng)獲取分機1008注冊的IP和端口號。
      
      
      此處前傳號碼即為呼叫的DID,可以自己定義號碼,修改/etc/freeswitch/dialplan/default.xml 處匹配此號碼后做相應的操作
      綜上所述,筆者介紹了各種落地路由的問(wèn)題和維護帶來(lái)的隱患。如果用戶(hù)在云平臺部署了FusionPBX需要通過(guò)網(wǎng)關(guān)落地的話(huà),筆者只能建議通過(guò)修改xml配置文件,然后通過(guò)橋接方式出局。FusionPBX界面控制策略。
      所以,為了保證界面控制的可維護性和配置便捷性,用戶(hù)如果非必要,盡量通過(guò)SIP trunk的方式來(lái)實(shí)現呼入呼出路由。
      6FusionPBX其他配置的討論
      筆者通過(guò)一點(diǎn)時(shí)間的測試和一些客戶(hù)反饋發(fā)現FusionPBX仍然有許多地方需要做大量的優(yōu)化和改進(jìn)才能滿(mǎn)足市場(chǎng)中IPPBX產(chǎn)品的需求。因為沒(méi)有經(jīng)過(guò)完整的功能測試,目前用戶(hù)反饋的問(wèn)題是:
    1. 中文界面漢化需要大量的配置文件的修改,有時(shí)需要涉及數據庫內容修改。
    2. 界面配置風(fēng)格可以靈活配置,但是,如果針對多租戶(hù)用戶(hù)容易導致用戶(hù)對配置信息位置錯誤理解。
    3. 界面填寫(xiě)的很多參數缺乏強制選項和提示說(shuō)明,用戶(hù)很可能出現參數填寫(xiě)錯誤。如果用戶(hù)不是一個(gè)FreeSWITCH專(zhuān)業(yè)工程師的話(huà),他們就很難對FusionPBX配置有一個(gè)完整清晰的認識。
    4. 全局變量設置和具體的每個(gè)配置文件XML配置可能會(huì )產(chǎn)生沖突,多個(gè)配置文件同時(shí)支持對一個(gè)參數的配置,需要數據能夠及時(shí)同步。筆者通常也會(huì )遇到這樣的問(wèn)題,修改了SIP 內部文件的端口以后,但是界面仍然顯示歷史端口,重新刷新也不一定能夠保證同步。這樣就會(huì )導致系統排查困難。
    5. 目前,根據筆者測試,fusionpbx界面系統對微軟瀏覽器Edge支持相對比較好,谷歌瀏覽器相對比較差。例如,一些驗證碼(不能顯示)或者分機(呼入路由選擇中有時(shí)不能顯示)。
      不同瀏覽器可能會(huì )出現驗證碼顯示錯誤。
      7如何在FusionPBX添加Fail2ban
      因為在云平臺部署,外網(wǎng)攻擊是經(jīng)常遇到的問(wèn)題。除了通過(guò)SBC來(lái)過(guò)濾這些IP地址以外,用戶(hù)只能通過(guò)Fail2ban 實(shí)現對IP地址的關(guān)聯(lián)。因此,我們首先建議用戶(hù)在沒(méi)有SBC的前提下,使用fail2ban來(lái)降低一點(diǎn)安全風(fēng)險,通過(guò)簡(jiǎn)單過(guò)濾方式對非法注冊地址進(jìn)行過(guò)濾。
     
      配置fail2ban配置流程如下, 通過(guò)界面在撥號規則中增加一個(gè)對呼入路由的處理規則:
      添加一個(gè)名稱(chēng) no-found,號碼是*, context 是public。因為是呼入的,當然需要從public開(kāi)始過(guò)濾。
      Tag        Type        Data                            Order
      condition    context    public                            10
      action        set        call_direction=inbound                60
      action        log        [inbound routes] 404 not found ${sip_network_ip}    100
      Order: 999
      Enabled: True
      Description: Log invalid attempts
      3. 手動(dòng)修改fail2ban 對FreeSWITHC的配置文件支持(文件路徑              是/etc/fail2ban/filter.d/fusionpbx-inbound.conf)
      # Fail2Ban configuration file
      # inbound route - 404 not found
      [Definition]
      # Option:  failregex
      # Notes.:  regex to match the password failures messages in the logfile. The
      #          host must be matched by a group named "host". The tag "<HOST>" can
      #          be used for standard IP/hostname matching and is only an alias for
      #          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
      # Values:  TEXT
      #
      #failregex = [hostname] FusionPBX: \[<HOST>\] authentication failed
      #[hostname] variable doesn't seem to work in every case. Do this instead:
      failregex = 404 not found <HOST>
      #EXECUTE sofia/external/9999555150@domain.tld log([inbound routes] 404 not found 82.68.115.62)
      # Option:  ignoreregex
      # Notes.:  regex to ignore. If this regex matches, the line is ignored.
      # Values:  TEXT
      #
      ignoreregex =
      Edit /etc/fail2ban/jail.local
      [fusionpbx-inbound]
      enabled  = true
      port     = 5080
      protocol = udp
      filter   = fusionpbx-inbound
      #logpath  = /usr/local/freeswitch/log/freeswitch.log
      logpath  = /var/log/freeswitch/freeswitch.log
      action   = iptables-allports[name=fusionpbx-inbound, protocol=all]
      #          sendmail-whois[name=fusionpbx-inbound, dest=root, sender=fail2ban@example.org] #no smtp server installed
      maxretry = 5
      findtime = 300
      bantime  = 3600
      重新啟動(dòng)fail2ban:
      /etc/init.d/fail2ban restart
      執行腳本,對fail2ban升級處理:
      cd /usr/src/fusionpbx-install.sh/debian/resources/
      ./fail2ban.sh
      cd /etc/fail2ban
      nano jail.local
      然后重新設置配置,默認是false,修改為true。
      [freeswitch-ip-tcp]
      enabled  = true
      [freeswitch-ip-udp]
      enabled  = true
      jail.conf
      bantime increase it to a larger number
      bantime
      86400  = 1 day
      3600 = 1 hour
      -1 = until restart
      然后重新啟動(dòng)fail2ban:
      service fail2ban restart
      7總結
      本文章中對開(kāi)源FreeSWITHC界面管理系統-FusionPBX的呼入呼出路由的配置策略做了完整說(shuō)明,包括通過(guò)SIP trunk 呼入呼出配置,通過(guò)落地網(wǎng)關(guān)呼入呼出時(shí)在界面管理方面遇到的問(wèn)題,還有在使用過(guò)程中,fuisonpbx的一些兼容性問(wèn)題,界面變量配置問(wèn)題的討論和如何通過(guò)fail2ban來(lái)實(shí)現對非法注冊的IP進(jìn)行過(guò)濾的設置。
      在未來(lái)的部署測試中,筆者將繼續針對fusionpbx的其他功能,例如WebRTC配置,振鈴組設置,IVR,呼叫隊列,億聯(lián)話(huà)機自動(dòng)部署,方位話(huà)機自動(dòng)部署等功能進(jìn)行詳細介紹。
      參考資料:
      www.fusionpbx.com
      www.freesbc.cn
    • 關(guān)于A(yíng)sterisk文檔,參考:www.asterisk.org.cn
    • 融合通信/IPPBX/FreePBX商業(yè)解決方案:www.hiastar.com
    • 最新Asterisk完整中文用戶(hù)手冊詳解:www.asterisk.org.cn
    • Freepbx/FreeSBC技術(shù)文檔: www.freepbx.org.cn
    • 如何使用免費會(huì )話(huà)邊界控制器-FreeSBC,qq技術(shù)分享群:334023047
    • 關(guān)注微信公眾號:asterisk-cn,獲得有價(jià)值的通信行業(yè)技術(shù)分享
     
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    CTI論壇會(huì )員企業(yè)

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 延寿县| 读书| 云林县| 黔南| 江口县| 临朐县| 保靖县| 宁远县| 阜城县| 清水河县| 黄冈市| 大足县| 达孜县| 宽城| 观塘区| 卓资县| 怀安县| 商洛市| 齐齐哈尔市| 乌兰县| 雅江县| 长岭县| 金沙县| 长白| 杭锦后旗| 岳西县| 荔波县| 阿拉尔市| 无棣县| 永仁县| 上虞市| 社旗县| 大邑县| 页游| 泰州市| 桂林市| 龙门县| 乐安县| 荆门市| 余江县| 苍山县| http://444 http://444 http://444 http://444 http://444 http://444