02-22-2021 05:34 AM
Hi Champs,
Is it possible to call VXML mirco-app directly from ICM admin script rather than routing script. I have a requirement to call a VXML application to update some custom tables on specific dates / time e.g office close / open hours. So i want to automate this process rather updating DB manually all the time. the VXML application is going to update the DB. However, i want to trigger this app automatically.
So initial idea is to keep checking the date / Time and once the desired time tigers call the VXML app. ICM admin script has capability to run autonomously and can set values for PVs but don't know if we can call VXML.
any other thoughts and idea would be welcome.
02-22-2021 06:12 AM
02-22-2021 06:19 AM
It 'is' possible, here's what Paul Tindall recommended (but I haven't tired it)
Use the ICM App Gwy in the admin script to trigger a CVP app via HTTP.
You'd need to add an App Gateway host. For simple non-critical things you could use the Node.JS that was published on GitHub.
Node.JS is pretty straightforward to use, https://nodejs.org/en/ is the place to start.
Install it.
Use 'npm' utility to load and manage node packages.
Use command: 'node' to run something.
Or, use node on its own to use interactive
02-22-2021 06:52 AM
02-23-2021 06:21 AM
You can find code to create the app gateway and node.js stuff on github at this link (I haven't tried it, but this info was supplied by a reliable source Paul Tindall at Cisco):
https://github.com/ccondry?tab=repositories&q=ged+145&type=&language=
02-23-2021 06:38 AM
Thanks Janie,
Yeah i have been looking for some document to get the idea how to use and configure app gateway to work with Node.JS. BTW, I know Paul very well :).
However, also wanna check some thing with you if i manage to call VXML app from ICM admin script then inside the app i should be able to perform all sort of supported stuff e.g. DB dip and update using JNDI or API. It should be totally independent of ICM as i won't pass any value, VXML suppose to do all the stuff.
Thanks again,
Sheeraz.
02-23-2021 06:52 AM
Well you have 2 options there.
1. You could just trigger the updateApp.bat to execute for a Studio app written with AppStart java class (which runs whenever the app is loaded into memory - reboot, updateApp, etc). This is useful if all you want to do is trigger the Studio app to re-read a file or DB or execute a rest call and update Global Data variables.
2. If you are trying to get a Studio app to actually execute its call flow, then you'd have to make an HTTP call to http://IP:7000/CVP/Server?application=appname&var=value&var=value and then that app will execute, use a VXMLServer license, and could do a DB or WS call and return the data in the Return element.
I think using a Subdialog_Return instead of a CVP_Sudialog_Return might be easier, as CVP_Subdialog_Return requires two request/response steps to get the data returned and the VXMLServer license freed; Whereas the Subd_Return would probably just require one step.
02-24-2021 05:37 AM
Thanks, Janie,
So first option is not the requirement as i need to execute the call flow as well inside the VXML app.
Also let me be precise about my requirement and idea so i am sure i can get better ideas.
Requirement / Problem:
Currently we have Table where we manually set the data light savings time of different regions and for some specific countries. As this is very old setup and i want some automation in it and as first step i want to make this DB update automatic on specific dates with any human intervention.
Ideas in mind:
1. Make outbound call using IVR based campaign (UCCE Dialler) and set datetime of that campaign in admin script to run run on specific date. This outbound call will hit ICM routing script and call VXML app inside that routing script which will perform the DB update. But this require some external number to mapped with this script. Or i am not sure id ucce dialler supports dialling internal number which was indeed the case with legacy SCCP dialler.
2. Use admin script to run on daily bases once and call VXML application which will execute the complete call flow by doing DB update etc and return successful.
3. If ICM admin script can not call VXMl app (that is why i raised this question in the community), try to call VXML application by scheduling some Cron job and execute the VXML call flow. Currently i am using some of the cron jobs to monitor the VXML application statuses and number of call on each application.
So long story short, challenge is to call VXML application automatically on particular date / time and let it execute the call flow as well :).
I hope you did not get bore with this requirement
Thank you,
Sheeraz
02-24-2021 06:40 AM
Sheeraz,
If you want to drive your update work with a call into CVP there's a couple of things here that can help you implement some of your ideas.
https://app.box.com/s/9z10y1v4nju097o8lh6i4njjl6lfur98
Outbound destination simulator providing an outbound destination on a gateway/CUBE that can handle the dialer's SIP REFER necessary to transfer the call to the handler (IVR or agent).
https://app.box.com/s/6da1ovfrygvvkeg8ut2hjgb6ea4j9g2u
Makes periodic test calls into CVP so you can use that to trigger anything you wish.
Paul
03-03-2021 06:17 AM
Thanks Paul,
I will also look in to this.
Thank you,
Sheeraz.
02-23-2021 01:08 PM
Just a thought, if you want to go in a completely different direction but one that might be easier to implement and accomplish the same thing, is just add logic to call it based on activity in your routing script.
So if in a couple of your busier UCCE script, have an IF box to look at calls offered in say the past hour or whatever your rule is. If 0, then send the call to execute your VXML app and then continue on.
If offered>0, then continue on without executing your app.
This avoids the updating the database all the time like you were saying, doesn't add much overhead, no need for admin script, etc.
Again, just another way to approach it.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide