`

asterisk dial 命令参数解析(实现自动二次拨号)

 
阅读更多

格式:
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]]]) 

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

        b)参数
                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) 
如果要自动实现二次拨号,可以通过在宏里面实现dtmf 的发送。
dial(SIP/83142167@out-trunk,M(senddtmf))
[macro-senddtmf]
exten =>s,1,noop(Senddtmf)
exten =>s,n,wait(2)
exten =>s,n,SendDTMF(83142167)
等待2秒的原因是由于一般要听到ivr 提示方可以允许用户输入的。可以根据实际调整等待参数。
如果一次要执行多个宏,可以用^ (6字符)来分隔

===================================
下面附上,在ael中实现二次拨号的方法。



macro sendDTMF( number ){

wait(2);
SendDTMF( ${number} );
}

在dial函数中调用:

dial(SIP/6688@127.0.0.1:6069,30,M(sendDTMF^${EXTEN}));

注:在M中调用宏时,参数要用^


 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics