ConferenceCall and SingleStepConference endpoints

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • avc859587618170
    Brainiac
    • Jun 2024
    • 65

    ConferenceCall and SingleStepConference endpoints

    Hey everyone! Has anyone used either the ConferenceCall or SingleStepConference endpoints? I'm in the process of trying to get this set up in my proof of concept application. For 10.2, the swagger page is showing the below as an example of the body for a SingleStepConference:

    Code:
    {
      "activeCall": {},
      "deviceToJoin": {
        "typeOfNumber": "string",
        "mediaClass": "string",
        "connectionRate": "string",
        "bitRate": "string",
        "delayTolerance": 0,
        "switchingSubDomainCCIEType": "string",
        "switchingSubDomainInformationElements": "string"
      },
      "participationType": 0,
      "accountCode": {},
      "authCode": "string",
      "correlatorData": {},
      "userData": {},
      "subjectOfCall": "string",
      "languagePreferences": "string"
    }
    This seems quite a bit different from what I was seeing in the 10.1 swagger page, which was this:

    Code:
    {
      "activeCall": {
        "callID": 0,
        "deviceID": "string"
      },
      "deviceToJoin": "string",
      "participationType": "string"
    }
    
    {
      "activeCall": {
        "deviceID": "5580:CM55::0",
        "callID": 462
      },
      "transferredTo": "5590:CM55:0.0.0.0:0"
    }
    Does anyone have an example of what the body should be for both the ConferenceCall and SingleStepConference? Thanks for any help!!

    Have a good day,

    Dave
    Last edited by avc859587618170; 10-28-2024, 10:51 AM.
    Dave Morrison
    Software Engineer
  • flynn1
    Brainiac
    .
    • Jun 2011
    • 82

    #2
    Starting condition;
    • 50500 is in a call with 50501 (CallID 1249).
    We want to Single-step 50502 into the call:
    Code:
    Sending WTI request to AES using: /api/fe/v1/SingleStepConferenceCall
    {
            "deviceToJoin": "50502:CM181::0",
            "participationType": "active",
            "activeCall": {
                    "callID": 1249,
                    "deviceID": "50500:CM181::0"
            }
    }
    ======== Incoming WTI Response =============
    
    {"SingleStepConferenceCallResponse": {
            "globallyUniqueCallLinkageID": "00081012491730192407",
            "conferencedCall": {
                    "callID": 1249,
                    "deviceID": "50502:CM181::0"
            },
            "resultingConnections": {"connection": [
                    {
                            "callID": 1249,
                            "deviceID": "50501:CM181::0"
                    },
                    {
                            "callID": 1249,
                            "deviceID": "50500:CM181::0"
                    },
                    {
                            "callID": 1249,
                            "deviceID": "50502:CM181::0"
                    }
            ]}
    }}​
    participationType can also be "silent" if you do not want participants to see that they are in a conference. This is typically used for recorders.

    Comment

    • flynn1
      Brainiac
      .
      • Jun 2011
      • 82

      #3
      Starting conditions:
      • 50500 in Call 1249 (Held) to 50501.
      • 50500 in Call 1286 (Active, talking) to 50502
      We want to conference the two calls together:
      Code:
      Sending WTI request to AES using: /api/fe/v1/ConferenceCall
      {
              "activeCall": {
                      "callID": 1286,
                      "deviceID": "50500:CM181::0"
              },
              "heldCall": {
                      "callID": 1249,
                      "deviceID": "50500:CM181::0"
              }
      }
      ======== Incoming WTI Response =============
      
      {"ConferenceCallResponse": {
              "callLinkageData": {"globalCallData": {"globalCallLinkageID": {"globallyUniqueCallLinkageID": "00081012491730192407"}}},
              "conferenceCall": {
                      "callID": 1286,
                      "deviceID": "50500:CM181::0"
              },
              "connections": {"connectionListItem": [
                      {
                              "endpoint": {"deviceID": "50500:CM181::0"},
                              "newConnection": {
                                      "callID": 1286,
                                      "deviceID": "50500:CM181::0"
                              }
                      },
                      {
                              "endpoint": {"deviceID": "50502:CM181::0"},
                              "newConnection": {
                                      "callID": 1286,
                                      "deviceID": "50502:CM181::0"
                              }
                      },
                      {
                              "endpoint": {"deviceID": "50501:CM181::0"},
                              "newConnection": {
                                      "callID": 1286,
                                      "deviceID": "50501:CM181::0"
                              }
                      }
              ]}
      }}​

      Comment

      • avc859587618170
        Brainiac
        • Jun 2024
        • 65

        #4
        Awesome!!! Thank you! I can't wait to get this in my POC..

        Have a great day and thanks again!

        Dave
        Dave Morrison
        Software Engineer

        Comment

        • avc859587618170
          Brainiac
          • Jun 2024
          • 65

          #5
          Quick question.. will these conferences work for an outside number? Or do they only work for internal calls? I'm thinking Single Step won't work for an external number?

          Thanks again!!

          Dave
          Dave Morrison
          Software Engineer

          Comment

          • flynn1
            Brainiac
            .
            • Jun 2011
            • 82

            #6
            You can conference an outside number into a call using the normal process: hold call, make new call, answer new call and conference the two calls (alternatively, conference before answer).

            SSC can only be made to a local station. See the "Single Step Conference Call Service" section of the TSAPI Programmers Guide for full details.

            Martin

            Comment

            • avc859587618170
              Brainiac
              • Jun 2024
              • 65

              #7
              Thanks again Martin!

              Dave
              Dave Morrison
              Software Engineer

              Comment

              • avc859587618170
                Brainiac
                • Jun 2024
                • 65

                #8
                So, I'm finally getting time to work on this.. but i think I'm doing it wrong. So, to make a conference call, I need to:
                • Put current call on hold
                • Dial new number
                • Answer new call
                • Conference in old call that's on hold
                So, to dial a new number, I need to somehow use the 2nd call appearance? Does that sound right? And if so, how do I do that?

                Thanks for any insight!

                Dave
                Dave Morrison
                Software Engineer

                Comment

                • flynn1
                  Brainiac
                  .
                  • Jun 2011
                  • 82

                  #9
                  As you are using Third-party features and not First-party, you can just use makeCall. It will use the next available call appearance.

                  Comment

                  • avc859587618170
                    Brainiac
                    • Jun 2024
                    • 65

                    #10
                    Originally posted by flynn1 View Post
                    As you are using Third-party features and not First-party, you can just use makeCall. It will use the next available call appearance.
                    Cool! Thanks Martin!

                    Dave
                    Dave Morrison
                    Software Engineer

                    Comment

                    • avc859587618170
                      Brainiac
                      • Jun 2024
                      • 65

                      #11
                      Ok, I can't seem to figure this out. So, trying to do a conference call using the "/fe/v1/ConferenceCall" endpoint. So, the below is the json body I'm sending:

                      Code:
                      {
                          "activeCall": {
                              "callID": 1034,
                              "deviceID": "1234567890:rcd2cm2act81t:0.0.0.0:1"
                          },
                          "heldCall": {
                              "callID": 1004,
                              "deviceID": "0987654321:rcd2cm2act81t:0.0.0.0:1"
                          }
                      }
                      The activeCall is the new call I made and that was answered that I now have active.
                      The heldCall is the first call I made, which I then put on hold.

                      I get a 400 BadRequest with the below as the error:

                      Code:
                      {
                          "stateIncompatibility": "invalidConnectionIDForActiveCall"
                      }​
                      I do see an error in the dmcc-trace.log that says: "InvalidConnectionIDForActiveCallException: The Call ID in activeCall or heldCall has not be specified correctly: error code 23"

                      I only have 2 callid's right? One for the call I originally call and put on hold, and the other is for the second call I've made and I'm currently on the phone with. I don't get a different one in there somewhere do I?

                      Thanks for any insight!

                      Dave
                      Dave Morrison
                      Software Engineer

                      Comment

                      • flynn1
                        Brainiac
                        .
                        • Jun 2011
                        • 82

                        #12
                        At first glance, I would say that the the DeviceID of both the active and held calls must be that of the conference controller - the device making the conference. I presume that the numbers you gave are faked but the fact that they are different makes me think that you are not using the same number for both.

                        Comment

                        • avc859587618170
                          Brainiac
                          • Jun 2024
                          • 65

                          #13
                          Ooohhh, that seems weird though.. but it worked!! I used the below payload:

                          Code:
                          {
                              "activeCall": {
                                  "callID": 1046,
                                  "deviceID": "1234567890:rcd2cm2act81t:0.0.0.0:1"
                              },
                              "heldCall": {
                                  "callID": 1045,
                                  "deviceID": "1234567890:rcd2cm2act81t:0.0.0.0:1"
                              }
                          }
                          where the deviceid is my avaya lab number I'm using to make all of the calls.

                          Thanks as always Martin!

                          Dave
                          Dave Morrison
                          Software Engineer

                          Comment

                          • flynn1
                            Brainiac
                            .
                            • Jun 2011
                            • 82

                            #14
                            You should always consult the TSAPI Programmers Reference when you want to know what can and can't be used in requests. You can get a copy by following the instructions in https://support.avaya.com/forums/for...rking-with-wti

                            Comment

                            • avc859587618170
                              Brainiac
                              • Jun 2024
                              • 65

                              #15
                              Originally posted by flynn1 View Post
                              You should always consult the TSAPI Programmers Reference when you want to know what can and can't be used in requests. You can get a copy by following the instructions in https://support.avaya.com/forums/for...rking-with-wti
                              Thanks Martin! I'll download that now.. it looks like a great resource!!

                              Dave
                              Dave Morrison
                              Software Engineer

                              Comment

                              Loading