• <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è) > 新聞 > 國內 >

    Kamailio/OpenSIPS學(xué)習筆記-如何使用dialog模塊對呼叫計數

    2018-04-23 13:29:22   作者:james.zhu    來(lái)源:Asterisk開(kāi)源派   評論:0  點(diǎn)擊:


      作為軟交換平臺,很多時(shí)候管理員平臺需要對呼叫進(jìn)行實(shí)時(shí)監控,或者對某些正在進(jìn)行的呼叫進(jìn)行統計,以便方便系統管理。在本期的講座中,我們使用開(kāi)源軟交換的dialog 模塊對已經(jīng)接聽(tīng)的呼叫和正在進(jìn)行的呼叫做一個(gè)實(shí)時(shí)輸出。通過(guò)系統輸出日志,我們可以看到呼叫的狀態(tài)信息,對呼叫進(jìn)行計數處理。
      1、在本講座中,我們會(huì )使用dialog 模塊推廣不同的參數配置支持不同的呼叫狀態(tài)打印。用戶(hù)需要配置和加載dialog 模塊,使用分機對其其他分機進(jìn)行呼叫測試。
      2、配置此示例,用戶(hù)需要修改幾個(gè)配置文件的內容。首先需要加載dialog模塊:
      loadmodule "dialog.so"
      modparam("dialog", "profiles_with_value", "caller ; domain")
      modparam("dialog", "profiles_no_value", "progress ; active")
      modparam("dialog", "db_mode", 2)
      modparam("dialog", "db_url",
      "mysql://opensips:opensipsrw@localhost/opensips")  // 注意修改到客戶(hù)自己的IP 地址。
      然后創(chuàng )建一個(gè)dialog 會(huì )話(huà)處理流程,并且啟動(dòng)計數器設置
      create_dialog();
      # 設置 profile
      if($DLG_status!=NULL && is_method("INVITE")) {
      set_dlg_profile("caller","$fU@$fd");
      set_dlg_profile("domain","$fd");
      }
      #啟動(dòng)呼叫方計數
      $var(ccaller)=0;
      #啟動(dòng)從此 domain 計數
      $var(cdomain)=0;
      $var(ccaller)=get_profile_size("caller","$fU@$fd","$var(ccaller)");
      $var(cdomain)=get_profile_size("caller","$fd","$var(cdomain)");
      # 打印輸出信息
      xlog("L_INFO", "Number of calls from user $fU@$fd is $var(ccaller)");
      xlog("L_INFO", "Number of calls from domain $fd is $var(cdomain)");
      對處理reply 的流程進(jìn)行處理,并且對已接通呼叫和正在進(jìn)行的呼叫進(jìn)行計數處理:
      onreply_route[handle_nat] {
      if($DLG_status!=NULL) {
      if($rs=~"18[0-9]") {
      set_dlg_profile("progress");
      } else {
      if(is_in_profile("progress")) unset_dlg_profile("progress");
      }
      if($rs=~"2[0-9][0-9]") {
      set_dlg_profile("active");
      } else {
      if(is_in_profile("active")) unset_dlg_profile("active");
      }
      }
      if(is_method("INVITE")) {
      #激活已呼叫的計數器
      $var(cactive)=0;
      #處理正在呼叫的計數
      $var(cprogress)=0;
      get_profile_size("active","$var(cactive)");
      get_profile_size("progress","$var(inprogress)");
      # 進(jìn)行log打印
      xlog("L_INFO","There are $var(cactive) active calls and $var(inprogress) calls in progress");
      }
      3、保存以上配置文件,重新加載cfg文件。用戶(hù)可以分別通過(guò)兩種方式進(jìn)行呼叫測試:
    • 通過(guò)軟電話(huà)A對另外一個(gè)分機B進(jìn)行呼叫,B接聽(tīng), 然后置于等待狀態(tài)
    • 通過(guò)另外一個(gè)軟電話(huà)對B進(jìn)行呼叫
      通過(guò)以上兩種方式的呼叫,用戶(hù)就可以看到系統后臺對其呼叫進(jìn)行的計數處理和打印日志信息,tail /var/log/syslog –f 可以顯示當前dialog中用戶(hù),domain, 活動(dòng)呼叫和正在進(jìn)行的呼叫的日志信息。
      4、在本章節中,我們提供dialog模塊對系統呼叫進(jìn)行計數處理。這里,用戶(hù)需要根據dialog加載所需參數,在cfg文件中需要創(chuàng )建dialog,然后啟動(dòng)對已接聽(tīng)呼叫和正在進(jìn)行的呼叫進(jìn)行計數,最后通過(guò)xlog輸出呼叫日志信息。另外,還要對reply進(jìn)行計數處理。此示例可以幫助用戶(hù)實(shí)時(shí)監控呼叫狀態(tài),它提供了非常方便的監控排查方式,用戶(hù)可以在實(shí)際測試環(huán)境中進(jìn)行排查測試。
      關(guān)注微信公眾號:asterisk-cn,獲得有價(jià)值的行業(yè)分享
      freepbx 技術(shù)論壇:www.ippbx.org.cn
      Asterisk, freepbx技術(shù)文檔: www.freepbx.org.cn
      歐米(Omni)智能客服解決方案
      融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 镇原县| 区。| 吴江市| 宾阳县| 崇明县| 邹平县| 左贡县| 石台县| 葵青区| 林西县| 年辖:市辖区| 崇义县| 汉源县| 永仁县| 临猗县| 泰州市| 巴彦淖尔市| 唐河县| 体育| 台南市| 陆川县| 肥东县| 肃北| 象州县| 财经| 封开县| 兴安盟| 上思县| 石河子市| 三台县| 尼勒克县| 穆棱市| 化隆| 巴林左旗| 禹州市| 连州市| 长沙县| 施甸县| 叶城县| 吉林市| 平顶山市| http://444 http://444 http://444 http://444 http://444 http://444