How many Cisco CTI OS agents are current logged in?

I’ve seen this question come up a few times in the Cisco Support Community.  Figured I would post something about it here.  The question is to find out how many agents are currently logged to CTI OS.  The following will give you the current number of logged in agents and if you leave it running for a long period of time it will tell you how many agents logged in by average, minimum, and maximum number of logged in agents.

– All Programs > Administrator Tools > Performance
– Click on New Counter Set
– Right click on the counter screen and click on Add Counters…
– Select the following counter below


– You will see the counter increase/decrease as agents log in and out.



David gets a gold star (Cisco Support Community)!

I like to contribute a lot to Cisco’s NetPro Forums, now called Cisco Support Community.  I’ve been a member since 2005 and love the community since everyone seems to help everyone out a lot.  For this particular reason I feel inclined to give back as much as possible.  That being said, when you post a reply posters can give you points for how good your response was or how much it helped them.  So, that’s one way to get some recognition if you’re actually being helpful.

That being said, there are different levels based on how many points you’ve been awarded.  Just recently I reached the gold start level by surpassing 750 points.  While I still have a long way to go to catch some of the top contributors who are in the 10s of thousands of points, it does feel nice to hit a small milestone.



Cisco CRM Adapter with Firefox

I will assume you have the server connected and working properly, this post focuses solely on getting the CRM adapter working with Firefox 3.x, 6.x.  The version I’m working with is Cisco_Unified_CRM_Connector_7.52, which allows you to install the server or client.  This is Cisco’s latest version and upon install it includes Adapter 3.00.  Install the adapter, including the Firefox extension and perform the following steps:

  • Download the Demo Adapter 3.01.  This includes the Adapter 3.01.
  • Run through setup and install it in a different directory.  Ensure you install the Firefox extension.  Cisco’s in C:\Program Files\Cisco\CRM Connector\ Adapter\ and Salesforce in C:\Program Files\\Demo Adapter 3.01.
  • Go to the Demo Adapter 3.01 folder and register the SFDCFirefoxConnector.dll and SFDCFirefoxConnectorPS.dll.
    • You can register them by double clicking on the file and opening them with C:\Windows\System32\regsvr32.exe
  • Restart Firefox.

Firefox should now be working with your instance.  Please note that you now have two adapters and you must be running Cisco’s version 3.00 in order for this to work.  I’m assuming someone at Cisco didn’t package the right DLL and or the right Firefox extension (which is included in the Demo Adapter 3.01 folder sfdcffextension.xpi).


mRemote and Cisco’s AnyConnect Client Issues

I love mRemote.  Makes keeping track of all the different connections (RDP, VNC, SSH, etc.) a breeze.  However, I’ve recently noticed that after I installed Cisco’s AnyConnect client I could no longer open my existing connections or create new connections.  Upon startup I would receive the following window:


What I ended up having to do is remove AnyConnect and then disable FIPS encryption following this link


Works like a charm now.  More than likely you don’t have to remove AnyConnect, however I don’t use it that much and rather just remove it all together.


PS: The mRemote project is dead at version 1.5, there’s a fork out there called mRemoteNG which I’m trying out check it out here

Cisco UCCE Outbound Option Find Query Rule for Dialed Record

Here’s a simple query using an inner join to find out which query rule added a certain record to the dialer.  This is pretty useful when you’re trying to figure out why a record was dialed which went to the wrong skill group.  The only challenge here is joining two different tables in two different databases, in this case the HDS and AW databases.


SELECT [DateTime]
      ,[CustomerTimeZone] AS CustTimeZone
      ,[SkillGroupSkillTargetID] AS SGID
      ,[AgentPeripheralNumber] AS AgentExt
  FROM [dam_hds].[dbo].[t_Dialer_Detail]
INNER JOIN [dam_awdb].[dbo].[t_Query_Rule] on [dam_hds].[dbo].[t_Dialer_Detail].QueryRuleID = [dam_awdb].[dbo].[t_Query_Rule].QueryRuleID
WHERE DateTime > ’10/01/2010′



CTIOS Error 10125

PeripheralErrorCode:10125 AgentID:1000 UniqueObjectID:agent.5000.1000
     MessageID:eControlFailureConf MessageType:eSetAgentStateRequest
     ErrorMessage:IPCC Error [10125]You have attempted to log into an invalid
     instrument.  If you think it is correct there could be a configuration error.
      Otherwise, check the number and try again. FilterTarget:agent.5000.1000

I recently ran into this error and for the life of me could not figure out what was wrong.  So, the first thing I did was make sure it was happening on more than one PC, check.  Next, checked if it was happening with more than one phone, check.  Next, check if it happens with both PGs… this is where I noticed that I could login to one PG, but not to the other.  Which then lead me to check the configuration of both PGs and found that the PG configuration for the PG where the login was failing had an agent extension of 7 digits instead of 10 digits.  Thus why CTIOS was rejecting my login to a phone with an extension with 10 digits.



Cisco ICM Admin Script Will Not Run

I ran into an issue yesterday which I’m still not 100% sure as to why it happened, but I at least was able to clear it  up.  I created an administrator script which did run even though it was scheduled to run every 30 seconds.  The script even when down to a start and end node only and still no response.  So, when making changes in ICM the first place to look at is the router.  Did a quick “cdlog ra /last /o” and the ra.log showed the following:

   1:  21:02:40 ra-rtr Trace: Undefined symbol: Global.userMy_UserVar. 
   2:  21:02:40 ra-rtr Add of ScriptData warning. 
Unable complete script load 7300: Undefined symbol: Global.userMy_UserVar. 
   3:  21:02:40 ra-rtr All configuration operations complete. 

So, if nothing else, this lets me know that there is something in my config which is not right and it’s possible that new changes might be queued up and that’s why my admin script is not running.  I went through all references of my user variable and removed them.  I then deleted the user variable and created a new one with the same name and put it back in every script.  Looked at the router log again and it looked clean.  After that, the admin script ran fine.



David get’s a silver badge

I try to stay involved with Cisco’s forum as to try to give back to the community a bit as well as trying to get some knowledge from the masses.  While I’m not a know it all it’s nice to have a little bit of recognition.  Last week i went from Bronze to Silver, which based on points others award you for the answers you provide. :-)

BadgesI have a long way to go before getting those 25k points… wonder if I could turn them in for cool Cisco gear?


More Fun with ICM Script Editor

I really debated calling this, “How ICM Script Editor Allows You To See The Forest Through The Trees”, but I try to make titles which are relevant to my post.  Regardless, here is my latest fun encounter with Script Editor.

I was working on a script, which all of a sudden didn’t work as it originally did.  I checked the ToD routing logic, it was right.  I checked the admin scripts, they were right.  I checked every single node leading up to that step and they were all right.  I had two co-workers check it for me and they could not find the error either.

This is a small example of what I was looking at:

Script Editor Wrong

Now, in the above example it should be really apparent what is wrong, if you haven’t caught it, I’ll let you see what a correct script would look like:

Script Editor Right

Yep, no connection to the If node.  Now, you’re probably thinking, what is this guys thinking, that’s so easy to spot.  You’re right it is easy to spot when you have 4 nodes, but when you’re script spans multiple pages and has hundreds of nodes, it’s a little harder and honestly after starting at a script like this for weeks

















you become crossed-eyed.


Frustrations with Cisco’s ICM Script Editor

So, I’ve been working with ICM scripts for what feels like ages, but in reality is more like 5 years. In the last 2 years though I spend more time scripting than anything else… well except documentation, but that’s another story.

Regardless, here are a few frustrations I constantly face when using ICM script editor.

1. No find and replace. This should be very easy to do and would help greatly, specially when working with CVP and you need to modify a VXML URL or when you’re working with formulas which need to be updated to include some new variable.

2. Copy and paste does not respect the fact that you’ve specified the Snap to Grid option. Yes, copy and paste rocks when you need to write a bunch of scripts which are similar, however, having to remember to snap your recently pasted script to the grid is a pain in the butt and I often forget it.

3. Call Tracer. Personally, I would like to see the call tracer as an independent window which can be sent to the back ground. If you’re working with a very small screen, you have to move the tracer around while looking at your script. In addition, the windows can be so much bigger by default. Can’t they just auto-size? See below.

ICM Script Editor Call Tracer

4. Formula Editor. Is there really no better way to display the formulas being written? Some of my formulas are pretty long which require that I writ them on TextPad first then move them to Script Editor. This allows me to lay them out a little better, specifically when trying to make sure I have enough parenthesis. For example, the formula below shows up like this:


Surely, there’s a better way to display this.

One thing I miss about Genesys is their slick UIs and Cisco knows nothing about UIs. Hope to see some changes in the future, but I wouldn’t bet on it.