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)