91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

freeswitch 使用外部directory 代替磁盤xml文件

發布時間:2020-05-27 09:23:29 來源:網絡 閱讀:1708 作者:990487026 欄目:數據庫


大家都知道,FreeSWITCH默認是從磁盤中xml文件,決定系統中有哪些用戶的。


對于一個常規的信息系統,用戶信息都是存儲在數據庫中。


以下非常簡單的演示了,FreeSWITCH中的用戶如何使用數據庫注冊。



準備工作:

一套LAMP或LNMP環境

編譯FreeSWITCH 的mod_xml_curl 模塊



Apache + php7 + MySQL 5.7 中的php腳本

根據實際情況,修改相關參數

zhouss@zhouss/var/www/html$ cat chunli_test.php
<?php
/*
 * 作者:李春利
 * 功能:演示接收FreeSWITCH注冊請求,連接到遠程MySQL數據庫檢索用戶密碼,返回XML文件
 * 備注:PHP 7.0 版本程序,注意MySQL函數發生了變化

 * MySQL數據庫表快速創建:
CREATE DATABASE IF NOT EXISTS `freeswitch`  DEFAULT CHARACTER SET utf8;
USE `freeswitch`;                          
DROP TABLE IF EXISTS `authentication`;     
CREATE TABLE `authentication` (            
    `user_name` varchar(100) NOT NULL,       
    `user_password` varchar(100) NOT NULL    
) ENGINE=InnoDB DEFAULT CHARSET=utf8;      
INSERT INTO `authentication` VALUES ('lao_wang','tiger'),('1234','4321'),('chunli','chunli'),('1030','123456'),('1019','1234'),('2222','12345678');
 */

$user   = $_POST['user'];
$domain = $_POST['domain'];
$password = "";

$db_host = "172.16.66.111";
$db_user = "root";
$db_pwd  = "root";
$db_name = "freeswitch";

function getlink($db_host,$db_user,$sb_pwd,$db_name)
{
    $link=mysqli_connect($db_host,$db_user,$sb_pwd);
    if(!$link)
    {
        echo"MySQL數據庫連接失敗\n";
        exit();
    }
    if(!mysqli_select_db($link,$db_name))
    {
        echo"MySQL 數據庫選擇失敗\n";
        exit();
    }
    mysqli_query($link, "setnames utf8");

    return $link;
}


$link=getlink($db_host,$db_user,$db_pwd,$db_name);
$result=mysqli_query($link, "select user_password  from authentication where user_name = '${user}'");

if(mysqli_num_rows($result) > 0)
{
    while($row=$result->fetch_row())
    {  
        foreach($row as $key=>$val)
        {  
            $password = $val;
        }  
    }  
    $result->free(); 
}
else
{
    echo"查無此人{$user}\n";
    exit();
}
mysqli_close($link);
?>
<document type="freeswitch/xml">
  <section name="directory">
    <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; ?>"/>
                </params>
              <variables>
                <variable name="user_context" value="default"/>
              </variables>
            </user>
          </users>
        </group>
      </groups>
    </domain>
  </section>
</document>
zhouss@zhouss/var/www/html$



編譯FreeSWITCH 相關模塊

[root@CentOS ~]# iptables -F

[root@CentOS ~]# iptables -X



編譯mod_xml_curl,默認不編譯

[root@CentOS 01_install]# vim freeswitch-1.6.17/modules.conf 
將
#xml_int/mod_xml_curl
改為
xml_int/mod_xml_curl

編譯 ./configure && make && make mod_xml_curl-install
具體你的configure怎么設置的,自己加上原先的參數。


使FreeSWITCH自動加載mod_xml_curl

[root@CentOS freeswitch]# vim ./autoload_configs/modules.conf.xml
將
    <!-- <load module="mod_xml_curl"/> -->
改為
	<load module="mod_xml_curl"/>
	


修改FreeSWITCH用戶注冊的方式,HTTP優先,如果請求失敗了,再到本地磁盤找xml文件

[root@CentOS freeswitch]# vim autoload_configs/xml_curl.conf.xml
<configuration name="xml_curl.conf" description="cURL XML Gateway">
  <bindings>
    <binding name="directory">
       <param name="gateway-url" value="http://172.16.20.17/chunli_test.php" bindings="directory"/>
    </binding>
  </bindings>
</configuration>


修改撥號計劃,添加通話路由

[root@CentOS freeswitch]# vim dialplan/default.xml 
<condition field="destination_number" expression="^(10[01][0-9]|1234|lao_wang)$">




啟動FreeSWITCH

一個SIP 使用 ('lao_wang','tiger'),注冊

一個SIP 使用('1234','4321'), 注冊


互相撥打電話,試試





調錯技巧:

按F8,打開 debug級別日志。



撥打電話,打不通,如果出現以下情況,說明HTTP請求是失敗的,檢查php腳本的ip,user,password參數

2017-06-29 01:21:40.705900 [WARNING] mod_voicemail.c:3487 Can't find user [1000@172.16.66.88]



如果出現以下情況,說明HTTP請求被拒絕,tcpdump 查看發來的包結構。

2017-06-29 00:22:38.681206 [WARNING] mod_xml_curl.c:294 CURL returned error:[52] Server returned nothing (no headers, no data)


用戶1234 撥打 lao_wang

freeswitch 使用外部directory 代替磁盤xml文件



lao_wang的電話顯示1234來電了

freeswitch 使用外部directory 代替磁盤xml文件







向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连城县| 凤山县| 朔州市| 湘乡市| 望奎县| 萍乡市| 永丰县| 凤凰县| 梁平县| 平度市| 北京市| 霍城县| 汉川市| 克山县| 安龙县| 牙克石市| 胶南市| 和静县| 洞口县| 历史| 乡宁县| 揭阳市| 湟源县| 松江区| 邵阳县| 龙口市| 郑州市| 大竹县| 车致| 泸水县| 日土县| 马边| 合水县| 安塞县| 广河县| 电白县| 诸暨市| 甘孜| 醴陵市| 泰来县| 金川县|