ubuntu 安装opensips osip exosip

这篇博客详细介绍了如何在Linux环境中安装和配置OSIP、EXOSIP库以及OpenSIPS。首先,通过wget下载安装包,然后使用tar进行解压。接下来,分别对OSIP和EXOSIP进行编译和安装,涉及到make、configure等步骤,并在源代码中添加了IP和端口。最后,配置并安装OpenSIPS,包括makemenuconfig进行配置选择,以及后续的编译和安装过程。

1、安装包准备
osip:http://ftp.gnu.org/gnu/osip/
exosip: http://download.savannah.nongnu.org/releases/exosip/

需要的软件
apt-get install make gcc g++

2、下载安装包
wget http://ftp.gnu.org/gnu/osip/libosip2-3.6.0.tar.gz
wget http://download.savannah.nongnu.org/releases/exosip/libeXosip2-3.6.0.tar.gz


3、解压安装包
tar -zxf libosip2-3.6.0.tar.gz
tar -zxf libeXosip2-3.6.0.tar.gz

4、首先编译osip
cd libosip2-3.6.0/
./configure
make -j8
make install

5、编译exosip
cd libeXosip2-3.6.0/
修改文件 
文件:include/eXosip2/eX_call.h

int eXosip_call_send_ack(struct eXosip_t *excontext, int tid, osip_message_t *ack, char *host, int port);

添加ip和端口 

文件:src/eXcall_api.c

int eXosip_call_send_ack(struct eXosip_t *excontext, int tid, osip_message_t *ack, char *host, int port) {
  eXosip_dialog_t *jd = NULL;
  eXosip_call_t *jc = NULL;
  osip_transaction_t *tr = NULL;
  int i;
 
  if (tid <= 0) {
    if (ack != NULL)
      osip_message_free(ack);
 
    return OSIP_BADPARAMETER;
  }
 
  if (tid > 0) {
    _eXosip_call_transaction_find(excontext, tid, &jc, &jd, &tr);
  }
 
  if (jc == NULL) {
    /* For old API, did was used here. So use it for backward compatibility */
    _eXosip_call_dialog_find(excontext, tid, &jc, &jd);
  }
 
  if (jc == NULL) {
    OSIP_TRACE(osip_trace(__FILE__, __LINE__, OSIP_ERROR, NULL, "[eXosip] no call here\n"));
 
    if (ack != NULL)
      osip_message_free(ack);
 
    return OSIP_NOTFOUND;
  }
 
  if (ack == NULL) {
    i = eXosip_call_build_ack(excontext, tid, &ack);
 
    if (i != 0) {
      return i;
    }
  }
 
  i = _eXosip_snd_message(excontext, NULL, ack, host, port, -1);
 
  if (jd != NULL) {
    /* if the call is already closed, the ACK was rebuilt with a temporary dialog, and jd==NULL */
    if (jd->d_ack != NULL)
      osip_message_free(jd->d_ack);
 
    jd->d_ack = ack;
  }
 
  _eXosip_wakeup(excontext);
  if (i < 0)
    return i;
 
  /* TODO: could be 1 for icmp... */
  return OSIP_SUCCESS;
}


6、编译并安装
cd libosip2-3.6.0/
./configure
make -j8
make install

安装opensips
1、安装包准备
opensips:https://opensips.org/pub/opensips/

需要的软件
apt-get install flex bison libncurses5-dev libssl-dev pkg-config 
apt-get install libmysqlclient-dev libwolfssl-dev
apt-get install autoconf automake libtool

2、下载安装包
wget https://opensips.org/pub/opensips/3.2.6/opensips-3.2.6.tar.gz

3、解压安装包
tar -zxf opensips-3.2.6.tar.gz


4、配置安装(使用xshell)
make menuconfig

Configure Excluded Modules

db_mysql

按空格键选中

Configure Install Prefix

输入安装目录 /usr/local/opensips_proxy/

Compile And Install OpenSIPS

内容概要:本文详细介绍了“考虑N-1故障集的电力系统安全约束经济调度(SCED)”的Matlab代码实现方案,聚焦于电力系统在满足N-1安全准则(即任一元件故障后系统仍能安全运行)条件下的经济性与安全性协同优化问题。资源通过构建精确的数学优化模型,在兼顾发电成本最小化的同时,确保系统在故障前后的运行安全性,涵盖潮流约束、机组出力限制及故障后安全恢复等多重约束条件。文中提供了完整的Matlab仿真代码,并集成YALMIP工具包进行高效求解,支持高水平学术研究的模型复现与结果验证,尤其适用于EI期刊、博士论文等科研场景。此外,资源附带详细的网盘链接,便于获取YALMIP开发包及其他配套材料,极大提升了科研复现效率。; 适合人群:具备电力系统分析、优化建模理论基础,熟悉Matlab编程语言,正在从事电力系统经济调度、安全稳定分析、新能源接入影响研究等相关方向的研究生、高校科研人员及电力行业工程技术开发者。; 使用场景及目标:① 深入学习并复现N-1安全约束下的SCED建模方法;② 掌握基于YALMIP与Matlab的优化问题建模与求解流程;③ 支撑高水平学术论文(如EI、SCI、博士论文)的仿真验证与结果再现;④ 为含高比例新能源接入的现代电力系统安全经济运行研究提供可扩展的技术框架与代码基础。; 阅读建议:建议结合文中提供的百度网盘资源与公众号“荔枝科研社”的配套资料,按照推荐目录顺序系统学习,重点关注模型构建的数学逻辑与代码实现细节,动手调试参数并尝试引入新能源不确定性、多故障场景(N-k)或分布鲁棒优化等前沿方向以拓展研究深度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

somgl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值