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 多行,包含的内容非常多

未完待续

相关推荐
无名3874 天前
比较 FreeSWITCH 的 asr 事件和回调函数
通讯
Yuri X-202111 天前
串口通信标准RS232、RS422、RS485有什么区别和不同
串口·通讯·rs232·rs485·rs422
无名3872 个月前
一个简单的 uas_send_bye.xml for SIPp
通讯
无名3873 个月前
FreeSWITCH json api
通讯
无名3873 个月前
关于 FreeSWITCH mod_sofia 注册过期时间的测试
通讯
无名3874 个月前
SIPp uac.xml 之我见
通讯
酒茶白开水6 个月前
React二组件进阶
react.js·生命周期·context·通讯·props·render-props·高阶组件
佳途自动化学院6 个月前
三菱FX3U进阶课程-运动控制讲解
自动化·plc·工控·通讯·三菱
无名3876 个月前
简单介绍 Kamailio cfg_rpc 模块
通讯