我希望通过使用具有动态成员的队列来提高我的IVR。我做了一些研究,让我觉得它确实可行,但我也无法弄清楚最好的方法是什么。
我使用queues.conf和agents.conf使其(test-)与静态成员一起运行,但我想要的是:
当代理商到达他们的办公桌时,他们应该通过电话登录/注销到一个队列,通过号码和密码。
那么,我该如何处理以及extensions.conf中的函数必须如何?不需要登录/注销多个队列。每个代理只有一个他或她一次工作的队列
我已经看到一些确定AgentLogin()的帖子,还有一些要求使用GotoIf($ REGEX ...)的帖子。
作为一个相对的新手我很困惑。
<<>>
#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的细节?
如果我使用编辑2中的代码,如何动态更改队列? 在我现在的现有配置中,我有17个队列,我不想重复编辑2中每个队列的所有行。
提前致谢
答案 0 :(得分:-1)
请阅读https://wiki.asterisk.org/wiki/display/AST/Building+Queues处的文档......他们在那里有一个良好的开端,可以进行完整的多队列登录/注销。