雖然同時撥接很有用,有時我們更需要輪流撥接接通其中一個通道就夠了,以免同時吵到多個好友。這個需求或許可以用傳回值來判斷處理,但是 Asterisk 提供一個更簡單的寫法,也相當有用。一樣用實例來說明:
首先我們定義一個 Context [TimeDelay] 如下,共定義三個在地通道 channel_1, channel_2, channel_3,三個在地通道等待時間是不同的,後面的也都加上了 Wait():
[TimeDelay]
exten => channel_1,1,Verbose(2,Dialing the first channel)
same => n,Dial(SIP/0000FFFF0001,20)
same => n,Hangup()
exten => channel_2,1,Verbose(2,Dialing the second channel with a delay)
same => n,Wait(10)
same => n,Dial(DAHDI/g0/14165551212)
exten => channel_3,1,Verbose(2,Dialing the third channel with a delay)
same => n,Wait(15)
same => n,Dial(SIP/MyITSP/12565551212,15)
same => n,Hangup()
在引用時如下,利用 Dial() 同時撥接 channel_1, channel_2, channel_3:
[LocalSets]
exten => 107,1,Verbose(2,Dialing multiple locations with time delay)
same => n,Dial(Local/channel_1@TimeDelay&Local/channel_2@TimeDelay
&Local/channel_3@TimeDelay,40)
same => n,Hangup()
因為三個在地通道的逾時時間不同,後面的通道也加了 Wait(), 因此這三個的開始時間與結束時間並不相同。請自行用下圖來閱讀理解。
或是用下表來配合上面的設定來閱讀
0 意見:
張貼留言