星号动态代理队列

时间:2017-03-28 19:38:53

标签: queue asterisk ivr agents

我希望通过使用具有动态成员的队列来提高我的IVR。我做了一些研究,让我觉得它确实可行,但我也无法弄清楚最好的方法是什么。

我使用queues.conf和agents.conf使其(test-)与静态成员一起运行,但我想要的是:

当代理商到达他们的办公桌时,他们应该通过电话登录/注销到一个队列,通过号码和密码。

那么,我该如何处理以及extensions.conf中的函数必须如何?不需要登录/注销多个队列。每个代理只有一个他或她一次工作的队列

我已经看到一些确定AgentLogin()的帖子,还有一些要求使用GotoIf($ REGEX ...)的帖子。

作为一个相对的新手我很困惑。

感谢您的帮助

修改

<<>>

编辑2

#include <iostream>
#include <map>
#include <algorithm>
#include <vector>

using namespace std;

//import midi notes
vector <int> midiFile = {1, 2, 3, 1, 20, 5, 2, 3, 1};

//create a 2d hashmap for matrix
map <string, map <string, int> > mCounts;

//strings for the previous value and current value
string prevVal = "";
string currentVal = "";

void addNumbers(vector <int> midiFile) {

    for (int i = 0; i < midiFile.size(); i++) {
        currentVal = to_string(midiFile[i]);

        if(prevVal == "") {
            prevVal = currentVal;   //first value
        } else {
            //playCounts is temporary map to store counts of current val in relation to previous val
            map <string, int> playCounts;

            map <string, int> ::iterator iterator;
            iterator = playCounts.find(currentVal);

            //if mCounts doesn't contain the value yet, create a new hashmap
            if(iterator != playCounts.end()){

                int counter = iterator -> second;
                mCounts[prevVal] [currentVal] = counter + 1;


            } else {
                playCounts.insert(pair <string, int>(currentVal, 1));
                mCounts [prevVal] = playCounts;

            }

            prevVal = currentVal;

        }

        //find values already in map
        map <string, map <string, int> > ::iterator it;
        it = mCounts.find(prevVal);

        if (it != mCounts.end()) {
            //if value is found, do nothing
        } else {
            mCounts.insert(pair <string, map <string, int>>(prevVal, map <string, int>()));
        }
    }
}

但是我该如何添加来自agents.conf的细节?

编辑3

如果我使用编辑2中的代码,如何动态更改队列? 在我现在的现有配置中,我有17个队列,我不想重复编辑2中每个队列的所有行。

提前致谢

1 个答案:

答案 0 :(得分:-1)

请阅读https://wiki.asterisk.org/wiki/display/AST/Building+Queues处的文档......他们在那里有一个良好的开端,可以进行完整的多队列登录/注销。