Andy,
Long time no talk. I have attended some of your INAAU presentations so I know you are very knowledgeable and want to apologize in advance if I state the obvious.
The problem is associating the outbound call with the ACD call/skill that preceeded it. CWCs and stroke counts won't help identify the associated skill. I believe that there is opportunity to do so with a custom CTI/ASAI application. AUXOUTADJCALLS tracks outbound calls within a split/skill for calls placed by an adjunct.
We are a small call center, primarily inbound but with a requirement to make outbound collection calls. To facilitate reporting on these calls we established AUX reason code 2 as the "Collections" mode. (Other AUX codes are used to identify Agent states, ie lunch, break, potty, etc).
Because we are small (40 agents) we have the luxury of tracing all agents without impacting CMS usage/performance. Agent trace info provides us with key data on our outbound calling campaigns. We have a PC that uses a CMS supervisor session, via Visual Basic, to collect the trace data at regular frequent intervals and accumulate it into a data structure for storage. (As an aside, we also collect call record data in the same manner. We don't have to worry about exceeding 400 calls/20 minutes.) There is no reason that you couldn't access this via ODBC.
Having this data allows me to report on ACD skill activity and to include Outbound calling as a separate "skill". Unlike a real skill I don't get DISPTIME/ACW/etc but I am pretty much only interested in call count, call duration, callee. In terms of processing callee, I maintain a table of "known" numbers accumulated from call accounting sources. This allows me to exclude home calls, calls to numbers associated with our company (external internal calls) and friends.
Depending on the activity patterns of your agents you could associate these outgoing calls with an incoming ACD call. If the workmode pattern is something like "ACDIN - ACW - AUX0 - AUX2" it is easy to connect the AUX2 outgoing call with the ACDIN skill. If there is a longer delay or other ACDIN activity inbetween this becomes more problematic. However if you have a high ANI presentation rate and call back to the number presented, you can connect the calls by searching a table of ACDIN calls.
Another option would be the following:
When agents need to make an outgoing call they dial a specific VDN. The VDN asks them to enter the number they want to call, stores it in a variable, and then asks them for the skill to associate with the call. The vector then routes to the prior entered number. A call record entry will be made where the agent's call to the VDN is recorded and LASTDIGITS contain the skill number they entered. If you don't have variables, you could make one VDN per skill.
The problem with call records is that without the ECHI you run the risk of losing data during busy periods. You can minimize that risk by increasing the frequency of data extraction. I collect data each hour for the 2 prior hours. Why the 2 prior hours? Cuz if you just get the past hour you could miss a call that crosses the hour boundary.
FYI, i built and tested the VDN method and it works fine. Combining report data within CMS is not my forte and is left for the reader. I report this type of info via VB/EXCEL.
Let me know what you think.