MicroSIP编译完全手册
轉(zhuǎn)自:http://www.mworkbox.com/wp/work/205.html
microsip是一個開源的輕量級sip軟電話軟件,其所用的協(xié)議棧是大名鼎鼎的pjsip協(xié)議棧
以下是個人手把手總結(jié)的編譯修改microsip注意事項
1.下載庫ffmepg,主要用來做h264的codec,可到如下目錄中下載已經(jīng)編好好的庫,注意因為兼容性問題,不能用最新的0.11的ffmepg
只能用0.10的版本,已經(jīng)編譯好的windows庫下載列表,從中選一個可以編譯好的
windows環(huán)境已編譯的dev庫和動態(tài)庫下載列表
開發(fā)包:http://ffmpeg.zeranoe.com/builds/win32/dev
動態(tài)庫:http://ffmpeg.zeranoe.com/builds/win32/shared
本人選的是2011年12月份的最后一個版本下載的:
http://ffmpeg.zeranoe.com/builds/win32/dev/ffmpeg-git-f514695-win32-dev.7z
http://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-git-f514695-win32-shared.7z
注意事項:對于vs2008,需要到網(wǎng)上找stdint.h和inttypes.h源文件,放入目錄ffmpeg/include目錄下,這個網(wǎng)站【http://ffmpeg.arrozcru.org/autobuilds/】的開發(fā)包中有著2個文件
中有這2個文件,可提取出來。
2.下載SDL 1.3版本編譯生成庫和鏈接
http://www.libsdl.org/tmp/SDL-1.3.zip
注意事項:不知道什么原因,用vs2008編譯的DLL導致視頻無法顯示,我換了microsip.exe中的原版SDL.dll即可顯示了。
下載的開發(fā)包生成的lib和頭文件還是有用的。
3.下載DXSDK Aug2009,安裝DirectX
http://www.microsoft.com/en-us/download/confirmation.aspx?id=23549
注意 如果裝的是vs2008,別用2010的版本
4.下載pjsip源碼,建議用2.0以上的版本
http://www.pjsip.org/download.htm
http://www.pjsip.org/release/0.5.4/PJSIP-Dev-Guide.pdf
pjsip的編譯宏配置,是您能否成功的關(guān)鍵所在
a.新建config_site.h文件,路徑為pjproject-2.0.1\pjlib\include\pj\config_site.h
b.添加如下配置,原因請看解釋
c.選擇pjsua子項目為Startup Project,開始編譯前,請進該工程配置屬性頁面,點擊Configuration Manager按鈕,選擇Win32平臺,不要選擇ARM平臺來編譯,
我就犯過這種傻。開始編譯,遇到編譯缺少頭文件的,增加SDL,ffmpeg,directx SDK的路徑到相應(yīng)工程設(shè)置中
遇到鏈接通不過,則增加其lib路徑到工程設(shè)置中,直到編譯成功。
d.生成的pjsip project的lib庫在為pjproject-2.0.1\lib目錄下,大小約12M左右,這個庫匯總了所有需要依賴的庫,是microsip唯一需要依賴的pjsip庫
例如我的Debug環(huán)境生成為libpjproject-i386-Win32-vc8-Debug.lib
5.下載microsip.exe,可以用來比較測試(非常好!),提取其SDL.dll
http://microsip.org.ua/downloads
6. 下載源碼
http://microsip.org.ua/source
這個相對簡單,打開vc工程即可編譯,遇到編譯缺少頭文件的,增加pjsip, SDL,ffmpeg,directx SDK的路徑到相應(yīng)工程設(shè)置中
遇到鏈接通不過,則增加其lib路徑到工程設(shè)置中,直到編譯成功。
遇到錯誤
jumplist.h(19): error C2143: syntax error : missing ';' before '*'將jumplist.h和jumplist.cpp完全刪除,繼續(xù)編譯,遇到j(luò)umplist相關(guān)的全部注釋掉
遇到無法打開文件strmbasd.lib或者無法打開文件strmbase.lib,是因為
每次重新安裝Windows SDK,都需要手動編譯Directshow的基類BaseClasses。 csdn上有很多人已經(jīng)編譯好了,分別是Debug版本(strmbasd.lib)和Retail版本(strmbase.lib),可直接放在lib路徑上,為新手節(jié)省配置環(huán)境的時間。去找找下載下來放在microsip項目目錄即可 a. 遇到鏈接libpjproject-xxx.lib找不到的,該庫即為前面第4步d項生成的總的pjsip庫,在工程源碼中查找該庫名稱,
并修改該庫的名稱為前面生成的庫名。
b. 把SDL.dll,ffmpeg的DLL放到工程目錄
c. 嚴重注意, 如果microsip.exe點擊菜單”Account”和”Settings”無法顯示對話框,是因為資源文件microsip.rc2中,含有SysLink控件,導致加載資源失敗。
解決辦法,刪除資源中的所有SysLink控件即可。(該問題可能僅限vs2008環(huán)境)
d. 如果遇到可以撥打電話,無法接聽電話的話(SIP 返回404錯誤),請打開microsipdlg.cpp文件,查找并刪除該判斷條件即可
accountSettings.domain != sipuri.domain
7.安裝freeswitch作為缺省的sip server,用來測試
在linux下,可下載一個rpm包安裝,不需要修改任何配置,即可運行
1. 安裝完畢后,用service freeswitch start運行程序
2. 缺省可用sip賬號:1001-1020,20個賬號,密碼都為1234,sip域名為服務(wù)器IP地址
希望我花費5個工作日時間,編譯pjsip和microsip的經(jīng)驗,查閱上百網(wǎng)頁搜集資訊,經(jīng)過實踐檢驗的總結(jié)能給您幫助,幫您少走彎路。
目前達到的效果是語音呼叫,視頻呼叫等都很正常。
總結(jié)
以上是生活随笔為你收集整理的MicroSIP编译完全手册的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab小波分析特征提取,基于小波分
- 下一篇: Eclipse设置、调优、使用