sofia 相关的的命令:
sofia status --- 显示网关的注册状态
sofia status profile internal reg ---查看所有话机已注册话机
sofia status profile internal reg 1001 --- 查看分机号1001的注册情况
sofia_username_of 1000@192.168.1.123 返回注册用户的username(未注册返回空)
originate 相关的命令
originate user/alice &bridge(user/bob) 用户alice与用户bob通话(相当于外呼)。
originate user/alice &playback(/root/welcome.wav) 你也可以直接播放一个特定的声音文件
originate user/alice &record(/tmp/voice_of_alice.wav) 录音
可以通过逗号(,)或竖线符号(|)将多个呼叫字符串隔开,以达到同
振或顺振的目的。如下面命令可同时呼叫1000和1001,两个话机都会振铃,哪个先接听则接通哪个,另一路会自
动挂断,这种呼叫方式称为“同振”:
originate user/1000,user/1001 &echo
下列命令就是“顺振”,即第一个号码呼叫失败则呼叫第二个:
originate user/1000|user/1001 &echo
===========originate参数解析========
freeswitch> originate
-USAGE: <call url><exten>|&<application_name>(<app_args>)
[<dialplan>] [<context>] [<cid_name>] [<cid_num>] [<timeout_sec>]
call url ----呼叫字符串
<exten>|&<application_name>(<app_args>) ---- (可以认为是一个分机号),或者是一个“&”符号加上App。如originate user/1000 9196和originate user/1000 &echo命令是等价的。extern :9196/&echo
dialplan -----它是Dialplan的类型,如果不设置,默认就是XML.,如 originate user/1000 echo inline 命令同上是等价的 dialplan: inline
context -----参数是Dialplan的Context,对于inline Dialplan,它会忽略Context,而对于XML则是有效的 originate user/1000 1001 XML public
cid_name/cid_num -----主叫名称/号码 originate user/tom&echo XML default 'tom' 2007
timeout_sec ------呼叫超时
====================
console loglevel debug 打开DEBUG级 别的日志
一 . 防止命令阻塞:
1.使用bgapi ,如bgapi originate user/tom&echo XML default 'tom' 2007.
2.开启另一个fs_cli客户端
注意的是,如果我们在Event Socket方式下使用originate发起呼叫, 一般要使用bgapi来避免阻塞,如bgapi originate user/1000 &echo。
二. 使用通道变量:通道变量可以影响呼叫的行为。我们在orignate时也可以使用通道变量。到这里,我们又回 到呼叫字符串,因为通道变量是加在呼叫字符串上的。
1.通过使用通道变量,下列命令也能改变主号名称和号码:
originate {origination_caller_id_name='tom',origination_caller_id_number=100861121}user/tom &echo
2.通道变量里会有逗号,需要转译,字符串里的逗号进行转义,也可以使用一个反斜杠来进行转义使用“^^”进行转义,用别的符号代替逗号分隔符
originate {absolute_codec_string=G729\,PCMU}user/tom &echo 是等价的originate {absolute_codec_string=^^:G729:PCMU}user/tom &echo
3.来电显示
originate {originattion_caller_id_number=7777}user/1000 &bridge(user/1001)
originate user/1000 &bridge({origination_caller_id_number=8888}user/1001)
originate {effective_caller_id_number=8888}user/1000 &bridge(user/1001)
originate {originatioin_caller_id_number=7777}user/1000 &bridge({origination_caller_id_number=8888}user/1001)
originate {originatioin_caller_id_number=7777} {effective_caller_id_number=8888}user/1000 &bridge(user/1001)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)