freeswitch与外部网关链接

FreeSWITCH SIP会话恢复机制详解:从注册刷新到自动回拨的工程实践 SIP通信系统中,会话的保活与恢复是保证语音业务连续性的核心难题。FreeSWITCH作为典型的B2BUA,将一次呼叫拆分为两条独立信令腿,注册状态、对话状态与RTP媒体状态相互独立,任何一层断裂都可能导致单通或半开会话。理解协议栈的刷新机制,如REGISTER周期刷新、re-INVITE/UPDATE保活、RTP超时检测,是构建高可用VoIP系统的前提。在实际工程中,无论对接运营商IMS trunk还是在复杂NAT环境下部署,都需要结合会话定时器与挂断cause设计自动回拨和路由切换逻辑,才能真正实现故障 阅读详情

注册到freeswitch的客户端可以互相拨打,但是当客户端想通过freeswitch呼叫那些并没有注册到freeswitch上的客户端怎么办?这就需要freeswitch与外部网关链接,比如与另一个sip server或者pstn测的运营商网络链接。Freeswitch引入网关概念来处理与外部链接问题。

Freeswitch中配置的网关在系统启动时注册到另一个sip服务器,类似于sip客户端注册到freeswitch。

配置网关通常需要用户名,密码,以及要注册到的sip服务器ip地址。

网关相关配置保存在目录/conf/sofia_profiles/external

/usr/local/freeswitch/conf/sip_profiles/external.xml为freeswitch作为客户端注册到另一个网关的全局配置,

/usr/local/freeswitch/conf/sip_profiles/external/目录下可以添加网关。

比如添加注册到asterisk得网关,/usr/local/freeswitch/conf/sip_profiles/external/reg_to_asterisk.xml

reg_to_asterisk.xml内容:

<include>

<gatewayname="asterisk">

<paramname="username" value="freeswitch"/>

<paramname="password" value="freeswitch"/>

<paramname="realm" value="demo.asterisk.org"/>

<paramname="proxy" value="demo.asterisk.org"/>

</gateway>

</include>

~          

保存,控制台重启 sipprofile

freeswitch@openser-dev>sofia profile external restart

2012-08-18 20:21:47.254868[INFO] mod_enum.c:871 ENUM Reloaded

2012-08-18 20:21:47.254868[INFO] switch_time.c:1163 Timezone reloaded 530 definitions

 

Reload XML [Success]

restarting: external

freeswitch@openser-dev>2012-08-18 20:21:47.295211 [NOTICE] sofia.c:2500 Waiting for worker thread

2012-08-18 20:21:47.956692[NOTICE] sofia_glue.c:5707 deleted gateway example.com from profile external

2012-08-18 20:21:47.956692[NOTICE] sofia.c:5202 Started Profile external [sofia_reg_external]

2012-08-18 20:21:47.984023[NOTICE] sofia_reg.c:2944 Added gateway 'asterisk' to profile 'external'

2012-08-18 20:21:47.984023[NOTICE] sofia_reg.c:2944 Added gateway 'example.com' to profile 'external'

2012-08-18 20:21:49.975233[NOTICE] sofia_reg.c:415 Registering asterisk

 

freeswitch@openser-dev>

freeswitch@openser-dev>

查看注册状态

freeswitch@internal> sofiastatus

                     Name          Type                                      Data      State

=================================================================================================

            internal-ipv6       profile                  sip:mod_sofia@[::1]:5060     RUNNING (0)

                 internal         profile                   sip:mod_sofia@192.168.16.111:5060      RUNNING (0)

                 external         profile         sip:mod_sofia@192.168.16.111:5080     RUNNING (0)

    external::example.com       gateway                   sip:joeuser@example.com      NOREG

       external::asterisk       gateway          sip:freeswitch@demo.asterisk.org     TRYING (retry: NEVER)

           192.168.16.111         alias                                  internal      ALIASED

=================================================================================================

3 profiles 1 alias

a.通过网关呼出去

需要修改dialplan,在conf/dialplan/default/目录下添加 route_to_asterisk.xml

 

<include>

<extension name="Dial Out asteriskGateway">

<condition field="destination_number"expression="^9(11)$">

<actionapplication="bridge"data="sofia/gateway/asterisk/$1"/>

</condition>

</extension>

</include>

 

Fs_cli 执行 reloadxml,客户端呼叫 911,呼叫会路由到asterisk网关上。

 

b.接收网关送过来的呼叫

通常,对于那些未经认证的呼叫,freeswitch认为是不安全的,包括网关送过来的呼叫,freeswitch会把这类呼叫路由到publicdialplan context中。

/usr/local/freeswitch/conf/dialplan/public.xml为此类呼叫的dialplan,可以在

/usr/local/freeswitch/conf/dialplan/public/目录添加对应网关送过来的dialplan

如:

Vim /usr/local/freeswitch/conf/dialplan/public/asterisk.xml

 

<include>

<extensionname="asterisk-inbound">

<condition field="destination_number"

expression="^(freeswitch)$">

<actionapplication="set" data="domain_name=$${domain}"/>

<actionapplication="transfer" data="1000 XML default"/>

</condition>

</extension>

</include>

当asterisk送过来的被叫号码为freeswitch注册到asterisk上的用户号时,freeswitch转移到其用户1000。

(3)不需要手动配置网关,但与外部链接

如果外部网关需要diguest认证,则需要在freeswitch上配置网关,如果外部网关并不需要digesut认证,则不需要再freeswitch上手动配置(2)中的过程,有一些网关通过ip验证,这种方式相对更简单,但不如(2)中的安全。

比如default.xmldialplan中的

<actionapplication="bridge"data="sofia/${use_profile}/$1@conference.freeswitch.org"/>

即通过 internalsip profile送到freeswitch.org的网关上。

freeswitch常见问题 freeswitch常见问题 压力测试 默认情况下,max_sessions控制最大并发数,默认值1000,sps控制最大的美妙呼叫量,默认值30 系统中可以使用status命令查看这两个值,也可以使用以下命令修改这两个值 freedwitch> fsctl max_sessions 5000 freeswitch> fsctl sps 100 上述命令尽在当前环境生效,如果要永久生效可修改配置文件conf/autoload_configs/switch.conf.xml修改以下两个参数 阅读详情

相关推荐

使用FreeSwitch的hangup命令拒绝一个INVITE请求时,指定INVITE的响应码。

假设在FreeSwitch的dialplan中使用hangup命令拒绝一个呼叫时,默认使用480响应码来拒绝一个INVITE消息。当然,FreeSwitch支持使用hangup的参数来决定使用指定的响应码来回复INVITE消息。FreeSwitch自带一些指定的响应码,如果想增加自己的响应码,可修改FreeSwitch代码来增加自己的响应码。

jkkj1630的专栏 1574

FreeSwitch LUA Briding two calls with retry带重试次数的两个呼叫的桥接

FreeSWITCH 通过LUA脚本连接两个呼叫

oba没有马 3712

DFT实训教程笔记2(bibili版本)- Scan synthesis practice

文章目录Scan synthesis practice 本博文是博主记录DFT实训教程的笔记版本,此笔记并没有对所有的知识进行记录,仅仅以自身的认知水平,来记录了一些部分笔记并加上了自己的理解。 Scan synthesis practice How to design scan clock structure? 假设一块chip里面有好几十个clock domain,如果每一个clock domain都用一个scan clock虽然会非常清晰,但是IO数目肯定不够用。 clock group: 1、no

ciscomonkey的博客 9086

freeswitch软电话配置、结合讯时网关,外线电话呼入、呼出配置

文章目录软电话配置配置外部电话呼入sip软电话配置sip软电话呼出交换机后台配置参考资料 软电话配置 不同的软电话配置大同小异.FreeSWITCH 默认配置了 1000 ~ 1019 共 20 个用户,你可以随便选择一个用户进行配置,密码为:1234 [root@peer0 ~]# ls /etc/freeswitch/directory/default/ 1000.xml 1002.xml 1004.xml 1006.xml 1008.xml 1010.xml 1012.xml 1014.

weixin_43439748的博客 7769

ArcGIS+PLUS+InVEST三件套实战:从零搞定土地利用变化与碳储量预测(附完整数据包)

本文详细介绍了如何整合ArcGIS、PLUS模型和InVEST模型,构建土地利用变化与碳储量预测的完整研究流水线。通过多情景模拟和生态系统服务评估,提供从数据准备到结果验证的实战指南,助力研究者高效完成生态评估项目。

weixin_30399821的博客 545

私有云平台搭建——OpenStack

私有云平台搭建——OpenStack 搭建过程

2301_79739036的博客 3092

freeswitch通过 sip网关联系外部世界

与外部链接: freeswitch通过 sip网关联系外部世界,freeswitch此时在sip server 来看是一个user. 配置网关方式: 创建中继文件: conf/sip_profiles/external/test.xml //sip provider提供的用户名及密码 --> 使配置生效: cli 执行: ...

xly_971223的专栏 1363

告别二极管发热!手把手教你用MOS管搭建同步整流电路(附死区时间设置避坑指南)

本文详细介绍了如何利用MOS管搭建同步整流电路(SR),以替代传统二极管,显著降低导通损耗和发热问题。内容涵盖自驱动方案的选择、关键元件参数计算、PCB布局要点及死区时间设置技巧,帮助工程师优化电源设计效率。

weixin_29540599的博客 455

FreeSwitch作为中转网关

FreeSwitch作为中转网关 需求:现有软交换服务器A(ip:192.168.100.100) FS软交换服务器B(ip:192.168.100.101) 软交换服务器C(ip:192.168.100.102) 现要求B服务器实现 ,所有A服务器过来的呼叫,都路由到C服务器。纯IP对接。 实现: 第一步,把如下 内容放到 /freeswitch/c

chao742210485的专栏 2977

嵌入式STM32F407CET6移植OpenHarmony系统方法

文件末尾添加:export PATH=~/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH。编译完成文件输出在LiteOs源码目录下out/STM32F407_ATK_Explorer文件夹中。②点击connect to the target,下方会自动显示识别出来的芯片型号以及flash大小。⑤点击program verify并点击start,等待烧写并校验完成,你就能看到程序正在运行了。,在选择刚才我们说的Huawei_LiteOS.hex文件。

嵌入式技术开发 547

华为OD机试双机位C卷-恢复数字序列 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 恢复数字序列,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 恢复数字序列。

qq_45776114的博客 1203

Freeswitch SIP Trunk 配置(网关gateway配置)

查看freeswitch 默认sip trunk配置,即所谓的default_provider freeswitch@internal> sofia status profile     Profile::Gateway-Name Data State IB Calls(F/T) OB Calls(F/T) ====================================

Vinco's special column 3万+

YOLO26优化:AAAI2026 | 融合PartialNet Block的C3k2-YOLO高效目标检测网络 | 轻量化涨点设计

PartialNet Block 结合YOLO26的C3k2模块,进行二次创新。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 595
上一篇: 解决UltraEdit在UTF-8下的乱码问题
下一篇: mysql 编码设置
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值