originate命令解析及示例
命令格式及解釋
命令使用的基礎(chǔ)模板:
originate ALEG BLEG
?在fs_cli控制臺(tái)使用的完整語法如下:
originate <call url> <exten>|&<application_name>(<app_args>) [<dialplan>][<context>] [<cid_name>][<cid_num>] [<timeout_sec>]
其中,
originate?為命令關(guān)鍵字,為必選字段,用于定義ALEG的呼叫信息,也就是通常說的呼叫字符串,可以通過通道變量定義很多參數(shù);
|&<application_name>(<app_args>)??為必選字段,用于指定BLEG的分機(jī)號碼或者用于創(chuàng)建BLEG的app(比如echo、bridge等);
[][<context>]??可選參數(shù),該參數(shù)用于指定dialplan的context,默認(rèn)值:xml default ;
[<timeout_sec>]?可選參數(shù),該參數(shù)用于指定originate超時(shí),默認(rèn)值:60 ;
?示例呼叫:
originate user/1000 9196 xml default 'mike' 18612345678
呼叫效果如下:

?
?三、常見使用方式
1、基礎(chǔ)使用
echo呼叫
示例如下:
originate user/1000 &echo
先呼叫1000分機(jī),1000分機(jī)接聽后,將1000分機(jī)所在的channel橋接到echo應(yīng)用(將話筒傳入的聲音播放到聽筒),以下命令具備同樣效果:
originate user/1000 9196
分機(jī)互相撥打
示例如下:
originate user/1000 1001
先呼叫1000分機(jī),1000分機(jī)接聽后,再呼叫1001分機(jī),1001分機(jī)接聽后,將1000分機(jī)所在的channel橋接1001的channel,通話建立。?
bridge到其它終端
這里以分機(jī)為例進(jìn)行演示,具體如下:
originate user/1000 &bridge(user/1001)
和分機(jī)互相撥打類似。
分機(jī)共振
?使用逗號語法關(guān)鍵字,示例如下:
originate user/1000,user/1001 9196
1000分機(jī)和1001分機(jī)同時(shí)響鈴,任意一個(gè)分機(jī)接聽后,另外一個(gè)分機(jī)自動(dòng)掛機(jī)。
分機(jī)輪詢
?使用 | 語法實(shí)現(xiàn),這里需要注意下,有呼叫默認(rèn)超時(shí)時(shí)間的設(shè)置,示例如下:
originate {originate_timeout=30}[leg_timeout=10]user/1000|[leg_timeout=10]user/1001 9196
1000分機(jī)先振鈴,10秒超時(shí)后呼叫1001分機(jī)。
呼叫外線
通過external進(jìn)行外線呼叫,示例如下:
originate ?{origination_caller_id_number=00000000,origination_caller_id_name=000000000}sofia/external/18612345678@192.168.1.100:5060 &echo
播放音頻給分機(jī)
使用playback命令進(jìn)行聲音播放:
originate user/1000 &playback(/tmp/test1.wav)
播放moh音頻:
originate user/1000 &playback(local_stream://moh)
無限循環(huán)播放:
originate user/1000 &endless_playback(/tmp/test1.wav)
使用file_string進(jìn)行多個(gè)文件依次順序播放:
originate user/1000 &playback(file_string:///tmp/test1.wav!/tmp/test2.wav)
2、通道變量的使用
originate字符串里面可以設(shè)置很多通道變量來定義呼叫參數(shù),基本使用格式示例如下:
originate {var1=$value1,var2=$value2}/user/1000 9196originate {var1=$value1}[var2=$value2]/user/1000 9196
其中,大括號用于定義呼叫的通道變量,中括號用來定義某條leg的局部通道變量。
這里列舉下常見的通道變量。
origination_uuid
發(fā)起呼叫時(shí),用于定義leg的uuid,示例如下:
1)在呼叫時(shí),指定A腿的uuid
originate {origination_uuid=xxxxx}user/1000 1001
2)在呼叫時(shí),同時(shí)指定A腿和B腿的uuid
originate {origination_uuid=xxxxx}user/1000 &bridge({origination_uuid=yyyyy}user/1001)
origination_caller_id_name / origination_caller_id_number
用于設(shè)置主叫名稱及號碼,示例如下:
originate {origination_caller_id_name="mike",origination_caller_id_number=18612345678}user/1000 9196