当前位置: 首页 > news >正文

FreeSWITCH dialplan/default.xml 之释疑

准备花时间好好研究下,一直都是一知半解

sip_looped_call

通俗地说,就是自己呼叫自己

查文档,是这样讲的:如果调用已通过 ACL 以外的方式进行身份验证,并且当前请求 IP/port 与配置文件 IP/port 匹配,那么就为 true

实际测试,如果呼叫自己的 5060 端口,那么 sip_looped_call 就为 true,写了一段路由,同时仿到 default.xml 和 public.xml 的最前面:

<extension name="test" continue="true">
    <condition>
        <action application="log" data="ERR sip_looped_call = ${sip_looped_call}"/>
    </condition>
</extension>

日志如下:

Dialplan: sofia/internal/0000000000@192.168.99.206 parsing [public->test] continue=true
Dialplan: sofia/internal/0000000000@192.168.99.206 Absolute Condition [test]
Dialplan: sofia/internal/0000000000@192.168.99.206 Action log(ERR sip_looped_call = ${sip_looped_call}) 
EXECUTE [depth=0] sofia/internal/0000000000@192.168.99.206 log(ERR sip_looped_call = true)

发现没有挑战,context 走到了 public

park vs unpark

往泊车方面去想,很容易想明白。有二个模块:mod_fifo 和 mod_valet_parking

echo vs 'delay_echo 5000'

这个对开局太有用了

不过本人有一次吃瘪的经历,某网关呼叫 FreeSWITCH,dialplan 配置为 echo,信令正常,但听到的是静音,其实是网关自带了回声消除功能。后来终于觉醒了,换成 delay_echo,网关一般只能消除 128 ms(有的只能 32 或者 64),配置为  delay_echo 300 就能听到了

play_fsv vs record_fsv

mod_fsv 里面的二个 app,之所以用 mod_fsv 而不用 mod_av,估计是效率方面的考虑(本人对视频不太熟)

ringback_180 vs ringback_183_uk_ring vs ringback...

设置 ringback、transfer_ringback 等变量,送到的端点是 loopback,以及 ignore_early_media 对呼出的影响

个人感觉这个有点炫技

conference

conference,众所周知,不再赘述

mad_boss_intercom

摇人入会,向 sales 组里面所有的成员都发 INVITE

fax

这个不讲了,本人很熟,但现在几乎没人用传真了

esf_page_group

rtp_multicast_page,广播,Yealink/GrandStream 等话机支持

Local_Extension

呼叫本地分机,要留意 hangup_after_bridge、continue_on_fail 等通道变量的使用

含义很丰富,建议仔细研究和多做测试

留意 global-intercept/group-intercept/intercept-ext 跟  Local_Extension 之间的关联性

留意 bind_meta_app 跟 features.xml 之间的联系

个人感觉这个 extension 是最复杂的,需要花大量时间做研究(实现了 IPPBX 的很多功能)

rtp_secure_media

媒体加密

本人专门做过笔记

group_call

组呼

snom、skinny

不讲,很少人用

ivr

不讲,查资料可得

show_info

太简单,不讲

acknowledge_call

就是回 SIP 100 trying,没别的,估计很少有人用他

eavesdrop

监听

call_return

待研究

unroll_loops

待研究

ruri

待研究

refer

呼叫后转,待研究

add-group

待研究

set open=true

待研究,没查到这个通道变量的含义

enum

国内没人用,不讲


<extension name="tod_example" continue="true">

<condition field="${default_password}" expression="^1234$" break="never">
    <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>
    <action application="log" data="CRIT Open $${conf_dir}/vars.xml and change the default_password."/>
    <action application="log" data="CRIT Once changed type 'reloadxml' at the console."/>
    <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>
    <action application="sleep" data="10000"/>
</condition>

continue=true 和 break=never,这二者的作用有点分不清,回头研究


数了数,800 多行,包含的内容非常多

未完待续

http://www.lryc.cn/news/516501.html

相关文章:

  • lambda用法及其原理
  • Go Ebiten随机迷宫生成示例
  • 前端学习DAY31(子元素溢出父元素)
  • 『SQLite』表的创建、修改和删除
  • 可持久化数据结构-线段树(主席树)
  • 如何利用PHP爬虫按关键字搜索淘宝商品
  • GitHub - riscv-software-src/riscv-isa-sim: Spike, a RISC-V ISA Simulator
  • ubuntu开机启动服务
  • 电子电气架构 --- 设计车载充电机的关键考虑因素
  • 2025_0105_生活记录
  • 电池管理系统(BMS)架构详细解析:原理与器件选型指南
  • 用JAVA编写一个简单的小游戏
  • 【SpringSecurity】二、自定义页面前后端分离
  • 小兔鲜儿:头部区域的logo,导航,搜索,购物车
  • 什么是VLAN?
  • WPS计算机二级•数据查找分析
  • 计算机网络 (28)虚拟专用网VPN
  • 【Python学习(七)——序列、列表、元组、range、字符串、字典、集合、可变类型不可变类型】
  • MATLAB常用建模方法——常用非参数检验
  • 【多线程初阶篇 ²】创建线程的方式
  • 纵览!报表控件 Stimulsoft Reports、Dashboards 和 Forms 2025.1 新版本发布!
  • 游戏引擎学习第75天
  • Java 23 集合框架详解:Set 接口及实现类(HashSet、TreeSet、LinkedHashSet)
  • ARMv8架构 CortexR52+ 内核 coresight_soc400介绍
  • 1.Python浅过(语法基础)
  • ioremap_nocache函数
  • 【235. 二叉搜索树的最近公共祖先 中等】
  • 构建智能企业:中关村科金大模型企业知识库的技术解析与应用
  • C++进阶——用Hash封装unordered_map和unordered_set
  • b612相机 13.5.5解锁会员hook