Kamis, 01 Desember 2011

INSTALLASI FREESWITCH PADA UBUNTU SERVER 11.04

FreeSwitch merupakan open source lintas-platform skalalabel platform telepon yang dirancang untuk rute dan interkoneksi protokol komunikasi yang populer menggunakan audio, video, teks atau bentuk media lainnya.

CARA MENGINSTALL FREESWITCH DI LINUX UBUNTU SERVER 11.04

1.    Persyaratan
Prasyarat ini wajib menyediakan untuk mengkompilasi instalasi standar FreeSWITCH dan menguji konfigurasi yang disertakan dan IVR sampel. Berikut syarat-syarat package yang harus terinstal agar proses kompilasi berjalan dengan baik :
a.    GIT atau WGET
b.    AUTOCONF
c.    AUTOMAKE
d.    GCC-C ++
e.    LIBJPEG-DEVEL
f.    LIBTOOL
g.    MAKE
h.    NCURSES-DEVEL
Lalu ketikkan di terminal ubuntu : #sudo apt-get install git-core build-essential autoconf automake libtool libncurses5 libncurses5-dev make libjpeg-dev
Ada modul opsional yang dapat di bangun dan jika demikian mungkin memerlukan satu atau lebih hal berikut :
a.    Curl-devel
b.    Expat-devel
c.    GnuTLS
d.    Libtiff
e.    Libx11-devel
f.    ODBC or UNIX-ODBC and ODBC-devel
g.    Open SSL
h.    Python-devel
i.    ZLIB and ZLIB-devel
j.    Libzrtp
Lalu ketikkan lagi di terminal : #sudo apt-get install libcurl4-openssl-dev libexpat1-dev libgnutls-dev libtiff4-dev libx11-dev unixodbc-dev libssl-dev python2.6-dev \
zlib1g-dev libzrtpcpp-dev libasound2-dev libogg-dev libvorbis-dev libperl-dev libgdbm-dev libdb-dev python-dev \
uuid-dev

2.    INSTALASI FREESWITCH
a.    Masuk ke : #cd /usr/local/src
a.    Lalu kita bisa memilih proses download melalui Git atau Wget. Bila mau mendownload melalui Git ketik : #git clone git://git.freeswitch.org/freeswitch.git setelah itu ketik : #cd freeswitch lalu ketik lagi : #./bootstrap.sh
Bila mau mendownload melalui Wget ketik : #wget http://files.freeswitch.org/freeswitch-1.0.6.tar.gz . setelah itu ekstrak file dengan perintah : #tar xvfz freeswitch-1.0.6.tar.gz Lalu kita konfigurasi file freeswitch dengan perintah : #./configure
b.    Setelah kita mendownload dan mengekstrak, lalu edit file modules.conf terlebih dahulu dan menghilangkan tanda “#” di kata kunci “flite” setelah itu save.
c.    Sehabis kita mengedit file modules.conf, lakukan perintah #./configure lalu #make setelah itu #make install untuk proses pendownloadan menggunakan Git. Untuk yang menggunakan pendownloadan Wget langsung dengan perintah #make dan #make install
d.    Lalu kompilasi dan install sound dengan perintah : #make all cd-sounds-install cd-moh-install
e.    Setelah itu jalankan service freeswitch dengan perintah : #/usr/local/freeswitch/bin/freeswitch
f.    Instalasi sudah selesai. Tinggal mengedit di bagian extension dan SIP Phone nya.




KONFIGURASI FREESWITCH
Membuat start up Freeswitch
Menambahkan user dan group, dan mengubah hak akses yang diperlukan:

adduser freeswitch
addgroup freeswitch
chown -R freeswitch:freeswitch /usr/local/freeswitch   
Kemudian membuat file / etc / init.d / freeswitch dengan script berikut:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Freeswitch debian init script.
# Author: Matthew Williams
#
### END INIT INFO
# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
DESC="Freeswitch"
NAME=freeswitch
DAEMON=/usr/local/freeswitch/bin/$NAME
DAEMON_ARGS="-nc"
PIDFILE=/usr/local/freeswitch/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

FS_USER=freeswitch
FS_GROUP=freeswitch

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that sets ulimit values for the daemon
#
do_setlimits() {
        ulimit -c unlimited
        ulimit -d unlimited
        ulimit -f unlimited
        ulimit -i unlimited
        ulimit -n 999999
        ulimit -q unlimited
        ulimit -u unlimited
        ulimit -v unlimited
        ulimit -x unlimited
        ulimit -s 240
        ulimit -l unlimited
        return 0
}

#
# Function that starts the daemon/service
#
do_start()
{
    # Set user to run as
        if [ $FS_USER ] ; then
      DAEMON_ARGS="`echo $DAEMON_ARGS` -u $FS_USER"
        fi
    # Set group to run as
        if [ $FS_GROUP ] ; then
          DAEMON_ARGS="`echo $DAEMON_ARGS` -g $FS_GROUP"
        fi

        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null -- \
                || return 1
        do_setlimits
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
        # Add code here, if necessary, that waits for the process to be ready
        # to handle requests from services started subsequently which depend
        # on this one.  As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        # If the above conditions are not satisfied then add some other code
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
        #
        # If the daemon can reload its configuration without
        # restarting (for example, when it is sent a SIGHUP),
        # then implement that here.
        #
        start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
        return 0
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  #reload|force-reload)
        #
        # If do_reload() is not implemented then leave this commented out
        # and leave 'force-reload' as an alias for 'restart'.
        #
        #log_daemon_msg "Reloading $DESC" "$NAME"
        #do_reload
        #log_end_msg $?
        #;;
  restart|force-reload)
        #
        # If the "reload" option is implemented then remove the
        # 'force-reload' alias
        #
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac
   

Kemudian jangan lupa untuk melakukan perintah berikut:

chmod +x /etc/init.d/freeswitch
update-rc.d freeswitch defaults   
Setelah selesei restart untuk menguji start up.


Menambah extension
Untuk menambahkan ekstensi baru, salin 1000.xml Anda ke file dengan nomor ekstensi dengan nama selain "1000". Contoh: Jadi jika Anda ingin menambahkan ekstensi 8989 dengan password 2424, Anda harus melakukan perintah sebagai berikut:

cd /usr/local/freeswitch/conf/directory/default
cp 1000.xml 8989.xml
nano 8989.xml      
<include>
  <user id="8989" mailbox="8989">
    <params>
      <param name="password" value="2424"/>
      <param name="vm-password" value="1000"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="8989"/>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="Extension 8989"/>
      <variable name="effective_caller_id_number" value="8989"/>
      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
      <variable name="callgroup" value="techsupport"/>
    </variables>
  </user>
</include>
   

Installasi web based (bluebox)
Install paket untuk bluebox :
#apt-get install mysql-server
#apt-get install apache2
#apt-get install php5
Sekarang kita perlu mendownload software bluebox dan kemudian menjalankannya :
#cd /var/www  (pindah direktori ke web root)
#wget http://www.bluebox.co.za/?download&global[option]=quick_setup (download bluebox)
#cd .. (kembali ke direktori sebelumnya)
#chmod -R 777 www (mengatur direktori untuk bias akses Read & Write)
Buka web browser dan browse ke alamat IP dari server (contoh: http://192.168.0.1/setup.php). Kemudian akan meminta untuk mengkonfirmasi download bluebox. Selanjutnya ikuti petunjuknya.
Isi di host mysql pengguna rincian Server DatabaseName "bluebox", User Name "root", Password "bluebox", Host “localhost”, Port “3306”, Type (dirver) “mysql”.
Setelah itu membuat account untuk akses bluebox.
Kemudian pilih klik update “Config File”
Database baru sekarang dibuat. Kemudian situs ini akan mengarahkan kembali ke homepage(http://192.168.0.1/bluebox) dan sistem web base bluebox siap untuk digunakan.

Tidak ada komentar:

Posting Komentar