2.6 Asterisk Realtime Architecture ( ARA )
2.6.1 Langkah – Langkah Konfigurasi ARA pada Asterisk
Untuk dapat menggunakan teknik ARA pada Asterisk, diperlukan suatu
driver yang digunakan untuk koneksi Asterisk dengan database, yaitu asterisk-addons. Sebelum driver ini digunakan, maka perlu di compile terlebih dahulu dengan perintah sebagai berikut :
Proses compile asterisk-addons tersebut, akan menambahkan modules res_config_mysql.so dan cdr_mysql.so pada direktori /usr/lib/asterisk/modules .Kedua buah modules ini berguna untuk koneksi Asterisk dengan database
khususnya databaseMySQL. Setelah kedua modules tersebut ditambahkan, maka perlu untuk meng-copy file res_mysql.conf.sample dan cdr_mysql.conf.sample
yang berasal dari {asterisk-addons-direktori} menuju ke direktori /etc/asterisk.
Perintahnya adalah sebagai berikut :
Setelah dipastikan bahwa file res_mysql.conf dan cdr_mysql.conf ter-copy
pada direktori /etc/asterisk, maka langkah selanjutnya adalah melakukan
konfigurasi pada beberapa file konfigurasi antara lain : 1. Konfigurasi file res_mysql.conf
Konfigurasi ini dilakukan untuk mengkoneksikan antara Asterisk dengan
database yang digunakan. Konfigurasi yang digunakan misalkan saja sebagai berikut :
Shell > cd {asterisk-addons-direktory}
Shell > cp res_mysql.conf.sample /etc/asterisk/res_mysql.conf Shell > cp cdr_mysql.conf.sample /etc/asterisk/cdr_mysql.conf Shell > cd {asterisk-addons-direktory}
Konfigurasi diatas, menyimpan informasi tentang host / IP address,
nama database, nama user dari database, password user database, nomor
port yang digunakan.
2. Konfigurasi file cdr_mysql.conf
Konfigurasi ini dilakukan untuk mengkoneksikan antara Asterisk dengan tabel yang digunakan untuk menyimpan data call detail record. Konfigurasi yang digunakan misalkan saja sebagai berikut :
Gambar 2.18 Contoh Konfigurasi file cdr_mysql.conf
Konfigurasi diatas, menyimpan informasi tentang host / IP address,
nama database, nama tabel yang digunakan, nama user dari database, password user database, nomor port yang digunakan.
3. Konfigurasi file extconfig.conf
Konfigurasi ini dilakukan agar Asterisk dengan menggunakan teknik
Asterisk Realtime dapat mengkonfigurasi sippeers / sipusers, voicemail, dan
extensions ( DialPlan ) melalui database MySQL. Konfigurasi tersebut
[global] hostname=127.0.0.1 dbname= asteriskrealtime table=cdr password=mypass user=myuser port=3306 sock=/var/lib/mysql/mysql.sock userfield=1 [general] dbhost = 127.0.0.1 dbname = asteriskrealtime dbuser = myuser dbpass = mypass dbport = 3306 dbsock = /tmp/mysql.sock
masing – masing digunakan untuk otentikasi users / pendaftaran nomor
telepon, konfigurasi fasilitas voicemail, dan pengaturan nomor Dial
( DialPlan ). Format untuk konfigurasi ini adalah sebagai berikut :
[settings]
file.conf => driver,database[,table]
Contoh konfigurasi pada fileextconfig.conf :
Gambar 2.19 Contoh Konfigurasi file extconfig.conf
4. Konfigurasi file extensions.conf
Konfigurasi ini dilakukan agar Asterisk dapat membaca data konfigurasi
DialPlan pada tabel yang ada di database. Konfigurasi yang digunakan misalkan saja sebagai berikut :
Gambar 2.20 Contoh Konfigurasi file extensions.conf
Konfigurasi diatas berarti bahwa seluruh panggilan ( call ) pada context asterisk-users, akan dibaca secara Realtime dengan context home
dengan nama family extensions ( nama family ini sama dengan nama family
yang digunakan pada file extconfig.conf untuk pengaturan DialPlan ).
Setelah mengkonfigurasi file – file seperti diatas, maka langkah selanjutnya adalah membuat tabel yang akan digunakan untuk menyimpan data konfigurasi. Tabel – tabel yang akan digunakan merupakan tabel standard yang dapat dikenali oleh sistem Asterisk. Perintah SQL untuk membuat tabel – tabel tersebut antara lain sebagai berikut ( diambil dari site www.voip-info.org) :
[settings] sipusers => mysql,asteriskrealtime,sip_buddies sippeers => mysql,asteriskrealtime,sip_buddies extensions => mysql,asteriskrealtime,extensions voicemail => mysql,asteriskrealtime,voicemessages [asterisk-users] switch => Realtime/home@extensions
1. Tabel sip_buddies
Tabel ini digunakan untuk menyimpan data konfigurasi users / peers.
Perintah SQL untuk membuat tabel sip_buddies adalah sebagai berikut : CREATE TABLE `sip_buddies` (
`id` int(11) NOT NULL auto_increment, `name` varchar(80) NOT NULL default '', `host` varchar(31) NOT NULL default '', `nat` varchar(5) NOT NULL default 'no',
`type` enum('user','peer','friend') NOT NULL default 'friend', `accountcode` varchar(20) default NULL,
`amaflags` varchar(13) default NULL, `callgroup` varchar(10) default NULL, `callerid` varchar(80) default NULL, `cancallforward` char(3) default 'yes', `canreinvite` char(3) default 'yes', `context` varchar(80) default NULL, `defaultip` varchar(15) default NULL, `dtmfmode` varchar(7) default NULL, `fromuser` varchar(80) default NULL, `fromdomain` varchar(80) default NULL, `insecure` varchar(4) default NULL, `language` char(2) default NULL, `mailbox` varchar(50) default NULL, `md5secret` varchar(80) default NULL, `deny` varchar(95) default NULL, `permit` varchar(95) default NULL, `mask` varchar(95) default NULL,
`musiconhold` varchar(100) default NULL, `pickupgroup` varchar(10) default NULL, `qualify` char(3) default NULL,
`regexten` varchar(80) default NULL, `restrictcid` char(3) default NULL, `rtptimeout` char(3) default NULL, `rtpholdtimeout` char(3) default NULL, `secret` varchar(80) default NULL, `setvar` varchar(100) default NULL, `disallow` varchar(100) default 'all',
`allow` varchar(100) default 'g729;ilbc;gsm;ulaw;alaw', `fullcontact` varchar(80) NOT NULL default '',
`ipaddr` varchar(15) NOT NULL default '',
`port` smallint(5) unsigned NOT NULL default '0', `regseconds` int(11) NOT NULL default '0',
`username` varchar(80) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `name_2` (`name`) )
TYPE=MyISAM ROW_FORMAT=DYNAMIC;
2. Tabel extensions_table
Tabel ini di gunakan untuk menyimpan data untuk pengaturan DialPlan
Perintah SQL untuk membuat tabel extensions_table adalah sebagai berikut :
3. Tabel voicemail_users
Tabel ini digunakan untuk menyimpan informasi client yang dapat
menggunakan fasilitas voicemail pada Asterisk.
Perintah SQL untuk membuat tabel voicemail_users adalah sebagai berikut :
4. Tabel CDR ( Call Detail Record )
Tabel ini digunakan untuk menyimpan data catatan pembicaraan ( komunikasi ) yang terjadi pada Asterisk.
Perintah SQL untuk membuat tabel cdr adalah sebagai berikut : CREATE TABLE `extensions_table` (
`id` int(11) NOT NULL auto_increment, `context` varchar(20) NOT NULL default '', `exten` varchar(20) NOT NULL default '', `priority` tinyint(4) NOT NULL default '0', `app` varchar(20) NOT NULL default '', `appdata` varchar(128) NOT NULL default '', PRIMARY KEY (`context`,`exten`,`priority`), KEY `id` (`id`)
) TYPE=MyISAM;
Gambar 2.22 Perintah SQL untuk membuat tabel extensions_table
CREATE TABLE `voicemail_users` (
`uniqueid` int(11) NOT NULL auto_increment, `customer_id` int(11) NOT NULL default '0', `context` varchar(50) NOT NULL default '', `mailbox` int(5) NOT NULL default '0', `password` varchar(4) NOT NULL default '0', `fullname` varchar(50) NOT NULL default '', `email` varchar(50) NOT NULL default '', `pager` varchar(50) NOT NULL default '', `stamp` timestamp(14) NOT NULL,
PRIMARY KEY (`uniqueid`),
KEY `mailbox_context` (`mailbox`,`context`) ) TYPE=MyISAM;