Thứ Bảy, 8 tháng 6, 2013

Hướng dẫn cài đặt Add-ons Asterisk sử dụng Database MySQL [realtime]

- Ở đây mình dùng Asrerisk 1.8.2.1, các bạn có thể down source asterisk "tại đây"
- Sau đó cài đặt các Add-on của Asterisk cần thiết vào mysql
- Mình sẽ hướng dẫn cách add các table theo chuẩn của Asterisk vào Mysql




Đầu tiên các bạn install mysql server, các bạn tham khảo link dưới:
http://forums.fedoraforum.org/showthread.php?t=255254
Các bạn dùng lệnh trong sql để tạo user đăng nhập cũng như database tên Asterisk sẵn. Cách tạo đều có trong link trên.




Sau đó, down source asterisk ở trên, và dùng lệnh sau để giải nén file vừa tải về
# tar -zxvf asterisk 1.8.2.1.tar.gz

Di chuyển vào thư mục vừa giải nén, và thực hiện lần lượt các lệnh sau:
#cd asterisk1.8.2.1
#./configure
#make menuselect




Sau đó chọn các add-on của Asterisk bằng cách Enter vào Add-ons như sau:
**************************************************
Asterisk Module and Build Option Selection
**************************************************
                            Press 'h' for help. 
---->Add-ons        (Check vào 3 ô: [*]app_mysql , [*]cdr_mysql , [*]res_config_mysql]
   Applications
   Bridging Modules
   Call Detail Recording
   Channel Event Logging
   Channel Drivers
   Codec Translators
   Format Interpreters
   Dialplan Functions
   PBX Modules
   Resource Modules
   Test Modules
   Compiler Flags
   Voicemail Build Options
   Utilities
   AGI Samples
  ----> Module Embedding          (Check vào ô [*]ADDONS)
   Core Sound Packages
   Music On Hold File Packages
    Extras Sound Packages
Sau đó tiếp 2 lệnh sau 
#make
#make install




Tiếp tục cài đặt httpd, php, phpmyadmin nếu như các bạn chưa cài (mục đích để quản lý SQL của Asterisk thông qua giao diện web phpmyadmin):
# yum install httpd
# chkconfig --levels 235 httpd on

# /etc/init.d/httpd start



Chúng ta sử dụng câu lệnh sau để cài đặt PHP5 và các module hỗ trợ 
# yum install php
# /etc/init.d/httpd restart
Tiếp theo, chúng ta sẽ tạo 1 file php nhỏ(info.php) và tiến hành gọi file  đó bằng trình duyệt. File này sẽ
hiển thị tất cảcác chi tiết trong trong quá trình cài đặt PHP:
# vi /var/www/html/info.php
<?php
phpinfo();
?>
Để gọi file info.php, gõ địa chỉ sau vào trình duyệt (ở bài viết này là http://127.0.0.1/info.php)




Thiết lập đê PHP hỗ trợ MYSQL 
Để làm việc này, chúng ta phải cài  đặt gói php-mysql. Các bạn nên tìm kiếm gói 
này bằng câu lệnh sau: 
# yum search php
# yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy
# /etc/init.d/httpd restart

Truy cập lại địa chỉ http://127.0.0.1/info.php, và bạn sẽ thấy sự khác biệt với nhiều module mới, có bao gồm MySQL




Cài đặt Phpmyadmin 
phpMyAdmin là bảng điều khiển cơ sở dữ liệu MySQL với giao diện web. Các bạn có thê cài  đặt phpMyAdmin bằng cách:
# yum install phpmyadmin

Tiếp theo, chúng ta phải điều chỉnh phpMyAdmin để phpMyAdmin cho phép những kết nối khác nhau không chỉ từ localhost:
# vi /etc/httpd/conf.d/phpMyAdmin.conf

Xóa nội dung cũ và copy nội dung bên dưới vào file
# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
#<Directory /usr/share/phpMyAdmin/>
# order deny,allow
# deny from all
# allow from 127.0.0.1
# allow from ::1
#</Directory>
# This directory does not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc. This may break your mod_security implementation.
#
#<IfModule mod_security.c>
# <Directory /usr/share/phpMyAdmin>
# SecRuleInheritance Off
# </Directory>
#</IfModule>

Sau đó khởi động lại Apache: 
# /etc/init.d/httpd restart
Khi hoàn thành, chúng ta có thể truy cập phpMyAdmin qua địa chỉ http://127.0.0.1/phpmyadmin/




Tiếp theo, sau khi mọi thứ hoàn tất, tại web http://127.0.0.1/phpmyadmin/ , chúng ta vào database tên, Asterisk để thêm các table theo chuẩn asterisk vào:
 Bên trái là ta đã chọn database tên Asterisk do lúc đầu mình tạo, bên phải chỗ Import là nơi để add các file có sẵn trong thư mục asterisk 1.8.2.1 mà các bạn đã down và giải nén khi nãy.


 Chọn Browse trõ tới các file đó


Ở trên là đường dẫn nơi thư mục asterisk 1.8.2.1 đã được giải nén, tùy nơi mà các bạn giải nén mà trỏ tới. Bên dưới là các file, ta add lần lượt các file đó vào.




Tuy nhiên lưu ý: 2 file queue_log.sql và sipfriends.sql sẽ bị sai vào chỗ, các bạn nên sửa file đó theo nội dung bên dưới
Với file sipfriends.sql, nội dung file là:
#
# Table structure for table `sipfriends`
#
CREATE TABLE `sipfriends` (
  `name` varchar(40) NOT NULL default '',
  `type` varchar(10) NOT NULL default '',
  `username` varchar(40),
  `fromuser` varchar(40),
  `fromdomain` varchar(40),
  `secret` varchar(40),
  `md5secret` varchar(40),
  `auth` varchar(10),
  `mailbox` varchar(20),
  `subscribemwi` varchar(10), -- yes/no
  `vmexten` varchar(20),
  `callerid` varchar(40),
  `cid_number` varchar(40),
  `callingpres` varchar(20),
  `usereqphone` varchar(10),
  `language` varchar(10),
  `incominglimit` varchar(10),
  `context` varchar(40) NOT NULL default '',
  `subscribecontext` varchar(40),
  `amaflags` varchar(20),
  `accountcode` varchar(20),
  `musicclass` varchar(20),
  `mohsuggest` varchar(20),
  `allowtransfer` varchar(20),
  `callgroup` varchar(20),
  `pickupgroup` varchar(20),
  `autoframing` varchar(10), -- yes/no
  `disallow` varchar(20) default 'all',
  `allow` varchar(20),
  `maxcallbitrate` varchar(15),
  `host` varchar(40) default 'dynamic',
  `outboundproxy` varchar(40),
  `ipaddr` varchar(40) NOT NULL default '',
  `defaultip` varchar(20),
  `port` int(6) NOT NULL default '0',
  `fullcontact` varchar(40),
  `insecure` varchar(20),
  `qualify` varchar(15),
  `regseconds` int(11) NOT NULL default '0',
  `regexten` varchar(20),
  `regserver` varchar(20),
  `rtptimeout` varchar(15),
  `rtpholdtimeout` varchar(15),
  `rtpkeepalive` varchar(15),
  `lastms` int(11) NOT NULL default '-1',
  `setvar` varchar(200),
  PRIMARY KEY  (`name`),
  INDEX host (host, port),
  INDEX ipaddr (ipaddr, port)
) ENGINE=MyISAM;


Với file queue_log.sql sẽ là:
CREATE TABLE queue_log (
-- Event date and time
time datetime,
-- "REALTIME", "NONE", or channel uniqueid
callid char(50),
-- Name of the queue affected
queuename char(50),
-- Interface name of the queue member
agent char(50),
-- One of ADDMEMBER, REMOVEMEMBER, RINGNOANSWER, EXITEMPTY, TRANSFER,
-- AGENTDUMP, ABANDON, SYSCOMPAT, CONNECT, COMPLETECALLER, COMPLETEAGENT,
-- PAUSEALL, UNPAUSEALL, PAUSE, UNPAUSE, PENALTY, ENTERQUEUE,
-- EXITWITHTIMEOUT, EXITEMPTY, EXITWITHKEY, or another defined by the user.
event char(20),
-- data1 through data5 are possible arguments to the event, the definitions
-- of which are dependent upon the type of event.
data1 char(50),
data2 char(50),
data3 char(50),
data4 char(50),
data5 char(50),
index bydate (time),
index qname (queuename,time)

)

Cuối cùng là thành quả, sau khi đã add thành công các table





Không có nhận xét nào:

Đăng nhận xét