ในตอนนี้เราจะเก็บข้อมูล users (extensions) ในฐานข้อมูล mariadb แล้ว freeswitch server จะใช้
โมดูล mod_xml_curl ดึงข้อมูลนี้มาใช้งาน ผ่าน web server + mariadb
1. ติดตั้ง mariadb server
#apt install mariadb-server mariadb-client
#mysql_secure_installation
2. ติดตั้ง adminer เพื่อจัดการ mariadb ผ่านหน้าเว็บ
#apt install apache2 php libapache2-mod-php php-curl php-cli php-mysql php-gd
#wget "http://www.adminer.org/latest.php" -O /var/www/html/adminer.php
#chown www-data.www-data /var/www/html/adminer.php
#chmod 755 /var/www/html/adminer.php
3. Set password สำหรับ 'root'@'localhost'
#mysql -urooot -p
MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost'=PASSWORD("new_password");
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
เปิด web browser connect ไปที่
http://192.168.1.54/adminer.php
System = MySQL
Server = localhost
Username = root
Password = new_password
Database = mysql
4. ใช้ adminer สร้างฐานข้อมูล freeswitch, table directory, user fsuser, password fspassword ตามรายละเอียดข้างล่าง
5. แก้ไฟล์ get_directory.php ในตอนที่แล้ว ให้เป็นตามนี้
================================
<?php
$con=mysqli_connect("localhost","root","passw0rd","freeswitch");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT * from directory";
?>
<document type="freeswitch/xml">
<section name="directory">
<domain name="192.168.1.54">
<params>
<param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})$"/>
</params>
<groups>
<group name="default">
<users>
<?php
if ($result=mysqli_query($con,$sql)) {
// Fetch one and one row
while ($row=mysqli_fetch_row($result)) {
?>
<user id="<?php echo $row[1]; ?>">
<params>
<param name="password" value="<?php echo $row[4]; ?>"/><param name="password" value="<?php echo $row[4]; ?>"/>
<param name="vm-password" value="<?php echo $row[5]; ?>"/>
</params>
<variables>
<variable name="toll_allow" value="<?php echo $row[6]; ?>"/>
<variable name="accountcode" value="<?php echo $row[7]; ?>"/>
<variable name="user_context" value="<?php echo $row[8]; ?>"/>
<variable name="effective_caller_id_name" value="<?php echo $row[3]; ?>"/>
<variable name="effective_caller_id_number" value="<?php echo $row[1]; ?>"/>
<variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
<variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
<variable name="callgroup" value="<?php echo $row[9]; ?>"/>
</variables>
</user>
<?php
}
// Free result set
mysqli_free_result($result);
}
?>
</users>
</group>
</groups>
</domain>
</section>
</document>
<?php
mysqli_close($con);
?>
=======================================================
6. ทดสอบ
register โทรศัพท์ 2 เครื่อง เข้ากับ freeswitch server extension = 2100 และ extension = 2101
แล้วลองโทรหากัน