Difference between revisions of "Instalasi CDRTool"
Onnowpurbo (talk | contribs)  | 
				Onnowpurbo (talk | contribs)   | 
				||
| Line 224: | Line 224: | ||
Username password default admin/admin  | Username password default admin/admin  | ||
| + | |||
| + | |||
| + | |||
| + | Untuk konfigurasi yang lebih kompleks yang melibatkan FreeRADIUS dapat meneruskan mengkonfigurasi perintah berikut.  | ||
| + | |||
| + | |||
| + | ----  | ||
| Line 229: | Line 236: | ||
  # cp /var/www/CDRTool/setup/crontabs/cdrtool /var/spool/cron/crontabs/  |   # cp /var/www/CDRTool/setup/crontabs/cdrtool /var/spool/cron/crontabs/  | ||
| + | |||
| + | |||
| + | |||
| + | ----  | ||
| Line 272: | Line 283: | ||
  # cp /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser /etc/freeradius  |   # cp /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser /etc/freeradius  | ||
| + | |||
| + | ----  | ||
| + | |||
| + | Pastikan OpenSER sudah di instalasi, ada baiknya menggunakan cara meng-[[Compile OpenSER]].  | ||
| + | |||
| + | Jika kita meng-[[Compile OpenSER]] maka kita perlu mengedit file /usr/local/etc/openser/openser.cfg  | ||
| + | |||
| + |  # vi /usr/local/etc/openser/openser.cfg  | ||
| + | |||
| + | Tambahkan parameter berikut adalah Accounting dilakukan menggunakan FreeRadius & CDRTool  | ||
| + | |||
| + |  loadmodule "acc.so"  | ||
| + | |||
| + |  modparam("acc", "failed_transaction_flag", 1)  | ||
| + |  modparam("acc", "report_cancels",     0)  | ||
| + |  modparam("acc", "report_ack",         0)  | ||
| + |  modparam("acc", "early_media",        0)   | ||
| + | |||
| + |  modparam("acc", "log_level",          1)  | ||
| + |  modparam("acc", "log_flag",           1)  | ||
| + |  modparam("acc", "log_missed_flag",    1)  | ||
| + | |||
| + |  modparam("acc", "radius_config",      "/usr/local/etc/openser/radius/client.conf")  | ||
| + |  modparam("acc", "radius_flag",        1)  | ||
| + |  modparam("acc", "radius_missed_flag", 1)  | ||
| + |  modparam("acc", "radius_extra",       "User-Name=$Au; \  | ||
| + |                                         Calling-Station-Id=$from; \  | ||
| + |                                         Called-Station-Id=$to; \  | ||
| + |                                         Sip-Translated-Request-URI=$ruri; \  | ||
| + |                                         Sip-RPid=$avp(s:rpid); \  | ||
| + |                                         Source-IP=$si; \  | ||
| + |                                         Source-Port=$sp; \  | ||
| + |                                         Canonical-URI=$avp(s:can_uri); \  | ||
| + |                                         Billing-Party=$avp(billing_party); \  | ||
| + |                                         Divert-Reason=$avp(s:divert_reason); \  | ||
| + |                                         X-RTP-Stat=$hdr(X-RTP-Stat); \  | ||
| + |                                         User-Agent=$hdr(user-agent); \   | ||
| + |                                         Contact=$hdr(contact); \  | ||
| + |                                         Event=$hdr(event); \  | ||
| + |                                         SIP-Proxy-IP=$avp(s:sip_proxy_ip); \  | ||
| + |                                         ENUM-TLD=$avp(s:enum_tld)")   | ||
| + | |||
| + | |||
| + | Selanjutnya kita perlu menambahkan perintah berikut di banyak lokasi di route.  | ||
| + | |||
| + |  route {  | ||
| + |         ...  | ||
| + |         setflag(ACCOUNTING_FLAG);  | ||
| + |         $avp(s:can_uri) = $ru;  | ||
| + |         ...  | ||
| + |  }  | ||
| + | Copykan dictionary.ser ke folder /etc/openser/radius  | ||
| + | Copy /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser to /etc/openser/radius/  | ||
Revision as of 11:57, 17 July 2008
Tingkat kesulitan menginstalasi CDRTool cukup tinggi, kemungkinan gagal sangat besar.
Siapkan software pendukung
# apt-get install apache2 libapache2-mod-php5 php5 php5-cli php5-mysql \ php5-curl php-pear php-soap mrtg php5-memcache memcached monit smarty
Download Source Code CDRTool dari situs
http://cdrtool.ag-projects.com/ http://download.dns-hosting.info/CDRTool/
Siapkan database CDRTool di MySQL
# mysql -u root -p Enter password:
mysql> create database cdrtool; mysql> grant INSERT,SELECT on root.* to cdradmin@localhost; mysql> grant INSERT,SELECT on root.* to locker@localhost; mysql> GRANT ALL ON cdrtool.* TO cdradmin@localhost IDENTIFIED by 'PASSWORD'; mysql> GRANT ALL ON cdrtool.* TO cdradmin IDENTIFIED by 'PASSWORD'; mysql> GRANT ALL ON cdrtool.* TO locker@localhost IDENTIFIED by 'lockadm18'; mysql> GRANT ALL ON cdrtool.* TO locker IDENTIFIED by 'lockadm18'; mysql> exit
Instalasi yang mudah mungkin
# cp -Rf cdrtool_6.4.1_all.deb /usr/local/src/ # cd /usr/local/src/ # dpkg -i cdrtool_6.4.1_all.deb
Lakuan
# cd /var/www/CDRTool/setup/mysql # mysql -u root -p<password-root> mysql < ./create_users.mysql # mysql -u root -p<password-root> cdrtool < ./create_tables.mysql # mysql -u root -p<password-root> cdrtool < ./create_data.mysql
Alternatif lain yang mungkin bisa dilakukan juga adalah
# ./setup_mysql.sh <password-root-MySQL> <ip-address-database-server>
Copykan setup Apache Web Server
# cd /var/www/CDRTool # cp setup/apache2/conf.d/cdrtool /etc/apache2/conf.d/ # cp setup/apache2/sites-available/cdrtool.example.com /etc/apache2/sites-enabled
Edit file
# vi /etc/apache2/sites-enabled/cdrtool.example.com
Pastikan isinya
<VirtualHost sipcdr.example.com:443> ServerName sipcdr.example.com DocumentRoot /var/www/ CustomLog /var/log/apache2/cdrtool-access.log combined ErrorLog /var/log/apache2/cdrtool-errors.log SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
# To enable SSL: # a2enmode ssl # add Listen 443 to ports.conf file # generate site certificates
# SSLEngine On # SSLCertificateFile /etc/apache2/ssl/snakeoil-rsa.crt # SSLCertificateKeyFile /etc/apache2/ssl/snakeoil-rsa.key
# RewriteEngine is required for Multimedia Service Platform # # a2enmode rewrite proxy # RewriteEngine On # RewriteRule ^/ngnpro/voicemail/(.*) http://10.0.0.1:9200/$1 [L,P] # RewriteRule ^/ngnpro/(.*) http://10.0.0.2:9200/$1 [L,P] # ProxyVia On
# <Proxy *> # Order Allow,Deny # Allow from all # </Proxy>
       <Directory /var/www/CDRTool>
               Options FollowSymLinks
               AllowOverride All
       </Directory>
</VirtualHost>
Atau yang lebih sederhana
<VirtualHost cdrtool.example.com:80> ServerName cdrtool.example.com DocumentRoot /var/www/ CustomLog /var/log/apache2/cdrtool-access.log combined ErrorLog /var/log/apache2/cdrtool-errors.log SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
# To enable SSL: # a2enmode ssl # add Listen 443 to ports.conf file # generate site certificates
# SSLEngine On # SSLCertificateFile /etc/apache2/ssl/snakeoil-rsa.crt # SSLCertificateKeyFile /etc/apache2/ssl/snakeoil-rsa.key </VirtualHost>
Edit /etc/default/cdrtool
# vi /etc/default/cdrtool
Pastikan
RUN_ratingEngine=yes START_MEMCACHE=yes
Edit konfigurasi
# cp /var/www/CDRTool/setup/global.inc.new.installation /var/www/CDRTool/
Edit global.inc
# vi /var/www/CDRTool/global.inc
Pastikan
$RatingEngine=array("socketIP"   => "127.0.0.1",
                   "socketPort" => "9024",
                   "CDRS_class" => "ser_radius",
                   "prepaid_lock" => true,
                   "log_delay"   => 0.05
                   );
$CDRTool['normalize']['defaultCountryCode'] = "62";
########################################### # CDRTool datasources
class DB_CDRTool extends DB_Sql {
 var $Host     = "127.0.0.1.";
 var $Database = "cdrtool";
 var $User     = "cdradmin";
 var $Password = "PASSWORD";
 var $Halt_On_Error ="yes";
}
class DB_Locker extends DB_Sql {
 var $Host     = "127.0.0.1.";
 var $Database = "cdrtool";
 var $User     = "locker";
 var $Password = "PASSWORD";
 var $Halt_On_Error ="no";
}
class DB_radius extends DB_Sql {
 var $Host     = "127.0.0.1.";
 var $Database = "radius";
 var $User     = "radius";
 var $Password = "PASSWORD";
 var $Halt_On_Error ="no";
}
class DB_radius2 extends DB_Sql {
 var $Host     = "127.0.0.1.";
 var $Database = "radius";
 var $User     = "radius";
 var $Password = "PASSWORD";
 var $Halt_On_Error ="no";
}
# set IP server
if ($_SERVER['REMOTE_ADDR']=="192.168.0.2") {
   //$verbose=1;
} else {
   // prevent set of verbose via post/get
   unset($verbose);
Restart
# /etc/init.d/cdrtool restart # /etc/init.d/apache2 restart
Mencoba akses ke
http://localhost/CDRTool/index.phtml
Username password default admin/admin
Untuk konfigurasi yang lebih kompleks yang melibatkan FreeRADIUS dapat meneruskan mengkonfigurasi perintah berikut.
Bersihkan sampah dll secara periodik
# cp /var/www/CDRTool/setup/crontabs/cdrtool /var/spool/cron/crontabs/
Siapkan FreeRadius Server
# apt-get install freeradius freeradius-mysql
# mysqladmin -u root -p create radius Enter password: <masukan password root MySQL>
# cp /usr/share/doc/freeradius/examples/mysql.sql.gz /usr/local/src/ # cd /usr/local/src # gunzip mysql.sql.gz # mysql -u root -p radius < /usr/local/src/mysql.sql Enter password: <masukan password root MySQL>
Patch radacct untuk OpenSER
# /var/www/CDRTool/setup/radius/OpenSER/radacct-patch.sh Please type in MySQL root password (^C to abort): <masukan password root MySQL>
# cp /var/www/CDRTool/setup/radius/OpenSER/sql.conf /etc/freeradius/sql.conf
Edit file /etc/freeradius/clients.conf, pastikan ada konfigurasi client yang akan tersambung, misalnya ..
client 192.168.0.0/16 {
        secret=rahasiabangetpasswordnya
        nastype=other
        shortname=localnet
}
Edit file /etc/freeradius/radiusd.conf, pastikan pada entry accounting diaktifkan "sql", kira-kira seperti,
accounting {
        detail
        sql
}
Copy directionary.ser ke /etc/freeradius
# cp /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser /etc/freeradius
Pastikan OpenSER sudah di instalasi, ada baiknya menggunakan cara meng-Compile OpenSER.
Jika kita meng-Compile OpenSER maka kita perlu mengedit file /usr/local/etc/openser/openser.cfg
# vi /usr/local/etc/openser/openser.cfg
Tambahkan parameter berikut adalah Accounting dilakukan menggunakan FreeRadius & CDRTool
loadmodule "acc.so"
modparam("acc", "failed_transaction_flag", 1)
modparam("acc", "report_cancels",     0)
modparam("acc", "report_ack",         0)
modparam("acc", "early_media",        0) 
modparam("acc", "log_level",          1)
modparam("acc", "log_flag",           1)
modparam("acc", "log_missed_flag",    1)
modparam("acc", "radius_config",      "/usr/local/etc/openser/radius/client.conf")
modparam("acc", "radius_flag",        1)
modparam("acc", "radius_missed_flag", 1)
modparam("acc", "radius_extra",       "User-Name=$Au; \
                                       Calling-Station-Id=$from; \
                                       Called-Station-Id=$to; \
                                       Sip-Translated-Request-URI=$ruri; \
                                       Sip-RPid=$avp(s:rpid); \
                                       Source-IP=$si; \
                                       Source-Port=$sp; \
                                       Canonical-URI=$avp(s:can_uri); \
                                       Billing-Party=$avp(billing_party); \
                                       Divert-Reason=$avp(s:divert_reason); \
                                       X-RTP-Stat=$hdr(X-RTP-Stat); \
                                       User-Agent=$hdr(user-agent); \ 
                                       Contact=$hdr(contact); \
                                       Event=$hdr(event); \
                                       SIP-Proxy-IP=$avp(s:sip_proxy_ip); \
                                       ENUM-TLD=$avp(s:enum_tld)") 
Selanjutnya kita perlu menambahkan perintah berikut di banyak lokasi di route.
route {
       ...
       setflag(ACCOUNTING_FLAG);
       $avp(s:can_uri) = $ru;
       ...
}
Copykan dictionary.ser ke folder /etc/openser/radius
Copy /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser to /etc/openser/radius/