美文网首页
Freeswitch 安装配置

Freeswitch 安装配置

作者: yulong_vip | 来源:发表于2017-10-14 20:37 被阅读0次

    ==先安装ODBC==

    sudo apt-get install iodbc

    sudo apt-get install unixodbc-dev

    sudo apt-get install libmyodbc

    sudo apt-get install unixodbc

    .

    ==ubuntu freeswitch 安装==

    ===英文 wiki 地址:===

    :http://wiki.freeswitch.org/wiki/Ubuntu_Quick_Start

    ===1、安装依赖包===

    cd /usr/src

    --sudo apt-get install git-core subversion build-essential autoconf automake libtool libncurses5  libncurses5-dev make libjpeg-dev

    --ubuntu 12.04

    sudo apt-get install git-core build-essential autoconf automake libtool libncurses5 libncurses5-dev gawk libjpeg-dev zlib1g-dev pkg-config libssl-dev

    sudo apt-get install gawk

    update-alternatives --set awk /usr/bin/gawk

    ===2、下载源码===

    如果提示git未安装就安装git

    apt-get install git

    git clone git://git.freeswitch.org/freeswitch.git

    从其他设备copy到本机/usr/src解压命令tar -xf freeswitch-1.2.5.3.tar.bz2

    修改mod_radius ,mod_silk等

    cd /usr/src/freeswitch-1.2.5.3

    vi modules.conf

    freeswitch-1.2.5.3是

    ./devel-bootstrap.sh

    ./configure --enable-core-odbc-support

    make

    如果make出现 make[1]: *** [freeswitch] Error 1 就从其他设备copy freeswitch【路径:/usr/src/freeswitch-1.2.5.3】 文件过来然后再make

    sudo make install

    sudo make uhd-sounds-install

    sudo make uhd-moh-install

    sudo make samples

    ===freeswitch初始化===

    :创建文件/etc/init.d/freeswitch

    :copy 下面内容到freeswitch

    ====freeswitch.init====

    #!/bin/bash

    ### BEGIN INIT INFO

    # Provides:          freeswitch

    # 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=daemon

    # 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

    :chmod 755 /etc/init.d/freeswitch

    ===设置随机启动===

    update-rc.d -f freeswitch defaults

    cp /usr/src/freeswitch-1.2.5.3/debian/freeswitch-sysvinit.freeswitch.default /etc/default/freeswitch

    如果上面make 出错时,进入/etc/default/检查freeswitch文档是否有资料

    ===Add the freeswitch user:===

    adduser --disabled-password  --quiet --system \

    --home /opt/freeswitch \

    --gecos "FreeSwitch Voice Platform" --ingroup daemon \

    freeswitch

    adduser freeswitch audio

    ===Change freeswitch installation ownership (from root)===

    chown -R freeswitch:daemon /usr/local/freeswitch/

    ===Remove permissions for other===

    chmod -R o-rwx /usr/local/freeswitch/

    ===Add the fs_cli to your default path===

    ln -s /usr/local/freeswitch/bin/fs_cli /usr/local/bin/

    ===Then either:手动启动===

    sudo shutdown -r now

    or

    /etc/init.d/freeswitch start

    ===test its startup===

    fs_cli

    ===shutdown===

    Stop the FreeSWITCH program. This only works from the CLI, as an API call, you should be using 'fsctl shutdown'

    Warning! Shutdown from the CLI ignores arguments and exits immediately!

    Usage: fsctl shutdown [cancel|elegant|asap|restart|now]

    cancel - discontinue a previous shutdown request.

    elegant - wait for all traffic to stop; do not prevent new traffic.

    asap - wait for all traffic to stop; do not allow new traffic.

    restart - restart FreeSWITCH immediately following the shutdown.

    now - shutdown FreeSWITCH immediately.

    When giving "elegant", "asap" or "now" it's also possible to give the restart command:

    Usage: fsctl shutdown [elegant|asap|now] restart

    重启freeswitch

    fsctl shutdown restart

    相关文章

      网友评论

          本文标题:Freeswitch 安装配置

          本文链接:https://www.haomeiwen.com/subject/fcufuxtx.html