cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements
Walkthrough Wednesdays

Call Admission Control

57
Views
0
Helpful
0
Comments

Subject: RE: Call Admission Control
Replied by: David Staudt on 20-05-2010 05:48:14 PM
Some additional details would be helpful.  Note, a JTAPI application monitors individual phones/devices, and can receive events and issue call control commands on those calls.
This document was generated from CDN thread

Created by: Antonio Rotundo on 20-05-2010 04:47:57 PM
Hi all,
I am having some problems with the development of the call management using jtapi with cisco call manager 7.1.2.
What I need to do is to realize a simple call admission control related to the outgoing call from the cisco call manager.
The first action that I would like to implement is to hold a call for some seconds and then reject it.
In more details, I am trying to intercept the call events from the Call interface or Connection interface.

Is it possible?
Best Regards
Antonio Rotundo

Subject: RE: Call Admission Control
Replied by: Abhishek Malhotra on 21-05-2010 09:07:38 AM
CUCM supports ExternalCallControl starting 8.0 release.
You can define your own rules and intercept the calls accordingly. These interception rules are configured on an External policy server.
 
For more details, you can look into 8.0 JTAPI and CUCM guides.

Subject: RE: Call Admission Control
Replied by: Antonio Rotundo on 21-05-2010 08:20:59 AM
The first action that I would like to implement is to monitor a phone and to "freeze" somehow a call before ringing. Then, basing on some logic, to decide to deliver it or to reject it.
I didn't find a way to intercept a call before ringing (I'm only able to react on the call after the destination rings: e.g. answer the call).
Is there a way to control a call BEFORE ringing, or it is not supported by jtapi?
Best Regards
Antonio Rotundo
 

Subject: RE: Call Admission Control
Replied by: David Staudt on 21-05-2010 01:38:05 PM
Thanks for the extra details.
 
As Abhishek mentions, in UCM8.0 the Routing Rules Interface (CURRI) is available, which allows you to provide a web service which UCM will query when calls to a particular route pattern are made.  Your app can either allow, reject, or give another destination depending on its logic.  The 'other destination' could be a CTI port controlled by your app, where a message is played and additional call treament occurs.
 
Prior to UCM8.0, the only way to intercept calls is to configure a route pattern to send all matching calls to an app controlled CTI route point.  When the call arrives at the CTI-RP your app can check the caller/called IDs and make its decision on routing - either redirect it towards the intended destination, reject it, or apply treament (audio message, etc.).  This works, but introduces a dependency on your app: if your app is down, all calls matching the route pattern may fail.

Subject: RE: Call Admission Control
Replied by: Antonio Rotundo on 25-05-2010 08:51:55 PM


[...]
Prior to UCM8.0, the only way to intercept calls is to configure a route pattern to send all matching calls to an app controlled CTI route point.  When the call arrives at the CTI-RP your app can check the caller/called IDs and make its decision on routing - either redirect it towards the intended destination, reject it, or apply treament (audio message, etc.).  This works, but introduces a dependency on your app: if your app is down, all calls matching the route pattern may fail.

 
Thank you for your suggestions.
I currently use UCM 7.0.2, so I tried CTI-RP way, but I could not get any event from my application.
 
Here's a snippet of what I do:
 
- first, register CTI-RP (capabilities is an array of Cisco G711, G723, G729 capability instances)
            ciscoRouteTerm.register(capabilities,  CiscoRouteTerminal.NO_MEDIA_REGISTRATION);
- then, I add a CallControlCallObserver implementation, plus a CiscoTerminalObserver impl
            ciscoRouteTerm.addObserver(new TermObserver());
            ciscoRouteTerm.addCallObserver(new CTICallObserver());
 
I get immediately a com.cisco.jtapi.CiscoTermInServiceEvImpl event on terminal observer; however, when I try to make call from a Cisco IP Communicator to CTI-RP's DN, busy status is shown, with no events routed to call observer.
 
Am I missing something? Perhaps there's some role to be assigned to my test user in order to receive call notifications on CTI-RP ?
 
Regards.
 
P.S. I was a bit puzzled by a strange message about CTI-RP "not being in provider's domain" most of times, even when I gave to my test user full access permissions. Then, I realized that when my application started too fast, no terminals were seemingly available to provider; so, I put as first operation on provider a loop introducing Thread.sleep() calls until getTerminals() returns correct, not-null answer. Is this normal behavior or a bug of my implementation?
 
 

Subject: RE: Call Admission Control
Replied by: David Staudt on 25-05-2010 09:56:14 PM
Are there any partitions, etc. configured on UCM that would prevent the call from hitting the DN?  I.e. does the calling device have a Calling Search Space that allows it to 'see' the CTI-RP DN?
 
You app should be waiting for Provider in service event before attempting any operations - perhaps this is what you should be waiting for.

Subject: RE: Call Admission Control
Replied by: Antonio Rotundo on 26-05-2010 08:38:24 PM

You app should be waiting for Provider in service event before attempting any operations - perhaps this is what you should be waiting for.

You were right! A loop waiting for provider being in service already existed in my program, but it was buggy, so sometimes API methods were called before provider was ok. I fixed that loop instead of adding another one as I done yesterday, then my program went fine for that part. 
 


Are there any partitions, etc. configured on UCM that would prevent the call from hitting the DN?  I.e. does the calling device have a Calling Search Space that allows it to 'see' the CTI-RP DN?

 
Yesterday, I hadn't either Calling Search Space or partitions configured on UCM and I had a Phone (IP Communicator) on DN 2001 & 2013, plus a CTI-RP configured on DN 2008 (all DN on "no partition").
 
I made following tests with that configuration:
- IP Communicator called itself (on either DN) -> it started ringing
- IP Comm called CTI-RP -> busy signal (no events received by JTAPI app which registered CTI-RP) 
- IP Comm called non-existing number -> reorder
 
Today, I defined a CSS including a partition composed of 2001, 2013, 2008, then I set all CSS properties (in phone, CTI-RP and all DNs) accordingly. For each DN (that was on "no partition"), another DN (on "my partition") appeared in "route plan report"; I removed DN on "no partition" from that list, leaving only DN on "my partition" listed.
 
This arrangement changed results of previous tests:

- IP Communicator called itself (on either DN) -> reorder
- IP Comm called CTI-RP -> reorder (still, no events on JTAPI app)
- IP Comm called non-existing number -> reorder
 
Am I still missing something on the way to intercept calls at an app controlled CTI-RP ?
 
Thank you
 

 
 
 
 
 

Subject: RE: Call Admission Control
Replied by: Antonio Rotundo on 27-05-2010 11:40:21 AM
I included the partition created in CSS, but I have the same problem.
Have you other suggestions?
Best Regards

Subject: RE: Call Admission Control
Replied by: Abhishek Malhotra on 27-05-2010 05:36:16 AM


Today, I defined a CSS including a partition composed of 2001, 2013, 2008, then I set all CSS properties (in phone, CTI-RP and all DNs) accordingly. For each DN (that was on "no partition"), another DN (on "my partition") appeared in "route plan report"; I removed DN on "no partition" from that list, leaving only DN on "my partition" listed.

 
This arrangement changed results of previous tests:

- IP Communicator called itself (on either DN) -> reorder
- IP Comm called CTI-RP -> reorder (still, no events on JTAPI app)
- IP Comm called non-existing number -> reorder
 

 
I believe you didnt add the Partitions to CSS that is preventing calls to go through. Calling Party CSS should have called party's partition if you want that call to go through.

Subject: RE: Call Admission Control
Replied by: Antonio Rotundo on 28-05-2010 05:22:09 PM
Can you please indicate what is the error code associated with exception that you seen when you try to make a call.
If possible please attach the JTAPI logs along with CCM & CTI troubleshooting traces.


I don't receive any JTAPI events or log when I try to make a call. I can to register the CTI Route Point by Jtapi, but when I try to make a call I receive a reorder message on IP Communicator. I send to you some images of the configuration of CTI Route Point, Partition and CSS on CUCM.
 
Best Regards
Antonio Rotundo

Subject: RE: Call Admission Control
Replied by: Antonio Rotundo on 28-05-2010 05:23:57 PM
I attach other images of my cucm configuration
Thanks

Subject: RE: Call Admission Control
Replied by: Abhishek Malhotra on 28-05-2010 06:28:07 AM
Can you please indicate what is the error code associated with exception that you seen when you try to make a call.
If possible please attach the JTAPI logs along with CCM & CTI troubleshooting traces.

Subject: RE: Call Admission Control
Replied by: Abhishek Malhotra on 31-05-2010 05:12:45 AM
In Calling Search Space "Mio search space", you have available partition as "mia partition" but its not selected. Unless it is selected the devices in "Mio search space" will not be able to call numbers in  "mia partition"
 
See the snapshot:

Subject: RE: Call Admission Control
Replied by: Antonio Rotundo on 02-06-2010 08:00:48 AM
Thanks to Abhishek for your suggestions.
I succeeded to register RP and I receive the events when I do a call to RP.
 
Best Regards
Antonio Rotundo
Content for Community-Ad

This widget could not be displayed.