freeswitch單獨編譯模塊
A. 如何在xshell5中編譯freeswitch源代碼
(1)使用安裝包安裝
Windows用戶可以直接下載安裝文件,然後根據自己的系統選擇不同目錄,32位系統的用戶選擇x86目錄,64位系統的用戶選擇x64目錄。freeswitch.msi是最新的安裝程序,一般隔幾天就會更新一次版本。筆者的測試環境是32位的Windows XP,下載界面如圖3-3所示
如同安裝其他程序一樣,我們全部選擇默認設置即可,也就是說只要連續單擊「Next」按鈕就能安裝完畢。安裝完成後選擇」開始菜單」→「所有程序」→「FreeSWITCH」→ 「FreeSWITCH」便可以啟動FreeSWITCH了,啟動後的界面如圖3-4所示。
如果安裝過程中你沒有修改默認安裝路徑的話,那麼FreeSWITCH的實際安裝路徑是:c:\Program Files\FreeSWITCH,配置文件在該目錄的conf目錄下
(2)從源代碼安裝
如果從源代碼安裝,則首先要下載源代碼。
除此之外,也可以Git倉庫獲取源代碼。Git是FreeSWITCH使用的版本控制工具,從Git倉庫獲取源代碼的好處是可以隨時更新,並可以很方便地切換到不同的代碼分支,甚至「倒回」到任意提交點。
如果從Git倉庫獲取源代碼,需要先在Windows上安裝Git。
安裝Git很簡單,一般來說雙擊安裝文件並連續單擊「Next」按鈕即可安裝完畢。不過,在Windows平台編譯FreeSWITCH有幾個要注意的事情,因此在安裝Git的過程中我們也需要注意以下問題,並做適當的選擇:
將FreeSWITCH的源代碼放到一個「干凈」的目錄下。為避免有時候遇到奇怪的問題,最好把代碼放到一個比較不容易出問題的目錄下,如可以放到
C:\src\freeswitch 或D:\src\freeswitch下,這兩個都是比較好的目錄。而像 C:\My
Documents(有空格)或C:\源代碼中文目錄\freeswitch(有中文)之類的則在編譯或使用時可能會有問題。
B. CentOS7下FreeSwitch1.8源碼安裝過程完整記錄
1、yum 安裝相關的依賴包
yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtiff-devel libtheora-devel libtool libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel libuuid-devel which yasm zlib-devel
2、安裝 mod_shout 模塊以支持 mp3 格式
yum install -y libshout-devel lame-devel libmpg123-devel
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar -zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --enable-static --enable-shared
make
make install
vi /etc/ld.so.conf
#換行加入:/usr/local/lib
#保存退出 :wq
ldconfig
3、安裝 cmake
yum remove cmake
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar vzxf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make
make install
4、 安裝 libks
yum install libatomic
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make
make install
5、安裝 signalwire-c
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
cmake .
make
make install
ln -sf
/usr/local/lib64/pkgconfig/signalwire_client.pc
/usr/lib64/pkgconfig/signalwire_client.pc
6、下載並安裝 freeswitch1.8
如下 git 為國內址,速度較快,也可以從官方下載源碼
git clone -b v1.8 https://git.oschina.net/nwaycn/freeswitch.git
./bootstrap.sh -j
./configure --enable-portable-binary
--prefix=/usr/local/freeswitch
--with-gnu-ld --with-python --with-openssl
--enable-core-odbc-support --enable-zrtp
--enable-libmp3lame
make
make -j install
如下安裝語音文件,用時會較長
make -j cd-sounds-install
make -j cd-moh-install
7、安裝後的一些操作
設置全局命令軟連接
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/
禁用 freeswitch 上 ipv6
mv external-ipv6.xml external-ipv6.xml.inactive
mv internal-ipv6.xml internal-ipv6.xml.inactive
8、啟動 freeswitch
freeswitch -nc #後台啟動
freeswitch 常用命令
#列出 internal SIP Profile 的狀態
sofia status profile internal
#列出某個 Profile 上所有已注冊用戶
sofia status profile internal reg
#過濾某些符合條件
sofia status profile internal reg 1000
sofia status profile internal user 1000
#列出網關狀態
sofia status gateway gw1
#以上命令都可以將 status 用 xmlstatus 來代替,以列出 XML 格式的狀態,這樣比較容易用
於其他程序解析
#啟動、停止、重啟某個 Profile 的命令
sofia profile internal start #啟動
sofia profile internal stop #停止
sofia profile internal restart #重啟
#有時候修改了某個 Profile 的某個參數,不需要重啟(重啟是影響通話的),可以使用下列
命令讓 FreeSWITCH 重讀 sofia 的配置
#注意並不是所有的參數都能生效
sofia profile internal rescan
#添加了一個新的 gateway 以後,也可以使用 rescan 指令讀取
sofia profile external rescan
#如果是修改了一個網關,則可以先刪除該網關,再 rescan
sofia profile external killgw gw1
sofia profile external rescan
#下列命令可以指定某個網關立即向外注冊或注銷
sofia profile external register gw1
sofia profile external unregister
#開啟該 Profile 的 SIP 跟蹤功能抓 SIP 包
sofia profile internal siptrace on
#有時候,希望將已經注冊的用戶清理掉,可以使用如下命令,注意此命令只是臨時清理,
客戶端重新注冊的話還是可以注冊成功的
sofia profile internal flush_inbound_reg [email protected]
#也可以根據 call-id 來清理
sofia profile internal reg 1000 #通過此命令查找到 call-id 的值
sofia profile flush_inbound_reg zsfsdfhdfgdfsdfsdfsdfsdf #清除 call-id=zsfsdfhdfgdfsdfsdfsdfsdf 的用戶
C. freeswitch下載--安裝--配置
configure只是檢查你的環境是否滿足編譯條件,然後生成makefile
你的configure提示你不滿足編譯條件,你自然無法make
它提示你沒裝C編譯器
先輸入
$su
$yum install gcc
把gcc裝了試試看吧
可能還會有其他包依賴關系不滿足,缺什麼就裝什麼吧