All Projects → xueqing → exosip

xueqing / exosip

Licence: other
some library source code about sip

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects
Makefile
30231 projects
M4
1887 projects
C++
36643 projects - #6 most used programming language
Roff
2310 projects

Projects that are alternatives of or similar to exosip

VAG.Node
GB28181 PS流转发网关服务<Node 版>,以GB28181对接的方式将摄像机/硬盘录像机 的PS流(H264/H265)打包推送到RTMP服务器。
Stars: ✭ 48 (+166.67%)
Mutual labels:  sip, gb28181
drachtio-siprec-recording-server
SIPREC recording server based on drachtio and rtpengine
Stars: ✭ 58 (+222.22%)
Mutual labels:  sip
Dart Sip Ua
A dart-lang version of the SIP UA stack.
Stars: ✭ 132 (+633.33%)
Mutual labels:  sip
Siprtcproxy
网关服务:Sip与Rtc互通,实现Web,Android,iOS,小程序,SIP座机,PSTN电话,手机互通。
Stars: ✭ 217 (+1105.56%)
Mutual labels:  sip
Stun
A Go implementation of STUN
Stars: ✭ 141 (+683.33%)
Mutual labels:  sip
Restcomm Connect
The Open Source Cloud Communications Platform
Stars: ✭ 232 (+1188.89%)
Mutual labels:  sip
Sippts
Set of tools to audit SIP based VoIP Systems
Stars: ✭ 116 (+544.44%)
Mutual labels:  sip
npm-civic-sip-api
Node.js client library for the Civic Secure Identity Platform (SIP).
Stars: ✭ 25 (+38.89%)
Mutual labels:  sip
opentok-rtc
OpenTok demo application
Stars: ✭ 97 (+438.89%)
Mutual labels:  sip
Linphone Desktop
Linphone is a free VoIP and video softphone based on the SIP protocol. Mirror of git://git.linphone.org/linphone-desktop.git
Stars: ✭ 212 (+1077.78%)
Mutual labels:  sip
Sipp Scenarios
SIPp scenarios I use for testing SIP stuff
Stars: ✭ 190 (+955.56%)
Mutual labels:  sip
Tg2sip
Telegram <-> SIP voice gateway
Stars: ✭ 142 (+688.89%)
Mutual labels:  sip
sippet
C++ SIP stack based on Chromium source code
Stars: ✭ 23 (+27.78%)
Mutual labels:  sip
Restcomm Android Sdk
Android Mobile SDK to easily integrate communication features (WebRTC, messaging, presence, voice, video, screensharing) based on RestComm into native Mobile Applications
Stars: ✭ 139 (+672.22%)
Mutual labels:  sip
blueberry
监控设备管理平台,支持GB28181国标设备接入、支持海康、大华等品牌监控设备接入
Stars: ✭ 26 (+44.44%)
Mutual labels:  sip
Ivozprovider
IVOZ Provider - Multitenant solution for VoIP telephony providers
Stars: ✭ 127 (+605.56%)
Mutual labels:  sip
Flutter Webrtc
WebRTC plugin for Flutter Mobile/Desktop/Web
Stars: ✭ 2,764 (+15255.56%)
Mutual labels:  sip
React Native Pjsip
A PJSIP module for React Native.
Stars: ✭ 229 (+1172.22%)
Mutual labels:  sip
dsip
通过netty网络框架,编解码sip消息。 以及国标gb28181的部分功能, 不依赖spring,方便集成
Stars: ✭ 19 (+5.56%)
Mutual labels:  sip
sems-yeti
YETI application for SEMS core
Stars: ✭ 15 (-16.67%)
Mutual labels:  sip

关于 exosip 库

1 依赖关系

三者之间的依赖关系是:

  • c-ares 编译生成 libcares
  • libosip 编译生成 libosipparser2 和 libosip2,libosip2 依赖 libosipparser2
  • libeXosip 编译生成 libeXosip2,依赖 libcares,libosipparser2 和 libosip2

2 ubuntu-14 编译

编译分 3 步

  • 1 编译 c-ares
    • 1 进入 c-ares 的目录 c-ares-1.12.0
    • 2 ./configure
    • 3 make
    • 4 sudo make install
    • 5 编译生成的库置于 c-ares-1.12.0/.libs/
    • 6 默认安装到 /usr/local/lib,libcares.so.2.2.0, libcares.a
    • 7 头文件拷贝到 /usr/local/include,包括 ares_build.h,ares_dns.h,ares.h,ares_rules.h,ares_version.h
  • 2 编译 libosip
    • 1 进入 libosip 的目录 libosip2-5.0.0
    • 2 ./configure
    • 3 make
    • 4 sudo make install
    • 5 编译生成的库置于 libosip2-5.0.0/src/osipparser2/.libs/ libosip2-5.0.0/src/osip2/.libs/
    • 6 默认安装到 /usr/local/lib,libosipparser2.so.12.0.0, libosipparser2.a,libosip2.so.12.0.0,libosip2.a
    • 7 头文件拷贝到 /usr/local/include/osipparser2 /usr/local/include/osip2
  • 3 编译 libeXosip
    • 1 进入 libeXosip 的目录 libexosip2-5.0.0
    • 2 ./configure
    • 3 make
    • 4 sudo make install
    • 5 编译生成的库置于 libexosip2-5.0.0/src/.libs/
    • 6 默认安装到 /usr/local/lib,libeXosip2.so.so.12.0.0, libeXosip2.so.a
    • 7 头文件拷贝到 /usr/local/include/eXosip2

3 ubuntu-16 编译

  • 环境:g++5.4
  • 步骤
    • 1 修改 libosiplibexosip 的 configure 脚本
      • 修改 am__api_version='1.14'am__api_version='1.15'
    • 2 安装 automake: sudo apt-get install -y autotools-dev automake libtools
      • automake 版本默认是 1.15
    • 3 按照上面的步骤编译三个库

4 Windows VS2015 编译

  • 环境:Win10 + Visual Studio 2015
  • 步骤
    • 1 将三个库的源码解压到 src-win 目录下,文件夹分别重命名为 c-ares/osip/exosip
    • 2 在 exosip/platform/vsnet 目录下,找到 eXosip.sln 并用 vs2015 打开
    • 3 选择 eXosip 作为启动项目,右键 “生成”
    • 4 编译生成的库位于 src-win/exosip/platform/vsnet/v140

4.1 错误及解决方案

4.1.1 osipparser2 工程

  • snprintf 重定义:找到该项目下 internal.h 文件,屏蔽第 58 行代码 #define snprintf _snprintf
C1189 #error: Macro definition of snprintf conflicts with Standard Library function declaration osipparser2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h 1927

4.1.2 osip2 工程

  • snprintf 重定义:找到该项目下 internal.h 文件,屏蔽第 58 行代码 #define snprintf _snprintf
C1189 #error: Macro definition of snprintf conflicts with Standard Library function declaration osip2 c:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h 1927
  • timespec 中定义:找到该项目下 internal.h 文件,在 58 行后追加预编译宏 #define HAVE_STRUCT_TIMESPEC 1
C2011 “timespec”:“struct”类型重定义 osip2 C:\Users\KIKI\Documents\GitHub\exosip\src-win\osip\include\osip2\osip_condv.h 61

4.1.3 cares 工程(成功)

4.1.4 eXosip 工程

  • snprintf 重定义:找到该项目下 eXosip2.h 文件,屏蔽第 73 行代码 #define snprintf _snprintf
C1189 #error: Macro definition of snprintf conflicts with Standard Library function declaration eXosip C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h 1927
  • 无法打开 openssl/opensslv.h 文件:C/C++ --> 预处理器 --> 预处理器定义 删除 HAVE_OPENSSL_SSL_H
C1083 无法打开包括文件: “openssl/opensslv.h”: No such file or directory eXosip c:\users\kiki\documents\github\exosip\src-win\exosip\src\eXtransport.h 44
  • timespec 中定义:找到该项目下 eXosip2.h 文件,在 74 行后追加预编译宏 #define HAVE_STRUCT_TIMESPEC 1
C2011 “timespec”:“struct”类型重定义 eXosip C:\Users\KIKI\Documents\GitHub\exosip\src-win\osip\include\osip2\osip_condv.h 61
  • 无法打开 tsc_socket_api 文件:C/C++ --> 预处理器 --> 预处理器定义 删除 TSC_SUPPORT
C1083 无法打开包括文件: “tsc_socket_api.h”: No such file or directory eXosip C:\Users\KIKI\Documents\GitHub\exosip\src-win\exosip\src\eXtl_udp.c 55
  • 无法打开 eXrefer_api.c 文件:从项目中移除不存在的文件 eX_refer.h(不移除此文件可以编译成功)、eXrefer_api.c
C1083 无法打开源文件: “..\..\..\exosip\src\eXrefer_api.c”: No such file or directory eXosip C:\Users\KIKI\Documents\GitHub\exosip\src-win\exosip\platform\vsnet\c1 1

5 Windows Mingw 编译

  • 环境:Win10 + Mingw + MSYS-1.0.11

  • 步骤

    • 1 安装 mingw-get
    • 2 安装 MSYS-1.0.11
    • 3 使用 Mingw 和 MSYS:打开 MSYS("M" 图标的软链接),输入mount c:/mingw /mingw
    • 4 使用 autotool 编译系统安装第三方库和应用
    ./configure --prefix=/mingw
    make
    make install
    • 5 应该避免安装到/usr/local

6 ubuntu-20 编译

  • 环境:gcc9.4.0,默认 openssl 版本为 1.1.1
  • 注意: ubuntu16 默认 openssl 版本为 1.0.2,原来的 eXosip 源码编译时会报错 error: dereferencing pointer to incomplete type 'SSL_CTX' {aka 'struct ssl_ctx_st'}。这是由于 openssl 从 1.0.2 升级到 1.1.0 不兼容所致,参考,需要使用访问器函数获取结构数据。
  • 步骤
    • 1 更新 osip 和 eXosip 到 5.3.0 版本,使用 libosiplibexosip
    • 2 安装 automake: sudo apt-get install -y autotools-dev automake
    • 3 按照上面的步骤编译三个库
      • 注意: exosip-5.3.0 源码没有 configure 脚本,需要先执行 ./autogen.sh 以生成 configure 脚本,然后按照上述步骤编译

参考

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].