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)