日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MicroSIP编译完全手册

發(fā)布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MicroSIP编译完全手册 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(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.添加如下配置,原因請看解釋

#define PJSUA_HAS_VIDEO 1 //啟用視頻 #define PJMEDIA_HAS_VIDEO 1 //啟用視頻 #define PJMEDIA_VIDEO_DEV_HAS_SDL 1 //啟用SDL視頻設(shè)備,否則無法顯示視頻 #define PJMEDIA_VIDEO_DEV_SDL_HAS_OPENGL 0 //不依賴OPENGL #define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 0//不使用ffmepg視頻設(shè)備,wpf的設(shè)備過時了 #define PJMEDIA_HAS_FFMPEG 1//啟用ffmpeg,需要用到h264的codec進行視頻編解碼 #define PJMEDIA_HAS_FFMPEG_CODEC_H264 1//啟用h264,不起用,microsip的setting對話框中的codec設(shè)置無h264選項 #define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1//啟用direct show,依賴DirectX,不起用microsip的setting對話框中的Camera無法看到你的USB攝像頭設(shè)備 #define PJMEDIA_VIDEO_DEV_HAS_AVI 0//不啟用AVI設(shè)備 #define PJMEDIA_HAS_FFMPEG_VID_CODEC 1//啟用ffmepg codec #define PJMEDIA_USE_OLD_FFMPEG

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。