欢迎光临散文网 会员登陆 & 注册

originate命令解析及示例

2023-04-03 08:57 作者:程序员-王坚  | 我要投稿

命令格式及解释

命令使用的基础模板:

originate ALEG BLEG

 在fs_cli控制台使用的完整语法如下:

originate <call url> <exten>|&<application_name>(<app_args>) [<dialplan>][&lt;context>] [<cid_name>][&lt;cid_num>] [<timeout_sec>]

其中,

originate 为命令关键字,为必选字段,用于定义ALEG的呼叫信息,也就是通常说的呼叫字符串,可以通过通道变量定义很多参数;

|&<application_name>(<app_args>)  为必选字段,用于指定BLEG的分机号码或者用于创建BLEG的app(比如echo、bridge等);

[][<context>]  可选参数,该参数用于指定dialplan的context,默认值:xml default ;

[<timeout_sec>] 可选参数,该参数用于指定originate超时,默认值:60 ;

 示例呼叫:

originate user/1000 9196 xml default 'mike' 18612345678

呼叫效果如下:

 

 三、常见使用方式

1、基础使用

  • echo呼叫

示例如下:

originate user/1000 &echo

先呼叫1000分机,1000分机接听后,将1000分机所在的channel桥接到echo应用(将话筒传入的声音播放到听筒),以下命令具备同样效果:

originate user/1000 9196

  • 分机互相拨打

示例如下:

originate user/1000 1001

先呼叫1000分机,1000分机接听后,再呼叫1001分机,1001分机接听后,将1000分机所在的channel桥接1001的channel,通话建立。 

  • bridge到其它终端

这里以分机为例进行演示,具体如下:

originate user/1000 &bridge(user/1001)

和分机互相拨打类似。

  • 分机共振

 使用逗号语法关键字,示例如下:

originate user/1000,user/1001 9196

1000分机和1001分机同时响铃,任意一个分机接听后,另外一个分机自动挂机。

  • 分机轮询

 使用 | 语法实现,这里需要注意下,有呼叫默认超时时间的设置,示例如下:

originate {originate_timeout=30}[leg_timeout=10]user/1000|[leg_timeout=10]user/1001 9196

1000分机先振铃,10秒超时后呼叫1001分机。

  • 呼叫外线

通过external进行外线呼叫,示例如下:

originate  {origination_caller_id_number=00000000,origination_caller_id_name=000000000}sofia/external/18612345678@192.168.1.100:5060 &echo

  • 播放音频给分机

使用playback命令进行声音播放:

originate user/1000 &playback(/tmp/test1.wav)

播放moh音频:

originate user/1000 &playback(local_stream://moh)

无限循环播放:

originate user/1000 &endless_playback(/tmp/test1.wav)

使用file_string进行多个文件依次顺序播放:

originate user/1000 &playback(file_string:///tmp/test1.wav!/tmp/test2.wav)

2、通道变量的使用

originate字符串里面可以设置很多通道变量来定义呼叫参数,基本使用格式示例如下:

originate {var1=$value1,var2=$value2}/user/1000 9196originate {var1=$value1}[var2=$value2]/user/1000 9196

其中,大括号用于定义呼叫的通道变量,中括号用来定义某条leg的局部通道变量。

这里列举下常见的通道变量。

  • origination_uuid

发起呼叫时,用于定义leg的uuid,示例如下:

1)在呼叫时,指定A腿的uuid

originate {origination_uuid=xxxxx}user/1000 1001

2)在呼叫时,同时指定A腿和B腿的uuid

originate {origination_uuid=xxxxx}user/1000 &bridge({origination_uuid=yyyyy}user/1001)

  • origination_caller_id_name / origination_caller_id_number

用于设置主叫名称及号码,示例如下:

originate {origination_caller_id_name="mike",origination_caller_id_number=18612345678}user/1000 9196


originate命令解析及示例的评论 (共 条)

分享到微博请遵守国家法律