因为我从来没有做过负载均衡,所以我对此有点困惑。我想知道如何将来电从某个号码分配到2个目的地。
假设此扩展程序每小时有100个电话:
exten => 01234567890,1,Answer
exten => 01234567890,n,Set(oqgroup=BM)
exten => 01234567890,n,Goto(csdigital,csdigital)
我如何以50/50为基础分发这些电话。所以第一个电话进入分机第二个电话进入分机B,第三个电话进入第四个到B等......
我的自定义配置,您可以看到两个(示例)数字2,我想对来电进行负载均衡:
[route]
exten => route,1,Answer
exten => route,n,GotoIf($["${oqgroup}" = "BM"]?bm,1)
exten => bm,1,Dial(SIP/0222333444@outbound,,ro)
exten => bm,1,Dial(SIP/0222333555@outbound,,ro)
答案 0 :(得分:1)
您可以使用RAND功能。
https://wiki.asterisk.org/wiki/display/AST/Function_RAND
类似这样的事情
basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))
请检查代码,我没有检查过,但你应该理解逻辑。
如果您不想随机(因为有时可能会随机选择将下一个调用发送到与之前相同的扩展名),您可以使用全局变量并创建全局变量并为其赋值。检查此变量的调用值之前,如果为0,则路由到扩展名0222333444并将值更改为1.如果全局值为1,则路由到其他扩展名并将值更改为0。
请记住,在星号重启后,全局变量将重置为初始值。