您的位置:首页 > 其它

asterisk主要的应用函数

2012-03-03 09:09 1086 查看
1、 Dial 应用

(1)格式

Dial(type/identifier, timeout, options, URL)

Dial(type1/identifier1[&type2/identifier2[&type3/identifier3... ] ], timeout, options, URL)

RetryDial(announce|sleep|loops|Technology/resource[&Technology2/resource2...][|[timeout][|[options][|URL]]])

(2)说明

如果呼叫在超时之前被接听,通道就被桥接,拨号方案完成,如果被叫方没有应答Dial( ) 会继续到该 extension 的下一个priority。但是,如果被叫通道忙Dial( )将转到priority n+101,如果其存在的话(其中的 n 是Dial( )被调用的priority)

(3)参数说明

t或T: 表示允许被叫通过拍xfer键进行呼叫转移。xfer键的定义features.conf

r:强制产生回铃音,呼叫过程中没有语音直到被叫摘机。没有这个选项, aserisk会适当地根据情况自动地产生回铃音。强制产生回铃有可能使主叫听不到忙音,彩铃。在呼叫多个被叫时,回铃音不通被透传,这时需要强制一个回铃音。

R:当被叫在震铃时通知主叫被在震铃,,呼叫过程中没有语音直到被叫摘机。这个选项仅在kapejod’s Bristuff有用。注:BRIstuff 是一个BRI驱动和补丁集

m:提供Music on Hold给主叫直到被叫摘机。注:与r不同的时m可以指定一类Music on Hold的音乐

o:传送主叫ID,默认是送分机的号码(extension’s number)
j:如果所有通道忙跳到n+101

M(x):当通道一旦连接执行宏x,比如被叫摘机时。
h:允许主叫挂机通过*号键

H:允许被叫挂机通过*号键
i:asterisk忽略在本次拨号时的任何转发请求。这个在在1.4只有用,当你在震铃一个震铃组时,他们有一个设置了电话转移到voicemail或设置了阻止免打扰,这时你的震铃组就会呼叫失败
C:重置CDR

p:使能屏幕模式即不用记忆怎么出理主叫的基本个人隐私模式。

P(x): 使用隐私管理-PrivacyManager, x可选,x是数据库。

g:当被叫挂机时,退出,然后在当前的context中执行更多的命令

G(context^exten^pri):当呼叫叫建立,转移双方到指定的contex和extension。主叫方转移到优先级pri,被叫方到优先级pri+1

A(x):拨放一个通知音(x.gsm)给被叫方

S(x):被叫摘机后x秒后挂机。

d:这个标志胜过H标标,在等待呼叫应答时截取任何的DTMF,并返回的值。这个允许你已经设置1的(退出)exeten后,然后在呼叫时按1退出当前的呼叫

D(digits):在被叫摘机后送digits DTMF流。

L(x:[y]:[:z]):限制呼叫x毫秒,当y毫秒到达时发出警告,每z秒重复一次。以下这几个通道变量可设置:

LIMIT_PLAYAUDIO_CALLER - yes|no (default yes) - 拨放语音给主叫

LIMIT_PLAYAUDIO_CALLEE - yes|no - 拨放语音给被叫.

LIMIT_TIMEOUT_FILE - 拨放的文件

LIMIT_CONNECT_FILE - 当呼叫开始拨放的文件

LIMIT_WARNING_FILE - 播放的文件当y定义的时侯,如果 LIMIT_WARNING_FILE没有定义,默认的行为是播放(”You have [XX minutes] YY seconds”).

f:当外呼或重定向呼叫时强制主叫ID设置为line的extensions,有些PSTNs只允许一个主叫ID时,你分配一个给他

w:允许被叫记录在按*1时,或在features.conf中定义的,需要Set(DYNAMIC_FEATURES=automon)

W:允许主叫记录在按*1时,或在features.conf中定义的,需要Set(DYNAMIC_FEATURES=automon)

p:通过定义在features.conf中的dtmf 序列允许被叫方使能呼叫停泊(parking)

P:通过定义在features.conf中的dtmf 序列允许被主方使能呼叫停泊(parking)
2、 Meetme应用

(1) 语法:MeetMe([confno][,[options][,pin]])

(2) 用途:让用户进入一个指定的MeetMe会议。如果省略了会议编号,系统会提示用户选择一个。

(3) 参数说明

options可以为空,也可以设置一个或者多个参数,参数有如下一些:
'1'— 当会议室的第一个成员进入会议时,不向用户提示"you are currently the only person inthis conference您是当前会议室唯一的成员"

'a'— 设为管理员
'A'— 设为标记成员
'b'— 运行在${MEETME_AGI_BACKGROUND}指定的AGI脚本
o 缺省: conf-background.agi (注意:需要会议室内有ZAP通道才能运行)
'c'— 加入会议时提示会议成员数量
'd'— 动态加入会议
'D'— 动态加入会议,提示要求输入密码
o 如果用户不想给会议设密码,可以直接按井
'e'— 选择一个空会议。
'E'— 选择一个没密码的空会议。
'F'— 在会议中透传DTMF按键,所有成员都能收到DTMF。
'i'—提示有成员加入/离开会议with review— 需要chan_zap.so (Asterisk 1.2以上版本才支持)
'I'--提示有成员加入/离开会议 without review
'M'—当会议室只有一个人的时候放等待音乐
'm'—旁听状态(只能听,不能说)
'p'—允许用户按井退出会议室
'P'— 无论用户是否指定,总是提示用户输入会议密码
'q' — 安静模式 (有成员加入/离开会议不做任何提示)
'r'— 会议录音 (录音文件名${MEETME_RECORDINGFILE},格式 ${MEETME_RECORDINGFORMAT})。缺省文件名是:meetme-conf-rec-${CONFNO}-${UNIQUEID} ,缺省格式是wav。 — 这个参数同样需要chan_zap.so。
's'—收到*键的时候播放菜单,普通成员是普通菜单,管理员是管理员菜单('send' to menu)
't'— 设为只说模式 (只说,不听)
'T'— 设置说话人检测 (在manager interface 和 meetme list可以看到)
'v'— 视频模式 (目前还不支持)
'w'— 等待标记成员进入会议。在标记成员进入会议之前,所有成员只能听音乐。
?'X' — 允许用户输入${MEETME_EXIT_CONTEXT}里面的一个有效的单个数字来退出会议。如果${MEETME_EXIT_CONTEXT}没有定义,则从当前的内容里找有效数字。allow user to exit the conference byentering a valid single digit extension of the context specified in or thecurrent context if that variable is
not defined. (此参数不支持Asterisk v1.2.0版本)
'x'— 当最后一个标记用户退出会议室的时候,关闭会议。
(4) 创建动态会议

当两个人处于通话状态,主叫按下*3可使双方进入到临时电话会议,主叫按0键可呼叫其他人,当第三方接受呼叫时,主叫可按*0,将第三方也加入到电话会议。

[macro-ael-nway-start]

exten =>s,1,Set(CONFNO=${CALLERID(num)})

exten =>s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)

exten =>s,n,Gosub(dynamic-nway,${CONFNO},1)

[macro-ael-nway-ok]

exten =>s,1,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)

[macro-ael-nway-notok]

exten => s,1,SoftHangup(${BRIDGEPEER})

[dynamic-nway]

exten => _X.,1,Answer()

exten => _X.,n,Set(CONFNO=${EXTEN})

exten =>_X.,n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)

exten => _X.,n,Set(DYNAMIC_FEATURES=)

exten => _X.,n,MeetMe(${CONFNO},pdX)

exten => _X.,n,Hangup

[dynamic-nway-invite]

exten => 0,1,Read(DEST,dial,,i)

exten =>0,n,Set(DYNAMIC_FEATURES=nway-inv#nway-noinv)

exten =>0,n,Dial(Local/${DEST}@from-internal/n,,g)

exten => 0,n,Set(DYNAMIC_FEATURES=)

exten => 0,n,Goto(dynamic-nway,${CONFNO},1)

exten =>i,n,Goto(dynamic-nway,${CONFNO},1)

3、 Queue应用

(1) 语法:

Queue(queuename[,options[,URL[,announceoverride[,timeout[,AGI[,macro[,gosub[,rule]]]]]]]])

Queue(queuename[|options][|URL][|announceoverride][|timeout][|AGI])

Queue(queuename[|options][|URL][|announceoverride][|timeout])

(2) 参数说明

'd' — 呼叫最小延时

'h' — 允许被叫按*挂断

'H' — 允许主叫按*挂断

'n' — 没有重试暂停

'r' — 振铃

'R' — 当代理振铃的时候停止振铃和等待音乐

't' — 允许被叫转移呼叫

'T' —允许主叫转移呼叫

'c' — 如果被叫挂断继续执行拨号方案

4、 ChannelRedirect:重定向现有的通道到拨号计划

语法ChannelRedirect(channel,[[context,]extension,]priority)

例如:exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)

5、 AGI:执行一套AGI应用程序

例如:exten => 999,n,AGI(checkq.agi,${EXTEN})

6、 Read:读有效的DTMF变量

例如:exten => 100,n,Read(PIN,enter-conf-pin-number,,,,)

7、 Gosub:跳到一个子程序并且返回。

例如:exten =>s,n,Gosub(dynamic-nway,${CONFNO},1)

8、 GosubIf:有条件的跳到一个子程序并且返回

9、 Goto:跳转到特定的priority, extension, 或context(专用名词)

例如:exten => s,n,Goto(from-pstn,${DID},1)

10、 GotoIf:带条件判断的Goto

例如:exten =>s,n,GotoIf($["${STATUS}"=="1"]?callback,s,1)

11、 ExecIf:条件执行

例如:exten =>s,1,ExecIf($[${LEN(${CCSS_SETUP})}]?Return())

12、 Set:设置通道变量和功能值

例如:exten =>s,n,Set(DB(AMPUSER/${AMPUSER}/ccss/last_number)=${ARG2})

13、 Playback:播放一个声音文件

例如:exten => s,1,Playback(beep&calling&extension)

14、 ChanSpy:通用的通道插话

例如:exten => _7XXXX,n,Chanspy(SIP/${EXTEN:1},qb)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: