I am in the process of developing a Telephony Server Application, which talks to the ICM using the CTI Server Messages. The primary role of this application is such that, it does the call control functionality including the Routing part.
The requirement is such that, whenever ICM notices a New call, it has to send a message or a notification similar to a Route Request. The Telephony Server application will use this request and send back a target or a destination to the ICM, instructing the ICM to route the call to that particular destination.
From all the documentation that I could go through, I only understand that a Routing Client such as a Call Manager is the one which generarets a Route Request and the ICM sends a Route Response.
I am trying to figure out, if ICM can send out a Route Request and my application will send back the route response. Is there any thing that needs to be configured in terms of scripting? Also, I have come across an Application Gateway Node, which provides with the facility to interact with the External Application. It can send and receive data to and from an external application. But the catch to it is that an Application Gateway needs to be specifically written and then configured within the ICM. This again is a development overhead. I would only want to go ahead with this option, if there is no other workaround.
Looking forward for a solution to the problem.
you would basically need what in ICM terms is called a routing client, that protocol is not available as a customer API for now.
Interacting with the CTI Server is not recommended either, nowadays we suggest to interact only with CTIOS Server to better scale the actual client requests.
Without knowing anything on the specific it is challenging to provide you an answer on the feasibility of an Application Gateway Interface in your scenario, but generally speaking it might work, like using an IPIVR and a launch external application step might do as well.
Cisco is offering a fee based program called Dev Support Services to help on this and similar questions: