阅读Sofia-SIP源码 - su模块 - su_alloc.c/h

FreeSwitch中启用WebRTC FreeSWITCH可以在多个操作系统上运行,包括Linux、Windows、MacOS等,并且支持多种语音和网络协议,例如SIP、H.323、WebRTC、RTP、RTCP等。它提供了很多高级的功能和特性,例如实时语音转换、自适应音频编码、音频处理、电话会议、语音信箱、自动语音应答、即时消息、录音和回放等。总之,FreeSWITCH是一款功能强大、可扩展、灵活的电话交换软件平台,可以用于搭建各种语音、视频和即时消息通信系统,提供了多种高级特性和灵活的扩展方式,是开发语音通信应用的良好选择。 阅读详情

在众多资料和文章中多次注意到出现了home based memory management。这应该是Sofia软件包的亮点之一。现在总算开始分析它了。


struct su_home_s {
  int         suh_size;
  su_block_t *suh_blocks;
  su_alock_t *suh_lock;
};
typedef struct {
  unsigned sua_size:SIZEBITS;	/**< Size of the block */
  unsigned sua_home:1;		/**< Is this another home? */
  unsigned :0;
  void    *sua_data;		/**< Data pointer */
} su_alloc_t;

struct su_block_s {
  su_home_t  *sub_parent;	/**< Parent home */
  char       *sub_preload;	/**< Preload area */
  su_home_stat_t *sub_stats;	/**< Statistics.. */
  void      (*sub_destructor)(void *); /**< Destructor function */
  size_t      sub_ref;		/**< Reference count */
#define REF_MAX SIZE_MAX
  size_t      sub_used;		/**< Number of blocks allocated */
  size_t      sub_n;		/**< Size of hash table  */

  unsigned    sub_prsize:16;	/**< Preload size */
  unsigned    sub_prused:16;	/**< Used from preload */
  unsigned    sub_hauto:1;      /**< "Home" is not from malloc */
  unsigned    sub_auto:1;	/**< struct su_block_s is not from malloc */
  unsigned    sub_preauto:1;	/**< Preload is not from malloc */
  unsigned    sub_auto_all:1;	/**< Everything is from stack! */
  unsigned :0;

  su_alloc_t  sub_nodes[SUB_N];	/**< Pointers to data/lower blocks */
};

从结构体类型来看,整个Home based memory management包括三个层级。最上层是su_home_s,中间一层是su_block_s,最下那层是su_alloc_t。su_home_s结构体保留一个指向su_block_s结构体的指针,su_block_s包含一个su_alloc_t类型的数组。

SU_HOME_INIT宏定义就是给一个su_home_s结构体变量赋初值。

#define SU_HOME_INIT(obj) { 0, NULL, NULL }


su.c源文件中的前部包含了一大段有关如何使用ho

freeswitch平台开启wss使用jssip集成网页电话,使用nginx+https 立即下载

相关推荐

更新FreeSWITCH的Web管理端

FreeSWITCH提供了一个xml_rpc组件,支持用Web的方式管理FreeSWITCH。但是功能相当有限。因此我在这里做了一点小的扩展,允许执行CLI命令行,并且获得结果。 需要把文件解压缩、覆盖htdocs下的portal目录。 需要FreeSWITCH已经加载mod_xml_rpc 然后就可以通过http://:8080/portal打开管理页面。 建议通过官方文档了解mod_xml_rpc的配置方法。

freeswitch+webctr+web电话

提供freeswitch的详细安装,mysql替换默认的sqlsite,以及lua脚本接管用户注册。另外附加一个web sip电话

Centos8一键安装freeswitch(先看描述中的使用手册和预览地址)

AlmaLinux|RockyLinux|openEuler欧拉|AnoliOS龙蜥|Centos8一键安装freeswitch脚本,提供web可视化管理GUI。 一键安装freeswitch脚本,提供web可视化管理GUI,jssip demo,单呼,组呼,群呼,广播,会议,黑名单,acl,呼叫转移,监听通话,系统报警,录音,录像,防火墙,turn,wss,备份,抓包,操作记录,日志查看等等。 下载地址:https://blog.csdn.net/jia198810/article/details/137820796 使用手册:https://docs.qq.com/pdf/DVGJMak9YeUZ1SGFs? 预览地址:http://210.51.10.231:8020 (admin/admin)

SAP MIGO屏幕增强的具体实施步骤介绍(SE19:MB_MIGO_BADI) <转载>

1.MIGO抬头屏幕增强具体增强实施步骤1.1.创建存储抬头客制化数据的增强表1.2.创建增强结构1.3.创建函数组ZMM_MIGO1.3.1.定义全局变量1.3.2.创建数据处理函数1.4.创建字屏幕9001屏幕PBOendif.endloop.1.5.实施新BADI增强SE19创建BADI实施双击实施类ZCL_MIGO_EN_01exportingendif.endmethod.endif.endif.exportingendmethod.

qq_55488207的博客 4507

eda、gnm、anm究竟是个啥?

eda:主成分分析 gnm:高斯网络模型 anm:各向异性网络模型

药研猿的博客 1240

GNSS/INS松组合导航实战:如何用卡尔曼滤波提升定位精度(附MATLAB代码)

本文深入探讨了GNSS/INS松组合导航的工程实践,详细阐述了如何利用卡尔曼滤波算法融合卫星与惯性数据以提升定位精度。内容涵盖从仿真环境搭建、误差状态卡尔曼滤波器(ESKF)设计,到状态与观测方程实现、噪声参数调试及常见问题排查的全过程,并提供了可直接运行的MATLAB代码,为开发高精度、鲁棒的组合导航系统提供实战指南。

weixin_29057163的博客 161

SPV1050低功耗微功率太阳能充电管理模块原理图设计,已量产

在物联网应用快速普及的今天,户外低功耗传感器(如土壤温湿度、环境光照、无线节点等)的供电始终是行业痛点 —— 传统锂电池不仅需要定期更换,维护成本高,还难以满足 “终身免维护” 的场景需求。为此,我们设计了一款专为 1V~3V 低电压小型太阳能板优化的微功率太阳能电源管理模块,结合 USB 备用充电路径,实现了低功耗传感器的长期自主供电。

不脱发的程序猿 443

stable diffusioncontrolNet 预处理器/模型的下载及安装使用教程

首先说明,controlNet 的模型 不同于stable diffusion 模型,这一点一定要区分清楚。下面提供多个ControlNet 预处理器+ 专用模型的百度网盘下载链接,都是由群友整理贡献,但各自包含的版本不同,大家可自行选择。推荐下载紫色链接内的模型,fp16版文件更小,稍微新一些的controlnet插件还添加了对control-lora的支持(注意,要求controlnet插件的版本比12月16号新(1.1.423以上)才能正常识别),推荐下载;

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3384

Android 12.0 kenel中修改rom系统内部存储的大小

在12.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,由于在产品后续订单中,有些产品是出口的,但是硬件方面已经定板,时间比较仓促,所以 就需要软件方面在rom内部存储的大小方面作假,修改rom真实的大小容量,所以就需要在kenel驱动部分来修改这部分的值最好了,接下来分析下计算rom容量的 相关代码,然后做出相关的修改,来实现功能

安卓兼职framework和app工程师的博客 1677

Open3D (C++) 泊松重建【2025最新版】

使用C++版本的Open3D实现点云的泊松重建

点云侠的博客 3072

国科大学习资料--高级软件工程-复习题选择题答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题选择题答案 ’‘

无名何许人的博客 1163

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 阅读Sofia-SIP源码 - su模块 - su_default_log.c/su_global_log.c
下一篇: OpenWRT学习资料
Neohan
博客等级 码龄26年 33粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值