Gokul Blog — A conversation on VoIP, IMS, Cisco and Just about Anything

Deeper analysis of VoIP


Posted by tggokul on January 11, 2007

I am almost done playing with JTAPI and the different events it throws ( see here and here for my other blogs on JTAPI) and have written a sample application that will act as a softphone on a PC, and will monitor an ip phone.

So when the IP Phone rings ( incoming call), we can pick up the call from my application. Similarly can also simulate making call from the ip phone. It also has Hold/Resume/Transfer/Forward/DND features. I have coded for conferencing but since the ip phones we have in our labs don’t support conferencing , it has not been fully tested. I hope this application shall serve as a starting tutorial for all people in our company who will be working in JTAPI.

Incidentally some people from Cisco ( They are our premium partners) are coming in tomorrow for some meetings with the top brass and I might have to demo this softphone application to them. (From what I hear, this might be the first serious development that has been done on Cisco JTAPI ). Do you think it is a good idea asking them whether I can name my application ‘i-phone’. They do have the rights after all 🙂 Talking about that I hope all of you are following the legal tangle between Apple and Cisco.

There were a whole lot of interest in my earlier JTAPI posts ( they were the most read posts last month) and if you guys want to discuss JTAPI with me, just drop in a line and we can chat all about it.

17 Responses to “JTAPI Demo”

  1. gidxl03 said

    Its a small world. I’m building a Web App over JTAPI over SIP in order to do CTI and 3PCC (for Cisco’s major competitor!) Version 1.0 of the product was released late last year. I’m guessing that there are a lot of people interested in your work. I found your blog because I was also wondering why CallControlCall.consult() is not on CallControlConnection.consult(). Who knows – we may end up doing some inter-op testing on each others work!!

  2. tggokul said

    Hi Gidxl03,

    You are right. It is a small world and its also a world with lot of interest in JTAPI :). I had a lot of hits on JTAPI ( did you check out the other JTAPI blog where Toben and I had some discussions going on? ).

    Anyway hopefully I will try to update stuff on JTAPI as we move along. Be sure to check in here regularly and you are most welcome to give in your inputs and share your knowledge here. You could be a guest blogger here!!! It would be great if we can pool in our knowldge to crack open JTAPI. There is definitely a lack of resource/knowledge for JTAPI and it would be a good beginning.


  3. gidxl03 said

    Hey Toggokul,

    am back again after a couple of months with my head buried deed in the SOA project that gives a JTAPI interface to SIP. The project has been a great success on the server side.

    A couple of comments on JTAPI that you might find interesting;
    – many JTAPI APIs are blocking. JTAPI says that it is OK to block on machine operations (e.g. wait for SIP 200 OK after issuing a SIP BYE). JTAPI knows that it cannot wait for human operations (i.e. between SIP INVITE and 200 OK accept). I found that even blocking for machine operations made the design much less scalable and so my JTAPI APIs are non blocking. This means that my server application is not strictly JTAPI compliant but what the hell – clients can easily block waiting for a state change after having issued say a connection.disconnect() request.

    – I foundd it necessary to overlay at lot of API such as
    call.addParty(string strNewPartyUri) { see http://www.brekeke.com/products/jtapi/ref/javax/telephony/callcontrol/CallControlCall.html}
    with additional APIs
    call.addParty(Address newPartyAddr)
    call.addParty(Connection newPartyConn)
    Without the additional APIs I would either lose information (e.g Address -> String) and then have to find it again later (String -> Address) or else would like more complicated.

    Now all I need is to a way to get SIP clients easily to consumers so that they can actually use the cool functionality (click-to-call, conference, transfer, tones, music, announcements, IVR). The key attributes must be
    – easily downloadable (ideally integrated into a web page, hey no harm in asking!)
    – easily configured, ideally auto configured using information (SIP Proxy Server IP, username) collected on the webpage
    – SIP registration must NOT be obligatory as these casual users will not already have an account on the SIP Proxy Server
    Front runner so far : http://www.asteriskguru.com/tutorials/xlite_softphone.html

    Will check back again soon.

    Great website, will be back more often. Am amazed to see that you also use SIPp as your test generator. It even streams sound files, is supposed to stream video but I couldn’t get video to work. We’ve since bought a $$$$$ SIP traffic enerator that verifies the speech path as well, but I won’t be giving up SIPp any time soon.

  4. tggokul said

    Hi Gidxl03,

    Great inputs on JTAPI.

    And xlite is just awesome. We use it for most of our testing as well. I am going to say, it is arguably the best freely downloadable SIP softphone. Is usually interoperable with most of the SIP entities.

    I have done voice calls with sipp as well ( to load test our SIP Media Server) and also the DTMF feature is pretty cool. But I guess sipp is not as reliable as with just signalling. There were quite a few occasions sipp crashed or the machine we ran it on , crashed.


  5. Sudheer said

    I’m pretty new to JTAPI and I am trying/researching to write a app which should pick up the incoming call and do some sort of basic call controls like (hold/transfer etc) and I saw your blog and you hit the right cylinders that I’m looking … I’d really appreciate if you can send me your code.

    we are using Callmanager 6.0 with cisco 7961 phone

    Thanks in Advance

  6. Flimon said

    Hi Jokul,

    i’m a new to Jtapi, i trying make a call and its working successfully. now i need to write a code to make DND function on callmanager 4.2 , please if you can help me with methods that can help in doing so.

  7. Simon King said

    I am looking for a quick start into JTAPI, could you make you source code available to the general public.
    What I am specifically trying to do is to write a server side test application that can monitor multiple lines and devices on a CCM.
    I have used TSAPI for this purpose on other PBXs which seems to be more sever orientated.

  8. Eko SW said

    I am interesting in this subject!
    I have check IVR code using TAPI. My question is, can JTAPI use mobile phone connected to USB port? So if there is incoming call, using JTAPI we can do IVR system?

    Thanks you very much 🙂

    Eko SW
    from Indonesia

    • tabassum said

      hi, m having same doubt as u mentioned above.i want to connect telephone to pc to handle incoming calls and for ivr,it is part of my project.so if u got any clear idea about how to do it with JTAPI,plz sent me d info

  9. utsav said

    hi please can some one guide me how to use JTAPI

  10. p.yramesh said


    presently I am working on make a call from pc to telephone using JTAPI.

    I have downloaded the JTAPI and all java files and jars.
    when I running outcall.java
    it givivng exception like
    JtapiPeer: DefaultJtapiPeer could not be instantiated.

    what I learned from this is that we have implement our own(like default is DefaultJtapiPeer ). but I donot know how to implement.

    please help me out.

    anyboby have already implemented this feature could you send me your code?.

    thanks in advance

  11. utsav said

    dude i am stuck @ the same thing
    plz tel me how to create your own Jtapi

  12. J.naveen said

    I am working on JTAPI, Actually I need to connect my mobile to the pc with USB port now I need to attend all the incoming calls so does this API support for that, if it supports please send me sample snippet, if it is possible send some resources(links) related to this topic…

    • tabassum said

      i want to connect telephone to pc to handle incoming calls and for ivr,it is part of my project.so plz send me information about how to do it with JTAPI.

  13. Brian said

    Try to figure out the sipp start arugments for 3pcc.

  14. Sen said


    I would like to create a application which will make call from pc to phone.. Im very novice for JTAPI.. is this possible by JTAPI..? if so how to start..? can any one give useful links or documents related to my need…?

  15. Priyank said

    Hi, I am using JTAPI to connect to AVAYA CTI server. now i am facing one problem. we need to support two lines but i am not sure how to do it. I want that my softphone should be able to provide two lines to agent. so that if one line is busy, agent can see call on second line. please suggest if you have come across this scenario.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: