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