Author Message
PattadonBanthoonipit
Joined: Dec 8, 2011
Messages: 0
Offline
Hi,

We try to creating an outbound application based on CCXML.

when system calling (outbound) to customer, application must setVDUFields and then transfer to Agent (AIC Softphone)


** The question is Can CCXML create VDU Fields (connected to Avaya IC) ?

If not Can we have any workaround for do this solution ?


Thanks.
Pattadon B.
True Corporation Plc.
PattadonBanthoonipit
Joined: Dec 8, 2011
Messages: 0
Offline
Let's say in easier way, We want an application that can outbound to our customer after customer answering call then transfer to Agent.

In that moment, It have to lookup our database and set customer profile in Vdu for ScreenPop at Agent Machine.


Is there have any possible way to do ?

Please kindly sugguest me.


Thanks.
Pattadon B.
True Corporation Plc.
WilsonYu
Joined: Nov 6, 2013
Messages: 3950
Offline
There is no direct way to set VDU from CCXML. You would need to call up a speech application that uses IC connector to do this.
PattadonBanthoonipit
Joined: Dec 8, 2011
Messages: 0
Offline
Hi Wilson,

Thanks for your replied.

So, you mean that I must have a CCXML for outbound call and then transfer call to speech application (IVR) to create an VDU data. Am I understand right ?


and another question,
Do we have another way like an UUI or whatever that AIC Softphone can retrieved data ?


The point is an agent must know the customer profile.

In inbound call we used an VDU to stored profile.
But for outbound I don't know which is the best one.

Note.
Actually, I think this outbound type is look like an inbound because they have to transfering call to agent.


Thanks.
Pattadon B.
True Corporation Plc.
NeilGoldsmith
Joined: Nov 6, 2013
Messages: 902
Offline
The CCXML must invoke a VXML dialog which will perform the ICC operations for you.

You can pass info to the agent by setting fields in the VDU. Then transfer the call to the agent and VDU should be populated.
PattadonBanthoonipit
Joined: Dec 8, 2011
Messages: 0
Offline
Hi Neil,

Thank you very much.

I will create a VoiceXML app on tomorrow and updated the result to this thread soon.


Thanks.
Pattadon B.
True Corporation Plc.
PattadonBanthoonipit
Joined: Dec 8, 2011
Messages: 0
Offline
Hi,

This is an error message from report.log (VXML app)

14/06/2013 14:12:39:043 INFO - A7AE4B787DAB71A5AB781B0F377730A7:/Callback : Capturing exception [com.avaya.sce.runtimecommon.SCERuntimeException]. Message [ICNewCall:Timeout waiting for VOX to respond]
14/06/2013 14:12:39:049 INFO - A7AE4B787DAB71A5AB781B0F377730A7:/Callback : Capturing exception [com.avaya.sce.runtimecommon.SCERuntimeException]. Message [Error loading PluggableConnectorInitialize class [com.avaya.sce.runtime.connectivity.ic.pdc.ICConnectorInit] for initialVariablesPosted com.avaya.sce.runtimecommon.SCERuntimeException: ICNewCall:Timeout waiting for VOX to respond
**** Root Cause
com.avaya.sce.runtimecommon.SCERuntimeException: ICNewCall:Timeout waiting for VOX to respond
   at com.avaya.sce.runtimecommon.SCESession.throwRTException(SCESession.java:2080)
   at com.avaya.sce.runtime.connectivity.ic.ICCommand.setError(ICCommand.java:266)
   at com.avaya.sce.runtime.connectivity.ic.ICCommand.executeCommand(ICCommand.java:188)
   at com.avaya.sce.runtime.connectivity.ic.pdc.ICConnectorInit.initialVariablesPosted(ICConnectorInit.java:225)
   at com.avaya.sce.runtime.SCEServlet.processRequest(SCEServlet.java:574)
   at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:76)
   at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:282)
   at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:189)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:619)
]
14/06/2013 14:12:39:056 ERROR - A7AE4B787DAB71A5AB781B0F377730A7:/Callback : session id:CCEPM01-TYN-DEV-2013165071016-1 | Error processing request
EXCEPTION>
java.lang.Exception: com.avaya.sce.runtimecommon.SCERuntimeException: Error loading PluggableConnectorInitialize class [com.avaya.sce.runtime.connectivity.ic.pdc.ICConnectorInit] for initialVariablesPosted com.avaya.sce.runtimecommon.SCERuntimeException: ICNewCall:Timeout waiting for VOX to respond
**** Root Cause
com.avaya.sce.runtimecommon.SCERuntimeException: ICNewCall:Timeout waiting for VOX to respond
   at com.avaya.sce.runtimecommon.SCESession.throwRTException(SCESession.java:2080)
   at com.avaya.sce.runtime.connectivity.ic.ICCommand.setError(ICCommand.java:266)
   at com.avaya.sce.runtime.connectivity.ic.ICCommand.executeCommand(ICCommand.java:188)
   at com.avaya.sce.runtime.connectivity.ic.pdc.ICConnectorInit.initialVariablesPosted(ICConnectorInit.java:225)
   at com.avaya.sce.runtime.SCEServlet.processRequest(SCEServlet.java:574)
   at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:76)
   at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:282)
   at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:189)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:619)

   at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:130)
   at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:282)
   at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:189)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:619)

Please kindly suggest me how to solved.

Thanks.
Pattadon B.
True Corporation Plc.
RichardMudway
Joined: Sep 18, 2008
Messages: 7
Offline
Hi Neil, Wilson,

I am working with Pattdon... and have a question.

Do you know how the call *should* be handed off from CCXML to the VXML Dialog?

FYI - We are currently using the "dialogprepare" to pass call from CCXML, but this invokes the VXML via its Tomcat URL. And the CCXML is still active.

Thanks.
NeilGoldsmith
Joined: Nov 6, 2013
Messages: 902
Offline
You should do a Dialog Prepare and a Dialog Start. However, keep in mind that if you are doing IC operations using the VOX, there are strict guidelines as to the timing between IC and OD. The call must also route to IC so that IC is aware of the call. Once IC obtains the call information, there is a 4 sec window for the OD app to send the newcall for the app and IC to sync up.

The timeout below means IC never got the call information. If you send a newcall, IC will give up to 4 secs to see if the call arrives.
RichardMudway
Joined: Sep 18, 2008
Messages: 7
Offline
So we should verify that the outbound call is seen in the IC?

And then make sure that the OD app sends a newcall to the IC within 4 secs? I guess to verify this, we compare the IC log for outbound call with the IVR log containing the newcall command?

Also, what happens if the newcall command is sent after 4 secs?

Thanks.
WilsonYu
Joined: Nov 6, 2013
Messages: 3950
Offline
Yes, the call should arrive on IC first.
If you the newcall command is not sent within 4 secs, you will get an error that indicates you have no vdu/edu id for subsequent actions.
RichardMudway
Joined: Sep 18, 2008
Messages: 7
Offline
Hi Wilson,

Double checked this and have made some more progress....

As the call is created via CCXML and is outbound, the 4 sec sync interval is impossible. Therefore we have changed a setting on the VOX "No TS", as I have read else where on this forum that the EDU ID will be created on the IVR (VXML) newcall notification. And I can confirm that it is.

Using this setting, it is possible to now set the EDU fields, but they are not moving with the call. Thus the agent does not get the EDU fields that were set in the IVR.

However, the VXML cannot do any kind of transfer (via the IC or even a blind transfer). For the IC transfer, it says that there are "No TS Services", but for the Blind transfer the call just seems to linger in silence and not go anywhere. And it is as if the VXML must exit and return control allow the CCXML to terminate as well.

What is the proper way to transfer a call in VXML once handed off by CCXML via the "dialogprepare"?
And is there any way to debug what is going on?
RichardMudway
Joined: Sep 18, 2008
Messages: 7
Offline
I need to perform some more test, but I believe that I have seen some open sessions in tomcat when I try to transfer inside the IVR (VXML).

Is there any way to prevent these? Because if the IVR could perform an AIC transfer then this would resolve everything.

TIA.
NeilGoldsmith
Joined: Nov 6, 2013
Messages: 902
Offline
You can perform a transfer using VXML in the app, however this does not perform the transfer via AIC.

You can a change the 4 sec timeout on the IC side too.

I would also recommend using HTTPVox or VRUSM instead of the regular VOX. Timing isn't as strict and is a better overall solution.
RichardMudway
Joined: Sep 18, 2008
Messages: 7
Offline
Hi Neil,

Do you know the timeout that we need to set? We have played with some like the EDU Creation timeout, but it not make any difference.
Go to:   
Mobile view