创建自定义/通用规则

时间:2014-07-15 11:36:54

标签: mysql database asterisk rule

我想创建一个通用规则,用户可以在其中创建任何规则并且它是适用的,我们根据数据库中的规则获取信息。 假设我们有一个主表,其中有几列,例如

如果使用通过选择任何列创建任何规则,我们从pin-code获取一个信息,那么我们的mysql规则将起作用..

1 个答案:

答案 0 :(得分:0)

你可以这样做拨号方案:

[default]
exten => _.,1,AGI(agi://127.0.0.1:4893/fastagi_handler?dst=${EXTEN})

通过fastagi控制所有拨号方案。

或者你可以做到

[default]
switch=>realtime

之后通过实时数据库控制拨号方案。

第一种变体通常是较少的db load。

或者您可以在拨号方案中执行所有逻辑,只需从数据库中选择一些内容:

[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
相关问题