XML API 10.0.0 SP6 Release Notes

Important: The XML API 10.0.0 SP6 release changes some schema definitions. For the latest schema definitions, see the release notes announcements page. The features in this release are backward compatibility with previous releases.
 

 

Overview

This release note describes the changes made in the release of Webex XML API 10.0.0 SP6. These changes apply to your integration with WBS 31.
All features are backward compatible with existing integrations. There are changes to the latest schema definitions explained below.

 
 

Meeting Center New Data Model Support

The Meeting Center (MC) XML API now supports the new data model to get site configurations. This new model is applicable only for sites that have a mapping row in the WbxSiteBaseMap table.


When a user is associated with a Meeting Center online site, Atlas sends a notification to Webex. On receiving the notification, the user is added to Webex through the XML API. MC online sites use the new data. An MC online site may have two kinds of URLs (e.g, abc.my.webex.com and abc.webex.com).


Logic Design

All the Java classes that deal with site configuration data are updated to get/set their data in the tables for the new Webex site data model. Both the new and old data models are supported.


The overall logic is as follows:

Loading site config data:

Check whether a given siteId has an entry in wbxSiteBase. If so, this site follows the new data model. Else, use the old code.

If it is a site based on new data model,

        get the attributes from the corresponding wbxSiteBaseConfig table and form the SiteConfig object.

        get any site specific params from wbxSiteSpecificParams table and merge into the SiteConfig object created in the previous step.

Updating site config data item:

Get the current value from wbxSiteSpecificParams table for the item.

If found, update or increment the value, depending upon the operation.

If not found,

        get the value from the wbxSiteBaseConfig table for the site.

        use this value to insert a new record into wbxSiteSpecificParams table.


Join Before Host Settings Support

The old a option Allow attendees or panelists to join teleconference before host (EC, MC and TC) was split into three options for each of Meeting Center (MC), Training Center (TC) and Event Center (EC). The option The first attendee to join will be the presenter (MC) was moved under the new option Allow attendees to join audio conference (MC), to indicate the dependence between them. The The first attendee to join will be the presenter (MC) option is checked if and only if Allow attendees to join audio conference (MC) is checked.

APIs impacted

API Name

Behavior Change

CreateEvent 
SetEvent 
GetEvent 
DelEvent

Modified the logic for Allow attendees to join audio conference (EC) with new JBH logic for TC

CreateMeeting 
SetMeeting 
DelMeeting 
GetMeeting 
LstMeeting

1.      Modified the logic for Allow attendees to join audio conference (MC) with new JBH logic for MC

2.      Modified the logic for The first attendee to join will be the presenter (MC) with new JBH logic for MC

CreateTrainingSession
SetTrainingSession 
DelTtrainingSession 
GetTrainingSession

Modified the logic for Allow attendees to join audio conference (MC) with new JBH logic for MC

GetSite

1.      Replaced element Allow attendees or panelists to join teleconference before host (EC, MC and TC) in three elements:

         audioBeforeHost (The old element audioBeforeHost is only for MC. No compatibility impact for MC)

         audioBeforeHostTC (There may be compatibility issues for TC and EC see the section Schema Changes for more information)

         audioBeforeHostEC (There may be compatibility issues for TC and EC see the section Schema Changes for more information)

2.      Modify the logic for The first attendee to join will be the presenter (MC) to match the new JBH logic

Schema Changes

The getSite API audioBeforeHost now applies only to MC, with the three new elements: audioBeforeHost, audioBeforeHostEC and audioBeforeHostTC.

The following diagram shows the addition of the new elements:


schema diagram of getSite

Behavior Changes

The following describes how to map old settings to new settings:


schema diagram of settings

DB Info

  1. The old flag Allow attendees or panelists to join teleconference before host (EC, MC and TC) in Site Administration is from the WBXSITECONFIG Table and ItemName is AllowBeforeJoinTeleconference
  2. The new flag Allow attendees to join audio conference (MC) in Site Administration is from the WBXSITECONFIG Table and ItemName is still AllowBeforeJoinTeleconference, but now it just for MC, not for all centers
  3. The new flag Allow attendees to join audio conference (EC) in Site Administration is from WBXSITECONFIG Table and ItemName is AllowBeforeJoinTeleconferenceEC
  4. The new flag Allow attendees to join audio conference (TC) in Site Administration is from WBXSITECONFIG Table and ItemName is AllowBeforeJoinTeleconferenceTC
  5. The flag The first attendee to join will be the presenter (MC) in Site Administration is from WBXSITECONFIG Table and ItemName is SupportFirstTBPresenter

  6. Logic Design

    1. For flag value of "Allow attendees to join audio conference (MC)"

    if  (flag of "AllowBeforeJoinTeleconference" is existing on DB){
     
        return value via flag of "AllowBeforeJoinTeleconference".
     
    }else {
        return false;
    }
    

    2. For flag value of "Allow attendees to join audio conference (EC)"

    if  (flag of "AllowBeforeJoinTeleconferenceEC" is existing on DB)  {
     
        return it's value;
     
    } else if  (flag of "AllowBeforeJoinTeleconference" is existing on DB){
     
     
        return value via flag of "AllowBeforeJoinTeleconference".
     
    }else {
        return false;
    }
    

    3. For flag value of "Allow attendees to join audio conference (TC)"

    if  (flag of "AllowBeforeJoinTeleconferenceTC" is existing on DB)  {
     
        return it's value;
     
    } else if  (flag of "AllowBeforeJoinTeleconference" is existing on DB){
     
     
        return value via flag of "AllowBeforeJoinTeleconference".
     
    }else {
        return false;
    }
    

    4. For flag value of "The first attendee to join will be the presenter (MC)"

    return ( 
        flag value of "Allow attendees to join audio conference (MC)"
        &&
        flag value of "SupportFirstTBPresenter" on DB
    )
    

    TSP Account Information

    For meetings scheduled by XML API, the extended TSP account information is now visible so that mobile users can directly call the toll and toll-free numbers.

    APIs impacted

    getSessionInfo

    Schema Changes

    None

    Behavior Changes

    getSessionInfo gets TSP number from wbxMMConfParam.

    Logic Design

    If telephonySupport=CALLIN or CALLBACK and enableTSP=true then     (TSP only) 
          If dial-in Numbers is not null and access Codes is not null in wbxMMConfParam then   (has meeting level TSP account) 
                Return the formatted audio account information    (return meeting level TSP account information) 
          Else 
                Go back to base logic 
          Endif 
    Else 
          Go back to base logic 
    Endif 
    

    GetUserCard API

    This API provides information about Personal Room and avatar image details for a given user identity. A user identity can be one of these three:

    • webExId
    • email address
    • personal room url

    For the avatar images, size can be specified as well, and in that case the url to an avatar which matches closest to the requested size is returned. There is no authentication for this API.

    APIs impacted

    getUserCard - this is a new API.

    Schema changes

    The following diagram shows the additional API:


    schema diagram of getUserCard

    Design

    • Personal Room (PR) elements are the same as the ones returned by the GetUser API for PR related items.
    • If the site has disabled PRs or the user has no PR enabled, PR items are null.
    • For Common Identity (CI) users who have an uploaded avatar, the corresponding url stored in WebDB is returned, but with the image most closely matching the requested size.
    • For non-CI users, who have an uploaded avatar, if the corresponding image does exist, a url to the image is returned.
    • For non-CI users, if the image does not exist, an image based on the initials (first letter of first name and last name) is returned.
    • If, at any point, a valid URL image can not be returned, the default avatar url image is returned.
    • When the image url returned is that of a system generated one or a default one, isUploaded is set to false.
    • For non-CI users who have the image files available on the server file system and for initials-based avatar images, the lastModifiedTtime returned is the last modified time of that file.
    • For CI users, the lastModifiedTime is returned from this query: select lastModifiedTime from WBXUSEREXTINFO where UID_=? and itemName='CIPhotoURL'
    • If a default avatar image is returned, the lastModifiedTime is set to ten years before the current time, so that it is not cached for the user.

    XML API Support for Alternate Host Capability in Personal Rooms

    Webex now support owners of personal rooms assigning other users to be able to host meetings on their behalf, including starting and stopping meetings. (For example, a meeting organizer is running late and needs a colleague to start the meeting.) The objective of this feature is to apply the current alternate host functionality to Personal Rooms.

    APIs impacted

    GetUser - GetUser should return all alternate hosts information for PRs

    CreateUser - Allow end user call CreateUser to set alternate hosts information for PMR

    SetUser - Allow end user call SetUser to modify alternate hosts information for PMR

    Schema changes

    GetUser/CreateUser/SetUser for "Let others host my Personal Room meetings without me" <PMRAlternateHost> under <personalMeetingRoom>


    schema diagram of PMRAlternateHost

    GetUser/CreateUser/SetUser for <alternateHost> under <personalMeetingRoom>


    schema diagram of alternateHost

    Logic Design


    ScreenShot of Alternate Host set up

    1.    Check site level option "WBXSITECONFIG->EnablePersonalRoom" to know current site support PMR or not.

    a.     If no support, there are <PMRAlternateHost> or <alternateHost> element in xml request on CreateUser/SetUser, should return exception 010046 "The site does not support Personal Meeting Room", and GetUser should not return any elements regarding with alternate hosts.

    2.    Check site level option "WBXSITECONFIG->AllowChooseAlternateHost" from DB to know current site is support alternate host feature or not.

    a.     If site does not support alternate host feature, and end users call CreateUser/SetUser want to operate this feature, should return exception 010026 "The site prevents user from choosing an alternate host".

    b.    If site does not support alternate host feature, GetUser return value of <PMRAlternateHost> always FALSE, and no element <alternateHost> be return.

    3.    Check site level option "WBXSITECONFIG->AllowAnyUserToBeAlternateHostSA" to know current site is support "Allow anyone with an account ..." feature or not.

    a.     If site does not support this feature "Allow anyone with an account ...", the element <allowAnyoneHostMyPRM> disallow to be set with True, throw exception 010095when happen on CreateUser/SetUser. 

    b.    If site does not support this feature, <allowAnyoneHostMyPRM> under <alternateHost> value always is FALSE on GetUser.

    4.    Even though site support the PMR, end user also can close it with  element <isEnablePMR> on xml request with FALSE.

    a.     If end user set the <isEnablePMR> with FALSE in xml request,  there are <PMRAlternateHost> or <alternateHost> element in xml request on CreateUser/SetUser, should return exception 030028 "User does not support personal meeting room".

    5.    Even though site support the alternate host, end user also can turn off the alternate host by self using <PMRAlternateHost> with FALSE.

    a.     If end user does not open the alternate host feature for PMR in xml request, if there is <alternateHost> element in xml request CreateUser/SetUser should return exception 030111.

    6.    When both site and PMR support alternate host feature, site level flag of "Allow anyone with an account ..." are True, and <isEnablePMR> is TRUE:

    a.     There is no <PMRAlternateHost> element on CreateUser/SetUser:

                              i.        CreateUser should set DB "DisableAlternateHost" with 0 (default value), GetUser return <PMRAlternateHost> with true;

                             ii.        SetUser should get value from DB "DisableAlternateHost".

    b.    There is no <alternateHost> element,  on CreateUser/SetUser:

                              i.        CreateUser should set DB "AllowAnyUserToBeAlternateHost" with 0 (default value), GetUser return <allowAnyoneHostMyPMR> with false;

                             ii.        SetUser should get value from DB "AllowAnyUserToBeAlternateHost";

                            iii.        No any changes for alternate host information on DB.

    c.     There are only <allowAnyoneHostMyPMR>  under <alternateHost>, and <PMRAlternateHost> is TRUE:

                              i.        CreateUser/SetUser set DB "AllowAnyUserToBeAlternateHost" with inputted value.

    d.    There are only <host> under <alternateHost> , and <PMRAlternateHost> is TRUE:

                              i.        For CreateUser, due to the  "AllowAnyUserToBeAlternateHost" default is false, so store <host> information into DB; GetUser can return them;

                             ii.        For SetUser, if the DB "AllowAnyUserToBeAlternateHost" is 0 or null, store the <host> information with alternate host into DB; if the DB "AllowAnyUserToBeAlternateHost" is 1, return exception 030110.

    e.    There are both <allowAnyoneHostMyPMR> and <hosts> under <alternateHost>, and <PMRAlternateHost> is TRUE:

                              i.        The value of <allowAnyoneHostMyPMR> is FALSE, CreateUser/SetUser store both of them into DB, GetUser return them;

                             ii.        The value of <allowAnyoneHostMyPMR> is TRUE, return exception 030110.

    7.    For each alternate host information, we should check the email account is existing or not on site, if no found return exception 040006 "No corresponding WebexID found".

    8.    If the email format is not right, return exception 999999 "The email address is invalid";

    9.    Note for SetUser:

    a.      if there is <host> element, it will drop all exiting alternate host information from DB first, after than insert them into DB with new;

    b.    if no any sub-element <host> under <hosts>, that means end user want to remove all alternate host information from DB, than GetUser will not return <hosts> element (no alternate host for this PMR).

    10.  For one existing PMR data, if there are some alternate host information for it, when we call SetUser to close PMR, or switch to "Allow anyone with ...", no need remove the existing alternate host information from DB, once end user open PMR or switch back "Let me choose ...", these alternate host information still is there, end user does not need to set them again.

    Exception List

    ExceptionID Exception Message Remark
    010046 The site does not support Personal Meeting Room  
    030028 User does not support personal meeting room  
    010095 The site does not support Allow anyone with a host account host their scheduled or PMR meetings.  
    010026 The site prevents user from choosing an alternate host  
    030005 Email is in use. Drop existing alternate host first, then insert new hosts, so no need for this exception.

     

     
    999999 The email address is invalid  
    040007 The role is not supported for adding specified attendee to session  
    040006 No corresponding WebexID found  
    030109 Cannot set alternate host because user does not support personal meeting room To be included on 030028, so no need a new one
    030110 Cannot include hosts element if user allowed anyone host personal meeting room New exception
    030111 Cannot include alternateHost element if user does not support PMR alternate host New exception

    DB Information and Design

    Table Name

    Field/Item Name

    Description

    Remark

    WBXSITECONFIG

    AllowChooseAlternateHost

    1. Existing site level option for alternate host, to know current site supports alternate hosts or not.
    2. If no alternate host support, also does not supporting this feature.
    3. The element name <SupportAlternateHost> on GetSite api.


    site level option for AllowChooseAlternateHost

    GetSite already returned it.

    WBXSITECONFIG

    AllowAnyUserToBeAlternateHostSA

    1. Existing site level option for MC regular meeting to know if the current site supports "Any users to let anyone with a host account on this site host their scheduled or Personal Room meetings".
      site level option for AllowAnyUserToBeAlternateHostSA
    2. If the site level option is unchecked (false), the PR option "Allow anyone with an account on this site to be an alternate host for my Personal Room meetings" cannot be selected. This means in XML API exception 010095 is returned as same as (<allowAnyoneHostMyPMR> element under <alternateHost> in CreateUser/SetUser/GetUser).


    site level option for AllowAnyUserToBeAlternateHostSA

     

    WbxMMConfParam

    DisableAlternateHost

    1. A new meeting level checkbox "Let others host my Personal Room meeting without me" to enable/disable alternate host for PRs: (NOTE: even if the checkbox is unchecked, don't remove invited alternate host info).
    2. By default is 0, turn off alternate host feature for PR.
    3. PR page, XML API can turn on or off this option.
    4. This checkbox depends on supporting alternate host feature (DB: AllowChooseAlternateHost).
    5. The element is <PMRAlternateHost> under <personalMeetingRoom> on CreateUser, SetUser and GetUser apis.

      site level option for DisableAlternateHost

    GetUser/CreateUser/SetUser should maintain/get it.

    WBXMMCONFPARAM

    AllowAnyUserToBeAlternateHost

    1. This meeting level option is to know if anyone can host this PR or not.
    2. If allowAnyUserToBeAlternateHost flag is "0" or "NULL", the option of "Let me choose alternate hosts for my Personal Room meeting" is be selected (Default is 0, no found is "NULL").
    3. If allowAnyUserToBeAlternateHost flag is "1", it is selected on "Allow anyone with an account on this site to be an alternate host for my Personal Room meetings" option.
    4. Before selecting "Allow anyone with an account on …" (set allowAnyUserToBeAlternateHost with "1"), check site level flag "AllowAnyUserToBeAlternateHostSA", if the value is "0" it should throw exception 010095 "The site does not support Allow anyone with a host account host their scheduled or PR meetings." in XML API.
    5. The above option is under "Let others host my Personal room meeting without me" (DB: DisableAlternateHost) checkbox.
    6. Note: even if switching between two options, don't remove invited alternate host info from DB.
    7. The element <allowAnyoneHostMyPMR> under <alternateHost> on CreateUser, SetUser and GetUser APIs.

      site level option for AllowAnyUserToBeAlternateHost

    GetUser/CreateUser/SetUser should maintain/get it.

    WBXCALENDAR

    ALTERNATEHOST

    1. Alternate host info is stored in the WebDB, the same as alternate host for regular meeting, when the PR owner sets it.
    2. The value appear like "Cathine Sinu, Wil Jones, Sherry Wu", the elements naming <host> under <alternateHost> on CreateUser, SetUser and GetUser APIs.
    3. If the entered alternate host account does not exist on site, throw the exception "Only users who have host accounts on this site can be alternate hosts".


    site level UI for ALTERNATEHOST

    GetUser/CreateUser/SetUser should read/modify it.

    MTGCONFATTENDEELIST

    • USERTYPE=‘Member'
    • TOKEN=‘2'
    1. Append for each alternate host information into MTGCONFATTENDEELIST table (same as regular meeting), and the USERTYPE=‘Member' and TOKEN=‘2'.

    XML API Support for "Any user on this site" Option for Alternate Host

    Meeting hosts can use this feature to allow any other user on the site to be an alternate host for meetings and personal rooms. The host has an option to check a box to allow "Any user in this site" to be an alternate host.

    APIs Impacted

    API Name

    Description

    Remark

    GetSite

    1. Two new elements "SupportAlternateHost" and "SupportAnyoneHostMeetings";
    2. Element "SupportAlternatHost" is to know if the current site supports the alternate host feature "When scheduling a meeting, users can choose an alternate host"
    3. Element "SupportAnyoneHostMeetings" is for option "Allow users to let anyone with a host account on this site host their scheduled or Personal Room meetings";
    4. The value of "SupportAnyoneHostMeetings" is under the "SupportAlternateHost".

    Elements SupportAlternateHost and SupportAnyoneHostMeetings

    CreateMeeting

     &

    SetMeeting

    1. The new element "allowAnyoneHostMeeting" is to support the "Let anyone with a host account on this site host my meeting" feature when scheduling a new MC meeting or editing an existing meeting;
    2. If the site does not letting anyone host meetings ("SupportAnyoneHostMeetings" is unchecked), the exception (010095) is sent if there is the above new element and the value is TRUE in the XML request.
      Element allowAnyoneHostMeeting

    DelMeeting

    1. Drop the flag from DB when deleting a meeting

    GetMeeting

    1. Return this feature flag naming "allowAnyoneHostMeeting" for meeting.

    GetSessionInfo

    1. Return this feature flag naming "allowAnyoneHostMeeting" for MC meeting.
    2. Return join before host (JBH) time (US58256) naming "openTimeInSec" for meeting.
    1. New element "allowAnyoneHostMeeting" just for MC meetings, other kinds of meetings do not return it.
    2. New element "openTime" is for MC, TC and EC meetings.

    Exception ID

    Exceptiom Message

    010095 (New)

    The site does not support allowing anyone with to host scheduled or PR meetings.

    Schema changes

    GetSite for SupportAlternateHost and SupportAnyoneHostMeetings


    Schema changes for GetSite

    CreateMeeting/SetMeeting/GetMeeting for allowAnyoneHostMeeting


    Schema changes for CreateMeeting

    GetSessionInfo for allowAnyoneHostMeeting


    Schema changes for getSessionInfo

    GetSessionInfo for JBH time (openTimeInSec with seconds)


    Schema changes for GetSessionInfo_OpenTimeInSec

    DB Design

    Table Name

    Field/Item Name

    Description

    Remark

    WBXSITECONFIG

    AllowChooseAlternateHost

    Does the current site support choosing an alternate host for meeting


    Schema changes for GetSessionInfo_OpenTimeInSec

    Default is false.

    WBXSITECONFIG

    WbxDefaultSiteConfig 

    AllowAnyUserToBeAlternateHostSA

    Does the current site support allowing users to let anyone host their scheduled or personal room meetings


    Schema changes for GetSessionInfo_OpenTimeInSec

    Default is false.

    WBXMMCONFPARAM

    AllowAnyUserToBeAlternateHost

    The meeting level flag, it is used to know if the current meeting supports anyone with a host account to host this meeting or PR meeting.

    Option on scheduling MC Meeting page:


    Schema changes for GetSessionInfo_OpenTimeInSec

    Default is false.


    XML API GetSite Support for Obtaining Site Settings

    Two new site settings were added that Productivity Tools require to retrieve them through API.

    APIs Impacted

    GetSite

    Behavior Changed

    These changes are transparent to end users. There is is no API behavior change.

    Logic Design

    Two items are created, DefNumOfCMRHybridCallInParticipants and MaxNumOfCMRHybridCallInParticipants. Mapping table column PTCMRHybridDefaultCallInNumber and PTCMRHybridMaxCallInNumber.

    These two items are only shown in response when ProductivityTools and SupportTelePresencePlus are on.


    Enhance GetUser to Return Avatar Details

    This adds information about avatar image details for a given user identity to GetUser response. If the expected size of an avatar image is passed, in the case of Common Identity (CI) enabled users, a link to an image which closely matches the requested size will be returned. For non-CI enabled users, the passed size value is ignored and it returns a link to the uploaded profile image. If a profile image does not exist, a link to a system generated initials (first character of first name and last name) based image will be returned.

    APIs impacted

    GetUser API

    Schema changes

        <xsd:complexType name="getUser">

            <xsd:complexContent>

                <xsd:extension base="serv:bodyContentType">

                    <xsd:sequence>

                        <xsd:element name="webExId" type="xsd:string"/>

                        <xsd:element name="avatarSize" type="xsd:integer" minOccurs="0" maxOccurs="1"/>    <-- New element

                    </xsd:sequence>

                </xsd:extension>

            </xsd:complexContent>

        </xsd:complexType>

        <xsd:complexType name="getUserResponse">

            <xsd:complexContent>

                <xsd:extension base="use:userInstanceType">

                    <xsd:sequence>

                        ....

                        <xsd:element name="avatar" type="use:userCardAvatarType" minOccurs="0"/>             <-- New element

                    </xsd:sequence>

                </xsd:extension>

            </xsd:complexContent>

        </xsd:complexType>


    For the structure of use:userCardAvatarType, please refer to GetUserCard API section.


    Related Release Information

    The XML API schemas and release notes are available at the Cisco Webex Developer Portal:
    https://developer.cisco.com/site/collaboration/webex/webex-developer/develop-test/xml-api/reference/

    The URL API release notes are available at the Cisco Webex Developer Portal:
    https://developer.cisco.com/site/collaboration/webex/webex-developer/develop-test/url-api/reference/