• <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>
     首頁 > 新聞 > 專家觀點 >

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

    2014-04-28 15:41:13   作者:   來源:CTI論壇   評論:0  點擊:


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

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

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

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

      Event Socket/ESL: Event Socket和ESL(Event Socket Library)提供了一個強(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 可以及時解析這些文件,作為靜態(tài)XML配置文件使用。因為用戶可以控制web服務(wù)器,用戶可以從請求中的獲得XML,然后修改這些XML文件。當(dāng)用戶需要從同一臺web 服務(wù)器配置多臺FreeSWITCH時,這種方式對用戶來說非常有幫助。這樣設(shè)置的好處是可以通過修改一個地方來控制整個服務(wù)器集群。

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

      為了讓mod_xml_curl 在FreeSWITCH 啟動時成功加載,需要完成以下幾步:

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

      <load module="mod_xml_curl"/>

      2.保存文件。

      就像用戶想象的那樣,我們必須對FreeSWITCH 提供一個URL,確保可以通過這個URL 提取需要的配置文件。我們可以編輯文件xml_curl.conf.xml 來實現(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. 重新啟動FreeSWITCH。

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

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

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

      <document type="freeswitch/xml">

       <section name="result">

        <result status="not found"/>

       </section>

      </document>

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

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

    分享到: 收藏

    專題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 宁波市| 隆昌县| 红桥区| 西藏| 手游| 犍为县| 东光县| 罗甸县| 福清市| 米脂县| 庆云县| 措勤县| 大城县| 霸州市| 黔东| 冀州市| 微博| 梓潼县| 道孚县| 郴州市| 谷城县| 灵璧县| 铁岭县| 侯马市| 波密县| 麻城市| 武强县| 崇左市| 嘉定区| 镇坪县| 图们市| 怀来县| 南投市| 忻城县| 区。| 兴安县| 西城区| 淄博市| 治多县| 特克斯县| 长宁区| http://444 http://444 http://444 http://444 http://444 http://444