转自:http://www.mworkbox.com/wp/work/205.html

microsip是一个开源的轻量级sip软电话软件,其所用的协议栈是大名鼎鼎的pjsip协议栈
以下是个人手把手总结的编译修改microsip注意事项
1.下载库ffmepg,主要用来做h264的codec,可到如下目录中下载已经编好好的库,注意因为兼容性问题,不能用最新的0.11的ffmepg
只能用0.10的版本,已经编译好的windows库下载列表,从中选一个可以编译好的
windows环境已编译的dev库和动态库下载列表
开发包:http://ffmpeg.zeranoe.com/builds/win32/dev
动态库: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,需要到网上找stdint.h和inttypes.h源文件,放入目录ffmpeg/include目录下,这个网站【http://ffmpeg.arrozcru.org/autobuilds/】的开发包中有着2个文件
中有这2个文件,可提取出来。
2.下载SDL 1.3版本编译生成库和链接

http://www.libsdl.org/tmp/SDL-1.3.zip

注意事项:不知道什么原因,用vs2008编译的DLL导致视频无法显示,我换了microsip.exe中的原版SDL.dll即可显示了。
下载的开发包生成的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的编译宏配置,是您能否成功的关键所在
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视频设备,否则无法显示视频
#define PJMEDIA_VIDEO_DEV_SDL_HAS_OPENGL 0 //不依赖OPENGL
#define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 0//不使用ffmepg视频设备,wpf的设备过时了
#define PJMEDIA_HAS_FFMPEG 1//启用ffmpeg,需要用到h264的codec进行视频编解码
#define PJMEDIA_HAS_FFMPEG_CODEC_H264 1//启用h264,不起用,microsip的setting对话框中的codec设置无h264选项
#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1//启用direct show,依赖DirectX,不起用microsip的setting对话框中的Camera无法看到你的USB摄像头设备
#define PJMEDIA_VIDEO_DEV_HAS_AVI 0//不启用AVI设备
#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的路径到相应工程设置中
遇到链接通不过,则增加其lib路径到工程设置中,直到编译成功。

d.生成的pjsip project的lib库在为pjproject-2.0.1\lib目录下,大小约12M左右,这个库汇总了所有需要依赖的库,是microsip唯一需要依赖的pjsip库
例如我的Debug环境生成为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的路径到相应工程设置中
遇到链接通不过,则增加其lib路径到工程设置中,直到编译成功。

遇到错误

jumplist.h(19): error C2143: syntax error : missing ';' before '*'

将jumplist.h和jumplist.cpp完全删除,继续编译,遇到jumplist相关的全部注释掉

遇到无法打开文件strmbasd.lib或者无法打开文件strmbase.lib,是因为

每次重新安装Windows SDK,都需要手动编译Directshow的基类BaseClasses。
csdn上有很多人已经编译好了,分别是Debug版本(strmbasd.lib)和Retail版本(strmbase.lib),可直接放在lib路径上,为新手节省配置环境的时间。去找找下载下来放在microsip项目目录即可

a. 遇到链接libpjproject-xxx.lib找不到的,该库即为前面第4步d项生成的总的pjsip库,在工程源码中查找该库名称,
并修改该库的名称为前面生成的库名。
b. 把SDL.dll,ffmpeg的DLL放到工程目录
c. 严重注意, 如果microsip.exe点击菜单”Account”和”Settings”无法显示对话框,是因为资源文件microsip.rc2中,含有SysLink控件,导致加载资源失败。
解决办法,删除资源中的所有SysLink控件即可。(该问题可能仅限vs2008环境)
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域名为服务器IP地址
希望我花费5个工作日时间,编译pjsip和microsip的经验,查阅上百网页搜集资讯,经过实践检验的总结能给您帮助,帮您少走弯路。
目前达到的效果是语音呼叫,视频呼叫等都很正常。

MicroSIP编译完全手册相关推荐

  1. 软电话MicroSIP编译

    MicroSIP介绍 环境 Windows10 家庭版 Visual studio 2017 Visual Studio Community 2017 社区版(免费版) 简体中文版下载:https:/ ...

  2. 编译chm格式PHP手册

    www.phpeye.com 微软的chm文件格式是很受我们喜爱的,因为它可以把很多HTML文件打包成一个文件,容易传输和分享.而且非常方便易用,支持索引.搜索等.正因为这样,大家通常都使用chm版本 ...

  3. Telegram的tdesktop之Windows编译小记

    官网目前的版本要求用VS2019编译windows版本,我也是看了别人流程,之后参考手册折腾了6天,今天终于把release能运行起来了.做个简单的记录,备注如下: 1) 当前版本必须使用VS2019 ...

  4. 虚拟机ubuntu14.04编译MPI版本NAMD

    最近,尝试用ubuntu编译NAMD,由于以前对NAMD完全未接触过,也不懂该专业的相关知识,因此作为一个外行人尝试编译NAMD,这里记录一下粗略过程: 1.首先,需要搭建MPI并行环境:http:/ ...

  5. PB反编译大师,PB反编译升级版本

    最新网址  http://www.pbdecompiler.com 镜像网址 http://tx.mis2erp.com:8000/pagecn.html 1). 反编译powerbuilder编译后 ...

  6. ARM裸机开发篇3:ARM汇编语言程序设计

    写在前面: 本文章为<ARM Cortex-A7裸机开发篇>系列中的一篇,全系列总计11篇.笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板). 针对FS-MP ...

  7. sm2证书生成(单证书)

    1.svn下载 用svn工具下载主干代码 https://github.com/guanzhi/GmSSL.git/trunk 2.编译 按照手册 ./config no-saf no-sdf no- ...

  8. 历史经验之SNMP学习笔记

    整理日期:2011年9月8日 历史经验之SNMP学习笔记 export MIBDIRS=/share/snmp/mibs/ export MIBS=+LOOGSON-MIB :NET-SNMP-TUT ...

  9. 个人收集的一些手机研发资料

    FlashTool_v3.1.04 FlashTool v3[1][1].1.04 MTK平台板测校准原理 FlashTool v5.1140.00 MTK6223方案介绍 高薪诚聘软件J2ME开发工 ...

  10. 《圣殿祭司的ASP.NET4.0专家技术手册》---- 1-13 ClientBuilderManager类别的编译功能...

    本节书摘来自异步社区<圣殿祭司的ASP.NET4.0专家技术手册>一书中的第1章,第13节,作者: 奚江华,译者: 武海军 , 更多章节内容可以访问云栖社区"异步社区" ...

最新文章

  1. Spring 整合 Junit
  2. FFMPEG 日志输出控制
  3. Oracle怎么算开始一个会话,oracle – 随机获取ORA-08177只有一个活动会话
  4. 【ECS最佳实践】基于多块云盘构建LVM逻辑卷
  5. jq之fadeIn()
  6. 计算机的数学发展史论文,数学简史论文范文
  7. 重新认识:指向函数的指针
  8. 【美团外卖】美食知识图谱的迭代及应用
  9. NSAT-3030 数字万用表自动计量系统
  10. 不同时区时间换算_时区换算
  11. 设 l í {a,b,c}* 是满足下述条件的符号串构成的语言,陇东学院《编译原理》练习题及答案...
  12. 记一次阴阳师挂机脚本开发
  13. 中天科技(600522)
  14. android项目小说阅读开发背景颜色,Android 小说阅读护眼模式
  15. 0008基于单片机自动喂养控制系统设计
  16. 白鹭引擎egert+PHP后端手游宠物小精灵题材源码
  17. RabbitMQ系列3之运行和Rabbit服务
  18. duet连win10_在Windows PC上使用Duet Display时连接不上Apple设备的解决方法之一
  19. 吴军,阅读与写作,01理解他人,什么是合格的阅读理解?
  20. 【已解决】ERROR: ENOENT: no such file or directory,open

热门文章

  1. 系统架构设计师-软件开发模型(螺旋模型)
  2. 如何在没有RTDS硬件下使用RSCAD进行仿真研究
  3. 海康威视网络摄像头开发流程(七)-------- 激活海康威视网络摄像头
  4. Excel表格数据生成sql插入语句
  5. html前端验证代码,前端js+html实现简单验证码
  6. QT模拟鼠标自动点击:1-鼠标移动自动显示坐标
  7. [python高德]行政区查询、调用wbe服务api获取省、市、区经纬度信息
  8. python求两坐标距离_如何使用Python已知两坐标求距离?
  9. 人工智能-动物识别专家系统(pyqt5)
  10. 【扫码登录的逻辑以及关于扫码登录的思考】