Asterisk 星号和Freepbx:多昼夜切换?

Asterisk 星号和Freepbx:多昼夜切换?,asterisk,pbx,Asterisk,Pbx,我经常需要更改活动呼叫流控制,该控制只能是一个…对吗?。 我发现,如果有4种不同的场景,netsting调用流控件是非常不方便的。 因此,我想做的是创建4个不同的扩展,将适当的呼叫流设置为入站路由目的地 举个例子: 我有 呼叫流程1 呼叫流程2 呼叫流程3 呼叫流程4 我想创建: 分机*881->切换呼叫流nr 1并将其设置为目标 入站路线 分机*882->切换呼叫流nr 2并将其设置为目标 入站路线 分机*883->切换呼叫流nr 3并将其设置为目标 入站路线 分机*884->切换呼叫流nr

我经常需要更改活动呼叫流控制,该控制只能是一个…对吗?。 我发现,如果有4种不同的场景,netsting调用流控件是非常不方便的。 因此,我想做的是创建4个不同的扩展,将适当的呼叫流设置为入站路由目的地

举个例子: 我有

呼叫流程1 呼叫流程2 呼叫流程3 呼叫流程4 我想创建:

分机*881->切换呼叫流nr 1并将其设置为目标 入站路线 分机*882->切换呼叫流nr 2并将其设置为目标 入站路线 分机*883->切换呼叫流nr 3并将其设置为目标 入站路线 分机*884->切换呼叫流nr 4并将其设置为目标 入站路线 这样可能吗? 如果是的话……你将如何实现? 我的系统基于asterisk 11和freepbx 2.11。
提前感谢您的时间和努力。

您可以根据需要设置任意多的时间条件

您可以使用特殊代码打开/关闭用于假日的时间条件。您可以在“时间条件”页面上查看确切的代码

您还可以创建自定义模块来更改流程,更多信息请参见dev.freepbx.org。作为选择,你可以雇佣一个人来做你的条件模块。

我想出来了

编辑/etc/asterisk/extensions\u custom.com并粘贴以下内容

[from-internal-custom]
include => enable-switch

[check-active-switch]
exten => s,1,NoOp("This context loops through all the switches and checks which one is ON. Than it follows its destination")
exten => s,n,GoSub(sub-get-nr-of-switches,s,1)
exten => s,n,Set(nrofs=${GOSUB_RETVAL})
exten => s,n,Set(i=0)
exten => s,n,Set(default-dest=app-daynight,${switchnr},1)
exten => s,n,Set(switchnr="NULL")
exten => s,n,While($[$[${i} < ${nrofs}] & $[${switchnr} = "NULL"]])
exten => s,n,Set(switchnr=${IF($["${DB(DAYNIGHT/C${i})}" = "NIGHT"]?${i}:"NULL")})
exten => s,n,Set(i=$[${i} + 1])
exten => s,n,EndWhile
exten => s,n,GotoIf($[${switchnr}!="NULL"]?app-daynight,${switchnr},1:${default-dest})
exten => s,n,Hangup()

[sub-get-nr-of-switches]
exten => s,1,Set(nr_of_s=0)
exten => s,n,Set(exten_state="NOT_ACQUIRED")
exten => s,n,While($[${exten_state}!=0])
exten => s,n,Set(exten_state=$[${VALID_EXTEN(app-daynight,${nr_of_s},1)}])
exten => s,n,NoOp(Exten nr ${nr_of_s} of app-daynight is ${exten_state})
exten => s,n,Set(nr_of_s=${IF($[${exten_state}=1]?$[${nr_of_s}+1]:${nr_of_s})})
exten => s,n,EndWhile
exten => s,n,NoOp(${nr_of_s} switches found)
exten => s,n,Return(${nr_of_s})

[enable-switch]
exten =>_*20X,1,NoOp("Abilita Switch selezionato e disabilita altre")
same => n,GoSub(sub-get-nr-of-switches,s,1)
same => n,Set(nrofs=${GOSUB_RETVAL})
same => n,Set(switchtoactivate=${EXTEN:3})
same => n,NoOp(Activated Switch nr ${switchtoactivate})
same => n,Set(i=0)
same => n,While($[${i}<${nrofs}])
same => n,Set(DB(DAYNIGHT/C${i})=DAY)
same => n,Set(i=$[${i}+1])
same => n,EndWhile
same => n,Set(freepbx_toggle_dest=*28${switchtoactivate})
same => n,Goto(app-daynight-toggle,${freepbx_toggle_dest},1)
same => n,Hangup
接下来转到freepbx并创建自定义目的地->检查活动交换机s,1并将其设置为入站路由的目的地