Difference between revisions of "Instalasi CDRTool"

From OnnoWiki
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
Siapkan software pendukung
 
Siapkan software pendukung
  
  # apt-get install apache2 libapache2-mod-php5 php5 php5-cli php5-mysql php5-curl php-pear
+
  # apt-get install apache2 libapache2-mod-php5 php5 php5-cli php5-mysql \
# apt-get install php-soap mrtg php5-memcache memcached monit smarty
+
php5-curl php-pear php-soap mrtg php5-memcache memcached monit smarty
  
 
Download Source Code CDRTool dari situs
 
Download Source Code CDRTool dari situs
Line 11: Line 11:
 
  http://cdrtool.ag-projects.com/
 
  http://cdrtool.ag-projects.com/
 
  http://download.dns-hosting.info/CDRTool/
 
  http://download.dns-hosting.info/CDRTool/
 
 
Instalasi yang mudah mungkin
 
 
# cp -Rf cdrtool_6.2.3_all.deb /usr/local/src/
 
# cd /usr/local/src/
 
# dpkg -i cdrtool_6.2.3_all.deb
 
  
  
Line 33: Line 26:
 
  mysql> GRANT ALL ON cdrtool.* TO locker IDENTIFIED by 'lockadm18';
 
  mysql> GRANT ALL ON cdrtool.* TO locker IDENTIFIED by 'lockadm18';
 
  mysql> exit
 
  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
 
Lakuan
Line 51: Line 52:
 
  # cp setup/apache2/conf.d/cdrtool /etc/apache2/conf.d/
 
  # cp setup/apache2/conf.d/cdrtool /etc/apache2/conf.d/
 
  # cp setup/apache2/sites-available/cdrtool.example.com /etc/apache2/sites-enabled
 
  # cp setup/apache2/sites-available/cdrtool.example.com /etc/apache2/sites-enabled
 +
  
 
Edit file
 
Edit file
  
 
  # vi /etc/apache2/sites-enabled/cdrtool.example.com
 
  # vi /etc/apache2/sites-enabled/cdrtool.example.com
 +
  
 
Pastikan isinya
 
Pastikan isinya
Line 128: Line 131:
 
Edit konfigurasi
 
Edit konfigurasi
  
  # cd /var/www/CDRTool
+
  # cp /var/www/CDRTool/setup/global.inc.new.installation /var/www/CDRTool/
# cp setup/global.inc.new.installation global.inc
+
 
  
 
Edit global.inc
 
Edit global.inc
  
  # vi global.inc
+
  # vi /var/www/CDRTool/global.inc
 +
 
  
 
Pastikan
 
Pastikan
Line 212: Line 216:
 
  # /etc/init.d/cdrtool restart
 
  # /etc/init.d/cdrtool restart
 
  # /etc/init.d/apache2 restart
 
  # /etc/init.d/apache2 restart
 +
# /etc/init.d/cdrtool startmemcache
  
  
Line 219: 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.
 +
 +
 +
----
 +
 +
 +
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;
 +
        ...
 +
}
 +
 +
 +
Pada saat kita meng-[[Compile OpenSer]] tampaknya di folder konfigurasi OpenSER /etc/openser atau /usr/loca/etc/openser sudah ada file
 +
 +
dictionary.radius
 +
 +
Jika anda ingin yang lebih lengkap, copykan dictionary.ser ke folder /etc/openser/radius. Jika mengcompile, maka gunakan perintah berikut,
 +
 +
# cp /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser /user/local/etc/openser/
 +
 +
Jika anda meng-[[Instalasi OpenSER]] menggunakan apt-get, maka gunakan perintah berikut,
 +
 +
# cp /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser /etc/openser/
 +
 +
 +
  
  

Latest revision as of 15:18, 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
# /etc/init.d/cdrtool startmemcache


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;
       ...
}


Pada saat kita meng-Compile OpenSer tampaknya di folder konfigurasi OpenSER /etc/openser atau /usr/loca/etc/openser sudah ada file

dictionary.radius

Jika anda ingin yang lebih lengkap, copykan dictionary.ser ke folder /etc/openser/radius. Jika mengcompile, maka gunakan perintah berikut,

# cp /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser /user/local/etc/openser/

Jika anda meng-Instalasi OpenSER menggunakan apt-get, maka gunakan perintah berikut,

# cp /var/www/CDRTool/setup/radius/OpenSER/dictionary.ser /etc/openser/



Pranala Menarik