Blogs

Showing 1 - 5 of 30 results.
Items per Page 5
of 6

Forums

« Back to Cisco JTAPI Questions

RE: Re: New Message from Kostik Hvostik in Cisco JTAPI (JTAPI) - Cisco JTAP

Combination View Flat View Tree View
Threads [ Previous | Next ]
Hi all! Could not find what I'm doing wrong. I'm writing test app to make a call to specified number (source code in attached file).
I'm getting Provider from peer, waiting for provider InService state - this goes successful. After that I'm getting Address and adding Observer to Address. In Observer's event list I receive "Address out of service" event (CiscoAddrOutOfServiceEvImpl). Point me to my mistake, plz!
Maybe, something wrong with CUCM configuration. I'm using Cisco Jtapi version 8.6(2.10000)-5 Release.
I've created End User st2 with roles:
 
Standard CCM End Users
Standard CTI Allow Control of All Devices
Standard CTI Enabled
 
checkbox "Allow Control of Device from CTI" is checked
 
He controls device stdev2:
 
Product Type:  CTI Port
Device Protocol:  SCCP
 
Device Security Profile: Cisco CTI Port - Standard SCCP Non-Secure Profile
 
Also I've added Directory Number to stdev2 device. DN associated with this device. In frame "Users Associated with Line" I've added a user st2. All other settings was set by default.
 
When I'm working with provider - I'm successfully get the list of addresses and terminals. But when adding observer to Addresss - receive "Address is out of service" error. What I'm doing wrong? Thanks a lot for advices!!!
Attachments:

Hmmm, now I can to inititiate Arrdess to go into InService state. I was made it accidentally. I've tried to run JTrace app from example apps and when it was running - Addres was goin into InService mode correctly. I've made a little investigation and here is a neccessary line of code to make Addres to go InService:

this.mainTerminal = (CiscoMediaTerminal)provider.getTerminals()[0];
this.sourceDirectory = (CiscoAddress)provider.getAddress(sourceDirectory);
this.sourceDirectory.addObserver(this);
this.mainTerminal.register (
InetAddress.getLocalHost (),
0x4321,
new CiscoMediaCapability [] { CiscoMediaCapability.G711_64K_30_MILLISECONDS }
);


Just one question - why ? Like I understand - there is no reason to use CiscoMediaTerminal when I want to make a simple call. Or it's isn't so ?

You must specify media capabilities to register, regardless if it has any.

Kostik Hvostik has created a new message in the forum "Cisco JTAPI
> Questions":
>
> --------------------------------------------------------------
> Hmmm, now I can to inititiate Arrdess to go into InService state. I was
> made it accidentally. I've tried to run JTrace app from example apps and
> when it was running - Addres was goin into InService mode correctly. I've
> made a little investigation and here is a neccessary line of code to make
> Addres to go InService:
>
> this.mainTerminal = (CiscoMediaTerminal)provider.getTerminals()[0];
> this.sourceDirectory = (CiscoAddress)provider.getAddress(sourceDirectory);
> this.sourceDirectory.addObserver(this);
> *this.mainTerminal.register (
> InetAddress.getLocalHost (),
> 0x4321,
> new CiscoMediaCapability [] {
> CiscoMediaCapability.G711_64K_30_MILLISECONDS }
> );*
>
> Just one question - why ? Like I understand - there is no reason to use
> CiscoMediaTerminal when I want to make a simple call. Or it's isn't so ?
> --
> To respond to this post, please click the following link:
>
> <
> http://developer.cisco.com/web/jtapi/forums/-/message_boards/view_message/6522882
> >
>
> or simply reply to this email.

CTI Port / Cisco Media Terminal is a virtual device. Applications have to register them before initiating or receiving calls. 
<strong id="aui_3_2_0_1815" style="color: #525252; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 15px;">this.mainTerminal.register call registers the CTIPort. Addresses on the CTIPort will not go into in-service state until it is registered.
More information on CTIPort can be found in Cisco JTAPI developer guide at http://developer.cisco.com/web/jtapi/docs.
 
 

You must specify media capabilities to register, regardless if it has any.

 
But why makecall app (from jtapi example apps) does not contain terminat.register() code line?  Is it necessary to use exactly CiscoMediaTerminal or there is a simplier method to place a call with CiscoTerminal object only ?
Thanks for you replies!

If the device the app is controlling is a hardware Cisco IP phone (instead of a CTI port), then this phone is responsible for its own media registration with UCM automatically when it powers on, and it is not necessary (or allowed) to register media with JTAPI.  The sample app should work without .register() if you're using two desk phones.

If the device the app is controlling is a hardware Cisco IP phone (instead of a CTI port), then this phone is responsible for its own media registration with UCM automatically when it powers on, and it is not necessary (or allowed) to register media with JTAPI.  The sample app should work without .register() if you're using two desk phones.

Thanks a lot! Thanks-thanks-thanks-thanks! At last I can start develop my lib, instead of turning grey with this out-of-service error. 
I hope this thread will help anybody, who is new with jtapi, to go through this obstacles. Thanks again, all of you!

Collateral


No files available