I am trying to find a solution to accomplish the following in ICM. Callers will call into a menu. The menu collects a 7 digit number.
This 7 digit number will correspond with an agents peripheral number. This will then be used in a queue to agent node to route the caller to an individual agent. We cannot figure out what to do next if the agent is not available. The requirement is to send this call to a skillgroup that the not available agent is a member of.
Is it possible to lookup what skillgroups this agent is in and send the call to that skillgroup? Thank you for any help.
this information is available in the config database of the ICM [instancename]_awdb. Look for the database view named "Skill_Group_Member".
The way to accomplish it is to look this information up in this database and then send it back to the ICM script to finish the process.
It depends, how you inject this information into the ICM script itself, you might use an external script (a call to IP IVR) or if you have Application Gateway in place, you could exchange this information using it. I would probably do it using Application Gateway, however, I guess IP IVR would be simpler.
0. try to send to agent, if not, continue here:
1. send agents PeripheralNumber to an external script,
2. have external script connect ICM's config db and run this query:
FROM Agent ag JOIN Skill_Group_Member sgm ON ag.SkillTargetID = sgm.AgentSkillTargetID
WHERE ag.PeripheralNumber = '--your-value--'
3. collect all SkillGroupSkillTargetID's and send them back to ICM as an array,
4. use the Queue node to queue the call to the skill group that match (now, this is the least elegant part of the whole solution, listing all the skill groups and have specific conditions whether or not to sent the call there).
If you were doing this with CVP you could use a Studio app (rather than a microapp) to collect the digits representing the agent's peripheral number and call out to the AW DB.
1. You really need to check that this peripheral number is valid before handing it back to ICM for queue to agent, so I think you need to query the AW DB anyway and check. If not a valid peripheral number, tell the caller and they have to re-enter.
2. Make the query above to the AW DB, and in the Studio code, massage the result set to a comma-separated list of skill group IDs, and pass it back to ICM along with the agent's PN.
3. Queue to agent implicit at high priority. If agent not logged in, go to 4. Queue for the required time (say 60s) then go to 4.
4. I can only agree with Gergely's suggestion. Have a queue to skill group with all the named skill groups that agents can be members of, then have a condition if clause on each row to use the "find" function to see if the skill group ID of that particular skill is in the comma-separated list.
It's still messy if agents are in multiple skill groups and some skill groups have few members and others have many members and you end up choosing the smaller.
Maybe you can create "artificial" skill groups just for the above purpose than partition your agents into larger sets just for this task.
SIP traces provide key information in troubleshooting SIP Trunks, SIP
endpoints and other SIP related issues. Even though these traces are in
clear text, these texts can be gibberish unless you understand fully
what they mean. This document attempts to br...
Please find the attached HTML document, download and open it on your PC.
This provides an easy to use form where you simply answer a few
questions and it will render the proper jabber-config.xml file for you
to copy/paste. There is built in logic to verif...
[toc:faq]CUCM Database Replication is an area in which Cisco customers
and partners have asked for more in-depth training in being able to
properly assess a replication problem and potentially resolve an issue
without involving TAC. This document discusse...