FreeSwitch[edit]
Install[edit]
- dnf config-manager --set-enabled crb (crb リポジトリの有効化)
- crb リポジトリの有効にしておかないと,devel の一部が dnf でインストールできない.
install[edit]
- dnf install MariaDB-devel
- dnf install speex
- dnf install speex-devel
- dnf install ldns
- dnf install ldns-devel
- dnf install libedit-devel
- dnf install yasm
- dnf install libavformat-free
- dnf install libavformat-free-devel
- dnf install libswscale-free
- dnf install libswscale-free-devel
- dnf install lua-devel
- dnf install opus-devel
- dnf install libpq-devel
- dnf install libsndfile
- dnf install libsndfile-devel
Library[edit]
spandsp[edit]
git clone https://github.com/freeswitch/spandsp.git
cd spandsp
./bootstrap.sh
./configure
make
make install
ldconfig
sofia-sip[edit]
git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip/
./bootstrap.sh
./configure
make
make install
ldconfig
speexdsp[edit]
git clone https://github.com/xiph/speexdsp.git
cd speexdsp/
./autogen.sh
./configure
make
make install
ldconfig
yum install libuuid-devel
git clone https://github.com/signalwire/libks.git
cd libks/
mkdir build
cd build/
cmake --install-prefix /usr/local ..
make
make install
ldconfig
signalwire-c[edit]
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
mkdir build
cd build/
cmake --install-prefix /usr/local ..
make
make install
ldconfig
freeswitch[edit]
git clone https://github.com/signalwire/freeswitch.git
cd freeswitch
./bootstrap.sh
./configure --prefix=/usr/local
make
FreeSwitch†[edit]
- /usr/local/freeswitch/bin/freeswitch -nc
- /usr/local/freeswitch/bin/freeswitch -stop
- UDP: 3478, 3479, 5060, 5062, 12000-17000
modules.conf†[edit]
#applications/mod_fsv
#codecs/mod_opus
#formats/mod_sndfile
codecs/mod_siren
xml_int/mod_xml_curl
コンパイル&インストール†[edit]
# export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig
# ./configure --disable-libvpx --disable-libyuv
lua の処理 (後述参照)
# vi modules.conf
# make
# make install
- spandsp3 devel
- sofia-sip
- yum install sqlite-devel
- yum install speex-devel
- yum install ldns-devel
結局 コンパイラが avx2をサポートしていないとのことで,コンパイルできず.†[edit]
disabling avx512: not supported by compiler
- CentOS だと 「色々パッケージが無い(または古い)」 と怒られる
- 最低 sqlite3, libldns はコンパイルして追加.
modules.conf†[edit]
#applications/mod_fsv
#codecs/mod_opus
#codecs/mod_vpx
#formats/mod_sndfile
codecs/mod_siren
xml_int/mod_xml_curl
コンパイル&インストール†[edit]
# export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig
# ./configure
lua の処理
# vi modules.conf
# make
# make install
liblua.a, liblua.so†[edit]
# cd src/mod/languages/mod_lua/lua
# make linux
# cp liblua.a /usr/local/lib
# chmod o+r /usr/local/lib/liblua.a
# cd ..
# ln -s lus/*.h .
vi Makefile (これは必要ないかも) 必要なし
CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) -fPIC
....
liblua.so: $(BASE_O)
$(CC) -shared -o $@ $(BASE_O)
- G.722.1用モジュール
- mod_siren で必要
# git clone https://freeswitch.org/stash/scm/sd/libg7221.git
# cd libg7221
# ./autogen.sh
# ./configure
# make
# make install
conf/vars.xml†[edit]
diff vars.xml.orig vars.xml
258c258,259
< <X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,VP8"/>
---
> <!--<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,VP8"/>-->
> <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/>
conf/autoload_configs/xml_curl.conf.xml.†[edit]
# diff xml_curl.conf.xml.orig xml_curl.conf.xml
3c3,14
< <binding name="example">
---
> <binding name="EDU_directory">
> <param name="gateway-url" value="http://opensim.tuis.ac.jp:8004/fsapi/freeswitch-config" bindings="directory"/>
> <param name="gateway-credentials" value="freeswitch:password"/>
> <param name="disable-100-continue" value="true"/>
> </binding>
> <binding name="EDU_dialplan">
> <param name="gateway-url" value="http://opensim.tuis.ac.jp:8004/fsapi/freeswitch-config" bindings="dialplan"/>
> <param name="gateway-credentials" value="freeswitch:password"/>
> <param name="disable-100-continue" value="true"/>
> </binding>
>
> <!--<binding name="example">-->
47c58
< </binding>
---
> <!--</binding>-->
conf/autoload_configs/modules.conf.xml†[edit]
diff modules.conf.xml.orig modules.conf.xml
18c18
< <!-- <load module="mod_xml_curl"/> -->
---
> <load module="mod_xml_curl"/>
66c66
< <load module="mod_fsv"/>
---
> <!-- <load module="mod_fsv"/> -->
95c95
< <load module="mod_vpx"/>
---
> <!--<load module="mod_vpx"/>--> 1.6.9 の場合は無し
97c97
< <!--<load module="mod_siren"/>-->
---
> <load module="mod_siren"/>
99c99
< <load module="mod_opus"/>
---
> <!--<load module="mod_opus"/>-->
102c102
< <load module="mod_sndfile"/>
---
> <!--<load module="mod_sndfile"/>-->
conf/autoload_configs/conference.conf.xml.orig†[edit]
diff conference.conf.xml.orig conference.conf.xml
72c72
< <param name="muted-sound" value="conference/conf-muted.wav"/>
---
> <!--<param name="muted-sound" value="conference/conf-muted.wav"/>-->
74c74
< <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
---
> <!--<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>-->
76c76
< <param name="alone-sound" value="conference/conf-alone.wav"/>
---
> <!--<param name="alone-sound" value="conference/conf-alone.wav"/>-->
80c80
< <param name="moh-sound" value="$${hold_music}"/>
---
> <!--<param name="moh-sound" value="$${hold_music}"/>-->
82c82
< <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
---
> <!--<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>-->
84c84
< <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
---
> <!--<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>-->
86c86
< <param name="kicked-sound" value="conference/conf-kicked.wav"/>
---
> <!--<param name="kicked-sound" value="conference/conf-kicked.wav"/>-->
88c88
< <param name="locked-sound" value="conference/conf-locked.wav"/>
---
> <!--<param name="locked-sound" value="conference/conf-locked.wav"/>-->
90c90
< <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
---
> <!--<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>-->
92c92
< <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
---
> <!--<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>-->
94c94
< <param name="pin-sound" value="conference/conf-pin.wav"/>
---
> <!--<param name="pin-sound" value="conference/conf-pin.wav"/>-->
96c96
< <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
---
> <!--<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>-->
conf/autoload_configs/switch.conf.xml†[edit]
diff switch.conf.xml.orig switch.conf.xml
146a147,148
> <param name="rtp-start-port" value="6000"/>
> <param name="rtp-end-port" value="6999"/>
IPv6 を無効化†[edit]
# cd conf/sip_profiles/
# mkdir Invalid
# mv *ipv6* Invalid/