我想创建一个通用规则,用户可以创建任何规则,它是适用的,我们根据规则从数据库中获取信息。假设我们有一个主表,其中只有几列,例如
我们现在从pin-code中得到一个信息,如果使用通过选择任何列创建任何规则,那么我们的mysql规则将工作。
你可以这样做:
[default]
exten => _.,1,AGI(agi://127.0.0.1:4893/fastagi_handler?dst=${EXTEN})
并通过fastagi控制所有拨号计划。
或者
[default]
switch=>realtime
之后通过实时数据库控制拨号计划。
第一个变量通常是较小的db负载。
或者你可以在dialplan中做所有的逻辑,只要从database中选择:
[realtime_get]
exten => _.,1,Set(dialplan_type=${REALTIME_FIELD(mytable,did,${EXTEN},dialplan_type)})
exten => _.,2,Goto(${dialplan_type},${EXTEN},1)
[dialplan-check-pin]
exten => _.,1,Set(recording=${REALTIME_FIELD(mytable,did,${EXTEN},recording)})
exten => _.,2,Read(pin,${recording},3);
exten => _.,3,GotoIF($[ ${LEN(pin)} < 3 ]?hangup)
exten => _.,n,Set(pin_db=${REALTIME_FIELD(mytable,did,${EXTEN},pin)})
exten => _.,n,GotIf($[ ${pin_db} == ${pin}]?ok:bad
exten => _.,n(ok),Playback(thankyou)
exten => _.,n,Hangup
exten => _.,n(bad),Playback(bad-pin)
exten => _.,n(hangup),Hangup