FreeSWITCH學習筆記 第一場 第八個鏡頭 API和App
API :又可以稱作API Commands,例如前面章節使用的originate
APP:Application APP
TipS:FreeSWITCh是一個典型的B2BUA(背靠背使用者代理服務),而構建通訊通道(Channel)有兩端,然而通常目標通訊兩端不會立馬建立連線。需要發起->等待->接通
這樣一個過程。等待
過程則需要一個APP暫時的充當一端或者某些情況下APP就是另一端
下面介紹幾個常用的APP:
echo
echo
前面我們用到過的APP,originate /user/1000 &echo
,接通後相當於1000
在與echo
通話
freeswitch> originate /user/1000 &echo
park
park
掛起功能,在某些情況下如果找不到使用者1000
的另一端使用者,則會掛起等待。可以在撥號計劃
[注1]中配置這個APP
freeswitch> originate /user/1000 &park
hold
hold
等待功能,相比於park
的靜默等待(傻等),它能在等待的同時播放保持音樂(Music on Hold,MOH)
freeswitch> originate /user/1000 &hold
playback
palyback
播放音樂,直接播放音樂給1000
freeswitch> originate user/1000 &playback(/xxx/xxx.wav)
record
record
錄音,直接轉到語音信箱,讓1000
留言
freeswitch> originate user/1000 &record(/voice_of_1000.wav)
bridge
bridge
橋接兩個UA進行通話,1000
接聽電話後,bridge
可以再啟動一個UA呼叫1001
,這樣1000
與1001
就可以通話了
freeswitch> originate user/1000 &bridge(user/1001)
Tips. 簡單來說,一個App是一個程式(Application),它作為一個Channel一端與另一端的UA進行通訊,相當於它工作在Channel內部;而一個API則是獨立於一個Channel之外的,它只能通過找到Channel的UUID來控制一個Channel(如果需要的話),相當於一個第三者
通常我們在控制檯上輸入的命令都是API;而在dialplan中執行的程式都是App(dialplan中也能執行一些特殊的API)。大部分公用的API都是在mod_commands模組中載入的;而App則在mod_dptools中,因而App又稱為撥號計劃工具(Dialplan Tools)。某些模組(如mod_sofia)有自己特有的API和App[注2]
- 注1:
撥號計劃
是一塊比較重要的內容,後續章節將會用比較大的篇幅進行介紹 - 注2: 此段引用自《FreeSWITCH權威指南》