CallManager plugin with JTAPI

I am very interested in creating a CallManager plugin with JTAPI. My first step would be to tie “presence” in Jabber to your state on the phone. This way, people who have you on your buddy list, can see if you are on the phone. This is a feature that is sorely missed in CallManager 4, and would be a great addition to my Spark install.

Has anyone made any progress connecting wildfire to callmanager?

thanks

avidan

Asterisk-IM will eventually do this functionality too. Also there is a JTAPI Asterisk-IM implementation in the works. You can see it in the trunk of the subversion module.

I have now compiled, and I am testing the SVN of the JTAPI implementation of Asterisk-IM. Is this Jtapi library specific to Asterisk? If I would like to implement this for Cisco JTAPI, what is the best route?

When compiling you get three jars in the target directory:

asterisk-im.jar

jtapi/asterisk-im.jar

ajtapi/asterisk-im.jar

jtapi is pure without any specifics. The jar already includes jtapi-1.3.1.jar,

you need to include the Cisco stuff as well. Configuration: You will be asked

for the JTAPI provider name and the parameter string in the wildfire admin

console.

ajtapi is the exactly the same code at the moment but asks for parameters

specific to Asterisk-JTAPI instead of the general provider initialization string.

Right now the JTAPI stuff is not tested against any other switches than Asterisk.

It may happen that we need to do some adoptions. Just try and give feedback.

Message was edited by: jens

Ok, so I loaded the jtapi plugin, and in the provider name i am providing the ip address of my server, and the parameters i am providing the login string, correct?

In my java code for using Cisco JTAPI, this is what it looks like.

String providerName = “10.96.3.11”;

String login = “ac”;

String passwd = “thepassword”;

JtapiPeer peer = JtapiPeerFactory.getJtapiPeer ( null );

String providerString = providerName + “;login=” + login + “;passwd=” + passwd;

System.out.println ( "Opening " + providerString + “…\n” );

provider = peer.getProvider ( providerString );

provider.addObserver ( this );

conditionInService.waitTrue ();

But, when I put in the provider and parameters as seperate items into the plugin config page, I get an error:

2006.06.30 11:44:13 [org.jivesoftware.phone.jtapi.JtapiPlugin.initPhoneManager(JtapiPlugin.java:64)

]

javax.telephony.ProviderUnavailableException: Error loading raw provider: 10.96.3.11

If I try to put the entire provider string in with the username and passwd, the config page complains that i have not enetered any parameters. Am I missing something basic?

Also, you mention I will need to add the cisco specific stuff. is that pre-build, or after the fact?

The error message you report is from the gjtapi library that is included in the jar file. You

need to replace this library with the Cisco JTAPI jar.

I have replaced the jtapi-1.3.1.jar file in the lib directory of asterisk-im with the callmanager jtapi.jar file, but I am still getting this error:

2006.07.13 12:37:28 [org.jivesoftware.phone.jtapi.JtapiPlugin.initPhoneManager(JtapiPlugin.java:64)

]

java.lang.NoClassDefFoundError: javax/telephony/CallListener

at org.jivesoftware.phone.jtapi.JtapiPlugin.initPhoneManager(JtapiPlugin.java:60)

at org.jivesoftware.phone.PhonePlugin.init(PhonePlugin.java:86)

at org.jivesoftware.phone.PhonePlugin.restart(PhonePlugin.java:182)

ok. I changed a few things. I had forgotten to put the jtapi version into the plugins directory of my built wildfire. I put the correct plugin in place, but the asterisk-im/lib/ directory keeps getting rebuilt, and my Cisco jtapi file obviously gets removed. Should I be including the cisco jtapi library during my complile process, or can I just add it to a precompiled build?

here are the new errors:

2006.07.13 12:45:24 [org.jivesoftware.phone.jtapi.JtapiPlugin.initPhoneManager(JtapiPlugin.java:64)

]

javax.telephony.ProviderUnavailableException: Error loading raw provider: 10.96.3.11

at net.sourceforge.gjtapi.GenericJtapiPeer.getProvider(GenericJtapiPeer.java:186)

at org.jivesoftware.phone.jtapi.JtapiPhoneManager.init(JtapiPhoneManager.java:86)

at org.jivesoftware.phone.jtapi.JtapiPlugin.initPhoneManager(JtapiPlugin.java:61)

at org.jivesoftware.phone.PhonePlugin.init(PhonePlugin.java:86)

at org.jivesoftware.phone.PhonePlugin.restart(PhonePlugin.java:182)

Did you ever get this to work? We are very interested in connecting our Jive installation to our Call Manager 4.2 installation. Could you post any instructions to get this to work?

Thanks.

Brian Corbet

i never got the chance to get it working, but now that we have upgraded to 3.1 of wildfire (and there have been over 1,200 views of my thread!!), I think I may put some work forward on it again…

gotta go find my sample code.

any asterisk-im developers want to get in touch with me, and we can work on it together?

avidan (a) cimgroup.com

Hi Brian&Avidan!

I am sorry somehow I missed avidans follow-up on 13th july!

The JTAPI stuff was implemented by me and tested with the GJTAPI, Aterisk-JTAPI.

Other JTAPI products need testing and adaptations, I think.

Right now I have only limited resources I can dedicate on the generic JTAPI stuff and

testing with other products, if another developer wants to step in here I will try to support

and guide as best as I can.

If there is a concrete business need, I can also offer professional services, do the

qualification and offer support for a specific Cisco CallManager version. Please contact

me at jw_asteriskim (a) headissue.com.

Best,

Jens

Message was edited by: jens

Avidan,

Have you made any ground on your Call Manager integration. I stumbled on Wildfire as just a simple chat solution for our company and became extremely intrigued when I found this thread. We run CM4.0 and if I could get this to work, I could save the company from having to purchase Cisco’'s expensive Unified Messaging solutions.

Thanks,

Greg