首页 > 系统相关 >在Ubuntu18.04安装Freeswitch1.10

在Ubuntu18.04安装Freeswitch1.10

时间:2023-05-05 14:22:07浏览次数:58  
标签:opt callie dev us freeswitch sounds Ubuntu18.04 安装 Freeswitch1.10

在Ubuntu18.04安装Freeswitch1.10
一、版本选择
二、Ubuntu的安装
1、修改Ubuntu镜像
(1)进入配置的目录,并进行配置文件备份
(2)打开和修改源
三、Freeswitch安装
1、添加第三方源
2、添加第三方源
3、安装部分依赖包
4、配置使用gawk
5、编译安装程序依赖包
(1)安装cmake
(2)安装libks
(3)安装signalwire-c
(4)安装mod_mariadb依赖包
(5)安装mysql数据库连接程序
(6) 安装freeswitch编译部分依赖包
(7)安装python3的环境
A、安装pip以管理Python的软件包:
B、安装virtualenvwrapper
C、创建一个文件夹,用于存放所有的虚拟环境
D、设置环境变量,把下面两行添加到~/.bashrc文件中
6、编制安装freeswitch 1.10
(1)安装sofia-sip
(2)安装spandsp
(3)重新编译FreeSWITCH
(4)添加SIP 48000Hz音频程序
(5)添加freeswitch用户
(6)禁用freeswitch IPv6功能
(7)配置ODBC连接
(9)启动freeswitch
(10)freeswitch的一些基本命令操作
(11)freeswitch服务通话测试
A、使用Eyebeam软件进行配置注册
B、 解决软电话注册错误问题状态码
=============1、404 Not found==============
=============2、403 forbidden==============
=============3、408 timeout===============

在Ubuntu上安装Freeswitch,期间的坑非常多,首先就是要选对版本,不然很多东西都问题百出。网上的帖子数量不少,但真正能解决问题的并不多,笔者这次经过反复试验,成功实现安装,后续也将会形成系列来更新产品从无至有的开发、部署过程。
一、版本选择
Ubuntu:选择了版本18.04,笔者也试过20,21,22这三个版本,问题比较多,可能是依赖包存在不全的情况。
Freeswitch:选择了版本1.10,这个版本普遍反馈比较稳定,也是使用比较多的版本。

二、Ubuntu的安装
在vmware上安装Ubuntu操作系统,安装后快照,克隆,然后开始动手安装

1、修改Ubuntu镜像
如果不修改镜像,很多功能都无法安装

(1)进入配置的目录,并进行配置文件备份
cd /etc/apt/
cp -a sources.list sources.backup.list

(2)打开和修改源
vim sources.list

按dd删除掉文件中的内容,并保存。重新打开,按i进入编辑模式,将下面的内容复制进去。

deb http://mirrors.163.com/ubuntu bionic main restricted
deb http://mirrors.163.com/ubuntu bionic-updates main restricted
deb http://mirrors.163.com/ubuntu bionic universe
deb http://mirrors.163.com/ubuntu bionic-updates universe
deb http://mirrors.163.com/ubuntu bionic multiverse
deb http://mirrors.163.com/ubuntu bionic-updates multiverse
deb http://mirrors.163.com/ubuntu bionic-backports main restricted universe multiverse
deb http://mirrors.163.com/ubuntu bionic-security main restricted
deb http://mirrors.163.com/ubuntu bionic-security universe
deb http://mirrors.163.com/ubuntu bionic-security multiverse

修改保存后,进行更新:

sudo apt update
三、Freeswitch安装
1、添加第三方源
echo "deb http://us.archive.ubuntu.com/ubuntu/ xenial multiverse" >> /etc/apt/source.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ xenial multiverse">> /etc/apt/source.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse" >> /etc/apt/source.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse" >> /etc/apt/source.list
echo "deb http://cz.archive.ubuntu.com/ubuntu xenial main universe" >> /etc/apt/source.list

2、添加第三方源
apt-get update
apt-get install -y software-properties-common tzdata
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
add-apt-repository ppa:videolan/stable-daily

3、安装部分依赖包
apt-get update && apt-get install -y autoconf automake bison build-essential fail2ban gawk git-core groff groff-base erlang-dev libasound2-dev libavcodec-dev libavutil-dev libavformat-dev libav-tools libavresample-dev libswscale-dev liba52-0.7.4-dev libssl-dev libdb-dev libexpat1-dev libcurl4-openssl-dev libgdbm-dev libgnutls-dev libjpeg-dev libmp3lame-dev libncurses5 libncurses5-dev libperl-dev libogg-dev libsnmp-dev libtiff5-dev libtool libvorbis-dev libx11-dev libzrtpcpp-dev make portaudio19-dev python-dev snmp snmpd subversion unixodbc unixodbc-dev uuid-dev zlib1g-dev libsqlite3-dev libpcre3-dev libspeex-dev libspeexdsp-dev libldns-dev libedit-dev libladspa-ocaml-dev libmemcached-dev libmp4v2-dev libpq-dev libvlc-dev libv8-dev liblua5.2-dev libyaml-dev libpython-dev odbc-postgresql sendmail wget yasm libldap2-dev libcodec2-dev vim net-tools nmap
4、配置使用gawk
update-alternatives --set awk /usr/bin/gawk

5、编译安装程序依赖包
(1)安装cmake
mkdir /opt/software
wget https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2.tar.gz -P /opt/software

cd /opt/software
tar -zxvf cmake-3.17.2.tar.gz
cd cmake-3.17.2

./bootstrap --prefix=/usr
make && make install

(2)安装libks
git clone https://github.com/signalwire/libks.git /opt/software/
cd /opt/software/libks
cmake .
make && make install

(3)安装signalwire-c
git clone https://github.com/signalwire/signalwire-c.git /opt/software
cd /opt/software/signalwire-c
cmake .
make && make install

(4)安装mod_mariadb依赖包
wget https://downloads.mariadb.com/Connectors/c/connector-c-3.1.7/mariadb-connector-c-3.1.7-linux-x86_64.tar.gz -P /opt/software
cd /opt/software

tar -zxvf mariadb-connector-c-3.1.7-linux-x86_64.tar.gz
cp -r mariadb-connector-c-3.1.7-linux-x86_64/include/mariadb/* /usr/include
cp -r mariadb-connector-c-3.1.7-linux-x86_64/lib/mariadb/* /lib/x86_64-linux-gnu/

export PKG_CONFIG_PATH=/opt/software/mariadb-connector-c-3.1.7-linux-x86_64/lib/pkgconfig

(5)安装mysql数据库连接程序
wget https://cdn.mysql.com//Downloads/Connector-ODBC/8.0/mysql-connector-odbc_8.0.30-1ubuntu18.04_amd64.deb
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-community-client-plugins_8.0.30-1ubuntu18.04_amd64.deb

#下面进行安装
dpkg -i mysql-community-client-plugins_8.0.30-1ubuntu18.04_amd64.deb
dpkg -i mysql-connector-odbc_8.0.30-1ubuntu18.04_amd64.deb

ln -sf /usr/lib/x86_64-linux-gnu/odbc/libmyodbc8a.so /usr/lib/
ln -sf /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so /usr/lib/

(6) 安装freeswitch编译部分依赖包
GIT_SSL_NO_VERIFY=1
git clone https://github.com/BetterVoice/freeswitch-container.git /opt/software
sh /opt/software/freeswitch-container/build/install-deps.sh

(7)安装python3的环境
Ubuntu 16.04预装了Python 3和Python 2。 为确保是最新版本,用apt-get更新和升级系统:

sudo apt-get update
sudo apt-get -y upgrade

-y标志将确认用户同意安装所有项目,但根据Linux版本,用户也可能需要确认系统更新和升级的其他提示。

A、安装pip以管理Python的软件包:
sudo apt-get install -y python3-pip
pip3 install package_name

B、安装virtualenvwrapper
sudo apt-get install python-virtualenv
pip3 install virtualenvwrapper
#或者 sudo easy_install virtualenvwrapper (使用easy_install需要先安装sudo apt-get install python-setuptools python-dev build-essential)

C、创建一个文件夹,用于存放所有的虚拟环境
mkdir $HOME/.virtualenvs
D、设置环境变量,把下面两行添加到~/.bashrc文件中
export WORKON_HOME=$HOME/.virtualenvs
source /usr/bin/virtualenvwrapper.sh
#(后面的路径为which virtualenvwrapper.sh的结果)
source ~/.bashrc

然后就可以使用virtualenvwrapper了

6、编制安装freeswitch 1.10
git clone https://github.com/signalwire/freeswitch.git -b v1.10 /opt/software
cd /opt/software/freeswitch

./bootstrap.sh
./configure --prefix=/opt/freeswitch --with-gnu-ld --with-python --with-erlang --with-openssl --enable-portable-binary --enable-core-odbc-support --enable-zrtp

make && make install

#标准提示音
make uhd-sounds-install
#标准通话音乐
make uhd-moh-install

cp src/mod/databases/mod_mariadb/.libs/mod_mariadb.so /opt/freeswitch/lib/freeswitch/mod/
cp -rf debian/freeswitch-sysvinit.freeswitch.default /etc/default/freeswitch

#编译FreeSWITCH时,报错 spandsp >= 3.0… configure: error: no usable spandsp; please install spandsp3 devel package or equivalent

步骤:

(1)安装sofia-sip
git clone https://github.com/freeswitch/sofia-sip.git

cd sofia-sip
./bootstrap.sh -j
./configure
make
make install
ldconfig

(2)安装spandsp
cd /usr/local/src/freeswitch-1.10.5.-release

git clone https://github.com/freeswitch/spandsp.git
cd spandsp

./bootstrap.sh -j
./configure
make
make install

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}

ldconfig

(3)重新编译FreeSWITCH
cd /usr/local/src/freeswitch-1.10.5.-release

./configure --disable-signalwire
make
make install

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

(4)添加SIP 48000Hz音频程序
wget http://files.freeswitch.org/releases/sounds/freeswitch-sounds-en-us-callie-8000-1.0.52.tar.gz
tar -zxvf freeswitch-sounds-en-us-callie-8000-1.0.52.tar.gz -C /opt/software
wget http://files.freeswitch.org/releases/sounds/freeswitch-sounds-en-us-callie-16000-1.0.52.tar.gz
tar -zxvf freeswitch-sounds-en-us-callie-16000-1.0.52.tar.gz -C /opt/software
wget http://files.freeswitch.org/releases/sounds/freeswitch-sounds-en-us-callie-32000-1.0.52.tar.gz
tar -zxvf freeswitch-sounds-en-us-callie-32000-1.0.52.tar.gz -C /opt/software
wget http://files.freeswitch.org/releases/sounds/freeswitch-sounds-en-us-callie-48000-1.0.52.tar.gz
tar -zxvf freeswitch-sounds-en-us-callie-48000-1.0.52.tar.gz -C /opt/software
wget http://files.freeswitch.org/releases/sounds/freeswitch-sounds-music-8000-1.0.52.tar.gz
tar -zxvf freeswitch-sounds-music-8000-1.0.52.tar.gz -C /opt/software
wget http://files.freeswitch.org/releases/sounds/freeswitch-sounds-music-16000-1.0.52.tar.gz
tar -zxvf freeswitch-sounds-music-16000-1.0.52.tar.gz -C /opt/software
wget http://files.freeswitch.org/releases/sounds/freeswitch-sounds-music-32000-1.0.52.tar.gz
tar -zxvf freeswitch-sounds-music-32000-1.0.52.tar.gz -C /opt/software
wget http://files.freeswitch.org/releases/sounds/freeswitch-sounds-music-48000-1.0.52.tar.gz
tar -zxvf freeswitch-sounds-music-48000-1.0.52.tar.gz -C /opt/software

tar -zxvf freeswitch-sounds-en-us-callie-48000-1.0.52.tar.gz -C /opt/software
tar -zxvf freeswitch-sounds-music-48000-1.0.52.tar.gz -C /opt/software

cd /opt/software
cp -r sounds/en/us/callie/ascii/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/ascii/48000
cp -r sounds/en/us/callie/base256/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/base256/48000
cp -r sounds/en/us/callie/conference/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/conference/48000
cp -r sounds/en/us/callie/currency/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/currency/48000
cp -r sounds/en/us/callie/digits/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/digits/48000
cp -r sounds/en/us/callie/directory/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/directory/48000
cp -r sounds/en/us/callie/ivr/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/ivr/48000
cp -r sounds/en/us/callie/misc/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/misc/48000
cp -r sounds/en/us/callie/phonetic-ascii/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/phonetic-ascii/48000
cp -r sounds/en/us/callie/time/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/time/48000
cp -r sounds/en/us/callie/voicemail/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/voicemail/48000
cp -r sounds/en/us/callie/zrtp/48000 /opt/freeswitch/share/freeswitch/sounds/en/us/callie/zrtp/48000
cp -r sounds/music/48000 /opt/freeswitch/share/freeswitch/sounds/music/48000


(5)添加freeswitch用户
adduser --disabled-password --quiet --system --home /opt/freeswitch --gecos "FreeSwitch Voice Platform" --ingroup daemon freeswitch && adduser freeswitch audio
chown -R freeswitch:daemon /opt/freeswitch && chmod -R o-rwx /opt/freeswitch
ln -s /opt/freeswitch/bin/freeswitch /usr/bin/
ln -s /opt/freeswitch/bin/fs_cli /usr/bin/

(6)禁用freeswitch IPv6功能
mv /opt/freeswitch/etc/freeswitch/sip_profiles/external-ipv6.xml /opt/freeswitch/etc/freeswitch/sip_profiles/external-ipv6.xml-bak

mv /opt/freeswitch/etc/freeswitch/sip_profiles/internal-ipv6.xml /opt/freeswitch/etc/freeswitch/sip_profiles/internal-ipv6.xml-bak

(7)配置ODBC连接
cat > /etc/odbcinst.ini <<EOF

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc8a.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc8a.so
Setup64 = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
EOF

cat > /etc/odbc.ini <<EOF

[freeswitch]
DRIVER = MySQL
SERVER = 192.168.1.1 //mysql server ip
PORT = 3306
DATABASE = fs_core //mysql freeswitch database
USER = freesw //mysql freeswitch freesw database username
PASSWORD = freesw@123 //mysql freeswitch freesw database passwd
OPTION = 3
EOF

isql -v freeswitch

vi /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml

改为 ### (8)修改RTP语音通话UDP端口范围 ```powershell vi /opt/freeswitch/etc/freeswitch/autoload_configs ```
在150行处,定义随机打开端口范围31768~32768

<!-- RTP port range -->
<param name="rtp-start-port" value="31768"/>
<param name="rtp-end-port" value="32768"/>

<param name="rtp-enable-zrtp" value="true"/>

注:如修改完启动freeswitch时只能启动8081/8082/8021端口,shutdonw后删除/opt/freeswitch/var/log/freeswitch/目录下的root权限文件和目录重启即可。

(9)启动freeswitch
/usr/bin/freeswitch -nc -nonat
netstat -lntup

tcp 0 0 0.0.0.0:8021 0.0.0.0:* LISTEN 28569/freeswitch
tcp 0 0 192.168.0.102:5080 0.0.0.0:* LISTEN 30917/freeswitch
tcp 0 0 192.168.0.102:5060 0.0.0.0:* LISTEN 30917/freeswitch
tcp 0 0 192.168.0.102:5066 0.0.0.0:* LISTEN 30917/freeswitch
tcp 0 0 192.168.0.102:8081 0.0.0.0:* LISTEN 30917/freeswitch
tcp 0 0 192.168.0.102:8082 0.0.0.0:* LISTEN 30917/freeswitch
tcp 0 0 192.168.0.102:7443 0.0.0.0:* LISTEN 30917/freeswitch
udp 0 0 192.168.0.102:5060 0.0.0.0:* 30917/freeswitch
udp 0 0 192.168.0.102:5080 0.0.0.0:* 30917/freeswitch
udp 0 0 0.0.0.0:1337 0.0.0.0:* 30917/freeswitch

使用客户端连接程序连接freeswitch

fs_cli
至此,在Ubuntu18.04上安装Freeswitch1.10的工作就基本完成了,可以进行测试。

(10)freeswitch的一些基本命令操作
#详细启动日志并进入控制台模式命令
freeswitch -c -nonat -rp
#退出详细模式启动命令
shutdown
#后台启动freeswitch服务(推荐使用)
freeswitch -nc -nonat
#进入控制台模式命令
fs_cli
#退出控制台命令
/exit
#关闭freeswitch命令
freeswitch -stop

查询服务命令

#查看freeswitch安装路径
whereis freeswitch
查看进程号
ps -ef | grep freeswithch
查看freeswitch端口是否被监听
netstat -anp | grep 5060
#查看freeswitch的运行状态
status(控制台模式执行)
#查看freewitch内置用户是否注册
sofia status profile internal reg(控制台模式执行)

(11)freeswitch服务通话测试
电脑下载软电话注册软件:X-Lite、Zoiper、Eyebeam

A、使用Eyebeam软件进行配置注册

 

Eyebeam软电话注册成功

 


B、 解决软电话注册错误问题状态码
=1、404 Not found==
服务ip地址不可用
原因:freeswtich没有启动或者端口被占用,总之Eyebeam不能到达指定domain
解决方法:
确保freeswitch已经启动并且5060端口没被占用

netstat -napl|grep 5060


=2、403 forbidden==
用户名密码错误
原因:freeswitch一开始安装好 默认会给你配置好20个account (1000-1019),密码统一是1234,这个可以在freeswitch/conf/vars.xml里面修改
解决方法:
检查用户名密码是否错误

=3、408 timeout===
连接超时
原因:Eyebeam上配置的domain不正确, 或者网络有问题

解决方法:
a、确保所填的域名是正确的ip地址
b、确保已经关闭防火墙(centos下)

#关闭防火墙:
systemctl stop firewalld.service
#查看防火墙状态
firewall-cmd --state
#输出:not running //说明防火墙已经关闭

c、查看iptables

2.开始拨号,默认内置拨号如下

 

3.Eyebeam拨打9196号码进行回音测试

 

如图所示呼叫建立成功、麦克风有电话回音、freeswitch控制台日志输出正常!

标签:opt,callie,dev,us,freeswitch,sounds,Ubuntu18.04,安装,Freeswitch1.10
From: https://www.cnblogs.com/kn-zheng/p/17374008.html

相关文章

  • OpenProject:Ubuntu18.04下安装配置(docker方式)
    年前刚跳槽,发现很久没有更新文章啦。最近几年转到了技术管理岗,中小公司的技术管理,免不了做一些PM的活。以前用微软的Project(虽然盗版但真的好用),现在公司不允许使用盗版,只能找找开源的,于是发现了OpenProject。官方提供了几种安装方式:1.Package2.Docker3.UCS4.Other1.尝试下......
  • freeswitch-ubuntu安装
    一,软件及环境准备:ubuntu版本18.04:https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.isofreeswitch版本1.10.7:https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gzspandsp包:https://codeload.github.com/freeswitch/sp......
  • DGL包的安装和卸载
    1.无版本要求下的DGL安装DeepGraphLibrary(dgl.ai)在官网中选择对应的版本DGL下载官网中默认是最新的版本2.有版本要求下的DGL安装Linux64::Anaconda.org在该网站中选择想要的版本3.卸载如果1中的下载命令是condainstall-cdglteam/label/cu116dgl卸载命令就是......
  • Ansible-安装
    第一步:安装我们的epel扩展源yum-yinstallepel-release我这里会报/var/run/yum.pid已被锁定,如果没有直接进行下一步[root@masterhome]#yum-yinstallepel-release已加载插件:fastestmirror,langpacks/var/run/yum.pid已被锁定,PID为22410的另一个程序正在运行。......
  • CentOS7yum安装出现/var/run/yum.pid 已被锁定,解决办法
    安装epel扩展源yum-yinstallepel-release提示:[root@masterhome]#yum-yinstallepel-release已加载插件:fastestmirror,langpacks/var/run/yum.pid已被锁定,PID为22410的另一个程序正在运行。Anotherappiscurrentlyholdingtheyumlock;waitingforitto......
  • nvm(Node Version Manager)安装管理多个版本的 Node.js 和 npm。
    在使用npm安装多个版本的软件包时,需要使用Node.js的版本管理工具–n或 nvm(NodeVersionManager)来管理多个版本的Node.js和npm。下面是使用nvm安装和管理Node.js和npm版本的步骤:安装nvm:您可以使用curl或wget命令来下载和安装nvm: curl-o-https:/......
  • Node.js的安装与配置
    一、什么是Node.js?Node.js 是能够在伺服器端运行 JavaScript 的开放原始码、跨平台执行环境。Node.js由OpenJSFoundation(原为Node.jsFoundation,已与JSFoundation合并)持有和维护,亦为 Linux基金会的项目。Node.js采用 Google 开发的 V8 执行程式码,使用事件驱动......
  • centos7安装oracle11g11.2.0.4.0
    1,下载oracle11g11.2.0.4.0安装包,解压2,配置安装环境1,下载配置环境文件-------------------------------------------------------------------------------------------------------------------------------------cd/etc/yum.repos.dwgethttp://public-yum.oracle.com/pub......
  • Ubuntu物理机安装
    本文所记录内容基本硬件配置:主板:华硕Z790-PCPU:Intel-i7-13900KGPU:NvidiaRTXA5000本文所记录内容基本软件配置:OS:Ubuntu-22.04桌面:GNOME启动盘:ventoy其它硬件配置或软件配置请谨慎参考......
  • 酷比魔方iwork8超级版平板(z3735f的cpu)安装linux
    这类平板都是15年左右的老机器,性能放到现在可谓十分孱弱,装windows已经不能流畅运行,而且不知为何,按照官方提供的镜像刷机后,过一段时间系统就会损坏,遂考虑安装Linux系统,经过一番搜索,发现了这些平板最大的问题:其带的UEFI(传统BIOS的替代品)是32位的,然而现在大多数系统都是6......