JTAPI CallCenter SDK

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • avc930146307620
    Member
    • Aug 2025
    • 9

    JTAPI CallCenter SDK

    Hello. We are implementing a 3d-party application as a part of the integration process with our customer who has a CS Call Center implemented as Avaya Telephony platform.
    The purpose of our application is to obtain all the necessary call and agent related information from their Call Center.
    The application is not supposed to make or take any calls. We try to use Avaya AES JTAPI SDK (jtapi-sdk-10.2.0.0.0.198).
    The customer provided us with the correct TLINK, login, password, service IP address and port, and we are able to create a Provider object and connect to the service.
    The idea is to add all the available listeners in JTAPI and process the incoming event notifications.

    The questions:

    1. Do we take the correct approach? Is it feasible to implement all we need in JTAPI SDK?

    2. We use the Core JTAPI SDK, it does not deal with any Agent-related information. How can we download the Call Center JTAPI SDK package version?

    3. The customer provided us with some their DNIS number. We tried to create an Address or Terminal objects for that DNIS string, and then the idea is to add a CallListener to the Address or Terminal object.
    Our attempt to create an Address or Terminal failed with exception "not in provider's domain".

    4. What kind of other information is required from our customer to make our schema work?

    Thank you very much for your help.

    Gene.
  • avc861193901584
    Whiz
    • Sep 2024
    • 34

    #2
    Hi Gene,

    1. Yes, you can use JTAPI to capture call and agent information, but there are limits to the information. For example, JTAPI cannot "list" all VDNs and skills (hunt-groups). Your application needs to know which VDNs and skill extensions to monitor. There are other APIs you can use to get this information, if that's necessary.
    2. The only jars you need are ecsjtapia and log4j. This includes all JTAPI functionality, including agent information.
    3. It sounds like the customer did not give your CTI user "unrestricted access" or did not add the extensions to the AES Security Database (See Avaya documentation: The Security Database )
    4. You may need to ask what is included in "all necessary call and agent information".


    I recommend looking through the Java docs for examples, especially focus on the differences between a VDN, Station/Terminal, and ACD Address/Skill. It's important to understand what type of "DNIS" the customer gave you.

    The key types of mointors are:

    Monitor for agent login/logout events on skills:
    // implement ACDAddressListener
    ACDAddress a = (ACDAddress) provider.getAddress(skillExt);
    ​a.addAddressListener(skillListener);

    Monitor for calls on VDNs:
    // implement CallControlConnectionListener, AddressListener
    ​Address a = provider.getAddress(vdn);
    a.addCallListener(vdnListener);
    a.addAddressListener(vdnListener);

    Monitor for calls on stations:
    // implement AddressListener, CallControlTerminalConnectionListener
    Address a = provider.getAddress(station);
    a.addAddressListener(stationListener);
    a.addCallListener(stationListener);​​
    Adam | Swampfox Technologies Inc. | Avaya Partner
    Solutioning in: Avaya Experience Portal | AXP Connect | AES

    Comment

    • avc930146307620
      Member
      • Aug 2025
      • 9

      #3
      Hi Adam,

      Thank you very much for your quick and very helpful reply!

      1. What kind of other Java API can we use if JTAPI does not work for us? The CM one, cmapi-java-sdk?

      2. We downloaded and installed ecsjtapia and log4j, but how can we create the ACDAddress object?
      Method provider.getAddress ("DNIS") returns just the regular Address object, not the ACDAdderss.
      Does it in fact return ACDAddres, and the simple type cast (ACDAddress) provider.getAddress() will work?

      3. It looks like we are dealing withe the ACD agents. So, we need the ACD Address/Skill.
      The customer gave us the SKILL together with the DNIS. We'll ask for the additional access.

      Thank you again for your help.

      Gene.

      Comment

      • avc930146307620
        Member
        • Aug 2025
        • 9

        #4
        Adam,

        Sorry, I missed your code sample where you use the cast to the ACDAddress.
        We will try it as soon as we have all the necessary access.

        Thank you again.
        Gene.

        Comment

        • avc861193901584
          Whiz
          • Sep 2024
          • 34

          #5
          Great.

          1. You can develop a SOAP Client against the AES System Management Service (SMS) to do operations like list all of the hunt-groups and VDNs that are configured in Avaya Communication Manager.

          3. Keep in mind that a skill monitor can only monitor agent login/logout events. Agent state changes (online -> not_ready -> ready) are only available via polling.
          Adam | Swampfox Technologies Inc. | Avaya Partner
          Solutioning in: Avaya Experience Portal | AXP Connect | AES

          Comment

          • avc930146307620
            Member
            • Aug 2025
            • 9

            #6
            Hello Adam,

            They gave use some permissions. so we are able to create an Address object for a DNIS string and add the listeners you recommended.
            Unfortunately, no events are hitting our listeners. We are getting just the heartbeat every 20 seconds or so.

            Another issue we encountered is that when we try to create an Address and then cast it to the ACDAddress for a skill, it throws an exception. It looks like we try to cast a wrong type:
            JTAPI exception creating the Address object by calling provider.getAddress ("1301"): [class com.avaya.jtapi.tsapi.impl.LucentV11AddressImpl cannot be cast to class javax.telephony.callcenter.ACDAddress (com.avaya.jtapi.tsapi.impl.LucentV11AddressImpl and javax.telephony.callcenter.ACDAddress are in unnamed module of loader 'app')]

            We also saw the following two errors in our logs:

            error 2 < REQUEST_INCOMPATIBLE_WITH_OBJECT >

            [com.avaya.jtapi.tsapi.impl.core.TSDevice,2025-08-19 18:20:23,365,main,ERROR],(TSDevice.java:2935)(setMonitor) MonitorCallsViaDevice request failed – retrying

            Thank you!

            Gene.

            Comment

            • avc861193901584
              Whiz
              • Sep 2024
              • 34

              #7
              Hey Gene,

              That error indicates to me that they likely did not give you a valid skill extension. Could you ask them to send you the screenshot of the skill configuration from Communication Manager? You will need the Group Extension, not the Group Number.

              You can find a lot of errors from the TSAPI layer documented in the AEServicesTSAPIforAvayaCMProgrammersReference document, takes a bit of work to "translate" between the JTAPI layer though.

              Adam
              Adam | Swampfox Technologies Inc. | Avaya Partner
              Solutioning in: Avaya Experience Portal | AXP Connect | AES

              Comment

              • avc930146307620
                Member
                • Aug 2025
                • 9

                #8
                Adam,

                You are absolutely right! We used the Group Number instead of the Agent Extension. For the Agent Ext, it successfully casts it to the ACDAddress.
                BTW, is it possible to listen on a Group Number?

                Thank you for all your help!

                Gene.

                Comment

                • avc861193901584
                  Whiz
                  • Sep 2024
                  • 34

                  #9
                  Hi Gene,

                  I believe TSAPI requires use of the Group Extension. As far as I'm aware, you would need to make a SOAP call to the AESSMS service to be able to map a Group Extension from a given Group Number.
                  Adam | Swampfox Technologies Inc. | Avaya Partner
                  Solutioning in: Avaya Experience Portal | AXP Connect | AES

                  Comment

                  • avc930146307620
                    Member
                    • Aug 2025
                    • 9

                    #10
                    Hi Adam,
                    We added listeners to the ACDAgent and AgentTerminal. They return some data, but it's probably not enough. Will try the SOAP AES SMS.
                    Thank you!
                    Gene.

                    Comment

                    • avc930146307620
                      Member
                      • Aug 2025
                      • 9

                      #11
                      Hi Adam,
                      What is it preferrable to use in our case, AES DMCC or SOAP AES SMS? DMCC has Java SDK.
                      Thank you.
                      Gene.

                      Comment

                      • avc861193901584
                        Whiz
                        • Sep 2024
                        • 34

                        #12
                        Hey Gene,

                        You'll get the same information from AES DMCC as you do from JTAPI. It's just a slightly more modern SDK that better adheres to the TSAPI documentation and provides more APIs for controlling calls and playing media. Do you know specifically what information you are looking to get?

                        TSAPI, JTAPI, and DMCC all return real-time data based on events from live traffic.
                        SOAP AES SMS returns configuration data so you can see what entities exist in the system.

                        Adam
                        Adam | Swampfox Technologies Inc. | Avaya Partner
                        Solutioning in: Avaya Experience Portal | AXP Connect | AES

                        Comment

                        • avc930146307620
                          Member
                          • Aug 2025
                          • 9

                          #13
                          Hey Adam.

                          Thank you for the helpful information.

                          It looks like we can get the agent ids, extensions, ANIs, etc. from JTAPI. And all the event notifications, of course. Still not sure if we need the agent names or some other info.
                          So, it's still an open question if we need SOAP AES SMS.
                          BTW, is there any Java SDK to work with it, or we have to construct the XML requests and parse the XML replies ourselves?

                          Gene.

                          Comment

                          • avc861193901584
                            Whiz
                            • Sep 2024
                            • 34

                            #14
                            Unfortunately, it looks like JTAPI doesn't give access to the TSAPI Query Device Name Service for Agent Names. DMCC probably does, though.

                            My recommendation would be to generate a SOAP client based off of the AES SMS WSDLs (search on Google for JAXB, you can automatically generate the XML from the WSDLs).
                            You can retrieve the WSDL and use a test page at: https://<aes ip>/smsxml/smsxml_test.php . Note that it requires the customer to provide an Avaya Communication Manager account to use.

                            Adam
                            Adam | Swampfox Technologies Inc. | Avaya Partner
                            Solutioning in: Avaya Experience Portal | AXP Connect | AES

                            Comment

                            Loading