Difference between revisions of "SERWEB Menggunakan OpenSER"

From OnnoWiki
Jump to navigation Jump to search
(New page: Install software pendukung # pear install MDB2 # pear install DB # pear install lOG # pear install XML_RPC Install runkit karena Ubuntu terbaru mengunakan PHP 5 # apt-get install ...)
 
 
(6 intermediate revisions by the same user not shown)
Line 13: Line 13:
 
Kemungkinan gagal tinggi dalam menginstalasi runkit masih banyak bug di runkit, kalau ada punya nyali ada baiknya mengedit source code runkit jika terjadi bug
 
Kemungkinan gagal tinggi dalam menginstalasi runkit masih banyak bug di runkit, kalau ada punya nyali ada baiknya mengedit source code runkit jika terjadi bug
  
Jangan lupa mengaktifkan extension tersebut
+
# cd /tmp/pear/cache/runkit-0.9/
 +
# vi runkit_import.c
 +
 
 +
Buang kalimat
 +
 
 +
#ifdef ZEND_ENGINE_2
 +
    zend_unmangle_property_name(key, &cname, &pname);
 +
#endif
 +
 
 +
Save file runkit_import.c, lakukan
 +
 
 +
# ./configure
 +
# make
 +
# make install
 +
# make test (untuk melihat apakah runkit berjala dengan benar)
 +
 
 +
Jangan lupa mengaktifkan extension runkit.so tersebut
  
 
  # vi /etc/php5/apache2/php.ini
 
  # vi /etc/php5/apache2/php.ini
  
Pastikan
+
Pastikan ada
  
 
  extension=runkit.so
 
  extension=runkit.so
Line 24: Line 40:
  
 
  # /etc/init.d/apache2 restart
 
  # /etc/init.d/apache2 restart
 +
 +
 +
 +
----
 +
 +
Ambil source code SERWEB dari
 +
 +
http://ftp.iptel.org/pub/serweb/
 +
 +
Copykan source code SERWEB ke Folder Web
 +
 +
# cp serweb-0.9.6.tar.gz /var/www/
 +
# cd /var/www
 +
# tar zxvf serweb-0.9.6.tar.gz
 +
# mv serweb-0.9.6 serweb
 +
# chown -Rf www-data /var/www/serweb
 +
 +
 +
# cp -Rf /var/www/serweb/phplib/ /var/www
 +
# chown -Rf www-data /var/www/phplib
 +
 +
 +
----
 +
 +
Edit konfigurasi Apache agar ada alias utk SERWEB
 +
 +
# vi /etc/apache2/httpd.conf
 +
 +
Isi dengan entry
 +
 +
Alias /serweb "/var/www/serweb/html"
 +
 +
 +
 +
Ubah konfigurasi SERWEB agar sesuai dengan OpenSER
 +
ikuti langkah yang dijelaskan di VoIP-Info
 +
http://www.voip-info.org/wiki/view/OpenSER+1.1.x+and+SerWEB+0.9.4
 +
sebagai berikut ..
 +
 +
 +
----
 +
 +
 +
Edit file /var/www/serweb/config/config_data_layer.php
 +
 +
# vi /var/www/serweb/config/config_data_layer.php
 +
 +
Ubah parameter berikut agar cocok dengan openser
 +
 +
$i=0;
 +
$config->data_sql->host[$i]['host']="localhost";        //database host
 +
$config->data_sql->host[$i]['port']="";                //database port - leave empty for default
 +
$config->data_sql->host[$i]['name']="openser";          //database name
 +
$config->data_sql->host[$i]['user']="openser";          //database conection user
 +
$config->data_sql->host[$i]['pass']="openserrw";        //database conection password
 +
 +
// If you want to configure additional backup SQL servers, do so below.
 +
/*
 +
$i++;
 +
$config->data_sql->host[$i]['host']="localhost";        //database host
 +
$config->data_sql->host[$i]['port']="";                //database port - leave empty for default
 +
$config->data_sql->host[$i]['name']="openser";          //database name
 +
$config->data_sql->host[$i]['user']="openser";          //database conection user
 +
$config->data_sql->host[$i]['pass']="openserrw";        //database conection password
 +
*/
 +
// If you want to configure more SQL backup servers, copy and paste the above (including the "$i++;")
 +
 +
 +
Lanjut ..
 +
 +
- $config->data_sql->table_user_preferences_types="preferences_types";
 +
+ $config->data_sql->table_user_preferences_types="usr_preferences_types";
 +
 +
 +
Lanjut
 +
 +
- $config->fifo_server="/tmp/ser_fifo";
 +
+ $config->fifo_server="/tmp/openser_fifo";
 +
 +
 +
----
 +
 +
Edit /var/www/serweb/config/config_paths.php
 +
 +
# vi /var/www/serweb/config/config_paths.php
 +
 +
Edit
 +
 +
- $config->fifo_server="/tmp/ser_fifo";
 +
+ $config->fifo_server="/tmp/openser_fifo";
 +
 +
 +
 +
----
 +
 +
Edit /var/www/serweb/data_layer/method.add_contact.php
 +
 +
# vi /var/www/serweb/data_layer/method.add_contact.php
 +
 +
Lakukan
 +
 +
-
 +
- ($config->ul_replication ? // if replication is supported by FIFO
 +
- $replication."\n":
 +
- "").
 +
-
 +
- ($config->ul_flags ? // if flags is supported by FIFO
 +
- $flags."\n":
 +
- "").
 +
-
 +
- "\n";
 +
+ "0\n128\n4294967295\n"; // replication/flags/methods
 +
 +
 +
 +
----
 +
 +
Edit /var/www/serweb/data_layer/method.add_new_alias.php
 +
 +
# vi /var/www/serweb/data_layer/method.add_new_alias.php
 +
 +
 +
Lakukan
 +
 +
+ "0\n128\n4294967295\n"; // replication/flags/methods
 +
- ($config->ul_replication ? // if replication is supported by FIFO
 +
- $replication."\n":
 +
- "").
 +
-
 +
- ($config->ul_flags ? // if flags is supported by FIFO
 +
- $flags."\n":
 +
- "").
 +
-
 +
- "\n";
 +
 +
 +
----
 +
 +
Edit /var/www/serweb/data_layer/method.get_acc_entries.php
 +
 +
# vi /var/www/serweb/data_layer/method.get_acc_entries.php
 +
 +
Lakukan pada line 301
 +
 +
$q = "(".$this->acc_sql['select_out'].", 'outgoing' as call_type ".
 +
          $this->acc_sql['from_1'].
 +
          $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain').
 +
- "and t1.caller_deleted != '1' ".
 +
      ")";
 +
      else
 +
$q = "(".$this->acc_sql['select_out'].", 'outgoing' as call_type ".
 +
          $this->acc_sql['from_1'].
 +
          $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain').
 +
- "and t1.caller_deleted != '1' ".
 +
      ") union (".
 +
          $this->acc_sql['select_out'].", 'outgoing' as call_type ".
 +
          $this->acc_sql['from_2'].
 +
          $this->acc_sql['where_2']." and ".$this->get_indexing_sql_where_phrase($user, 't2.callee_UUID', 't2.username', 't2.domain').
 +
- "and t2.callee_deleted != '1' ".
 +
      ")";
 +
return $q;
 +
 +
 +
Lakukan pada line 326
 +
 +
if ($config->users_indexed_by=='uuid'){
 +
    $q[] = "select count(*) ".
 +
    $this->acc_sql['from_1'].
 +
-  $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain').
 +
-  " and t1.caller_deleted != '1' ";
 +
+  $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain');
 +
  }
 +
else{
 +
$q[] = "select count(*) ".
 +
    $this->acc_sql['from_1'].
 +
-  $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain').
 +
-  " and t1.caller_deleted != '1' ";
 +
+  $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain');
 +
$q[] = "select count(*) ".
 +
    $this->acc_sql['from_2'].
 +
-  $this->acc_sql['where_2']." and ".$this->get_indexing_sql_where_phrase($user, 't2.callee_UUID', 't2.username', 't2.domain').
 +
-  " and t2.callee_deleted != '1' ";
 +
+  $this->acc_sql['where_2']." and ".$this->get_indexing_sql_where_phrase($user, 't2.callee_UUID', 't2.username', 't2.domain');
 +
  }
 +
return $q;
 +
}
 +
 +
 +
 +
----
 +
 +
 +
Edit /var/www/serweb/html/main_prepend.php
 +
 +
# vi /var/www/serweb/html/main_prepend.php
 +
 +
Lakukan edit pada line 38
 +
 +
require_once 'DB.php';
 +
 +
//require PEAR XML_RPC class
 +
-require_once 'XML/RPC.php';
 +
-require_once ($_SERWEB["serwebdir"] . "xml_rpc_patch.php");
 +
+//require_once 'XML/RPC.php';
 +
+//require_once ($_SERWEB["serwebdir"] . "xml_rpc_patch.php");
 +
 +
 +
 +
----
 +
 +
Langkah lain. Ambil file patch di atas di
 +
http://www.openser.org/downloads/serweb-0.9.4-openser-1.1.0.patch.
 +
 +
Lakukan patch pada serweb-0.9.4.tar.gz sebagai berikut
 +
 +
# tar xvfz serweb-0.9.4.tar.gz
 +
# cd serweb-0.9.4
 +
# patch -p1<serweb-0.9.4-openser-1.1.0.patch
 +
 +
 +
 +
 +
 +
 +
==Pranala Menarik==
 +
 +
* [[VoIP]]

Latest revision as of 14:24, 10 March 2008

Install software pendukung

# pear install MDB2
# pear install DB
# pear install lOG
# pear install XML_RPC

Install runkit karena Ubuntu terbaru mengunakan PHP 5

# apt-get install php5-dev
# pecl install -f runkit

Kemungkinan gagal tinggi dalam menginstalasi runkit masih banyak bug di runkit, kalau ada punya nyali ada baiknya mengedit source code runkit jika terjadi bug

# cd /tmp/pear/cache/runkit-0.9/
# vi runkit_import.c

Buang kalimat

#ifdef ZEND_ENGINE_2
   zend_unmangle_property_name(key, &cname, &pname);
#endif

Save file runkit_import.c, lakukan

# ./configure
# make
# make install
# make test (untuk melihat apakah runkit berjala dengan benar)

Jangan lupa mengaktifkan extension runkit.so tersebut

# vi /etc/php5/apache2/php.ini

Pastikan ada

extension=runkit.so

Jangan lupa untuk me-restart Apache Web Server

# /etc/init.d/apache2 restart



Ambil source code SERWEB dari

http://ftp.iptel.org/pub/serweb/

Copykan source code SERWEB ke Folder Web

# cp serweb-0.9.6.tar.gz /var/www/
# cd /var/www
# tar zxvf serweb-0.9.6.tar.gz
# mv serweb-0.9.6 serweb
# chown -Rf www-data /var/www/serweb


# cp -Rf /var/www/serweb/phplib/ /var/www
# chown -Rf www-data /var/www/phplib



Edit konfigurasi Apache agar ada alias utk SERWEB

# vi /etc/apache2/httpd.conf

Isi dengan entry

Alias /serweb "/var/www/serweb/html"


Ubah konfigurasi SERWEB agar sesuai dengan OpenSER ikuti langkah yang dijelaskan di VoIP-Info http://www.voip-info.org/wiki/view/OpenSER+1.1.x+and+SerWEB+0.9.4 sebagai berikut ..




Edit file /var/www/serweb/config/config_data_layer.php

# vi /var/www/serweb/config/config_data_layer.php

Ubah parameter berikut agar cocok dengan openser

$i=0;
$config->data_sql->host[$i]['host']="localhost";        //database host
$config->data_sql->host[$i]['port']="";                 //database port - leave empty for default
$config->data_sql->host[$i]['name']="openser";          //database name
$config->data_sql->host[$i]['user']="openser";          //database conection user
$config->data_sql->host[$i]['pass']="openserrw";        //database conection password
// If you want to configure additional backup SQL servers, do so below.
/*
$i++;
$config->data_sql->host[$i]['host']="localhost";        //database host
$config->data_sql->host[$i]['port']="";                 //database port - leave empty for default
$config->data_sql->host[$i]['name']="openser";          //database name
$config->data_sql->host[$i]['user']="openser";          //database conection user
$config->data_sql->host[$i]['pass']="openserrw";        //database conection password
*/
// If you want to configure more SQL backup servers, copy and paste the above (including the "$i++;")


Lanjut ..

- $config->data_sql->table_user_preferences_types="preferences_types";
+ $config->data_sql->table_user_preferences_types="usr_preferences_types";


Lanjut

- $config->fifo_server="/tmp/ser_fifo";
+ $config->fifo_server="/tmp/openser_fifo";



Edit /var/www/serweb/config/config_paths.php

# vi /var/www/serweb/config/config_paths.php

Edit

- $config->fifo_server="/tmp/ser_fifo";
+ $config->fifo_server="/tmp/openser_fifo";



Edit /var/www/serweb/data_layer/method.add_contact.php

# vi /var/www/serweb/data_layer/method.add_contact.php 

Lakukan

-
- ($config->ul_replication ? 			// if replication is supported by FIFO 
-		$replication."\n":
-		"").
-
- ($config->ul_flags ?				// if flags is supported by FIFO
-		$flags."\n":
-		"").
-
- "\n";
+ "0\n128\n4294967295\n"; // replication/flags/methods 



Edit /var/www/serweb/data_layer/method.add_new_alias.php

# vi /var/www/serweb/data_layer/method.add_new_alias.php 


Lakukan

+ "0\n128\n4294967295\n"; // replication/flags/methods
- ($config->ul_replication ? 			// if replication is supported by FIFO 
-		$replication."\n":
-		"").
-
- ($config->ul_flags ?				// if flags is supported by FIFO
-		$flags."\n":
-		"").
-
-	"\n";



Edit /var/www/serweb/data_layer/method.get_acc_entries.php

# vi /var/www/serweb/data_layer/method.get_acc_entries.php

Lakukan pada line 301

$q = "(".$this->acc_sql['select_out'].", 'outgoing' as call_type ".
         $this->acc_sql['from_1'].
         $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain').
- "and t1.caller_deleted != '1' ".
      ")";
      else
$q = "(".$this->acc_sql['select_out'].", 'outgoing' as call_type ".
         $this->acc_sql['from_1'].
         $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain').
- "and t1.caller_deleted != '1' ".
     ") union (".
         $this->acc_sql['select_out'].", 'outgoing' as call_type ".
         $this->acc_sql['from_2'].
         $this->acc_sql['where_2']." and ".$this->get_indexing_sql_where_phrase($user, 't2.callee_UUID', 't2.username', 't2.domain').
- "and t2.callee_deleted != '1' ".
      ")";
return $q;
	

Lakukan pada line 326

if ($config->users_indexed_by=='uuid'){
    $q[] = "select count(*) ".
    $this->acc_sql['from_1'].
-   $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain').
-   " and t1.caller_deleted != '1' ";
+   $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain');
 }
else{
$q[] = "select count(*) ".
    $this->acc_sql['from_1'].
-   $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain').
-   " and t1.caller_deleted != '1' ";
+   $this->acc_sql['where_1']." and ".$this->get_indexing_sql_where_phrase($user, 't1.caller_UUID', 't1.username', 't1.domain');
$q[] = "select count(*) ".
    $this->acc_sql['from_2'].
-   $this->acc_sql['where_2']." and ".$this->get_indexing_sql_where_phrase($user, 't2.callee_UUID', 't2.username', 't2.domain').
-   " and t2.callee_deleted != '1' ";
+   $this->acc_sql['where_2']." and ".$this->get_indexing_sql_where_phrase($user, 't2.callee_UUID', 't2.username', 't2.domain');
 }
return $q;	
}




Edit /var/www/serweb/html/main_prepend.php

# vi /var/www/serweb/html/main_prepend.php

Lakukan edit pada line 38

require_once 'DB.php';

//require PEAR XML_RPC class
-require_once 'XML/RPC.php';
-require_once ($_SERWEB["serwebdir"] . "xml_rpc_patch.php");
+//require_once 'XML/RPC.php';
+//require_once ($_SERWEB["serwebdir"] . "xml_rpc_patch.php");



Langkah lain. Ambil file patch di atas di http://www.openser.org/downloads/serweb-0.9.4-openser-1.1.0.patch.

Lakukan patch pada serweb-0.9.4.tar.gz sebagai berikut

# tar xvfz serweb-0.9.4.tar.gz
# cd serweb-0.9.4
# patch -p1<serweb-0.9.4-openser-1.1.0.patch




Pranala Menarik