This discussion is locked

ASK THE EXPERT - UNIFIED CONTACT CENTER EXPRESS

Unanswered Question
Mar 14th, 2010

Welcome to the Cisco Networking Professionals Ask the Expert conversation.  This is an opportunity to learn about installing, configuring and troubleshooting UCCX with Cisco expert Ryan LaFountain.  Ryan is a technical and team lead of a Unified Contact Center Express TAC team. He has worked at Cisco for about 3 years as a TAC engineer. He has experience with voice gateways, CallManager Express, CallManager, IP IVR and Unified Contact Center Express and how these integrate to form Cisco’s Unified Communications solution. Ryan is excited about educating folks on Cisco’s Contact Center offerings to help them increase productivity and lower costs in the call center. He has a Bachelor’s degree in Information Science and Finance from Northeastern University in Boston, Massachusetts.

Remember to use the rating system to let Ryan know if you have received an adequate response.

Ryan might not be able to answer each question due to the volume expected during this event. Our moderators will post many of the unanswered questions in other discussion forums shortly after the event.  This event lasts through March 26, 2010. Visit this forum often to view responses to your questions and the questions of other community members.

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 3.8 (6 ratings)
Loading.
Aaron Harrison Mon, 03/15/2010 - 03:47

Hi Ryan

I had a query from a customer recently regarding enabling staff to log in and service Contact Centre (UCCX) queues remotely during disasters/bad weather etc.

A couple of things came to mind... I wondered if you could comment on the feasibility/supportability from TAC for each solution (obviously any voice quality or other Internet related issues being down to the customer to resolve, and assuming we have any VPN configured appropriately to give fully support a standard home-based VoIP endpoint with two way voice etc):

1) Remote worker using both IP Communicator and CAD via VPN

2) Remote worker using physical phone with ASA-based phone proxy and IPPA

3) Remote worker using physical phone with ASA-based proxy and CAD-BE

4) Are there any roadmapped (or current that I'm not aware of) remote-agent features for UCCX? Any examples of things you've seen customers doing succesfully?

Thanks

Aaron Harrison

Ryan LaFountain Mon, 03/15/2010 - 10:23

Hi,

The most important thing here is to make sure all the ports are opened. You can find the port utilization guide here:

http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/crs/express_7_0/configuration/guide/uccx70prtuti.pdf

The last section goes over port utilization for CAD and CSD. It is horribly written, but all of the ports are there.

I don't see an issue with any of the three situations you have described. UCCX and CAD/CSD interaction is basically layer 3 independent, as long as you can reach the devices and they can communicate, the network in between doesn't matter so much. Although we don't have official support for remote agents like in UCCE, I have seen customers run CAD and IPPA through site to site VPN, and through teleworker solutions such as SOHO routers with VPN and through ASA phone proxies as well.

One thing to keep in mind is that monitoring and recording will not work if you are using SPAN based monitoring and recording and the server and the SPAN source are on different layer 3 segments.

Other than that, it should work fine.

What I see most of the time is agents at home connected through either software or hardware VPN using IP Communicator and CAD. I am not aware of any enhancements on the UCCX roadmaps to enhance this functionality, but they have laxed the network requirements between UCCX and CAD in the latest versions, so I think we're starting to see support for these architectures.

tenaro.gusatu.novici Mon, 03/15/2010 - 04:02

Hi there,

can you tell us what are the major news coming with version 8.0? I was working once with CRS and not familiar with improvments but would like to find answers for few basic questions:

- Is UCCX still windows based application or is now running on Red Hat Linux? What about upcoming version 8.0?

- Is it still only about incoming voice or we can have chat too (messaging)? What about video calls?

- Are there any outbound possibilities?

Regards,

Tenaro

Ryan LaFountain Mon, 03/15/2010 - 08:05

Hi,

Most of the documentation for UCCX 8.0 has been posted at the link below. You can check out the Install Guide and Administrator Guide. The SRND is still undergoing edits and should be posted in a few weeks.

http://www.cisco.com/en/US/products/sw/custcosw/ps1846/tsd_products_support_series_home.html

To more directly answer your questions:

1. UCCX 8.0 is the first release running on the Linux platform. It is using the same UC OS as Linux based CUCM. We have basically borrowed the OS from CUCM and have written our code on top of that. As a result, much of the code for UCCX has been rewritten to accomodate the Linux environment. There are a few minor changes to the actual application, but most of the functionality is identical to UCCX 7.0(1). The look and feel of the UI is now similar to CUCM, but the functionality of the application is the same.

2. UCCX handles two types of contacts in 7.0(1)SR1 and later, inbound voice and email. Agents can now accept and reply to emails sent to a distribution group on Microsoft Exchange. Web chat functionality is still through eGain CIM integration although I am not sure you can actually order an eGain product for integration with UCCX, only UCCE. I believe this is a feature roadmapped for further revisions of UCCX and may be implemented by Calabrio or Cisco. At this time, we are not sure.

3. UCCX does contain an outbound dialer. More information regarding this is in the Administrator Guide at the link above. Essentially, it is a preview outbound dialer where contact lists are uploaded into the system which then reserves the agent. If the agent accepts the outbound contact, it is dialed through the dialer and bridged to the agent's phone. The agent can then set a callback time, reject, skip, reject-close, skip-close the contact or mark the number invalid in additon to some other functions. The Administrator Guide has more on this, but it is a pretty powerful feature and we're seeing more and more use in the field.

Please let me know if this answers your questions.

highnessg Mon, 03/15/2010 - 06:20

Hi All!

I will really appreciate to know the difference between CallManager and CallManager Express.

If i would like to trunk two IPBXs(e.g. Cisco and Alcatel) via SIP,

Which one is advisable to use?

Thanks

Ryan LaFountain Mon, 03/15/2010 - 14:00

Hi,

Although this discussion is maily focused on UCCX, I will attempt to answer your question. If you have two IPBXs each with call control functionality, you may just need a CUBE to do SIP to SIP interworking with media flow around if they're both yours and media flow through if one is not controlled by you. You could also use CUCM to interwork these together if both are set up as SIP trunks in CUCM.

Someone more involved with gateways or CUCM can probably answer better.

CallManager is an enterprise call agent and can handle up to 30,000 phones per cluster. It runs on a server over a modified version of Red Hat Linux. CallManager Express (CME) is a much smaller call agent for SOHO and medium sized deployments. It runs on a router with specialized code.

I would explore the documentation on cisco.com, especially the SRNDs to learn more.

Tanner Ezell Mon, 03/15/2010 - 08:39

I have two questions:

     1. Has the horrific (to put it politely) database scheme been corrected in version 8?

     2. How to properly calculate (not using the built in stored procedures) logged in time/not ready time based on the scheme found in version 7.x and below.

Cheers

Tanner Ezell

Ryan LaFountain Mon, 03/15/2010 - 10:16

Hi,

You can find the database schema for UCCX 8.0 here:

http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/crs/express_8_0/user/guide/uccx801dbschema.pdf

Taking a quick look it does not appear there are any major differences in schema.

As you may know, agent states are held in AgentStateDetail. The eventType decode is:


1—Log In
2—Not Ready
3—Ready
4—Reserved
5—Talking
6—Work
7—Log Out

You should see consecutive states for agents in the table. For example, if you see a Login, you should see a Log Out before the next Login. We have found that this is not always the case and are currenty investigating why that is, but as of now, we have not been able to determine the root cause. I have filed CSCte75642 for investigation into this.

Events in this table are point in time and do not include a begin and end such as those records in ContactCallDetail. Your programming language for parsing this information should be able to come up with the difference between consecutive events. For example, if you craft a SQL query to pull ASD information for a particular agent and order it by eventDateTime. Then, take the time of n+1 - n and you should have duration in that state. I have never done this, so if anyone else has feedback on the logic, let me know. Keep in mind that some states are generated by the system under normal operation. For example, you will see a Log In event and then immediately a Not Ready even with a reason code for 'Agent Login.' So, I would run a test call to an agent in the lab or during off hours and see what gets written to the DB.

Tanner Ezell Mon, 03/15/2010 - 12:07

Hi Ryan,

It's unfortunate to see the database scheme fundamentally unaltered,

however I understand this from a backwards/product compatibility

standpoint.

Regarding the event AgentStateDetail table, I would really love to see

some SQL detailing the procedure in a concise form (Reading the Stored

Procedures is less than straightforward). As you have mentioned there

are occasions when you will have a second login even before a logout

event. Additionally, because the ASD table uses agentID, this value

may change during even periods causing an agent to log in as agentId =

1, and log out as agentId = 4. I fail to see the reason to use a

non-unique identifier in the fashion versus say, the resourceLoginId

field. The only reason I can think of for this is to track changes

matching to specific resource changes, however even this seems

unlikely and is of poor design.

If anyone has any insight to the contrary I would be most happy to

hear it. This design baffles me and is crude in its execution. As a

result, getting agent state data has proven to be computationally

expensive task and leads to product specific SQL (T-SQL in this case).

I appreciate your time Ryan and look forward to any insights on this matter.

e.gailiss Mon, 03/15/2010 - 08:44

Hi, Ryan!

A short question more related to future of the product, not 8.0. Are there any plans to de-couple CAD and CRS editor from CCX?

Let me explain. Many of us have more than one customer and usually all of these customers don't have one version of CCX. Add to that IPIVR. Currently one version of CCX "things" (agent desktop, supervisor desktop, editor) does work only with one particular version of CCX and with one particular cluster. End result is that to develop scripts for one customer and then switch to work with another I have to reinstall at least CAD and script editor. At the moment it's not a problem with editor - I use remote desktop. With version 8.0 in order to switch from one customer to another I will have to reinstall editor also. Maybe there are plans to switch editor to eclipse-base version, like with CVP?

Thank you!

Ervins

Anthony Holloway Mon, 03/15/2010 - 09:19

I was faced with this same challenge when I started working exclusively with UCCX.  I found that by using a virtualization strategy, vmware workstation in my case, that I am able to have a single vm dedicated to a customer and all of their version specific CCX software.  I have had no issues with this setup for the last 6 months or so.

e.gailiss Mon, 03/15/2010 - 09:50

I do the same. I have 6 virtual machines, just to be able to switch relatively quickly from one customer to another. It gets cumbersome really fast. Not to mention a lot of wasted disk space. Basically, to be able to run 20-30M software you waste about 6*10G.

ervins

Ryan LaFountain Mon, 03/15/2010 - 10:04

Hi,

I was going to suggest what you seem to have found already with VMWare. I do not think they will be splitting these anytime soon. As we have made the decision to work with a single vendor for clients in UCCX (Calabrio, with exception of the Editor) as opposed to providing an API like in UCCE, I think the clients will be version locked for some time to come.

yukiyamamoto Tue, 03/16/2010 - 05:10

Hi Ryan,

Can you tell me below questions about scripting on UCCX7.0?

1. I'm planning to use Select Resource step to customize my script.

I'm not using connect option of Select Resource, and

I set the Goto step in the Selected branch.

In the Select Resource step, an agent status is reserved at Selected branch.

I expected that an agent status would be released from reserved state

and change to available after the Goto step.

But after Goto step, still an agent was reserved state.

The agent was released after call disconnected.

Is it a correct performance?

If this result is correct, how do I change the agent status without disconnect?

Best Regard,

Ryan LaFountain Tue, 03/16/2010 - 05:15

Hi,

Can you post the script for review?

Why are you using a GoTo step in the Selected branch of the Select Resource step?

yukiyamamoto Tue, 03/16/2010 - 06:15

Hi Ryan,

sorry, I can't post the actual script.

but the reason why I choose Goto step, I expected that

If the script flow goes to  after the Select Resource step, the agent will be released reserved state.

Actually, If the flow goes to True branch in If step, I'd like to change the agent status is available.

So, I use Goto step, and I want to go out from Select Resource step.

thank you.

yukiyamamoto Tue, 03/16/2010 - 06:31

Hi Ryan,

I'd like to add some infomation, I know I don't have to use Goto step.

If the flow is into Select Resource step, an available agent will be reserved.

Which step will the agent status change from reserved to available?

thank you.

Ryan LaFountain Tue, 03/16/2010 - 08:30

Hi,

When you hit the Select Resource step and the system finds an agent, it places that agent into Reserved and begins to ring the agent's phone. This logic is contained in the Select Resource step and is hidden from view in the Script Editor. This is done by the system automatically and the behavior cannot be changed.

If the transfer to the agent fails for some reason such as a ring no answer, and the system is unable to find another agent in the CSQ in 'Ready' state, the call is placed in the Queued branch of the Select Resource step.

Agents are transitioned into the 'Talking' state after the 'Reserved' state once they pick up the call allocated to them and are connected to the caller. By default, agents are returned to the 'Ready' state after a call has been completed if Work mode is not configured.

So, for an inbound call, the normal agent state changes are:

Ready->Reserved->Talking->Ready

I am confused as to why you would like to change the agent state from Reserved to Ready as this is not intended behavior of the system.

Anthony Holloway Tue, 03/16/2010 - 08:36

This is not possible.  Once you use the Select Resource Step, that Agent is reserved until the contact terminates or connects to the Agent.

You can technically handle this with a bit of black magic.  Consider the following:

...

select resource

     selected

          if the moon is falling

               true

                    dequeue call

                    call redirect to some other extension

                         success

                                  end

                         ...

               false

                    connect

                         ...

     queue

          ...

...

The call redirect alone will achieve what you want, but give you an abandoned for that CSQ.

EDIT:  I was composing while there was no response, sorry to step on toes.

Ryan LaFountain Tue, 03/16/2010 - 08:40

Hi,

No worries about hijacking. From a serviceability and TAC standpoint I would not recommend doing what you have suggested. When I troubleshoot agent state issues I rarely look in the script as it is very rare for that piece to be the culprit.

Although what you said will work, there should be a very solid business case for configuring it this way. In addition, if you mark the call as Handled within 5 seconds of the Call Redirect step, you shouldn't get an abandoned but you may not see the call as Dequeued as Handled is a terminal state and happens after the Dequeue.

Anthony Holloway Tue, 03/16/2010 - 08:47

I couldn't agree more. If you didn't want to connect to an Agent, then why did you use the Select Resource step in the first place?

However, I was showing him, that sometimes, you have to get a little creative.

Ryan LaFountain Tue, 03/16/2010 - 08:48

Hi,

I know. Big ups to you for the creative solution. I just wanted to put that disclaimer out there for all of TAC

sorbid Wed, 03/17/2010 - 06:15

Hi Ryan,

a short question about scripting:

Is it possible to modify the calling number inside a UCCX script before redirecting the call?

Basically what we do is, we receive a call, and based on the first 4 digits in the calling number, we choose a redirect target. But before redirecting, we would like to discard the first 4 digits of the calling number. No CSQ / CAD etc. involved here. We use UCCX7.

Thanks for any suggestions,


Steffen

Ryan LaFountain Wed, 03/17/2010 - 12:35

Hi,

I do not believe there is a way to do this. You cannot modify the call parametes and set them in JTAPI again. Notice in the Editor that there is a Get Call Contact Info step but no Set Call Contact Info step.

Anthony or another scripting guru on here can confirm.

Aaron Harrison Wed, 03/17/2010 - 12:45

Hi

Depending on exactly what you want to modify in the calling number you may be able to do it with a translation pattern in the CSS assigned to the UCCX CTI ports.

E.g. send the call to a dummy number which is actually a translation pattern, then modify the called/calling numbers as required and route to the intended destination.

Regards

Aaron

Ryan LaFountain Wed, 03/17/2010 - 12:58

Hi,

That may work.

But...

Depending on how you implement this, you may run into an unsupported config. If the call comes into UCCX and is redirected out to a translation pattern (or any device not controlled by UCCX) and is immediately redirected back to UCCX, bad things will happen

This is documented in the UCCX Release Notes for unsupported configurations on CUCM.

Aaron Harrison Wed, 03/17/2010 - 13:04

Ah yes - well, a loop is pretty much always a bad thing in telephony... I was assuming that we're just adjusting the way the calling number is presented to an external party...

Anthony Holloway Wed, 03/17/2010 - 15:35

You're correct, this is not possible via scripting today.  Maybe in the future. 

Props to Aaron for a creative solution.

Tanner Ezell Wed, 03/17/2010 - 09:52

Ryan,

I've come across an issue where a custom report takes more than 15 minutes to generate and apparently causes the HRC client to time out. How do I get around this? I've checked the hrcconfig file and it contains nothing specific to timeouts beyond login timeout.

You're help in this matter is greatly appreciated.

Ryan LaFountain Wed, 03/17/2010 - 12:06

Hi,

Can you please change the logLevel to 3 in the hrcConfig.ini and reproduce the issue. Then, attach the ..\logs folder and the time of the attempt.

bathula.srinivas Thu, 03/18/2010 - 02:52

Hi Ryan,

I’m trying to configure Route point in UCCX 5.0 in Lab environment.

How to configure a simple script RPàCSQàAvailable agent get callàEND.

I have done the following configurations:

1.       Configured ‘Call Control Group’.

2.       Added an ‘Application’, selected icd.aef script.

3.       I have added a new Trigger.

If i dial route point number the call is getting connected to the CTI port numbers instead reaching to the Agent who is in Ready state.

Can you please advise where I’m going wrong?

Ryan LaFountain Thu, 03/18/2010 - 08:05

Hi,

You will always be connected to a CTI Port when you call UCCX and hit a script. The CTI Port will then perform a consult transfer of your call to an available agent in the CSQ you have defined in the Select Resource step in the script.

In the application configuration page in AppAdmin for the application bound to icd.aef, have you defined the CSQ in the parameter?

What does the caller experience when they call that application?

Tom Dillon Thu, 03/18/2010 - 18:45

Hi Ryan, I have a site with two CME's.  The primary CME handles all the phones and the secondary CME at the same site is configured to be the backup.  I also have two T1/PRI circuits for PSTN calls, one on each router for redundancy.  I route the calls on the secondary router via a VOIP dial-peer to the primary CME.

I want to add UCCX and I understand that I can only configure UCCX to one of the CME's.  I am planning to handle an UCCX outage with local B-ACD tcl script on CME.

My question is coming from the Provisioning of UCCX with CME and the supported deployment models.  Will I have problems with calls originating from the secondary router's T1/PRI to the primary CME and terminating on UCCX?

The document shows Provider--H.323 Trunk--CME--UCCX not supported and I am not sure if that is the same condition that I am planning to implement:  PSTN--H.323--CME-UCCX.

Thanks,

Tom.

Ryan LaFountain Thu, 03/18/2010 - 19:01

Hi,

From reading your description it looks like the call flow would be the following:

PSTN ---- CME --- H323 ---- CME ---- UCCX

for calls routing from CME 2 to CME 1 or

PSTN ---- CME --- UCCX

for calls routing directly to CME 1.

Unfortunately the first is the unsupported deployment model. The issue is that CME essentially becomes a CUBE/IP IP Gateway as it runs SIP from CME to UCCX so you would be doing H323 to SIP interworking. From experience, I would not test this unsupported configuration as it gets particularly nasty when it starts to fail. You will start seeing e-phone DNs being hung, so even if the call clears off the IP phone, picking it up again will not yield dial tone. In cases I have seen, once it starts with one phone, the rest of the phones on that CME follow in about 20 minutes and the only recourse is to reboot the router

Does CME 2 service calls all the time or are calls only sent to CME 2 from the PSTN should the provider deem it is necessary when the PRI 1 to CME 1 is out of service?

If so, you could just not route calls destined for UCCX over CME 2 and handle it locally as you said.

The scenarios would be as follows:

1. Normal operation with calls coming in over PRI 1 going to CME 1 and UCCX. No calls are coming over PRI 2 and CME 2. No calls coming from CME 2 to CME 1 to UCCX.

2. CME 1 or PRI 1 goes out of service. Calls start coming in over PRI 2 to CME 2. There are no dial-peers configured on CME 2 that route the numbers on UCCX. CME 2 contains some other call treatment for these destinations.

In theory this should work, but please let me know if I have misunderstood. In the end, although the documentation says 'provider' we really mean that calls to UCCX must have a PSTN leg and cannot be originating from a VOIP leg.

Tom Dillon Thu, 03/18/2010 - 20:32

Thanks Ryan, the telephone-service on CME1 is configured with the a secondary IP Address for CME2.  The two T1/PRI circuits are in a trunk group from the telco provider and they route our inbound calls on both T1/PRI's.

So we can not control which T1/PRI the inbound call will be routed by our provider.  I was thinking since the inbound call was still coming from the T1/PRI, that it may still work.

Would it be correct to state that the inbound leg of the call to be routed to UCCX must be on a voice port on the same CME that is provisioned with UCCX?

Thanks for the help.  Also, do you happen to have comparison of the UCCX features between CUCM and CME.  I have been gathering the information, but I didn't find a nice simple table with a basic list.

Ryan LaFountain Fri, 03/19/2010 - 06:05

Hi,

Technically you may be able to pull this off if you run a separate PRI between the CMEs. You can configure one side to emulate network and one side to emulate user. Then, you can point the numbers destined for UCCX out of a POTS dial peer on CME 2. This should allow callsto come in on CME 2 and be sent out the PRI to CME 1 to go to UCCX.

The only thing you have to watch is clocking. You will need specific hardware that can separate clocking domains. You will be taking clocking on the PRI from the PSTN, but the PRI between CME's may have to have its own clocking domain. If not, you may get slips across that call flow.

In theory in my head, this works, in practice I am not so sure. I would definitely test before putting this into production.

The best place, although quite long, to get this information is the SRND:

http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/crs/express_7_0/design/guide/uccx70srnd.pdf

dmurthy74 Fri, 03/19/2010 - 07:08

Hi,

     I have this requirement where in the CAD’s browser tab will have to be set to the following URL and I find that when I try to set the request data within the HTTP action set up with the cisco worklow administrator, I am unable to set the %3D (after the ‘=reportedby’ )as is excepted by the following URL.

http://10.212.37.155/maximo/ui/login.jsp?event=loadapp&value=sr&additionalevent=insert&additionaleventvalue=reportedby%3DMXBDAVIS.   If you look into the screen shot, I am able to insert the %3D in between the ‘additionaleventvalue’ and the ‘reportedby’. The destination (IBM’s TSRM instance) doesn’t recognize this and hence I will have to configure the %3D as given in the above URL.

Any thoughts on how this configuration can be achieved?

Thanks Much,

DM

Attachment: 
Ryan LaFountain Sat, 03/20/2010 - 05:47

Hi,

I saw you opened a TAC case on this

Anyway, I am a little confused by your question. Can you confirm that the following is what you're getting:

http://10.212.37.155:80/maximo/ui/login.jsp?event=loadapp&value=sr&additionalevent=insert&additionaleventvalue%3Dreportedby=DMURTHY

And the following is what you want:

http://10.212.37.155:80/maximo/ui/login.jsp?event=loadapp&value=sr&additionalevent=insert&additionaleventvalue=reportedby=%3DMURTHY

I tested this with 8.0 and it looks to me like any '=' character in the name is replaced by %3 automatically. This may be the system as designed, but we may be able to get them to enhance it.

I tried to set the variable as:

Name - additionaleventvalue

Test Data - =reportedby=DMURTHY

As we can do string concatenation in the script before sending the Enterprise Data to the CAD workflow, but these were replaced by %3 as well and it was not taken as a literal string.

A request has already been made to Calabrio for this issue and you can track that in the TAC case, but it doesn't look like there is a way to include special characters in the value fields of the HTTP Action. In addition, it looks like any name must be followed by a value and you can't have nested names in the URL.

Interesting issue, I'll keep track of the TAC case to see what happens.

dmurthy74 Tue, 03/23/2010 - 08:26

Thanks Ryan,

     I am waiting on the response from the TAC case too. But for now, I have tried to set this value , "reportedby=DMURTHY" with my script as an enterprise call variable and using that within the HTTP action set up. The value DMURTHY will actually be the employeeID that will be collected by the IVR script & hence I have tried this workaround. But , then the entire string " reportedby=DMURTHY"(or what ever value that the caller enters) will be seen on the Enterprise window of CAD. But until TAC has a better solution, I will be providing this solution to my customer.

DM

Ryan LaFountain Tue, 03/23/2010 - 13:14

Hi,

I am surprised this works. When I was testing it previously, I put "reportedby=DMURTHY" into the Test Data section of the HTTP Action and it replaced the = with a %3. So, it must be different when coming from the UCCX Engine. My guess is that it is escaping that = in the string before passing to CTI Storage Server and therefore it treats it as one string.

I'll keep an eye on your case, but interesting stuff...

James Hawkins Fri, 03/19/2010 - 13:18

Hi Ryan,

Are Cisco thinking of developing an Attendant Console front end for UCCX? I think that this could be fairly straightforward and with the move to the Linux OS in 8.0 would allow us to eliminate Windows as a server platform entirely for UC installs

I think there is a big market for attendant consoles which is not being satisfied feature/function wise by the existing Cisco offerings and the pricing for Arc is just silly.

A UCCX attendant console client, with the possible future option of running UCCX on the same box as CUCM (similar to CUCM and Unity Connection in Business Edition), would sell well to my client base.

Marwan ALshawi Fri, 03/19/2010 - 17:25

Hi

i have quick question about UCCX 8

how we can integrate with an external database to be used with CRS editor

with the older version we use ODBC in windows, what about now how this cane be archived with this Linux version ?

also with the windows version if there is problem with CUCM and LDAP the login to the UCCX Admin page will be effected because the user login is taken from LDAP>CUCM

but we can use a CRS tool to recover the login ( back to fresh setup) with this new version is this possible ?

if yes how ?

thank you for your time

Tanner Ezell Fri, 03/19/2010 - 17:49

Marwanshawi,

You'll still use ODBC for the connection, but now you'll use the

informix driver.

I assume pwreset will be present on the new version.

On Fri, Mar 19, 2010 at 7:25 PM, marwanshawi

Ryan LaFountain Fri, 03/19/2010 - 19:19

Hi,

You will have to load the Unix/Linux JDBC driver appropriate for your external database (Oracle, SQL, DB2, Sybase etc.). Once you upload the driver as a .jar file, you will select the class from within the .jar file that runs the driver. This will be replicated over to the second UCCX node automatically so it will not require any manual work on the second node like previous version of UCCX.

For example, I have a connection from UCCX 8 to a MSSQL 2005 database. I have downloaded                              net.sourceforge.jtds.jdbc.Driver from Sourceforge and uploaded it to AppAdmin. I can then define a Datasource to use this drive and also define the JDBC URL as:

jdbc:jtds:sqlserver://

After this, I can then use this Datasource in the Editor as normal.JDBC URLs may be different for different types of servers, so you may just have to look up which one to use for your type of Enterprise Database.

The tool you are referring to is called CET. CET still exists in UCCX 8.0, it is just run on a client machine instead of on the server. In order to access CET, you need to contact TAC to create a remote support account for root access to the server. Once you attain root access, you can download the CET tool from the file system through any SSH/SFTP client. Running the CET tool from a client machine will prompt for login in which the root username created as a remote support user and the root password must be entered. Once validated, all CET functionality is the same as previous versions including setting the AppAdminSetupConfig back to FRESH_INSTALL for password recovery.

Ryan LaFountain Fri, 03/19/2010 - 18:55

Hi,

I do not think there are plans to develop an AC for UCCX. I think Cisco has made a decision to farm all of the AC software out to ARC as you have mentioned and not develop in house. I can't be sure about that as it is a different BU than the Contact Center products. I am not aware of any plans to integrate this functionality into UCCX as AC and Contact Center normally serve different markets. In addition, purchasing a UCCX for only AC functionality may be more expensive than the ARC products.

It is definitely a good suggestion and I would see if your Cisco account team has heard this from other customers/partners as if there is enough support they may be able to file a PER.

Ryan LaFountain Sat, 03/20/2010 - 05:49

Hi All,

Thanks for the great questions and feedback so far!

With one more week to go, does anyone have any questions about serviceability and troubleshooting? As a TAC engineer, this is where I think I can add the most value.

If you have questions about log location, what is captured in each log, reading logs and overall serviceability, bring 'em on, I'd be more than happy to answer!

If not, any types of questions will do!

Thanks,

Ryan

Anthony Holloway Mon, 03/22/2010 - 07:58

Thanks Ryan.  I actually find myself doing quite a bit of troubleshooting, in addition to design, and configuration.

One thing I have found very useful is turning on ENG debugging from the start, so that each step is written into the log file.  This way, when a failure is reported, I just find the point in the log where the call dropped, then work my way up the log, looking for the last executed step, and I'm on my way to identifying a scripting error.  (i.e., Invalid Null left operand, when you are dividing by a Null value -- this usually happens when grabbing Stats in a script and then trying to convert them for playback to the caller)

What are some other tricks of the trade for viewing, parsing, interpreting logs?  Are there any tools for UCCX, like TranslatorX?

Ryan LaFountain Mon, 03/22/2010 - 08:35

Hi,

Yes, ENG tracing is very useful and I normally turn it on as one of the first troubleshooting steps.

I use TripleCombo http://www.employees.org/~tiryaki/tc/ although it says it is used for CUCM traces, I just use the Advanced TC as a text parser. I find it works well.There isn't much difference between this and any old text parser like TextPad so there is no decoder or interpreter like TranslatorX for CUCM traces.

To follow a call, parse for the implID which is in the call.received message in a UCCX environment. In IP IVR, grep for the dialougeID and the implID. This will show you all messages related to the call and you can normally see where it is failing and why by just this.

To troubleshoot agent state changes, I search for the string 'Rsrc: New State:'

Agent state messages do not contain call idenitifiers so you kind of have to match them up manually.Looking at the reason codes, and time between messages and the state flow (Ready->Reserved->In Session) and the actually call flow and comparing it to normal can give you a good idea of what is going on in the system.

Your call flow should contain the following messages in order:

Call.received - when the call first hits UCCX

Call.associated

Call.accepted

Call.attributed

Call.answered - when we hit the Accept step in the script and media is cut through

Any errors in these steps are normally the fault of JTAPI or CUCM.In these messages, we have a cn which is called number, a cgn which is the calling number and an atype which is how UCCX received the call (directly, redirected, forward all etc.).

Later on, you will see a enqueue(x) message which means that we're queueing to a CSQ.

403523: Mar 22 11:10:32.279 EDT %MIVR-SS_CM-7-UNK:RmCm contact 16781217[4001/1] (1) .enqueue(1)

The IAQ state of the call shows us what we're doing in terms of allocating an agent:

403528: Mar 22 11:10:32.279 EDT %MIVR-SS_CM-7-UNK:RmCm contact 16781217[4001/1] (1) .setIaqState(QUEUED_WAITING) from NOT_IN_QUEUE

403595: Mar 22 11:10:37.955 EDT %MIVR-SS_CM-7-UNK:RmCm contact 16781217[4001/1] (1) .setIaqState(NOT_IN_QUEUE) from QUEUED_WAITING

When the call disconnects or abandons off the CTI Port, you will see a TermConnDroppedEv:

403538: Mar 22 11:10:32.905 EDT %MIVR-SS_TEL-7-UNK:CallID:2 MediaId:4001/1 Task:27000000007 gets TermConnDroppedEv, meta code:132, cause code:100


Cause code 100 is normal call clearing in terms of UCCX.

These are just a smattering of messages that I look for when tracking a call through the logs. If you have more specific questions, let me know and I'll do my best to answer them.

emiliovazquez Mon, 03/22/2010 - 10:09

Hello Ryan

I have installed an UCCX 7.01 with a CME 7.1, there are two agents, each agent is using a CP7975 phone.

I want  each agent be able to answer/drive  at least four calls, how can i get this ??

Thanks in advance,

Emilio

Ryan LaFountain Mon, 03/22/2010 - 10:42

Hi,

Just to clarify your question, you would like one agent to handle four calls at the same time?

The system is designed to allow each agent to only handle one call at a time. The design is to find the most available agent. If an agent is on a call, we should look for another Ready agent as this agent is not available because they are on a call.

Actions

This Discussion