ในตอนนี้เราจะเก็บข้อมูล 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

แล้วลองโทรหากัน