freeswitch源碼
『壹』 如何在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(有中文)之類的則在編譯或使用時可能會有問題。
『貳』 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 的用戶
『叄』 frfreeswitch 怎麼通過c修改.xml
什麼是 FreeSWITCH ?
FreeSWITCH 是一個開源的電話交換平台,它具有很強的可伸縮性--從一個簡單的軟電話客戶端到運營商級的軟交換設備幾乎無所不能。能原生地運行於Windows、 Max OS X、linux、BSD 及 solaris 等諸多32/64位平台。可以用作一個簡單的交換引擎、一個PBX,一個媒體網關或媒體支持IVR的伺服器等。它支持SIP、H323、Skype、Google Talk等協議,並能很容易地與各種開源的PBX系統如sipXecs、Call Weaver、Bayonne、YATE及Asterisk等通信。 FreeSWITCH 遵循RFC並支持很多高級的SIP特性,如 presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以用作一個SBC進行透明的SIP代理(proxy)以支持其它媒體如T.38 等。FreeSWITCH 支持寬頻及窄帶語音編碼,電話會議橋可同時支持8、12、16、24、32及48kHZ的語音. 而在傳統的電話網路中,要做到三方通話或多方通話需要通過專門的晶元來處理,其它像預付費,彩鈴等業務在PSTN網路中都需要依靠智能網(IN)才能實現,而且配置起來相當不靈活。
快速體驗
FreeSWITCH 的功能確實非常豐富和強大,在進一步學習之前我們先來做一個完整的體驗。FreeSWITCH 默認的配置是一個SOHO PBX(家用電話小交換機),那麼我們本章的目標就是從0安裝,實現分機互撥電話,測試各種功能,並通過添加一個SIP-PSTN網關撥打PSTN電話。這樣,即使你沒有任何使用經驗,你也應該能順利走完本章,從而建立一個直接的認識。在體驗過程中,你會遇到一點稍微復雜的配置,如果不能完全理解,也不用擔心,我們在後面會詳細的介紹。當然,如果你是一個很有經驗的 FreeSWITCH 用戶,那麼大可跳過本章。
安裝FreeSWITCH基本系統
在本文寫作時,最新的版本1.0.5pre10,但說不定當你讀到時1.0.5正式版已經發布了。FreeSWITCH支持32位及64位的 Linux、 MacOSX、BSD、Solaris、Windows等眾多平台。某些平台上有編譯好的安裝包,但本人強烈建議從源代碼進行安裝,因為 FreeSWITCH 更新非常快,而已編譯好的版本通常都比較舊。你可以下載源碼包,也可以直接從SVN倉庫中取得最新的代碼。與其它項目不同的是,其SVN主幹 (trunk)代碼通常比穩定的發布版更穩定。而且,當你需要技術支持時,開發人員也通常建議你先升級到SVN中最新的代碼,再看是不是仍有問題。
Windows用戶可以直接下載安裝文件 (再提醒一下,版本比較舊代,如果從源代碼安裝的話,需要Visual Studio 2008)。安裝完成執行 c:\freeswitch\freeswitch.exe 便可啟動,其配置文件都在c:\freeswitch\conf\。
以下假定你使用 Linux 平台,並假定你有 Linux 的基本知識。如何從頭安裝 Linux 超出了本書的范圍,而且,你也可以很容易的從網上找到這些資料。一般來說,任何發行套件都是可以的,但是,有些發行套件的內核、文件系統、編譯環境,LibC 版本會有一些問題。所以,如果你在遇到問題後想獲得社區支持,最好選擇一種大家都熟悉的發行套件。FreeSWITCH 開發者使用的平台是 CentOS 5.2/5.3(CentOS 5.4 上會有一些問題,並不總是版本越高越好),社區中也有許多人在使用 Ubuntu 和 Debian,如果你想用於生產環境,建議使用 LTS(Long Term Support) 的版本,即 Ubuntu8.04/10.04 或 Debian Stable。在安裝之前,我們需要先准備一些環境(FreeSWITCH 可以以普通用戶許可權運行,但為了簡單起見,以下所有操作均用 root 執行):
CentOS:
yum install -y subversion autoconf automake libtool gcc-c++ ncurses-devel make
Ubuntu:
apt-get -y install build-essential subversion automake autoconf wget libtool libncurses5-dev
以下三種安裝方式任選其一,默認安裝位置在/usr/local/freeswitch。安裝過程中會下載源代碼目錄,請保留,以便以後升級及安裝配置其它組件。
『肆』 linux 中freeswitch 已經啟動了但是忘記下載語音包了,還能下嗎怎麼下centos
可以的
你先停止freeswitch,然後安裝
至於怎麼安裝要看你用什麼系統,然後去freeswitch中文站下源碼包,然後編譯安裝