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

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

在CentOS環(huán)境下編譯asterisk和WebRTC實(shí)現(xiàn)通過(guò)網(wǎng)關(guān)呼入呼出

2019-08-01 09:15:29   作者:james.zhu   來(lái)源:Asterisk開源派   評(píng)論:0  點(diǎn)擊:


  本文章介紹如何在Centos環(huán)境下配置Asterisk,WebRTC和網(wǎng)關(guān),實(shí)現(xiàn)通過(guò)WebRTC呼叫外部手機(jī)號(hào)碼,外部電話呼入,WebRTC接聽的功能。同時(shí),內(nèi)部SIP分機(jī)和WebRTC之間實(shí)現(xiàn)互打撥號(hào)。很多用戶可以通過(guò)WebRT
實(shí)現(xiàn)和企業(yè)內(nèi)部應(yīng)用集成,方便企業(yè)用戶對(duì)業(yè)務(wù)方面的支持,同時(shí)極大降低了業(yè)務(wù)集成的開發(fā)難度。
  測(cè)試環(huán)境:
  • 系統(tǒng)CentOS-7
  • 環(huán)境asterisk-15.7.2
  • 客戶端 sipML5網(wǎng)頁(yè)端、eyeBeam
  • 谷歌瀏覽器
  • 內(nèi)網(wǎng)呼叫:SIP,WebRTC在同一內(nèi)網(wǎng)環(huán)境
  安裝步驟:
  CentOS安裝asterisk依賴包和附加支持包:
  yum install -y gcc gcc-c++ lynx bison mysql-devel mysql-server php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool sqlite-devel unixODBC mysql-connector-odbc bzip2 patch libedit-devel
  下載環(huán)境包:
  cd/usr/local/src  //選擇下載路徑
  wget   //使用wget + 下載鏈接,下載asterisk包
  完成后如上圖表示,以下下載圖省略
  wget //下載srtp包,WebRTC加密通話需要
  wget //asterisk編譯需要
  wget //下載opus包,為WebRTC提供高質(zhì)量的通話編碼
  注:上述鏈接不確定長(zhǎng)久有效,在鏈接失效的情況下,請(qǐng)自行查找下載鏈接。
  在下載完成后,你的usr/local/src目錄下應(yīng)該有這幾個(gè)壓縮包,接下來(lái)就是要解壓縮和編譯。
  • //tar -zxvf +壓縮包名,進(jìn)行解壓操作
  • tar -zxvf  asterisk-15-current.tar.gz
  • tar -zxvf  jansson-2.11.tar.gz
  • tar -zxvf  opus-1.3.1.tar.gz
  • tar -zxvf  v1.5.4.tar.gz
  解壓完成后,在文件夾/usr/local/src目錄下應(yīng)該成功的多出了4個(gè)文件夾,使用ls查看,大概如下圖所顯示
  接下來(lái)進(jìn)行編譯步驟,必須先編譯除asterisk以外的包,再對(duì)asterisk進(jìn)行編譯
  在/usr/local/src目錄下:
  • cd libsrtp-1.5.4
  • ./configure
  • make
  • ake install
  在/usr/local/src目錄下:
  • cd opus-1.3.1
  • ./configure
  • make
  • make install
  在/usr/local/src目錄下:
  • cd jansson-2.11
  • ./configure
  • make
  • make install
  現(xiàn)在已經(jīng)安裝好了Asterisk前置包,接下來(lái)進(jìn)行asterisk的安裝
  在/usr/local/src目錄下:
  • cd asterisk-15.7.3
  • ./configure
  注意:在編譯過(guò)程中,會(huì)下載一個(gè)。bz2格式包,下載時(shí)間可能會(huì)比較長(zhǎng),等待時(shí)間由網(wǎng)速而定
  出現(xiàn)asterisk的星號(hào)標(biāo)識(shí),就代表asterisk編譯的第一步成功了,接下來(lái)在該目錄下使用
  make
  make install
  make samples
  一步一步的進(jìn)行編譯
  在編譯完成后通過(guò)命令我們就可以啟動(dòng)asterisk了
  asterisk -vvvvvvvvvvvvvvvvgc   //v代表等級(jí),v越多顯示信息越多
  接下來(lái),我們檢查一下asterisk模塊的加載是否正常,其中最重要的模塊主要有以下幾個(gè),
  • res_crypto.so
  • res_http_websocket.so
  • res_pjsip_transport_websocket.so
  • codec_opus.so
  在CentOS下使用asterisk -r進(jìn)入asterisk cil頁(yè)面,cli頁(yè)面下輸入“!”退出
  進(jìn)入前
  進(jìn)入后
  使用module show like + 模塊名 查看模塊
  注:筆者在安裝完asterisk發(fā)現(xiàn),oups模塊沒能正常的加載上,發(fā)現(xiàn)是在/usr/lib/asterisk/modules路徑下沒有oups.so的語(yǔ)言格式模塊,于是手動(dòng)下載codec_opus.so模塊并加載,加載成功的可以省略該步驟。
  轉(zhuǎn)到鏈接, http://downloads.digium.com/pub/telephony/codec_opus/ 在這里尋找所對(duì)應(yīng)asterisk版本的opus模塊。在本次測(cè)試環(huán)境中使用的是codec_opus-15.0_1.3.0-x86_64.tar.gz
  cd /usr/local/src/
  wget
  tar -zxvf codec_opus-15.0_1.3.0-x86_64.tar.gz //解壓
  cd codec_opus-15.0_1.3.0-x86_64 //進(jìn)入文件夾
  cp codec_opus.so  /usr/lib/asterisk/modules
  //將codec_opus.so文件復(fù)制到Asterisk模塊目錄中
  cp codec_opus_config-en_US.xml /var/lib/asterisk/documentation/thirdparty
  //將codec_opus_config-en_US.xml文件復(fù)制到Asterisk外部文檔目錄中
  asterisk -r  //進(jìn)入asterisk
  core restart now  //重啟asterisk
  asterisk -r
  core reload  //重新加載模塊
  module show like codec_opus.so  //查看模塊狀態(tài)
  到此,asterisk環(huán)境正常搭建
  創(chuàng)建證書:
  在測(cè)試中,我們?cè)诰W(wǎng)頁(yè)使用的是自簽證書,現(xiàn)在進(jìn)行證書的創(chuàng)建以及http服務(wù)器的搭建。Asterisk  在其  contrib / scripts  源目錄中提供了一個(gè)實(shí)用腳本ast_tls_cert。我們將使用它為我們的新權(quán)限簽署的Asterisk制作自簽名證書頒發(fā)機(jī)構(gòu)和服務(wù)器證書。
  mkdir /etc/asterisk/keys                    //創(chuàng)建證書存放路徑,請(qǐng)記住你的證書路徑!
  cd /usr/local/src/asterisk-15.7.3             //進(jìn)入asterisk源目錄
  contrib/scripts/ast_tls_cert -C 192.168.1.49 -O hiastar -d /etc/asterisk/keys/
  //創(chuàng)建證書 -C 后接asterisk的IP地址 -O后接組織名 -d后接存放路徑。
  注意:腳本運(yùn)行成功時(shí),系統(tǒng)將提示您為CA密鑰設(shè)置密碼,之后系統(tǒng)會(huì)要求您重復(fù)輸入相同的密碼短語(yǔ)幾次。出現(xiàn)下圖提示后,證書創(chuàng)建成功
  cd /etc/asterisk/keys/
  ls  //查看證書是否創(chuàng)建,你的文件夾中應(yīng)該有這幾個(gè)文件
  接下來(lái)配置Asterisk的內(nèi)置HTTP守護(hù)進(jìn)程
  cd /etc/asterisk/
  vim http.conf
  //配置文件如下
  [general]
  enabled=yes
  bindaddr=0.0.0.0
  bindport=8088
  tlsenable=yes
  tlsbindaddr=0.0.0.0:8089
  tlscertfile=/etc/asterisk/keys/asterisk.crt          //你的證書路徑
  tlsprivatekey=/etc/asterisk/keys/asterisk.key        //你的證書路徑
  現(xiàn)在我們將asterisk重新啟動(dòng),之后查看tls服務(wù)器是否運(yùn)行
  asterisk -vvvvgc
  http show status
  出現(xiàn)了紅框內(nèi)的提示,則代表tls服務(wù)器正常運(yùn)行
  之后驗(yàn)證是否能訪問證書頁(yè)面:
  點(diǎn)擊高級(jí)
  點(diǎn)擊繼續(xù)前往
  到現(xiàn)在,證書的創(chuàng)建,及瀏覽器加載完成
  接下來(lái),我們將創(chuàng)建wss的通道以及pjsip.conf的賬號(hào),供sipML5登陸:
  現(xiàn)在,我們需要?jiǎng)?chuàng)建一個(gè)pjsip的通道,以及PJSIP賬號(hào)
  注意:“//”及后接內(nèi)容記得刪除
  cd /etc/asterisk
  vim pjsip.conf
  //配置文件如下
  [transport-wss]
  type=transport
  protocol=wss
  bind=0.0.0.0
  [600]
  type=aor
  max_contacts=5
  remove_existing=yes
  [600]
  type=auth
  auth_type=userpass
  username=600     //分機(jī)賬號(hào)
  password=600     //分機(jī)密碼
  [600]
  type=endpoint
  aors=600
  auth=600
  use_avpf=yes
  webrtc=yes
  media_encryption=dtls
  dtls_ca_file=/etc/asterisk/keys/ca.crt
  dtls_cert_file=/etc/asterisk/keys/asterisk.pem
  dtls_verify=fingerprint
  dtls_setup=yes
  ice_support=yes     //ice功能確保打開
  use_avpf=yes
  force_avp=yes
  media_use_received_transport=yes
  rtcp_mux=yes
  context=li3         //這邊選擇引用的extension撥號(hào)規(guī)則
  allow=opus,ulaw
  //在官網(wǎng),有對(duì)各參數(shù)進(jìn)行詳細(xì)說(shuō)明,請(qǐng)自行查閱
  配置完成圖
  sipML5客戶端登陸:
  點(diǎn)擊后,進(jìn)入下一個(gè)頁(yè)面
  在配置完成后,點(diǎn)擊專家模式
  按圖中所勾選選型,在第一行中輸入wss://asterisk ip地址:8089/ws,完成后點(diǎn)擊save!返回第二個(gè)頁(yè)面。
  點(diǎn)擊login,若出現(xiàn)Connected則代表登陸成功。
  登陸成功后,我們檢查后臺(tái)信息,若有紅框內(nèi)的內(nèi)容則代表登陸正常。
  現(xiàn)在,我們說(shuō)明登陸異常情況:
  當(dāng)出現(xiàn)服務(wù)器不可達(dá)提升時(shí),請(qǐng)檢查你是否添加了自簽證書,以及asterisk是否啟動(dòng),未添加自簽證書或者沒啟動(dòng)asterisk是無(wú)法正常登陸的。同時(shí)在asterisk中不能看到報(bào)錯(cuò)信息。
  當(dāng)出現(xiàn)這個(gè)提升時(shí),代表你的密碼輸入錯(cuò)誤,在asterisk可以看到信息
  現(xiàn)在我們以及成功了一大半了,現(xiàn)在我們進(jìn)行sipML5的通訊測(cè)試,在測(cè)試中我們將再創(chuàng)建一臺(tái)sipML5的分機(jī),eyeBame進(jìn)行通訊測(cè)試。
  cd /etc/asterisk
  vim pjsip.conf
  //配置文件如下
  [601]
  type=aor
  max_contacts=5  
  remove_existing=yes
  [601]
  type=auth
  auth_type=userpass
  username=601
  password=601
  [601]
  type=endpoint
  aors=601
  auth=601
  use_avpf=yes
  webrtc=yes
  media_encryption=dtls
  dtls_ca_file=/etc/asterisk/keys/ca.crt
  dtls_cert_file=/etc/asterisk/keys/asterisk.pem
  dtls_verify=fingerprint
  dtls_setup=yes
  ice_support=yes
  use_avpf=yes
  force_avp=yes
  media_use_received_transport=yes
  rtcp_mux=yes
  context=li3
  allow=opus,ulaw
  //sipML5分機(jī)創(chuàng)建
  軟電話分機(jī)創(chuàng)建:
  //配置文件如下
  [udp-transport]
  type=transport
  protocol=udp
  bind=0.0.0.0
  [777]
  type=endpoint
  context=li3
  disallow=all
  allow=alaw,ulaw
  transport=udp-transport
  auth=auth777
  aors=777
  [auth777]
  type=auth
  auth_type=userpass
  password=777
  username=777
  [777]
  type=aor
  max_contacts=5
  配置文件如圖所示。
  現(xiàn)在我們編寫簡(jiǎn)單的測(cè)試撥號(hào)規(guī)則:
  cd /etc/asterisk
  vim extensions.conf
  //配置文件如下
  [li3]                           //請(qǐng)與之前創(chuàng)建分機(jī)的contaxt名字保持一致
  exten =>600,1,Dial(pjsip/600)
  exten =>600,2,hangup()
  exten =>601,1,Dial(pjsip/601)
  exten =>601,2,hangup()
  exten =>777,1,Dial(pjsip/777)
  exten =>777,2,hangup()
  配置完成后如圖
  cd /etc/asterisk
  vim rtp.conf
  //配置文件如下
  現(xiàn)在進(jìn)行通話測(cè)試,拓?fù)鋱D如下:
  現(xiàn)在注冊(cè)eyebeam軟電話
  點(diǎn)擊,之后選擇“sip賬號(hào)設(shè)定”進(jìn)入以下頁(yè)面
  下一步配置賬號(hào)

  現(xiàn)在軟電話注冊(cè)成功!可以登錄到asterisk cli下查看上線日志
  軟電話上線日志
  現(xiàn)在登錄sipML5客戶端
 
  點(diǎn)擊login登錄,出現(xiàn)Connected代表登陸成功,在asterisk cli后臺(tái)查看上線日志
  現(xiàn)在進(jìn)行sipML5呼叫軟電話的測(cè)試
  在右邊輸入你要撥打的號(hào)碼,點(diǎn)擊call點(diǎn)擊Audio
  記得在彈出的選型中,運(yùn)行你的頁(yè)面使用麥克風(fēng)的權(quán)限!!
  在右邊的提示中,你的撥號(hào)會(huì)有三個(gè)狀態(tài)的變更
  這個(gè)狀態(tài)代表在尋找撥號(hào)規(guī)則
  這個(gè)狀態(tài)代表?yè)芴?hào)規(guī)則正常,正在振鈴,對(duì)端會(huì)收到提示
  點(diǎn)擊接聽
  當(dāng)對(duì)方摘機(jī)后,狀態(tài)會(huì)變成in call代表通話以及建立
  在asterisk cli上可以查看到撥號(hào)信息
  現(xiàn)在進(jìn)行sipML5客戶端之間的通話測(cè)試:
  輸入601進(jìn)行撥號(hào),
  在601的頁(yè)面中會(huì)被振鈴,并提示有來(lái)自600的呼叫,點(diǎn)擊Answer呼叫建立

  在asterisk cli下查看通話記錄
  現(xiàn)在,恭喜你,你已經(jīng)成功的配置好了sipML5的語(yǔ)音通話功能,實(shí)現(xiàn)了WebRTC的基礎(chǔ)功能
  現(xiàn)在進(jìn)行進(jìn)一步的測(cè)試,asterisk對(duì)接語(yǔ)音網(wǎng)關(guān),讓W(xué)ebRTC可以呼入到運(yùn)營(yíng)商,運(yùn)營(yíng)商可以呼入到分機(jī)。
  拓?fù)鋱D
  網(wǎng)關(guān)設(shè)置:
  點(diǎn)擊SIP服務(wù)器,進(jìn)入以下頁(yè)面主用SIP服務(wù)器地址設(shè)置為asterisk ip地址端口使用默認(rèn)的5060,你也可以中繼修改。
  點(diǎn)擊端口,添加
  進(jìn)入端口的設(shè)置中,在端口中,輸入運(yùn)營(yíng)商線路接入到網(wǎng)關(guān)的端口,并設(shè)置代撥號(hào)碼,保存
  添加IP中繼,點(diǎn)擊呼叫和路由,點(diǎn)擊IP中繼
  中繼配置,索引與名稱隨意配置,請(qǐng)記住,對(duì)端配置為asterisk ip地址和端口
  Ip-tel路由配置:索引及描述隨意,呼叫來(lái)源選擇之前配置好的IP中繼,主叫和被叫前綴為any
  Tel-ip路由配置:索引及描述隨意,呼叫來(lái)源選擇any或者運(yùn)營(yíng)商接入到網(wǎng)關(guān)的端口,主叫和被叫前綴為any,呼叫目標(biāo)選擇ip中繼
  到此,網(wǎng)關(guān)側(cè)的配置完成
  Asterisk側(cè)配置
  中繼配置:同樣的,asterisk也需要配置中繼指向網(wǎng)關(guān)設(shè)備,配置如下
  cd /etc/asterisk
  vim pjsip.conf
  //pjsip.conf
  [pstn]                                 //中繼名稱隨意,需要保持一致
  type=aor
  [pstn]
  type=endpoint
  transport=udp-transport
  context=li3                          //調(diào)用同一條撥號(hào)規(guī)則
  disallow=all
  allow=alaw,ulaw
  aors=pstn
  direct_media=no
  [pstn]
  type=identify
  endpoint=pstn
  match=192.168.1.33                  //輸入網(wǎng)關(guān)ip地址
  配置完成后,應(yīng)該如下圖所示
  現(xiàn)在我們?cè)趌i3條目下增加運(yùn)營(yíng)商呼入呼出的撥號(hào)規(guī)則:
  cd/etc/asterisk
  vim extensions.conf
  [li3]
  exten =>015500000000,1,Dial(PJSIP/${EXTEN}@pstn)
  //exten=>運(yùn)營(yíng)商號(hào)碼,1,Dial(PJSIP/${EXTEN}@中繼名稱)
  exten =>015500000000,2,Dial(PJSIP/pstn/sip:1000${EXTEN:1}@192.168.1.33)
  //exten =>運(yùn)營(yíng)商號(hào)碼,2,Dial(PJSIP/中繼名稱/sip:代撥號(hào)碼${EXTEN:1}@網(wǎng)關(guān)地址)
  exten =>015500000000,3,hangup()
  exten =>1000,1,Dial(PJSIP/600)
  //exten =>代撥號(hào)碼,1,Dial(PJSIP/接聽的分機(jī)號(hào)碼)
  exten =>1000,2,hangup()
  注:本地號(hào)碼
  不需要加0,異地號(hào)碼需要加0
  現(xiàn)在你的撥號(hào)規(guī)則配置文件應(yīng)該如下
  配置保持后,記得重啟asterisk,使得配置生效
  現(xiàn)在進(jìn)行呼叫測(cè)試:
  登陸sipML5客戶端
  當(dāng)你手機(jī)成功接通電話后,通話成功建立。
  這個(gè)時(shí)候可以進(jìn)入asterisk cli頁(yè)面下,查看撥號(hào)信息
  現(xiàn)在,你已經(jīng)成功的撥打了一個(gè)WebRTC呼叫到運(yùn)營(yíng)商的電話!
  呼入測(cè)試:
  在你的手機(jī)上,撥打網(wǎng)關(guān)所接入的pstn線路號(hào)碼,進(jìn)行呼入測(cè)試
  當(dāng)你的sipML5客戶端收到撥號(hào)時(shí),點(diǎn)擊answer接聽撥號(hào),成功建立通話
  這個(gè)時(shí)候可以進(jìn)入asterisk cli頁(yè)面下,查看信息
  注意事項(xiàng):
  1.  在每一步。conf文件修改后,記得重啟使得配置生效
  2. 測(cè)試時(shí),建議直接關(guān)閉防火墻,避免rtp協(xié)商失敗導(dǎo)致無(wú)語(yǔ)音
  3.  以上配置撥號(hào)規(guī)則為簡(jiǎn)單測(cè)試用撥號(hào)規(guī)則
  4.  WebRTC對(duì)環(huán)境要求較高,在本次的測(cè)試環(huán)境語(yǔ)音通信成功,不保證其他環(huán)境下通信成功
  關(guān)注本文作者:James.zhu@hiastar.com
  SIPlab@知識(shí)星球
  微信公眾號(hào):asterisk-cn
【免責(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è)

宝山区| 东兰县| 邵东县| 本溪| 华池县| 平武县| 襄城县| 镇平县| 黑河市| 石泉县| 哈密市| 黄骅市| 辽阳市| 祁连县| 家居| 财经| 会同县| 内江市| 乌拉特后旗| 襄汾县| 芦山县| 色达县| 黑龙江省| 包头市| 疏勒县| 赤水市| 浑源县| 安化县| 石台县| 富蕴县| 和顺县| 永泰县| 山东省| 砚山县| 青河县| 英山县| 双辽市| 藁城市| 南丹县| 北安市| 余江县|