亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区,大胆美女艺术,一级毛片毛片**毛片毛片,你瞅啥图片

您當(dāng)前的位置是:  首頁(yè) > 資訊 > 文章精選 >
 首頁(yè) > 資訊 > 文章精選 >

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

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

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


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

  用戶如果自己可以修改xml的話,也可以修改xml文件實(shí)現(xiàn)非常靈活的配置:
  以上配置中,呼出號(hào)碼是15位號(hào)碼(國(guó)際長(zhǎng)途呼叫手機(jī))。但是,在Fusionpbx環(huán)境中,筆者不建議這樣使用。這樣的配置和界面看到的配置有時(shí)可能是完全不同的,數(shù)據(jù)不能同步,這樣會(huì)導(dǎo)致后期很多的維護(hù)問(wèn)題,并且增加了系統(tǒng)的風(fēng)險(xiǎn)。
  4FusionPBX呼入呼出配置界面存在的一些問(wèn)題
  通過(guò)FusionPBX設(shè)置呼入呼出時(shí),因?yàn)榭梢酝ㄟ^(guò)編輯xml文件來(lái)實(shí)現(xiàn)某些特定的路由功能,因此用戶需要注意修改記錄的維護(hù)。
  圖片界面顯示的語(yǔ)法和xml原始xml配置不同。用戶需要手動(dòng)添加到界面。如果需要通過(guò)界面修改語(yǔ)法的話,用戶一定要非常熟悉FreeSWITCH的語(yǔ)法配置。
  點(diǎn)擊目的地設(shè)置以后,沒(méi)有顯示分機(jī)選項(xiàng)。需要換不同瀏覽器測(cè)試或者重新刷新。
 
  通過(guò)SIP 分機(jī)呼叫國(guó)內(nèi)手機(jī)號(hào)碼,手機(jī)接聽。
  呼入以后,轉(zhuǎn)分機(jī)100
  
  
  5云FusionPBX通過(guò)落地網(wǎng)關(guān)實(shí)現(xiàn)呼入呼出
  這里,我們討論通過(guò)落地網(wǎng)關(guān)實(shí)現(xiàn)云Fusionpbx 呼入呼出的設(shè)置。因?yàn)橄嚓P(guān)部門對(duì)SIP trunk的管理不斷的規(guī)范,一些SIP trunk,甚至是正常的SIP trunk 雙向呼叫有時(shí)會(huì)遇到問(wèn)題,一些客戶不得不使用落地網(wǎng)關(guān)的方式來(lái)實(shí)現(xiàn)企業(yè)通信的業(yè)務(wù)需求。但是,因?yàn)樵艶usionPBX在外網(wǎng)環(huán)境中,通過(guò)落地網(wǎng)關(guān)對(duì)接云FusionPBX的話,網(wǎng)關(guān)需要注冊(cè)到FusionPBX(一般,同一網(wǎng)段直接通過(guò)IP對(duì)接)。比較頭疼的是,F(xiàn)usionPBX本身的設(shè)計(jì)初衷是針對(duì)SIP trunk來(lái)支持呼入呼出的,它本身并沒(méi)有一個(gè)良好的配置方式來(lái)支持落地網(wǎng)關(guān)的路由。網(wǎng)關(guān)注冊(cè)到fusionPBX的話,網(wǎng)關(guān)可以作為一個(gè)SIP賬號(hào)的方式實(shí)現(xiàn)注冊(cè),呼入呼出時(shí)通過(guò)bridge的方式橋接到這個(gè)SIP 分機(jī)。因此,用戶需要首先在SIP 分機(jī)注冊(cè)的基礎(chǔ)上,再添加一個(gè)橋接方式:
 
  然后,如果用戶需要呼出的時(shí)候,選擇橋接的地址。FusionPBX 通過(guò)橋接呼叫到分機(jī)1000(網(wǎng)關(guān)分機(jī)),然后出局。注意,目的地地址的IP的分機(jī)的設(shè)置地址,用戶需要根據(jù)FreeSWITCH的語(yǔ)法自己手動(dòng)添加。界面無(wú)選擇選項(xiàng)和提示,可能會(huì)讓用戶非常迷惑。有時(shí),填寫了錯(cuò)誤的語(yǔ)法,系統(tǒng)也可能不會(huì)提示錯(cuò)誤。
 
  如果用戶需要通過(guò)界面控制注冊(cè)分機(jī)的呼入呼出的話,用戶需要修改界面很多配置選項(xiàng),例如context配置,xml配置選項(xiàng)。如果在呼入流程中涉及到其他業(yè)務(wù)處理的話,如果使用分機(jī)網(wǎng)關(guān)注冊(cè)的方式的話,控制界面就很難實(shí)現(xiàn)對(duì)其業(yè)務(wù)層面的管理。另外,因?yàn)閒usionpbx可以實(shí)現(xiàn)多租戶的方式,如果多租戶方式在呼入路由方面有很多不同的路由策略的話,fusionpbx不修改xml文件很難實(shí)現(xiàn)其豐富的呼入路由功能,界面管理就會(huì)非常復(fù)雜或者失控。所以,如果用戶需要通過(guò)分機(jī)網(wǎng)關(guān)注冊(cè)模式對(duì)云FusionPBX實(shí)現(xiàn)雙向呼叫的話,簡(jiǎn)單的辦法就是通過(guò)修改xml文件來(lái)實(shí)現(xiàn)。我們?cè)跍y(cè)試環(huán)境中使用了openvox的無(wú)線落地網(wǎng)關(guān),在xml配置落地網(wǎng)關(guān)可以實(shí)現(xiàn)呼入呼出的功能。
  在Openvox的無(wú)線網(wǎng)關(guān)設(shè)置中,呼入設(shè)置的話,可以修改xml文件來(lái)指定路由規(guī)則。
  首先,修改freeswitch 配置文件/etc/freeswitch/dialplan/default.xml  (呼出規(guī)則)
  <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開頭的號(hào)碼匹配此規(guī)則,改匹配規(guī)則可以自動(dòng)獲取分機(jī)1008注冊(cè)的IP和端口號(hào)。
  
  
  此處前傳號(hào)碼即為呼叫的DID,可以自己定義號(hào)碼,修改/etc/freeswitch/dialplan/default.xml 處匹配此號(hào)碼后做相應(yīng)的操作
  綜上所述,筆者介紹了各種落地路由的問(wèn)題和維護(hù)帶來(lái)的隱患。如果用戶在云平臺(tái)部署了FusionPBX需要通過(guò)網(wǎng)關(guān)落地的話,筆者只能建議通過(guò)修改xml配置文件,然后通過(guò)橋接方式出局。FusionPBX界面控制策略。
  所以,為了保證界面控制的可維護(hù)性和配置便捷性,用戶如果非必要,盡量通過(guò)SIP trunk的方式來(lái)實(shí)現(xiàn)呼入呼出路由。
  6FusionPBX其他配置的討論
  筆者通過(guò)一點(diǎn)時(shí)間的測(cè)試和一些客戶反饋發(fā)現(xiàn)FusionPBX仍然有許多地方需要做大量的優(yōu)化和改進(jìn)才能滿足市場(chǎng)中IPPBX產(chǎn)品的需求。因?yàn)闆](méi)有經(jīng)過(guò)完整的功能測(cè)試,目前用戶反饋的問(wèn)題是:
  1. 中文界面漢化需要大量的配置文件的修改,有時(shí)需要涉及數(shù)據(jù)庫(kù)內(nèi)容修改。
  2. 界面配置風(fēng)格可以靈活配置,但是,如果針對(duì)多租戶用戶容易導(dǎo)致用戶對(duì)配置信息位置錯(cuò)誤理解。
  3. 界面填寫的很多參數(shù)缺乏強(qiáng)制選項(xiàng)和提示說(shuō)明,用戶很可能出現(xiàn)參數(shù)填寫錯(cuò)誤。如果用戶不是一個(gè)FreeSWITCH專業(yè)工程師的話,他們就很難對(duì)FusionPBX配置有一個(gè)完整清晰的認(rèn)識(shí)。
  4. 全局變量設(shè)置和具體的每個(gè)配置文件XML配置可能會(huì)產(chǎn)生沖突,多個(gè)配置文件同時(shí)支持對(duì)一個(gè)參數(shù)的配置,需要數(shù)據(jù)能夠及時(shí)同步。筆者通常也會(huì)遇到這樣的問(wèn)題,修改了SIP 內(nèi)部文件的端口以后,但是界面仍然顯示歷史端口,重新刷新也不一定能夠保證同步。這樣就會(huì)導(dǎo)致系統(tǒng)排查困難。
  5. 目前,根據(jù)筆者測(cè)試,fusionpbx界面系統(tǒng)對(duì)微軟瀏覽器Edge支持相對(duì)比較好,谷歌瀏覽器相對(duì)比較差。例如,一些驗(yàn)證碼(不能顯示)或者分機(jī)(呼入路由選擇中有時(shí)不能顯示)。
  不同瀏覽器可能會(huì)出現(xiàn)驗(yàn)證碼顯示錯(cuò)誤。
  7如何在FusionPBX添加Fail2ban
  因?yàn)樵谠破脚_(tái)部署,外網(wǎng)攻擊是經(jīng)常遇到的問(wèn)題。除了通過(guò)SBC來(lái)過(guò)濾這些IP地址以外,用戶只能通過(guò)Fail2ban 實(shí)現(xiàn)對(duì)IP地址的關(guān)聯(lián)。因此,我們首先建議用戶在沒(méi)有SBC的前提下,使用fail2ban來(lái)降低一點(diǎn)安全風(fēng)險(xiǎn),通過(guò)簡(jiǎn)單過(guò)濾方式對(duì)非法注冊(cè)地址進(jìn)行過(guò)濾。
 
  配置fail2ban配置流程如下, 通過(guò)界面在撥號(hào)規(guī)則中增加一個(gè)對(duì)呼入路由的處理規(guī)則:
  添加一個(gè)名稱 no-found,號(hào)碼是*, context 是public。因?yàn)槭呛羧氲模?dāng)然需要從public開始過(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 對(duì)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
  執(zhí)行腳本,對(duì)fail2ban升級(jí)處理:
  cd /usr/src/fusionpbx-install.sh/debian/resources/
  ./fail2ban.sh
  cd /etc/fail2ban
  nano jail.local
  然后重新設(shè)置配置,默認(rèn)是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總結(jié)
  本文章中對(duì)開源FreeSWITHC界面管理系統(tǒng)-FusionPBX的呼入呼出路由的配置策略做了完整說(shuō)明,包括通過(guò)SIP trunk 呼入呼出配置,通過(guò)落地網(wǎng)關(guān)呼入呼出時(shí)在界面管理方面遇到的問(wèn)題,還有在使用過(guò)程中,fuisonpbx的一些兼容性問(wèn)題,界面變量配置問(wèn)題的討論和如何通過(guò)fail2ban來(lái)實(shí)現(xiàn)對(duì)非法注冊(cè)的IP進(jìn)行過(guò)濾的設(shè)置。
  在未來(lái)的部署測(cè)試中,筆者將繼續(xù)針對(duì)fusionpbx的其他功能,例如WebRTC配置,振鈴組設(shè)置,IVR,呼叫隊(duì)列,億聯(lián)話機(jī)自動(dòng)部署,方位話機(jī)自動(dòng)部署等功能進(jìn)行詳細(xì)介紹。
  參考資料:
  www.fusionpbx.com
  www.freesbc.cn
  • 關(guān)于Asterisk文檔,參考:www.asterisk.org.cn
  • 融合通信/IPPBX/FreePBX商業(yè)解決方案:www.hiastar.com
  • 最新Asterisk完整中文用戶手冊(cè)詳解:www.asterisk.org.cn
  • Freepbx/FreeSBC技術(shù)文檔: www.freepbx.org.cn
  • 如何使用免費(fèi)會(huì)話邊界控制器-FreeSBC,qq技術(shù)分享群:334023047
  • 關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的通信行業(yè)技術(shù)分享
 
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題

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