1. 程式人生 > >FreeSWITCH學習筆記 第一場 第八個鏡頭 API和App

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,這樣10001001就可以通話了

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權威指南》