Need to implement dynamic queue. Request a good architecture
Posted: Mon Apr 29, 2013 11:17 am
Hello,
I am fairly new to vicidial, but have a long experience with asterisk. I need to implement a specific functionality and request your help in coming up with the right architecture.
We get incoming leads. The leads are then qualified and all the agents are ranked in a priority order. Based on the past history and the dialed number, some of the agents are more qualified than others to take this lead. The next call will have a different priority for the agents. We have an algorithm that will rank the agents.
I was not able to find a straightforward way to implement this functionality.
This are the thoughts:
1) Create a campaign manually using VICIDial GUI. Assign agents to this campaign.
2) When a new leads arrive, run the algorithm to find agent priority for this lead.
3) Duplicate the row in mysql of #1. Set the priority of this campaign to the highest.
4) Assign agents to this campaign, and set the agent priority from #2.
5) Place the lead into this campaign. (How could this be done programatically?).
6) Repeat 2,3,4,5 for the next lead, but set the campaign priority to be one lower than the highest.
This is rather cumbersome, since there will be one campaign per lead.
I am not sure of how severe are the performance penalties for this approach.
Your feedback is greatly appreciated. If there is an alternate easier way, it would be a great help.
Thank You
I am fairly new to vicidial, but have a long experience with asterisk. I need to implement a specific functionality and request your help in coming up with the right architecture.
We get incoming leads. The leads are then qualified and all the agents are ranked in a priority order. Based on the past history and the dialed number, some of the agents are more qualified than others to take this lead. The next call will have a different priority for the agents. We have an algorithm that will rank the agents.
I was not able to find a straightforward way to implement this functionality.
This are the thoughts:
1) Create a campaign manually using VICIDial GUI. Assign agents to this campaign.
2) When a new leads arrive, run the algorithm to find agent priority for this lead.
3) Duplicate the row in mysql of #1. Set the priority of this campaign to the highest.
4) Assign agents to this campaign, and set the agent priority from #2.
5) Place the lead into this campaign. (How could this be done programatically?).
6) Repeat 2,3,4,5 for the next lead, but set the campaign priority to be one lower than the highest.
This is rather cumbersome, since there will be one campaign per lead.
I am not sure of how severe are the performance penalties for this approach.
Your feedback is greatly appreciated. If there is an alternate easier way, it would be a great help.
Thank You