• <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>
     首頁 > 新聞 > 專家觀點(diǎn) >

    《FreeSWITCH 1.2》:探討XML高級配置

    2014-04-28 15:41:13   作者:   來源:CTI論壇   評論:0  點(diǎn)擊:66883


      到目前為止,我們一直在使用FreeSWITCH默認(rèn)安裝的靜態(tài)XML實(shí)例配置文件。在這個(gè)章節(jié),我們將進(jìn)一步演示如何在使用最少靜態(tài)XML的情況下,來靈活配置FreeSWITCH。FreeSWITCH 提供了多種方法讓用戶可以對FreeSWITCH實(shí)行動(dòng)態(tài)控制。每一種方法關(guān)注的領(lǐng)域不同,一些函數(shù)的功能可能有所重疊。例如,mod_xml_curl 和語言綁定都支持用戶創(chuàng)建動(dòng)態(tài)的配置文件。在這一章節(jié),我們將涵蓋以下幾種方法:

      · mod_xml_curl: 這個(gè)模塊支持從web服務(wù)器提取一個(gè)配置文件。配置文件包括撥號規(guī)則,用戶目錄,和基本配置文件。在服務(wù)器出現(xiàn)問題時(shí),它也可以通過一個(gè)靜態(tài)的回退形式來支持一個(gè)動(dòng)態(tài)的配置。

      · Language bindings: 工作方法類似于mod_xml_curl,  用戶可以使用系統(tǒng)支持的腳本語言(Lua, Perl, Java, Python, 和其他語言)來生成一個(gè)動(dòng)態(tài)配置。

      · originate API: originate API工作的方式比較獨(dú)特,它可以在系統(tǒng)中創(chuàng)建一個(gè)新的電話呼叫,因此取名為originate. 我們將通過fs_cli 簡單演示如何通過originate API創(chuàng)建一個(gè)呼叫。

      Event Socket/ESL: Event Socket和ESL(Event Socket Library)提供了一個(gè)強(qiáng)大的機(jī)制,可以對FreeSWITCH進(jìn)行控制。在這一章節(jié),我們將簡要介紹Event Socket,在第十章,通過外部手段控制FreeSWITCH中,我們將做詳細(xì)討論。

      mod_xml_curl基礎(chǔ)

      mod_xml_curl模塊借用了著名的cURL庫 (curl.haxx.se)從web 服務(wù)器提取XML配置文件。FreeSWITCH 可以及時(shí)解析這些文件,作為靜態(tài)XML配置文件使用。因?yàn)橛脩艨梢钥刂苭eb服務(wù)器,用戶可以從請求中的獲得XML,然后修改這些XML文件。當(dāng)用戶需要從同一臺(tái)web 服務(wù)器配置多臺(tái)FreeSWITCH時(shí),這種方式對用戶來說非常有幫助。這樣設(shè)置的好處是可以通過修改一個(gè)地方來控制整個(gè)服務(wù)器集群。

      所有在這一章節(jié)的mod_xml_curl舉例以前web 服務(wù)器可以運(yùn)行PHP腳本。這些舉例已經(jīng)在Apache2 和mod_php測試,因此可以在Linux/UNIX 和Windows運(yùn)行。

      為了讓mod_xml_curl 在FreeSWITCH 啟動(dòng)時(shí)成功加載,需要完成以下幾步:

      1.使用編輯器,打開conf/autoload_configs/modules.conf.xml 文件,添加mod_ xml_curl 模塊:

      <load module="mod_xml_curl"/>

      2.保存文件。

      就像用戶想象的那樣,我們必須對FreeSWITCH 提供一個(gè)URL,確保可以通過這個(gè)URL 提取需要的配置文件。我們可以編輯文件xml_curl.conf.xml 來實(shí)現(xiàn),執(zhí)行以下幾步。

      3.使用編輯器,打開文件conf/autoload_configs/xml_curl.conf.xml,添加下面的配置:

      <configuration name="xml_curl.conf" description="curl

      conf">

      <bindings>

        <binding name="arbitrary_name">

          <param name="gateway-url"

          value="http://localhost/xml_curl/index.php"

          bindings="configuration|dialplan|directory"/>

        </binding>

       </bindings>

      </configuration>

      4. 保存文件。

      5. 重新啟動(dòng)FreeSWITCH。

      用戶可以自定義binding name 屬性,建議這個(gè)屬性具有可讀性。在binding中的param支持一個(gè)URL值,這個(gè)URL獲得名次請求的配置文件內(nèi)容。在我們的例子中,使用了本地的PHP腳本,但是,用戶可以使用一個(gè)公網(wǎng)的web服務(wù)器。就像用戶看到的一樣,我們選擇了FreeSWITCH 環(huán)境的configuration,dialplan和directory 作為web服務(wù)器的一個(gè)頁面請求。

      非常關(guān)鍵的地方是,當(dāng)FreeSWITCH 從用戶的基本獲得一個(gè)請求時(shí),這個(gè)腳本可能不知道如何做出回復(fù)。使用以下的回復(fù)來告訴FreeSWITCH ,腳本不知道如何處理這個(gè)請求,用戶可以通過在本地配置文件設(shè)置:

      <?xml version="1.0" encoding="UTF-8" standalone="no"?>

      <document type="freeswitch/xml">

       <section name="result">

        <result status="not found"/>

       </section>

      </document>

      這樣的方式非常有助于我們問題的處理,例如,用戶想在撥號規(guī)則中處理幾個(gè)Extensions或者contexts,或用戶僅想對幾個(gè)模塊支持一些特別的選項(xiàng)。在接下來的部分,我們將演示一些完全可以按照我們要求來執(zhí)行的例子。首先,我們將介紹index.php文件,這個(gè)文件負(fù)責(zé)對所有請求的驅(qū)動(dòng)。把以下文件保存為index.php, 保存在服務(wù)器上一個(gè)正確的路徑······

      未完待續(xù)······

    • 0

    • 0

    • 0

    • 0

    • 0

    • 0

    • 0

    • 0

    分享到:   收藏

    專題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 开阳县| 藁城市| 富阳市| 府谷县| 前郭尔| 铜山县| 厦门市| 确山县| 佛山市| 宁陵县| 灵武市| 本溪市| 卢龙县| 临洮县| 安宁市| 鹤壁市| 昆山市| 宁晋县| 黑龙江省| 中阳县| 墨竹工卡县| 三明市| 鹤岗市| 中宁县| 扎赉特旗| 怀安县| 汕尾市| 土默特左旗| 夏邑县| 化州市| 潼关县| 隆尧县| 报价| 卢湾区| 蒙城县| 漳平市| 石门县| 荔波县| 凤山市| 雷波县| 龙口市| http://444 http://444 http://444 http://444 http://444 http://444