首页 > 其他分享 >freeswitch的gateway配置方案优化

freeswitch的gateway配置方案优化

时间:2023-06-02 15:46:29浏览次数:36  
标签:sofia ptr gateway user freeswitch lib64 优化 options

 

概述

freeswitch是一款简单好用的VOIP开源软交换平台。

在之前的文章中,我们简单介绍过gateway的三种配置方案,但是实际应用之后发现,方案中的参数设置有缺陷,会导致一些问题。

本文档中,针对具体的gateway配置问题进行分析和解决。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.10.7

GCC:4.8.5

之前的gateway配置和问题

配置conf/sip_profile/external/gw-138-5080.xml,设置网关参数,例子中只列举了必须的参数,非注册模式。

<include>

    <gateway name="gw-138-5080">

        <param name="username" value="not-used"/>

        <param name="realm" value="10.55.55.138:5080"/>

        <param name="password" value="not-used"/>

 

        <param name="register" value="false"/>

 

        <!--send an options ping every x seconds, failure will unregister and/or mark it down-->

        <param name="ping" value="20"/>

        <param name="ping-min" value="3"/>

        <param name="ping-max" value="6"/>

        <param name="ping-user-agent" value="proxy"/>

    </gateway>

</include>

 

在使用该网关发起呼叫的时候,会有三个问题。

问题一,gateway的invite消息的from头域“caller_id_number”字段内容错误。

From: "123456" <sip:[email protected]:5080;transport=udp;user=phone>;tag=Kpe5rrr9Nr9jK

问题二,网关参数"ping-user-agent"会导致fs刷新配置(reloadxml)的时候coredump。从core文件分析可以看到“sofia_reg_check_gateway”函数中的问题点。

(gdb) bt

#0  0x00007f430f3ac8c1 in __strlen_sse2_pminub () from /lib64/libc.so.6

#1  0x00007f4310d96974 in t_str_xtra () from /lib64/libsofia-sip-ua.so.0

#2  0x00007f4310d9764d in tl_xtra () from /lib64/libsofia-sip-ua.so.0

#3  0x00007f4310d3d990 in nua_signal () from /lib64/libsofia-sip-ua.so.0

#4  0x00007f4310d38830 in nua_options () from /lib64/libsofia-sip-ua.so.0

#5  0x00007f4308826bf9 in sofia_reg_check_gateway (profile=profile@entry=0xe027f0, now=1684490085) at sofia_reg.c:392

#6  0x00007f43087dac18 in sofia_profile_worker_thread_run (thread=<optimized out>, obj=0xe027f0) at sofia.c:3001

#7  0x00007f4312db2d50 in dummy_worker (opaque=0xe07080) at threadproc/unix/thread.c:151

#8  0x00007f430fce7ea5 in start_thread () from /lib64/libpthread.so.0

#9  0x00007f430f33bb0d in clone () from /lib64/libc.so.6

(gdb) f 5

#5  0x00007f4308826bf9 in sofia_reg_check_gateway (profile=profile@entry=0xe027f0, now=1684490085) at sofia_reg.c:392

392                      nua_options(nh,

(gdb) l

387                      switch_copy_string(pvt->gateway_name, gateway_ptr->name, sizeof(pvt->gateway_name));

388                      nua_handle_bind(nh, pvt);

389

390                      gateway_ptr->pinging = 1;

391                      gateway_ptr->ping_sent = switch_time_now();

392                      nua_options(nh,

393                                           TAG_IF(gateway_ptr->register_sticky_proxy, NUTAG_PROXY(gateway_ptr->register_sticky_proxy)),

394                                           TAG_IF(user_via, SIPTAG_VIA_STR(user_via)),

395                                           SIPTAG_TO_STR(gateway_ptr->options_to_uri), SIPTAG_FROM_STR(gateway_ptr->options_from_uri),

396                                           TAG_IF(gateway_ptr->contact_in_ping, SIPTAG_CONTACT_STR(gateway_ptr->register_contact)),

(gdb)

397                                           TAG_IF(gateway_ptr->options_user_agent, SIPTAG_USER_AGENT_STR(gateway_ptr->options_user_agent)),

398                                           TAG_END());

399

400                      switch_safe_free(user_via);

401                      user_via = NULL;

402               }

(gdb) p gateway_ptr->options_user_agent

$1 = 0x7f430adc3092 <Address 0x7f430adc3092 out of bounds>

问题三,options检测不够灵敏,自动切换时间较长,通过修改“ping-min”和“ping-max”参数的值,达到故障转移40秒内自动切换,故障恢复后40秒内切回。

新的gateway配置方法

vi gw-138-5080.xml

<include>

    <gateway name="gw-138-5080">

    <param name="realm" value="10.55.55.138:5080"/>

    <param name="caller-id-in-from" value="true"/>

 

    <param name="register" value="false"/>

 

    <!--send an options ping every x seconds, failure will unregister and/or mark it down-->

    <param name="ping" value="20"/>

    <param name="ping-min" value="2"/>

    <param name="ping-max" value="3"/>

    </gateway>

</include>

 

新的参数在测试后验证成功,结果符合预期。

总结

freeswitch的gateway概念有多种类型和参数,需要在实际应用场景下测试验证。

gateway的参数详情请参考fs官网文档。

 

空空如常

求真得真

标签:sofia,ptr,gateway,user,freeswitch,lib64,优化,options
From: https://www.cnblogs.com/qiuzhendezhen/p/17451954.html

相关文章

  • FLink写入Clickhouse优化
    一、背景ck因为有合并文件操作,适合批量写入。如单条插入则速度太慢二、Flink写入ck优化改为分批插入,代码如下DataStream<Row>stream=...stream.addSink(JdbcSink.sink("INSERTINTOmytable(col1,col2)VALUES(?,?)",(ps,row)->{ps.setString(1,row.ge......
  • 深度解密 TCP 协议(三次握手、四次挥手、拥塞控制、性能优化)
    作者:@古明地盆喜欢这篇文章的话,就点个关注吧,或者关注一下我的公众号也可以,会持续分享高质量Python文章,以及其它相关内容。:点击查看公众号楔子巨人的肩膀:公众号《小林coding》随着你工作经验的积累,你会越来越意识到底层网络协议的重要性。比如我们时时刻刻在使用的HTTP协议......
  • Nginx优化和防盗链配置
    实验步骤:1、在Centos01上安装nginx,设置网站根目录/www使用域名www.bdqn.com访问挂载7.4系统盘yum安装依赖创建管理Nginx用户挂载云计算光盘解压配置安装Nginx编译安装优化命令创建网站根目录设置主页修改Nginx主配置文件启动服务监听端口号在Centos02上安装DNS使用域名访问Centos01......
  • spring cloud gateway 自定义GatewayFilterFactory
    官网地址:https://docs.spring.io/spring-cloud-gateway/docs/2.2.9.RELEASE/reference/html/#writing-custom-route-predicate-factories参考地址:https://blog.csdn.net/myli92/article/details/127328893importcom.ruoyi.common.core.utils.StringUtils;importorg.springfr......
  • 大型 3D 互动开发和优化实践 | 京东云技术团队
    开发背景得益于“元宇宙”概念在前段时间的爆火,各家公司都推出了使用3D场景的活动或频道。3D场景相比传统的2D页面优点是多一个维度,同屏展示的内容可以更多,能完整的展示物体、商品的信息。相应带来的缺点是用户使用方式改变,用户需要额外的学习成本。另外初期需要的开发量、美......
  • OPEN AI接入MidJourney 画图支持GPT4中文智能优化效果惊艳
    OPENAI平台开放免费AI聚合服务平台,提供应用程序一键接入AI画图,对话的能力。目前已经支持GPT3和GPT4普通对话和流式对话。支持GPT画图和MidJourney画图。后续还会接入更多功能在线接入案例演示体验这里主要展示一下MJ的强大的画图功能关于平台平台发展版本来龙......
  • Mysql:优化数据库结构
    冷热拆分表本同一张表的数据,有些字段用得多,有些用些用得少。在数据量大的情况下,可以将热数据单独一张,冷数据单独一张。典型的是用户基础信息表和用户详细信息表增加冗余字段学生表关联课程表,需要展示课程的简介和名称。可以考虑把这两个字段冗余到学生表里增加非空约束在业务......
  • AI智能安监平台EasyCVR多级分组展开按钮无法操作的问题优化
    EasyCVR基于云边端协同,可支持海量视频的轻量化接入与汇聚管理。平台既具备传统安防视频监控的能力,比如:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲等,也能接入AI智能分析的能力,包括人脸检测、车辆检测、烟火检测、安全帽检测、区域入......
  • 扩散模型 - DDPM 优化
    3DDPM的优化3.1参数优化3.1.1优化βt在"ImprovedDenoisingDiffusionProbabilisticModels".一文中,作者提出了多种优化DDPM的技巧。其中一种就是把βt的线性机制改为余弦机制。机制(schedule)函数的实现相对灵活,只要保证在训练的中间过程提供近似-线性的下降并且在......
  • 为什么面试官这么爱问性能优化?
    笔者是一个六年前端,没有大厂经历,也没有什么出彩的项目,所以今年以来,前端现在这种行情下并没有收到多少面试,但是为数不多的面试中,百分之九十都问到了性能优化的问题,而且问题都出奇的一致:平时的工作中你有做过什么性能优化?对于这个问题其实我的内心os是(各位轻喷~):你们怎么都这么......