1

次の非常に基本的な extensions.conf がありますcontext

[LocalPhones]

exten => 1001,1,noop(Dialing ${PEX_ONE})
        same => n,Macro(DialStartMonitor,${PEX_ONE})
        same => n,Dial(SIP/${PEX_ONE},30,mTt)
        same => n,Playback(vm-nobodyavail)      ; Play "no one's available"
        same => n,Hangup()

exten => 1002,1,noop(Dialing ${PEX_TWO})
        same => n,Macro(DialStartMonitor,${PEX_TWO})
        same => n,Dial(SIP/${PEX_TWO},30,mTt)
        same => n,Playback(vm-nobodyavail)      ; Play "no one's available"
        same => n,Hangup()

exten => 1003,1,noop(Dialing ${PEX_THREE})
        same => n,Macro(DialStartMonitor,${PEX_THREE})
        same => n,Dial(SIP/${PEX_THREE},30,mTt)
        same => n,Playback(vm-nobodyavail)      ; Play "no one's available"
        same => n,Hangup()

exten => 1004,1,Dial(Dialing ${PEX_FOUR})
        same => n,Macro(DialStartMonitor,${PEX_FOUR})
        same => n,Dial(SIP/${PEX_FOUR},10,m)
        same => n,Playback(vm-nobodyavail)      ; Play "no one's available"
        same => n,Hangup()

exten => 1005,1,Dial(Dialing ${PEX_FIVE})
        same => n,Macro(DialStartMonitor,${PEX_FIVE})
        same => n,Dial(SIP/${PEX_FIVE},10,m)
        same => n,Playback(vm-nobodyavail)      ; Play "no one's available"
        same => n,Hangup()

これらすべてを 1 つのブロック (現在のように 5 つのブロックではなく) に結合して、内線番号が互いにダイヤルできるようにする方法はありますか (内線番号は 1001 から 1010 です)。

4

2 に答える 2

5

アスタリスクの正しい値配置ダイヤルプランは次のようになります

exten => 1000,1,Set(trunk=${PEX_ONE})
exten => 1002,1,Set(trunk=${PEX_TWO})
exten => 1003,1,Set(trunk=${PEX_THREE})
exten => 1004,1,Set(trunk=${PEX_PHONE})
exten => 1005,1,Set(trunk=${PEX_FIVE})
; this will be executed after any of above
; note,it start from 2 prio(1 is from set above)
exten => _100[1-5],2,Noop(Dialing ${trunk})
           same => n,Macro(DialStartMonitor,${trunk})
           same => n,Dial(SIP/${trunk},10,m)
           same => n,Playback(vm-nobodyavail)      ; Play "no one's available"
           same => n,Hangup()

ダイヤルプランはまだ悪いことに注意してください。これは、ユーザーがビジーであるか、通信が正常であるにもかかわらず、通話中のユーザーがハングアップした場合でも vm-nobodyavail を再生するためです。

そのような正しいダイヤルプランについては、DIALSTATUS 変数を分析する必要があります。そのようなダイヤルプランについて extensions.conf.sample をチェックするか、freepbx.org ソフトウェアのダイヤルプランを読んでください。

于 2014-01-07T22:18:27.087 に答える
0

以下のようなものになると思います。

exten => _100[12345],1,Set(DIALTO=${PEX_ONE})
        same => n,GotoIf($["${EXTEN:-1}" = "1"]?process)
        same => n,Set(DIALTO=${PEX_TWO})
        same => n,GotoIf($["${EXTEN:-1}" = "2"]?process)
        same => n,Set(DIALTO=${PEX_THREE})
        same => n,GotoIf($["${EXTEN:-1}" = "3"]?process)
        same => n,Set(DIALTO=${PEX_FOUR})
        same => n,GotoIf($["${EXTEN:-1}" = "4"]?process)
        same => n,Set(DIALTO=${PEX_FIVE})
        same => n(process),Macro(DialStartMonitor,${DIALTO})
        same => n,Dial(SIP/${DIALTO},30,mTt)
        same => n,Playback(vm-nobodyavail)      ; Play "no one's available"
        same => n,Hangup()
于 2014-01-06T10:33:01.170 に答える