GB28181协议——SIP开发环境搭建

一、sip开源库

1、osip2和eXosip2

作为SIP客户端的开发协议栈
osip2:
文档地址:https://www.gnu.org/software/osip/
源码地址:http://ftp.gnu.org/gnu/osip/

eXosip2:
文档地址: http://www.antisip.com/documentation/exosip2/modules.html
源码地址:http://download.savannah.gnu.org/releases/exosip/

2、PJSIP

作为SIP服务端开发库
https://www.pjsip.org/download.htm

二、开发环境搭建

1.下载软件

下载:libosip2-5.2.1
下载:pthreads-w32-2-9-1-release
下载:libexosip2-5.2.1

2.编译安装osip2

libosip2-5.2.1/INSTALL文件中编译说明:

Here is a list of options you can give to the 'configure' command line:

configure --disable-mt             ==> disable any thread support,
flags: "-DOSIP_MONOTHREAD"

configure --disable-debug          ==> disable debug.

configure --disable-trace          ==> disable the trace in the logfile.
flags: "-UENABLE_TRACE"

configure --prefix=/your/local     ==> install in '$prefix' (default is /usr/local)

configure没有配置--disable-mt-DOSIP_MONOTHREAD时,报错如下图:
在这里插入图片描述

2.1解决报错

解决报错:需要依赖pthreads-win32

首先修改libosip2-5.2.1include/osip2/internal.h,在126行#ifndef OSIP_MONOTHREAD下面插入一行如下:

#define HAVE_PTHREAD_WIN32 1    // 依赖 pthreads-win32

继续修改libosip2-5.2.1include/osip2/osip_condv.h,在58行对struct timespec添加宏判断(为了解决exosip2编译报错),如下:

#if !defined(HAVE_SYS_TYPES_H)  //添加 防止在编译exosip2是类型重定义 
/**
 * timespec structure
 * @struct timespec
 */
struct timespec {
  long tv_sec;
  long tv_nsec;
};
#endif			//添加 防止在编译exosip2是类型重定义 
2.2编译

脚本如下:

#!/bin/bash

CUR_DIR=$(pwd)
BUILD_DIR=${CUR_DIR}/build_mingwX64
INSTALL_DIR=${CUR_DIR}/build_mingwX64/libosip
PTHREAD_W32_INCLUDE_DIR=/d/cppwork/devEnv/pthreads-w32-2-9-1-release/Pre-built.2/include
PTHREAD_W32_LIB_DIR=/d/cppwork/devEnv/pthreads-w32-2-9-1-release/Pre-built.2/lib/x64

if [ ! -d ${BUILD_DIR} ]; then
	mkdir ${BUILD_DIR} 
fi

cd ${BUILD_DIR}
../configure --prefix=${INSTALL_DIR} \
	LDFLAGS="-L${PTHREAD_W32_LIB_DIR}" \
	CPPFLAGS="-I${PTHREAD_W32_INCLUDE_DIR}" \
	LIBS="-lpthreadGC2" \
	&& make && make install

3.编译安装exosip2

3.1编译报错

在这里插入图片描述见 2.1解决报错

3.2编译

脚本如下:

#!/bin/bash

CUR_DIR=$(pwd)
BUILD_DIR=${CUR_DIR}/build_mingwX64
INSTALL_DIR=${CUR_DIR}/build_mingwX64/libexosip
PTHREAD_W32_INCLUDE_DIR=/d/cppwork/devEnv/pthreads-w32-2-9-1-release/Pre-built.2/include
PTHREAD_W32_LIB_DIR=/d/cppwork/devEnv/pthreads-w32-2-9-1-release/Pre-built.2/lib/x64

OSIP_INCLUDE_DIR=/d/cppwork/devEnv/libosip2-5.2.1/build_mingwX64/libosip/include
OSIP_LIB_DIR=/d/cppwork/devEnv/libosip2-5.2.1/build_mingwX64/libosip/lib

OPENSSL_INCLUDE_DIR=/d/cppwork/devEnv/openssl1.0.0d_ming64_gcc8.1.0/mingw64_build/include
OPENSSL_LIB_DIR=/d/cppwork/devEnv/openssl1.0.0d_ming64_gcc8.1.0/mingw64_build/lib


if [ ! -d ${BUILD_DIR} ]; then
	mkdir ${BUILD_DIR} 
fi
cd ${BUILD_DIR}
../configure --prefix=${INSTALL_DIR} \
	LDFLAGS="-L${OSIP_LIB_DIR} -L${PTHREAD_W32_LIB_DIR} -L${OPENSSL_LIB_DIR}" \
	CPPFLAGS="-I${OSIP_INCLUDE_DIR} -I${PTHREAD_W32_INCLUDE_DIR} -I${OPENSSL_INCLUDE_DIR}" \
	LIBS="-losipparser2 -lpthreadGC2 -lssl -lcrypto -lCrypt32" \
	&& make && make install 
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值