【Freeswitch从入门到精通】一、常用总结

最近需要开发有关智能外呼的项目,需要对Freesiwth相关内容进行详细的了解,学习整理整理。

一、常用总结

1、常用命令

fsctl loglevel [1-7] # 设置日志level
reloadxml # 重载xml文件
regex 被匹配字符串|正则表达式 # 校验正则表达式是否正确,匹配到,返回true,否则返回false
regex 被匹配字符串|正则表达式|%[01...] # 返回%0代表全部匹配内容,%1表示寄存器1内容,其他同理
originate 发起呼叫。 如:建立A与B的通话,originate user/A &bridge(user/B) ,首先是fs与user/A建立一通通话(A leg),然后被bridge桥接到B上,当B接通后,形成(B leg),此时fs将A与B桥接在一起,A和B就可以通话了。
eval $${变量名} # 获取全局变量值,eg:eval $${sound_prefix}
show interfaces # 获取全局接口
global_setvar 变量名=变量值 设置全局变量
global_getvar 变量名 获取全局变量值

2、流程总结

2.1 context执行

fs执行每个extension 下的condition,如果condition expression满足,则在条件执行完毕后,执行break

condition默认有break – > "break='on-false',就会跳出,如果为'on-true''nerver',继续检查下一个condition。如果当前condition条件不满足,但是其中有anti-action,那么默认当前condition条件已经进入,并执行anti-action App,同理也会执行break操作。Action和anti-action生存在condition内部。如果条件表达式匹配成功,则执行Action;否则执行Anti-action。

如果condition不满足,那么继续下个condition,不执行break

上述所有的action,在fs遍历到之后,并没有直接进行执行,而是将当前action,放进TODO列表中,当所有的extension执行完毕之后(这儿有可能是全部执行完extension,也有可能是extensioncontinuefalse来结束),再顺序执行TODO中的所有[anti-]action

当然也有特殊情况,如果在action标签中加入属性‘online=true’,那么当前的[anti-]action就会立刻被执行。目前只支持: set application

<action application="set" data="myvariable=abc" inline="true"/>
  • break取值:
on-false: 这是缺省值,如果表达式值为 false ,不再检查下一个条件
on-true: 如果表达式值为 true ,不再检查下一个条件
never: 永远不跳出,继续检查后续条件
always: 不检查后续条件,直接跳出

10、FreeSWITCH通过迅时网关连接PSTN

参考:http://www.freeswitch.org.cn/2014/06/08/FreeSWITCH-interop-newrock.html

11、使用sngrep抓包工具

sngrep : https://blog.csdn.net/feifeiyechuan/article/details/130843565

Linux服务器可以直接暗转:

apt-get install sngrep

二、大神教学

1、【freeswitch深入浅出】
(极力推荐)https://docs.qq.com/doc/DS1ppaE1TeU9jZHZz
【大神主页】:https://www.zhihu.com/people/yin-xing-pan

2、freeswitch 杜老师讲座

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值