中文字幕在线视频第一页,黄色毛片在线看,日本爱爱网站,亚洲系列中文字幕一区二区

 首頁 > 新聞 > 專家觀點(diǎn) >

《FreeSWITCH: VoIP實(shí)戰(zhàn)》:萬能FreeSWITCH directory腳本

2013-01-24 09:32:04   作者:杜金房    來源:FreeSWITCH   評(píng)論:0  點(diǎn)擊:


好多人問我如何使用 mod_xml_curl 進(jìn)行用戶驗(yàn)證,每次回答指導(dǎo)都很費(fèi)勁。今天用 PHP 寫了一個(gè)萬能腳本,希望對(duì)大家有幫助。

FreeSWITCH 默認(rèn)使用靜態(tài)的 XML 文件配置用戶,但如果需要?jiǎng)討B(tài)認(rèn)證,就需要跟數(shù)據(jù)庫關(guān)聯(lián)。FreeSWITCH 通過使用 mod_xml_curl 模塊完美解決了這個(gè)問題。實(shí)現(xiàn)思路是你自己提供一個(gè) WEB 服務(wù)器,當(dāng)有用戶注冊(cè)(或 INVITE)請(qǐng)求時(shí),F(xiàn)reeSWITCH 向你的WEB服務(wù)器發(fā)送請(qǐng)求,你查詢數(shù)據(jù)庫生成一個(gè)標(biāo)準(zhǔn)的XML文件,F(xiàn)reeSWITCH 進(jìn)而通過這一文件對(duì)用戶進(jìn)行認(rèn)證。

好了,別的不多說了,看腳本(用PHP實(shí)現(xiàn)):

<?php $user = $POST['user']; $domain = $POST['domain']; $context = $_POST['Hunt-Context']; $password = "1234"; ?>

<domain name="<?php echo $domain;?>">
  <params>
    <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
  </params>
  <groups>
    <group name="default">
      <users>
        <user id="<?php echo $user; ?>">
          <params>
            <param name="password" value="<?php echo $password; ?>"/>
            <param name="vm-password" value="<?php echo $password; ?>"/>
            </params>
          <variables>
            <variable name="toll_allow" value="domestic,international,local"/>
            <variable name="accountcode" value="<?php echo $user; ?>"/>
            <variable name="user_context" value="<?php echo $context ?>"/>
            <variable name="effective_caller_id_name" value="FreeSWITCH-CN"/>
            <variable name="effective_caller_id_number" value="<?php echo $user;?>"/>
            <!-- <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/> -->
            <!-- <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/> -->
            <variable name="callgroup" value="default"/>
            <variable name="sip-force-contact" value="NDLB-connectile-dysfunction"/>
            <variable name="x-powered-by" value="http://www.freeswitch.org.cn"/>
          </variables>
        </user>
      </users>
    </group>
  </groups>
</domain>

之所以稱這是萬能腳本,是因?yàn)樗静徊樵償?shù)據(jù)庫,任何注冊(cè)請(qǐng)求只要密碼是 1234 就都能通過注冊(cè)。

好了,把上述PHP文件放到你的服務(wù)器上,確保它能正確執(zhí)行。

接下來配置你的 FreeSWITCH, conf/autoload_configs/xml_curl.conf.xml

<binding name="directory">
  <param name="gateway-url" value="http://localhost/~seven/freeswitch/directory.php" bindings="directory"/>
</binding>

然后

reloadxml
reload mod_xml_curl

拿起你的SIP電話注冊(cè)試試吧,別忘了萬能密碼是 1234。

然后怎么辦?把最開頭的幾行換能你的業(yè)務(wù)邏輯(查詢數(shù)據(jù)庫等),就實(shí)現(xiàn)你自己的認(rèn)證了。

上面的 php 腳本也放到 github 上了:https://gist.github.com/1086122

調(diào)試:

load mod_xml_curl 錯(cuò)誤
mod_xml_curl 默認(rèn)是不編譯的,到你的源代碼目錄中執(zhí)行 make mod_xml_curl-install

分享到: 收藏

專題

大竹县| 额尔古纳市| 长汀县| 监利县| 延安市| 敖汉旗| 清涧县| 宣威市| 晋宁县| 石城县| 南汇区| 加查县| 邵武市| 广东省| 石林| 鸡泽县| 新丰县| 邛崃市| 高平市| 庆云县| 麻城市| 浦县| 昔阳县| 崇礼县| 新竹县| 神池县| 宽甸| 云林县| 南投市| 鹿邑县| 会昌县| 德令哈市| 昭苏县| 五家渠市| 漠河县| 孟连| 旌德县| 巨野县| 泸西县| 泰安市| 永顺县|