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]
更多的关于API和APP的详细介绍可以参见Mod_commands和Mode_dptools
- 注1:
拨号计划
是一块比较重要的内容,后续章节将会用比较大的篇幅进行介绍 - 注2: 此段引用自《FreeSWITCH权威指南》