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

基于華為鯤鵬CPU和Kylin linux架構(gòu)編譯安裝Asterisk-19完善華為云語音業(yè)務(wù)生態(tài)鏈

--實現(xiàn)私有云混合云多種業(yè)務(wù)

2021-11-08 09:22:24   作者: james.zhu   來源:Asterisk開源派   評論:0  點擊:


  華為鯤鵬云平臺是華為云戰(zhàn)略部署的重要組成部分,經(jīng)過幾年快速發(fā)展,它已成為了云市場的五朵金花之一。根據(jù)國家對網(wǎng)絡(luò)技術(shù),大數(shù)據(jù)等相關(guān)產(chǎn)業(yè)的戰(zhàn)略部署的要求,為了具備在下一個五十年在國際市場的競爭力,計算機(jī)網(wǎng)絡(luò)技術(shù)的核心技術(shù)要掌握在自己手里。大家知道,網(wǎng)絡(luò)技術(shù)最核心的是操作系統(tǒng)和平臺,CPU等核心技術(shù),這些技術(shù)首先自主化,國產(chǎn)化是最關(guān)鍵的步驟。華為云鯤鵬服務(wù)器為我們提供了非常好的國產(chǎn)化基礎(chǔ)平臺,行業(yè)用戶,金融項目和政府一些項目都開始在華為鯤鵬服務(wù)器平臺進(jìn)行適配,實現(xiàn)國產(chǎn)化部署。
  Asterisk作為目前世界上使用最普遍的企業(yè)級融合通信,VoIP的語音基礎(chǔ)平臺,已經(jīng)廣泛部署在全球不同的云平臺,其用戶體量也非常巨大。在企業(yè)語音通信功能方面支持了非常豐富的業(yè)務(wù)功能,包括SIP呼叫,WebRTC,PSTN接入,實現(xiàn)了開源IPPBX,F(xiàn)reePBX,免費(fèi)辦公電話系統(tǒng),辦公電話系統(tǒng)的全開源時代。因此,Asterisk也需要進(jìn)一步進(jìn)行適配來完成Asterisk在華為鯤鵬服務(wù)器環(huán)境的支持。華為云不僅僅支持X86架構(gòu)的下的各種linux開源操作系統(tǒng),同時也支持華為鯤鵬CPU的環(huán)境下的操作系統(tǒng)。因為Asterisk本身已經(jīng)實現(xiàn)了很多基于云平臺X86 CPU的安裝部署,筆者不再重復(fù)。今天,我們主要計劃測試一下華為鯤鵬CPU的云平臺ECS,基于操作系統(tǒng)Kylin Linux Advanced Server for Kunpeng V10的安裝編譯。
  說明,前幾天Asterisk官方剛剛發(fā)布了Asterisk-19版本,因此我們以Asterisk-19為測試版本進(jìn)行編譯安裝。
  1、購買華為ECS,選擇鯤鵬CPU和Kylin linux服務(wù)器版本
  首先,購買華為云服務(wù),選擇鯤鵬CPU和1vCPUs | 1 GiB | kc1.small.1,操作系統(tǒng)是:Kylin Linux Advanced Server for Kunpeng V10。
  
  用戶可以根據(jù)自己的情況,選擇性能更好的CPU進(jìn)行測試。如果初期測試,建議用戶選擇按需購買,系統(tǒng)不工作時不計費(fèi),這樣減少一些部署成本。用戶完成了一步步購買啟動程序以后,用戶可以通過公網(wǎng)IP進(jìn)行系統(tǒng)訪問。

  安裝好以后,通過公網(wǎng)IP地址使用SSH登錄到華為鯤鵬云后臺進(jìn)行下一步的安裝流程。這些流程是基本的ECS購買啟動的基本流程,華為網(wǎng)站有非常詳細(xì)說明,筆者這里不再做過多介紹。用戶可以根據(jù)自己所處的地區(qū),購買距離自己最近的ECS服務(wù)器。當(dāng)然,為了實現(xiàn)快速安裝,實現(xiàn)無障礙訪問github支持庫,用戶也可以選擇國外的節(jié)點來部署鯤鵬云ECS示例。
  2、編譯Asterisk-19前的準(zhǔn)備
  用戶登錄了華為ECS以后,可以通過命令進(jìn)行安裝部署。在安裝編譯之前,我們首先需要做一點準(zhǔn)備工作。根據(jù)筆者使用情況來看,Kylin Linux的命令基本上是繼承了Centos系統(tǒng)的命令。因此,在安裝過程中,如果用戶熟悉Centos或者其他紅帽子變種發(fā)行版的用戶,可以按照Centos命令安裝支持包,編譯文件。如果發(fā)現(xiàn)有其他命令需要驗證的話,建議訪問Kylin Linux文檔說明。為了保險起見,用戶需要提前更新一下系統(tǒng)支持包,然后執(zhí)行針對Asterisk的支持包的安裝,以下安裝包是Asterisk官方安裝建議支持的支持包,筆者在安裝時缺省了 “epel-release”。
  yum install -y  dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel libedit libedit-devel wget
  完整安裝以上所有支持包以后,下載Asterisk-19 tar壓縮文件。
 
  在以上安裝流程中,我們國內(nèi)訪問Asterisk官方比較慢,也可能是因為筆者系統(tǒng)帶寬不足導(dǎo)致。因此,如果讀者希望快速安裝的話,可以通過本地直接下載,然后上傳到ECS服務(wù)器。
  另外比較重要的一個支持包是jansson 支持包。這個支持包直接yum安裝比較頭疼,建議用戶直接通過源代碼安裝方式安裝:
  cd /usr/src/
  git clone https://github.com/akheron/jansson.git
  cd jansson
  autoreconf   // 如果執(zhí)行錯誤,請先安裝此命令,yum install
  ./configure
  make
  make install
  如果出現(xiàn)“uuid support not found”安裝錯誤時,系統(tǒng)缺少了uuid開發(fā)包支持,用戶需要安裝uuid 開發(fā)包:
  yum install libuuid-devel
  如果出現(xiàn)了libedit 開發(fā)包錯誤的話,用戶執(zhí)行:
  yum install libedit-devel
  如果出現(xiàn)了 libxml2 錯誤,用戶需要安裝
  yum install libxml2
  3、安裝PJSIP和Asterisk
  PJSIP是Asterisk目前和未來新版本使用的SIP協(xié)議棧,所以,用戶可以先編譯PJSIP,用戶也可以通過Asterisk編譯自動綁定PJSIP的版本。如果用戶需要手動編譯PJSIP,用戶可以下載PJSIP,執(zhí)行源代碼編譯安裝:
  cd /usr/src
  wget https://github.com/pjsip/pjproject/archive/2.10.tar.gz
  tar xvf 2.10.tar.gz
  cd pjproject-2.10
  ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
  make dep
  make
  make install
  ldconfig
  如果PJSIP出現(xiàn)了編譯錯誤的話,包括WebTC的支持包等,用戶通過CFLAGS
  參數(shù)關(guān)閉選項。
  安裝好PJSIP以后,用戶可以開始安裝Asterisk-19,執(zhí)行配置命令來先完成配置設(shè)置。切換到Asterisk-19 源代碼目錄,執(zhí)行環(huán)境檢查,確保所有支持包成功安裝:
  cd contrib/scripts/install_prereq install
  完成安裝檢測以后,執(zhí)行配置命令。如果發(fā)現(xiàn)有類似錯誤出現(xiàn)的話(configure: error: patch is required to configure bundled pjproject),需要安裝patch命令,否則,Asterisk官方補(bǔ)丁不會執(zhí)行。
  yum install patch
  在源代碼目錄下執(zhí)行./configure, 如果環(huán)境配置成功的話,就會出現(xiàn)Asterisk的圖例。
 
  然后執(zhí)行編譯安裝命令:
  make && make install
  
  然后執(zhí)行 “make sample”命令, 安裝Asterisk默認(rèn)配置文件:
 
  
  到這一步,Asterisk的編譯安裝基本完成。我們訪問CLI后臺參考具體環(huán)境數(shù)據(jù)。
  4、啟動Asterisk-19,檢測測試環(huán)境和鯤鵬CPU版本。
  安裝好Asterisk以后,用戶可以使用命令來進(jìn)入到Asterisk CLI后臺,查看加載的模塊,版本等信息,確保啟動沒有出現(xiàn)任何錯誤。
  Asterisk -vvvvvvvgc
  
  
  到此為止,基于華為云鯤鵬ECS服務(wù)器安裝的Asterisk-19 成功安裝編譯。具體的配置環(huán)境和CPU消息如下,執(zhí)行l(wèi)shw:
 
  lscpu 顯示的鯤鵬CPU處理器信息:
 
  5、測試Asterisk-19環(huán)境呼叫
  安裝啟動了Asterisk-19僅表示我們在華為云成功編譯了asterisk。但是,我們這里的Asterisk仍然處于非常不安全的設(shè)置環(huán)境中,還有環(huán)境安全端口SIP,RTP等端口設(shè)置仍然沒有開啟。特別是Asterisk部署在公網(wǎng)環(huán)境中,SBC是必不可少的SIP安全機(jī)制,為了真正實現(xiàn)華為云鯤鵬服務(wù)器ECS的安全穩(wěn)定的工作,我們需要前端部署一個SBC來實現(xiàn)防火墻和拓?fù)潆[藏功能。外部SIP 網(wǎng)絡(luò)資源必須通過SBC來實現(xiàn)Asterisk(IPPBX)的業(yè)務(wù)處理。
  
  通過SBC支持,此解決方案可以滿基于Asterisk或者FreeSWITCH等開源軟交換開發(fā)的企業(yè)通信平臺,金融客服,呼叫中心,云對講平臺,門禁對講系統(tǒng),外網(wǎng)SIP終端注冊實現(xiàn)天地物之間的安全穩(wěn)定集成環(huán)境。
  6、總結(jié)
  通過在華為云ECS實現(xiàn)安裝編譯Asterisk-19環(huán)境,滿足了對平臺編譯的要求,另外筆者也驗證了Kylin Linux的安裝支持包的完整性,基本上消除了筆者對其他開源軟件部署的支持能力懷疑,至少在Asterisk安裝所需要的支持包相對還是比較完整的。另外,安裝流程相對比較流暢,基本上沒有出現(xiàn)太多安裝包缺失的問題,版本更新也相對比較完整。在后續(xù)的進(jìn)一步測試過程中,筆者將根據(jù)采用SBC和Asterisk/FreeSWITCH對接集成方式,通過鼎信SBC實現(xiàn)SIP終端,IMS網(wǎng)絡(luò)和網(wǎng)關(guān)的實時環(huán)境測試,進(jìn)一步驗證其SIP呼叫的業(yè)務(wù)功能的可行性,并且結(jié)合華為的VPN能力,存儲能力等實現(xiàn)未來的拓展能力,保證邊緣本地設(shè)備和軟件能夠和華為云服務(wù)器端的無縫集成,最終可以支持私有云部署,混合云部署方式的多種業(yè)務(wù)場景的支持,使得華為鯤鵬云生態(tài)鏈更加完善,打通接入端,接入服務(wù)器,業(yè)務(wù)服務(wù)器的各種環(huán)節(jié),協(xié)助企業(yè)通信解決方案廠家,金融領(lǐng)域,安防監(jiān)控,應(yīng)急指揮調(diào)度系統(tǒng)等重點行業(yè)客戶實現(xiàn)長遠(yuǎn)國產(chǎn)化部署的戰(zhàn)略布局。
  參考資料:
  • www.dinstar.cn
  • www.asterisk.org
  • www.asterisk.org.cn
  • https://www.huaweicloud.com/
【免責(zé)聲明】本文僅代表作者本人觀點,與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

相關(guān)閱讀:

專題

CTI論壇會員企業(yè)