API 40.12.0 Updates

XML API 40.12.0 Updates

Click here to download the XML API 40.12.0 schema

XML API supports Private Meeting type

XML APIs be impacted

  • We can use API: CreateMeeting and SetMeeting to schedule or update a Webex Meeting with Private Meeting type.

  • If a Webex Meeting is scheduled with Private Meeting type, GetSessionInfo GetMeeting, LstSummarySession, and LstCalendarSession will return a new element naming is PrivateMeeting to know it.

  • GetMeetingType and LstMeetingType return a new element naming SupportPrivateMeeting which indicates if it supports Private Meetings or not.

Schema changes

XML API: GetMeetingType/LstMeetingType: Append the <SupportPrivateMeeting> element.

XML API: LstSummarySession: Append the <isPrivateMeeting> element.

XML API: LstCalendarSession: Append the <isPrivateMeeting> element.

XML API: GetSessionInfo: Append the <isPrivateMeeting> element.

XML API: GetMeeting: Append the <isPrivateMeeting> element.

Request of XML API: CreateMeeting

Request of CreateMeeting with Private Meeting type

<body>
<bodyContent xsi:type="java:com.webex.service.binding.meeting.CreateMeeting">
<schedule>
<startDate>10/25/2020 13:00:00</startDate>
<duration>45</duration>
<timeZoneID>45</timeZoneID>
</schedule>
<accessControl>
<meetingPassword>********</meetingPassword>
</accessControl>
<metaData>
<confName>MC_PrivateMeeting_Test</confName>
<meetingType>168</meetingType> //169 is a sample which supports Private Meeting
</metaData>
</bodyContent>
</body>

Response of XML API: GetSessionInfo

Response for isPrivateMeeting

<ep:supportE2E>false</ep:supportE2E>
<ep:isAllowJBH>true</ep:isAllowJBH>
<ep:isPrivateMeeting>true</ep:isPrivateMeeting> //true: the meeting supports Private Meeting; false: the meeting does not support Private Meeting.
<ep:isCETMeeting>false</ep:isCETMeeting>
<ep:isPersonalMeetingRoom>false</ep:isPersonalMeetingRoom>
<ep:isNextUpcomingInstance>true</ep:isNextUpcomingInstance>

GetSite API will return site-level meeting templates

User Story/Task Description

GetSite API to return site-level meeting template. This will allow Education Connector and Webex Classrooms to show these templates for the teachers to pick and choose these templates while scheduling their on-line sessions.

APIs impacted

If there are customized meeting templates which are site-level, GetSite api will returns these site-level templates.

Elements Name

Description

meetingTemplateName

the name of site-level customized meeting templates

serviceType

Webex Meetings, Webex Trainings, and Webex Events

Schema changes

GetSite : Append the <meetingTemplates> element.

Response Sample

GetSite Response

<ns1:meetingTypes>
<ns1:meetingTypeID>3</ns1:meetingTypeID>
<ns1:meetingTypeName>PRO</ns1:meetingTypeName>
</ns1:meetingTypes>
<ns1:meetingTemplates>
<ns1:meetingTemplate>
<ns1:meetingTemplateName>MC Meeting Tempalte 1</ns1:meetingTemplateName>
<ns1:serviceType>MeetingCenter</ns1:serviceType>
</ns1:meetingTemplate>
<ns1:meetingTemplate>
<ns1:meetingTemplateName>EC Meeting Tempalte 2</ns1:meetingTemplateName>
<ns1:serviceType>EventCenter</ns1:serviceType>
</ns1:meetingTemplate>
<ns1:meetingTemplate>
<ns1:meetingTemplateName>TC Meeting Template 3</ns1:meetingTemplateName>
<ns1:serviceType>TrainingCenter</ns1:serviceType>
</ns1:meetingTemplate>
</ns1:meetingTemplates>

XML API SetUser cannot change element of supportedServices when the site is CI unified site

Description

XMLAPI SetUser don't support change value of "supportedServices" in an API request when the site is a Control Hub linked Unified Webex Meeting sites.

Schema changes

There’s no schema change on the API: SetUser.

WEBEX-15436: Add protection to avoid duplicate emails in Mtgconfattendeelist

Description

If multiple attendees having the same email are added to the same meeting in the same API request, we only process the first attendee with the email.

Impacted APIs

  • CreateMeetingAttendee

  • CreateUser

  • SetUser

  • CreateMeeting

  • SetMeeting

  • CreateEvent

  • SetEvent

  • CreateTrainingSession

  • SetTrainingSession

Sample API

Request

<?xml version="1.0" encoding="ISO-8859-1"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>testSite</siteName>
<webExID>testUser</webExID>
<password>password</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.attendee.CreateMeetingAttendee">
<sessionKey>1714904382</sessionKey>
<person>
<email>test@webex.com</email>
<name>name1</name>
</person>
<attendees>
<person>
<email>test@webex.com</email>
<name>name2</name>
</person>
<sessionKey>1714904382</sessionKey>
</attendees>
</bodyContent>
</body>
</serv:message>

API 40.11.0 Updates

XML API 40.11.0 Updates

Click here to download the XML API 40.11.0 schema

XMLAPI CreateUser supports displayname

CreateUser supports dispalyname when feature toggle EnableDisplayName is as 1. If the feature toggle isn’t 1, then the displayName will be ignored.

Schema changes

CreateUser:

XMLAPI SetUser supports displayname

SetUser supports dispalyname when feature toggle EnableDisplayName is 1. If the feature toggle isn’t 1, the displayName will be ignored.

Schema changes

SetUser:

XMLAPI GetUser supports displayname

GetUser supports dispalyname when feature toggle EnableDisplayName is 1. If the feature toggle isn’t 1, the displayName will not be displayed.

When displayName in DB is null and feature toggle EnableDisplayName is 1, displayName will be firstName+" "+lastName for Non-Asian characters and firstName+lastName for Asian characters.

Schema changes

GetUserResponse:

XMLAPI User level Control for CMR Hybrid Voip

The cmrHybridVoip setting is used to set and retrieve the user level setting for EnableCMRHybridVoIP.

Schema changes

GetUser Response:

CreateUser Request:

SetUser Request:

API 40.10.0 Updates

XML API 40.10.0 Updates

Click here to download the XML API 40.10.0 schema

XML API support for meeting UUID in API request and response

Sample XML API: GetSessionInfo Request:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<sessionKey>805325231</sessionKey>
or
<meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</meetingUUID>
</bodyContent>
</body>
</serv:message>

Response:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="ep:getSessionInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ep:status>NOT_INPROGRESS</ep:status>
<ep:isLocked>false</ep:isLocked>
<ep:sessionkey>805325231</ep:sessionkey>
<ep:meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</ep:meetingUUID>
<ep:confID>158941507534980823</ep:confID>
...
...
</serv:bodyContent>
</serv:body>
</serv:message>

Affected API:

  • CreateMeetingAttendee

  • DelMeetingAttendee

  • RegisterMeetingAttendee

  • CreateTeleconferenceSession

  • SetTeleconferenceSession

  • GetTeleconferenceSession

  • CreateTrainingSession

  • SetTrainingSession

  • GetTrainingSession

  • DelTrainingSession

  • CreateEvent

  • SetEvent

  • DelEvent

XMLAPI will return an extra element for Site Admin configuration to disable screen capture

The requirement comes from Security - both PenTest bugs and customers, like Goldman Sachs. They don’t want to allow the end users to take screen capture in the Meetings app. Meanwhile lots of other customers want this feature - to allow the screen capture. Also Education users wants to allow the screen capture too. So we will have a Site Administrator configuration for this, and XMLAPI will return an extra field EnableMobileScreenCapture in the response of GetSite to support this.

Sample of GetSite request

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<header>
<securityContext>
<siteName>xxxx</siteName>
<webExID>Test</webExID>
<password>xxxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.site.GetSite" />
</body>
</serv:message>

<?xml version="1.0" encoding="ISO-8859-1"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:ns1="http://www.webex.com/schemas/2002/06/service/site" xmlns:event="http://www.webex.com/schemas/2002/06/service/event">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="ns1:getSiteResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:siteInstance>
...
<ns1:securityOptions>
...
...
<ns1:EnableMobileScreenCapture>false</ns1:EnableMobileScreenCapture>
...
</ns1:securityOptions>
...
</ns1:siteInstance>
</serv:bodyContent>
</serv:body>
</serv:message>

Affected API

GetSite

XMLAPI support MEET-269 PIN-less Join Improvement

XMLAPI add a NEW OPTION Video conferencing systems in my organization can start and join meetings without prompts for Personal Room meeting and MC Meeting.

  • createUser/setUser/getUser add a new node deviceCanStartMyPMR in personalMeetingRoom.

  • createMeeting/setMeeting/getMeeting add a new node deviceCanStartMeeting in schedule.

The option in Webex UI for Personal Room meeting :

Schema changes

CreateUser:

SetUser:

getUserResponse:

CreateMeeting:

setMeeting:

getMeetingResponse:

API 40.9.0 Updates

XML API 40.9.0 Updates

Click here to download the XML API 40.9.0 schema

XML API support for meeting UUID request and response

We have added the meeting UUID to the API request and response wherever we support as a meetingKey or sessionKey.

Sample XML API: GetSessionInfo Request:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<sessionKey>805325231</sessionKey>
or
<meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</meetingUUID>
</bodyContent>
</body>
</serv:message>

Response:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="ep:getSessionInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ep:status>NOT_INPROGRESS</ep:status>
<ep:isLocked>false</ep:isLocked>
<ep:sessionkey>805325231</ep:sessionkey>
<ep:meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</ep:meetingUUID>
<ep:confID>158941507534980823</ep:confID>
...
...
</serv:bodyContent>
</serv:body>
</serv:message>

Affected API:

  • GetEnrollmentInfo

  • LstsummaryTrainingSession

  • AddScheduledTest

  • SetScheduledTest

  • DelScheduledTest

  • GetTestInformation

  • UploadEventImage

  • SendInvitationEmail

  • CreateSupportSession

  • LstmeetingusagePreliminaryHistory

  • LstmeetingattendeePreliminaryHistory

  • LsteventsessionPreliminaryHistory

  • LsteventattendeePreliminaryHistory

  • LstTrainingPollResultsHistory

Webex meetings will have a locked meeting lobby where users can wait to be admitted into the meeting

The XML API schedule and edit MC meeting to support locked Lobby when the feature(ConsistentLockedLobby) toggle on.

Schema changes

Added three new elements (externalAttendeeSecurity, autoLock, autoLockWaitTime) into the CreateMeeting, SetMeeting, and GetMeeting APIs.

Element

Description

externalAttendeeSecurity

When meeting is unlocked, there are three External User Security items can be choices.

AllowJoin: Can Join the meeting immediately;

AllowJoinWithLobby: Can join the meeting only if host let them in;

BlockFromJoin: Can't join the meeting;

autoLock

Whether Automatically locking the meeting.

True: Automatically lock the meeting after # minutes after meeting starts

False: Does not automatically lock the meeting after meeting starts

autoLockWaitTime

Minutes (0,5,10,15,20) for automatically lock the meeting after meeting starts

Request and response sample

Request of CreateMeeting:

<bodyContent xsi:type="java:com.webex.service.binding.meeting.CreateMeeting">
...
<attendeeOptions>
...
<joinRequiresAccount>false</joinRequiresAccount>
<externalAttendeeSecurity>AllowJoinWithLobby</externalAttendeeSecurity>
<autoLock>true</autoLock>
<autoLockWaitTime>10</autoLockWaitTime>
</attendeeOptions>
...
</bodyContent>
</body>
</serv:message>

Request of SetMeeting:

<bodyContent xsi:type="java:com.webex.service.binding.meeting.SetMeeting">
<meetingkey>2###1###01</meetingkey>
...
<attendeeOptions>
...
<joinRequiresAccount>false</joinRequiresAccount>
<externalAttendeeSecurity>AllowJoinWithLobby</externalAttendeeSecurity>
<autoLock>true</autoLock>
<autoLockWaitTime>10</autoLockWaitTime>
</attendeeOptions>
...
</bodyContent>
</body>
</serv:message>

Response of GetMeeting:

<?xml version="1.0" encoding="ISO-8859-1"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common"

xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="meet:getMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
<meet:attendeeOptions>
...
<meet:joinRequiresAccount>false</meet:joinRequiresAccount>
<meet:externalAttendeeSecurity>AllowJoin</meet:externalAttendeeSecurity>
<meet:autoLock>true</meet:autoLock>
<meet:autoLockWaitTime>10</meet:autoLockWaitTime>
</meet:attendeeOptions>
...
</bodyContent>
</body>
</serv:message>

Affected API:

  • CreateMeeting

  • SetMeeting

  • GetMeeting

Enhancement GetSessionInfo API to return participants' status on in-progress session

Added two new elements (hasHostInMeeting, hasAttendeeInMeeting) into response of GetSessionInfo. These two element will be returned when the meeting is a in-progress meeting.

Element

Description

hasHostInMeeting

Whether host has joined the in-progress meeting.

True: Host is in the in-progress meeting.

False/Null: Host is not in the in-progress meeting or the meeting is not in-progress meeting.

hasAttendeeInMeeting

Whether there is an attendee/host has joined the in-progress meeting.

True: there is an attendee or host in the in-progress meeting.

False/Null: there is not any attendee or host in the in-progress meeting, or the meeting is not in-progress meeting.

API response sample:

<?xml version="1.0" encoding="ISO-8859-1"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common"

xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="meet:getMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...

<ep:status>INPROGRESS</ep:status>


<ep:hasHostInMeeting>true</ep:hasHostInMeeting>

<ep:hasAttendeeInMeeting>true</ep:hasAttendeeInMeeting>

...
</bodyContent>
</body>
</serv:message>

Affected API:

GetSessionInfo

The API GetUserCard requires authorization.

Security enhancement the XML API GetUserCard requires authorization to get user's information.

Affected API:

GetUserCard

API 40.8.0 Updates

XML API 40.8.0 Updates

Click here to download the XML API 40.8.0 schema

GetSessionInfo response enhancement

If you are not invited or approved from the meeting, your call to XML API: GetSessionInfo will not return the elements: confName, startDate, duration, timeZone, meetingLink, sipURL, displayMeetingUrl in the API response body.

API Response Example for Meetings:

<serv:bodyContent xsi:type="ep:getSessionInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ep:status>NOT_INPROGRESS</ep:status>
<ep:sessionkey>1####2###4</ep:sessionkey>
<ep:accessControl>
<ep:listStatus>UNLISTED</ep:listStatus>
<ep:registration>false</ep:registration>
<ep:passwordReq>true</ep:passwordReq>
<ep:isRegisterIDRequired>false</ep:isRegisterIDRequired>
</ep:accessControl>
<ep:metaData>
<ep:serviceType>MeetingCenter</ep:serviceType>
</ep:metaData>
<ep:attendeeOptions>
<ep:joinRequiresAccount>false</ep:joinRequiresAccount>
</ep:attendeeOptions>
<ep:isAllowJBH>true</ep:isAllowJBH>
<ep:isCETMeeting>true</ep:isCETMeeting>
<ep:isPersonalMeetingRoom>false</ep:isPersonalMeetingRoom>
</serv:bodyContent>

API Response Example for Trainings/Events:

<serv:bodyContent xsi:type="ep:getSessionInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ep:status>NOT_INPROGRESS</ep:status>
<ep:sessionkey>1####5###9</ep:sessionkey>
<ep:accessControl>
<ep:listStatus>UNLISTED</ep:listStatus>
<ep:registration>true</ep:registration>
<ep:registrationURL>https://sitename.webex.com/tc3300/trainingcenter/register/registerSession.do?siteurl=sitename&amp;confID=16###92######61</ep:registrationURL>
<ep:passwordReq>true</ep:passwordReq>
<ep:registrationURLForMobile>https://sitename.webex.com/tc3300/trainingcenter/meeting/sessionInfoMobile.do?siteurl=sitename&amp;confID=16###92######61</ep:registrationURLForMobile>
<ep:joinStatus>INVITE/REGISTER/REJECT</ep:joinStatus>
<ep:isRegisterIDRequired>false</ep:isRegisterIDRequired>
</ep:accessControl>
<ep:metaData>
<ep:serviceType>TrainingCenter</ep:serviceType>
</ep:metaData>
<ep:attendeeOptions>
<ep:joinRequiresAccount>false</ep:joinRequiresAccount>
</ep:attendeeOptions>
<ep:isAllowJBH>true</ep:isAllowJBH>
<ep:isCETMeeting>true</ep:isCETMeeting>
<ep:isPersonalMeetingRoom>false</ep:isPersonalMeetingRoom>
</serv:bodyContent>

Affected API:

  • GetSessionInfo

GetSessionInfo, GetUserCardSecurity Enhancements

We did a security enhancement on XML API GetSessionInfo and GetUserCard. We will block users from accessing these two APIs in next two hours if their call reached the limit in one hour with no data found errors.

The error status response is: "403 Forbidden"

Affected APIs:
  • GetSessionInfo

  • GetUserCard

meetingUUID in API request and response support

We have added meetingUUID to the API request and response wherever we support a meetingKey/sessionKey.

GetSessionInfo Request:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<sessionKey>805325231</sessionKey>
or
<meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</meetingUUID>
</bodyContent>
</body>
</serv:message>

Response:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="ep:getSessionInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ep:status>NOT_INPROGRESS</ep:status>
<ep:isLocked>false</ep:isLocked>
<ep:sessionkey>805325231</ep:sessionkey>
<ep:meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</ep:meetingUUID>
<ep:confID>158941507534980823</ep:confID>
...
...
</serv:bodyContent>
</serv:body>
</serv:message>

Affected API:

  • LstOpenSession

  • GetEnrollmentInfo

  • LstsummaryMeeting

  • LstScheduledTests

  • GetEvent

  • LstsummaryEvent

  • LstmeetingusageHistory

  • LsttrainingsessionHistory

  • LsteventsessionHistory

  • LstsupportsessionHistory

  • DelSession

Education sites template (EDU session type) in XML API support

When your sites enable the Education Instructor (EDU) session type, the XML API can support to schedule a meeting with the EDU meeting template.

Affected API:

  • CreateMeeting

  • SetMeeting

  • CreateEvent

  • SetEvent

  • CreateTrainingSession

  • SetTrainingSession

XML API CreateMeetingAttendee and RegisterMeetingAttendee support

Both CreateMeetingAttendee and RegisterMeetingAttendee are able to check the required attendee registration form for a Webex Meetings registration.

And there is a new exception for this task:

Exception Number

Message of Exception

040014

Missing required fields (registration form): ...

For example, if you selected "Job Title" and "Company Name" as the require fields for an attendee Webex Meetings registration as shown below, then you must provide value on the "Job Title" and "Company Name" when calling the two APIs: CreateMeetingAttendee and RegisterMeetingAttendee.

RegisterMeetingAttendee Request:

<body>
<bodyContent xsi:type="java:com.webex.service.binding.attendee.RegisterMeetingAttendee">
<attendees>
<person>
<name>FirstNameb LastName</name>
<firstName>FirstNameb</firstName>
<lastName>LastName</lastName>
<title>Engineer</title> //Job Title
<company>Cisco1234</company> //Company Name
...
<email>****@*****.com</email>
<type>VISITOR</type>
<sendReminder>true</sendReminder>
</person>
<role>ATTENDEE</role>
<joinStatus>ACCEPT</joinStatus>
<emailInvitations>true</emailInvitations>
<sessionKey>1####4####1</sessionKey>
</attendees>
</bodyContent>
</body>
</serv:message>

CreateMeetingAttendee Request:

<bodyContent xsi:type="java:com.webex.service.binding.attendee.CreateMeetingAttendee">
<person>
<name>FirstNameA LastNameA</name>
<firstName>FirstNameA</firstName>
<lastName>LastNameA</lastName>
<title>Engineer</title> //Job Title
<company>Cisco1234</company> //Company Name
...
<email>*****@*****.com</email>
<type>VISITOR</type>
<sendReminder>true</sendReminder>
</person>
<role>ATTENDEE</role>
<joinStatus>ACCEPT</joinStatus>
<emailInvitations>true</emailInvitations>
<sessionKey>1###4####1</sessionKey>

040014 Exception of ResponseExample:


<?xml version="1.0" encoding="ISO-8859-1"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
<serv:header>
<serv:response>
<serv:result>FAILURE</serv:result>
<serv:reason>Missing required fields (registration form) : title,company</serv:reason>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
<serv:exceptionID>040014</serv:exceptionID>
<serv:value>title,company</serv:value>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent/>
</serv:body>
</serv:message>

Affected API:

  • CreateMeetingAttendee

  • RegisterMeetingAttendee

XML API Email validation enhancements

XML API should not allow white-space character(s) in an email, so we have enhanced email validation to align with the Webex Meetings Page behavior.

Affected API:

  • CreateMeetingAttendee

  • CreateEvent

  • SetEvent

  • CreateContact

  • SetContact

  • SetRecordingInfo

  • CreateMeetingAttendee

  • CreateTrainingSession

  • SetTrainingSession

  • CreateUser

  • SetUser

  • CreateMeeting

  • SetMeeting

  • RegisterMeetingAttendee

API 40.7.0 Updates

XML API 40.7.0 Updates

Click here to download the XML API 40.7.0 schema

meetingUUID support

We have added meetingUUID to the API request and response wherever we support a meetingKey or sessionKey.

GetSessionInfo Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<sessionKey>805325231</sessionKey>
or
<meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</meetingUUID>
</bodyContent>
</body>
</serv:message>

GetSessionInfo Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<sessionKey>805325231</sessionKey>
or
<meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</meetingUUID>
</bodyContent>
</body>
</serv:message>

GetSessionInfo Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="ep:getSessionInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ep:status>NOT_INPROGRESS</ep:status>
<ep:isLocked>false</ep:isLocked>
<ep:sessionkey>805325231</ep:sessionkey>
<ep:meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</ep:meetingUUID>
<ep:confID>158941507534980823</ep:confID>
...
...
</serv:bodyContent>
</serv:body>
</serv:message>

Affected APIs:

  • LstmeetingattendeeHistory

  • LsttrainingattendeeHistory

  • LsteventattendeeHistory

  • LstsupportattendeeHistory

CreateUser API welcome email support for four new languages

The XMLAPI welcome html email supports the following four new languages:

  • Czech (languageID=19)

  • Polish (languageID=20)

  • Hungarian (languageID=21)

  • Romanian (languageID=22)

XMLAPI sends the welcome email according to the language or languageID in the CreateUser request.

Using CreateUser to Send Html Welcome Email Example (Czech):

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<bodyContent xsi:type="java:com.webex.service.binding.user.CreateUser">
<firstName>test</firstName>
<lastName>user</lastName>
<webExId>testuser</webExId>
<password>xxxxxx</password>
<email>testuser@test.com</email>
<privilege>
<host>true</host>
</privilege>
<languageID>19</languageID>
or
<language>Czech</language>
<active>ACTIVATED</active>
<sendWelcome>true</sendWelcome>
<isHTMLEmail>true</isHTMLEmail>
</bodyContent>
</bodyContent>
</body>
</serv:message>

API 40.6.1, 40.4.9 Updates

XML API 40.6.1, 40.4.9 Updates

Click here to download the XML API 40.6.1 schema

Click here to download the XML API 40.4.9 schema

CreateMeeting/SetMeeting support

When you schedule a Webex meeting, XML API CreateMeeting/SetMeeting allows you to check or uncheck or click a required or not-required field from the attendee registration form.

The following is sample Meetings schedule from the user web page where you can check required fields such as "Job Title", "Company Name", "City", and "State" on the attendee registration form:

The following is a mapping between page fields and XML API's elements:

Page FieldsXMLAPI Element
Job Title
<title>
Company Name
<company>
Address 1
<address1>
Address 2
<address2>
City
<city>
State
<state>
Zip/Post Code
<postalCode>
Country/region
<country>
Work Phone
<phone>
Fax
<fax>

Changed schema: Add "registrationForm" element into CreateMeeting

Changed schema: Add "registrationForm" element into SetMeeting

Changed schema: Add "registrationForm" element into GetMeeting

CreateMeeting Request Example:

<bodyContent xsi:type="java:com.webex.service.binding.meeting.CreateMeeting">
<accessControl>
<meetingPassword>password</meetingPassword>
</accessControl>
<attendeeOptions>
<emailInvitations>true</emailInvitations>
<registration>true</registration>
<auto>false</auto>
</attendeeOptions>
<registrationForm>
<title><req>true</req></title> <!-- true -->
<company><req>true</req></company> <!-- true -->
<address1><req>false</req></address1>
<address2><req>false</req></address2>
<city><req>true</req></city> <!-- true -->
<state><req>true</req></state> <!-- true -->
<postalCode><req>false</req></postalCode>
<country><req>false</req></country>
<phone><req>false</req></phone>
<fax><req>false</req></fax>
</registrationForm>

SetMeeting Request Example:

<bodyContent xsi:type="java:com.webex.service.binding.meeting.SetMeeting">
<meetingkey>1015045339</meetingkey>

<metaData>
<confName>Conference Name</confName>
<meetingType>3</meetingType>
</metaData>

<attendeeOptions>
<emailInvitations>true</emailInvitations>
<registration>true</registration>
<auto>true</auto>
</attendeeOptions>

<registrationForm>
<title><req>true</req></title>
<company><req>true</req></company>
<address1><req>false</req></address1>
<address2><req>false</req></address2>
<city><req>true</req></city>
<state><req>true</req></state>
<postalCode><req>false</req></postalCode>
<country><req>false</req></country>
<phone><req>false</req></phone>
<fax><req>false</req></fax>
</registrationForm>

GetMeeting Response Example:

<meet:sipURL>1234567890@sitename.webex.com</meet:sipURL>
<meet:displayMeetingUrl>1234567890@sitename.webex.com</meet:displayMeetingUrl>
<meet:registrationForm>
<meet:phone><meet:req>false</meet:req></meet:phone>
<meet:title><meet:req>true</meet:req></meet:title>
<meet:company><meet:req>true</meet:req></meet:company>
<meet:address1><meet:req>false</meet:req></meet:address1>
<meet:address2><meet:req>false</meet:req></meet:address2>
<meet:city><meet:req>true</meet:req></meet:city>
<meet:state><meet:req>true</meet:req></meet:state>
<meet:postalCode><meet:req>false</meet:req></meet:postalCode>
<meet:country><meet:req>false</meet:req></meet:country>
<meet:fax><meet:req>false</meet:req></meet:fax>
</meet:registrationForm>
</serv:bodyContent>
</serv:body>
</serv:message>

Affected APIs:

  • CreateMeeting

  • SetMeeting

  • GetMeeting

  • DelMeeting

The E2EE meeting type doesn't support a PMR meeting

When you enable a PMR during a call with the APIs:CreateUser/SetUser/GetUser/GetMe and only an E2EE meeting type is avaliable, it will response the following error message: "110063 The user must have at least one non-E2EE meeting type to enable PMR."

Affected APIs:

  • CreateUser

  • SetUser

  • GetUser

  • GetMe

API 40.6.0 Updates

XML API 40.6.0 Updates

Click here to download the XML API 40.6.0 schema

User Management role added

We have created the User Management role and the schema file for the following has changed.

Changed Schema: CreateUserrequest:

Changed Schema: SetUser

Changed Schema: GetMeresponse:

Changed Schema: LstsummaryUserresponse:

Affected APIs:

  • CreateUser

  • SetUser

  • GetMe

  • LstsummaryUser

CreateUserRequest Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>SiteAdmin</webExID>
<password>xxxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.user.CreateUser">
<firstName>xxx</firstName>
<lastName>xxx</lastName>
<webExId>xxx</webExId>
<password>xxx</password>
<email>xxx</email>
<privilege>
<umSiteAdmin>true</umSiteAdmin>
<host>false</host>

<siteAdmin>false</siteAdmin>
<labAdmin>false</labAdmin>
<voiceOverIp>false</voiceOverIp>
</privilege>
<languageID>3</languageID>
<active>ACTIVATED</active>
<sendWelcome>true</sendWelcome>
<isHTMLEmail>true</isHTMLEmail>
</bodyContent>
</body>
</serv:message>

Support using API key access the GetUserCard

We now support using the API key (generated JWT token) access the API: GetUserCard in this release.

You can refer to these pages about applying one API key and to generate a JWT token:

How to apply one API key

How to generate JWT token

GetUserCardRequest Example:

POST https://{sitename}.webex.com/WBXService/XMLService
Header:
Content-Type application/json;charset=utf-8
JWTToken ${jwttoken}
Body:
<?xml version="1.0" encoding="UTF-8"?>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2009/05/service">
<header>
<securityContext>
<siteName>{sitename}</siteName>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.user.GetUserCard">
<webExId>{userName}</webExId>
</bodyContent>
</body>
</message>

Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:use="http://www.webex.com/schemas/2002/06/service/user">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="use:getUserCardResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<use:avatar>
<use:url>https://xxxx.webex.com/svc3300/svccomponents/html/img/avatar160.png</use:url>
<use:lastModifiedTime>1587493389768</use:lastModifiedTime>
<use:isUploaded>false</use:isUploaded>
</use:avatar>
<use:personalMeetingRoom>
<use:title>Test's Personal Room</use:title>
<use:personalMeetingRoomURL>https://xxxx.webex.com/meet/Test</use:personalMeetingRoomURL>
<use:accessCode>713289692</use:accessCode>
</use:personalMeetingRoom>
</serv:bodyContent>
</serv:body>
</serv:message>

Support for meetingUUID in API request and response

We have added meetingUUID to the API request and response when we support a meetingKey or sessionKey.

Affected APIs:

  • LstRecording

  • LstsummarySession

  • GetSesssionInfo

  • GethosturlMeeting

  • GetjoinurlMeeting

  • LstMeetingAttendee

  • CreateMeeting

  • SetMeeting

  • GetMeeting

  • DelMeeting

  • LstCalendarSession

meetingUUIDRequest Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<sessionKey>805325231</sessionKey>
or
<meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</meetingUUID>
</bodyContent>
</body>
</serv:message>

meetingUUIDResponse Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="ep:getSessionInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ep:status>NOT_INPROGRESS</ep:status>
<ep:isLocked>false</ep:isLocked>
<ep:sessionkey>805325231</ep:sessionkey>
<ep:meetingUUID>039c00dd25c64ab0812dda22bb8a4fcc</ep:meetingUUID>
<ep:confID>158941507534980823</ep:confID>
...
...
</serv:bodyContent>
</serv:body>
</serv:message>

PMR meeting keys will not be changed from a temporarily deactivated user or disabled PMR

When a temporary deactivated user or disabled PMR re-activates within one week, the now re-activated user or enabled the PMR's meeting key is not changed, it will be the same as before.

Affected APIs:

  • SetUser

  • DelUser

LstSummarySession enhancements

We enhanced the API: LstSummarySession return scheduled-PMR to have one new element, returnScheduledPMR, in the request. And the feature toggle default is off.

Affected APIs:

  • LstSummarySession

Schema Change:

We add a new element name returnScheduledPMR in the API LstSummarySession request.

We add a new element name isScheduledPMR in the API LstSummarySession response.

LstSummarySessionRequest Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
<partnerID>xxxx</partnerID>
<clientInfo>xxxx</clientInfo>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.LstsummarySession">
<listControl>
<startFrom>1</startFrom>
<maximumNum>2</maximumNum>
<listMethod>AND</listMethod>
</listControl>
<dateScope>
<startDateStart>11/01/2019 8:0:0</startDateStart>
<startDateEnd>12/01/2019 7:59:59</startDateEnd>
<timeZoneID>4</timeZoneID>
<endDateStart>11/01/2019 8:0:0</endDateStart>
<endDateEnd>12/01/2019 7:59:59</endDateEnd>
</dateScope>
<order>
<orderBy>HOSTWEBEXID</orderBy>
<orderAD>ASC</orderAD>
<orderBy>CONFNAME</orderBy>
<orderAD>ASC</orderAD>
<orderBy>STARTTIME</orderBy>
<orderAD>ASC</orderAD>
</order>
<serviceTypes>
<serviceType>EventCenter</serviceType>
<serviceType>MeetingCenter</serviceType>
<serviceType>SalesCenter</serviceType>
<serviceType>TrainingCenter</serviceType>
<serviceType>SupportCenter</serviceType>
</serviceTypes>
<returnScheduledPMR>true</returnScheduledPMR>
</bodyContent>
</body>
</serv:message>

LstSummarySessionResponse Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ep:lstsummarySessionResponse">
<ep:matchingRecords>
<serv:total>1787</serv:total>
<serv:returned>2</serv:returned>
<serv:startFrom>1</serv:startFrom>
</ep:matchingRecords>
<ep:session>
<ep:sessionKey>809914325</ep:sessionKey>
<ep:MeetingUUID>809914325</ep:MeetingUUID>
<ep:confName>Team Meeting</ep:confName>
<ep:sessionType>3</ep:sessionType>
<ep:serviceType>MeetingCenter</ep:serviceType>
<ep:hostWebExID>Test</ep:hostWebExID>
<ep:hostFirstName>Test</ep:hostFirstName>
<ep:hostLastName>Test</ep:hostLastName>
<ep:otherHostWebExID>Test</ep:otherHostWebExID>
<ep:timeZoneID>2</ep:timeZoneID>
<ep:timeZone>GMT-10:00, Hawaii (Honolulu)</ep:timeZone>
<ep:status>NOT_INPROGRESS</ep:status>
<ep:startTime>10/12/2019 00:35:41</ep:startTime>
<ep:duration>60</ep:duration>
<ep:listStatus>PUBLIC</ep:listStatus>
<ep:hostEmail>Test@webex.com</ep:hostEmail>
<ep:passwordReq>true</ep:passwordReq>
<ep:hostJoined>false</ep:hostJoined>
<ep:participantsJoined>false</ep:participantsJoined>
<ep:confID>141672157056861215</ep:confID>
<ep:registration>false</ep:registration>
<ep:isRecurring>true</ep:isRecurring>
<ep:hostType>1019001</ep:hostType>
<ep:isAudioOnly>false</ep:isAudioOnly>
<ep:isTCSingleRecurrence>false</ep:isTCSingleRecurrence>
<ep:isAllowJBH>false</ep:isAllowJBH>
<ep:isCETMeeting>true</ep:isCETMeeting>
<ep:isException>false</ep:isException>
<ep:isNextUpcomingInstance>false</ep:isNextUpcomingInstance>
<ep:seriesMeetingKey>0</ep:seriesMeetingKey>
<ep:recurrenceId>0</ep:recurrenceId>
<ep:isScheduledPMR>true</ep:isScheduledPMR>
</ep:session>
<ep:session>
<ep:sessionKey>805660167</ep:sessionKey>
<ep:confName>xmlmc Molly08Console816960001</ep:confName>
<ep:sessionType>3</ep:sessionType>
<ep:serviceType>MeetingCenter</ep:serviceType>
<ep:hostWebExID>Molly08Console81696000</ep:hostWebExID>
<ep:hostFirstName>Molly08Console81696000</ep:hostFirstName>
<ep:hostLastName>Molly08Console81696000</ep:hostLastName>
<ep:otherHostWebExID>Molly08Console81696000</ep:otherHostWebExID>
<ep:timeZoneID>2</ep:timeZoneID>
<ep:timeZone>GMT-10:00, Hawaii (Honolulu)</ep:timeZone>
<ep:status>NOT_INPROGRESS</ep:status>
<ep:startTime>10/12/2019 00:35:41</ep:startTime>
<ep:duration>60</ep:duration>
<ep:listStatus>PUBLIC</ep:listStatus>
<ep:hostEmail>Molly08Console81696000@webex.com</ep:hostEmail>
<ep:passwordReq>true</ep:passwordReq>
<ep:hostJoined>false</ep:hostJoined>
<ep:participantsJoined>false</ep:participantsJoined>
<ep:confID>141672108716459038</ep:confID>
<ep:registration>false</ep:registration>
<ep:isRecurring>true</ep:isRecurring>
<ep:hostType>1019001</ep:hostType>
<ep:isAudioOnly>false</ep:isAudioOnly>
<ep:isTCSingleRecurrence>false</ep:isTCSingleRecurrence>
<ep:isAllowJBH>false</ep:isAllowJBH>
<ep:isCETMeeting>true</ep:isCETMeeting>
<ep:isException>false</ep:isException>
<ep:isNextUpcomingInstance>false</ep:isNextUpcomingInstance>
<ep:seriesMeetingKey>0</ep:seriesMeetingKey>
<ep:recurrenceId>0</ep:recurrenceId>
<ep:isScheduledPMR>true</ep:isScheduledPMR>
</ep:session>
</serv:bodyContent>
</serv:body>
</serv:message>

GetSite enhancements

We have added a GetSiteresponse feature toggle of SupportXMLAPIReturnScheduledPMR

Affected APIs:

  • GetSite

Schema Change:

The XML API GetSiteresponse new element is: SupportXMLAPIReturnScheduledPMR

GetSiteRequest Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>xxx</siteName>
<webExID>Test</webExID>
<password>xxx</password>
<clientInfo>xxx</clientInfo>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.site.GetSite">
</bodyContent>
</body>
</serv:message>

GetSiteResponse Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:ns1="http://www.webex.com/schemas/2002/06/service/site" xmlns:event="http://www.webex.com/schemas/2002/06/service/event">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="ns1:getSiteResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:siteInstance>
<ns1:siteCommonOptions>
...
<ns1:SupportXMLAPIReturnScheduledPMR>true</ns1:SupportXMLAPIReturnScheduledPMR>
...
</ns1:siteCommonOptions>
</ns1:siteInstance>
</serv:bodyContent>
</serv:body>
</serv:message>

API 40.4.8, 40.2.9 Updates

XML API 40.4.8, 40.2.9 Updates

Click here to download the XML API 40.4.8 schema

Click here to download the XML API 40.2.9 schema

New response when updating scheduled meetings in XMLAPI

When customers use XMLAPI to update meetings scheduled through their page, we’ll send the numeric password in a meeting email update, and apply it to Webex Meetings, Teams, and Events centers.

Those APIs: GetMeeting, GetTrainingSession, GetEvent and GetTeleconferenceSession, will have these new elements as a response: audioPassword (numeric password), isEnforceAudioPassword, isEnforceAudioLogin for Webex Meetings, Teams, and Events centers.

Changed Schema:

Affected APIs:

  • GetMeeting

  • GetTrainingSession

  • GetEvent

  • GetTeleconferenceSession

GetMeetingRequest Example:

<?xml version="1.0" encoding="ISO-8859-1"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>testSite</siteName>
<webExID>test</webExID>
<password>xxx</password>
<partnerID>xx</partnerID>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.meeting.GetMeeting">
<meetingKey>803328224</meetingKey>
</bodyContent>
</body>
</serv:message>

Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="meet:getMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<meet:accessControl>
<meet:listToPublic>false</meet:listToPublic>
<meet:isPublic>false</meet:isPublic>
<meet:meetingPassword>PkzC8tP7kM5</meet:meetingPassword>
<meet:audioPassword>75928877</meet:audioPassword>
<meet:isEnforceAudioPassword>true</meet:isEnforceAudioPassword>
<meet:isEnforceAudioLogin>false</meet:isEnforceAudioLogin>
</meet:accessControl>
...
...
</serv:bodyContent>
</serv:body>
</serv:message>

API 40.4.5, 40.2.6 Updates

XML API 40.4.5, 40.2.6 Updates

GetUserCardand GetSessionInfousage limit

We implement the usage limit on API GetUserCard and GetSessionInfo, you could get the error message: "403 forbidden" if you reach the usage limit.

Affected APIs:

  • GetUserCard

  • GetSessionInfo

API 40.4.4, 40.2.5 Updates

XML API 40.4.4, 40.2.5 Updates

BodyContent number limit

We have added a limited number of BodyContent in each XML API section. When you add too many of BodyContent in the API request, the following error code and message will return: "000053 The count of BodyContent in a request must be less than {number}"

Affected APIs:

  • Any XML API

XML API Request with Multiple BodyContent Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<webExID>xxxx</webExID>
<password>xxxx</password>
<siteName>xxx</siteName>
</securityContext>
</header>
<body>

<bodyContent xsi:type="java:com.webex.service.binding.user.GetUser">
<webExId>xxx</webExId>
</bodyContent>

<bodyContent xsi:type="java:com.webex.service.binding.user.GetSite">
</bodyContent>

<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<sessionKey>801020403</sessionKey>
</bodyContent>

</body>
</serv:message>

API 40.4.3, 40.2.4 Updates

XML API 40.4.3, 40.2.4 Updates

Click here to download the XML API 40.4.3, 40.2.4 schema.

CreateUser enhancements

We enhanced CreateUser to support the welcome email in multiple languages. The CreateUser now requests isHTMLEmail

Affected APIs:

  • CreateUser

CreateUser Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<webExID>administrator</webExID>
<password>xxxx</password>
<siteName>xxx</siteName>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.user.CreateUser">
<firstName>xxx</firstName>
<lastName>xxx</lastName>
<webExId>xxx</webExId>
<password>xxx</password>
<email>xxx</email>
<privilege>
<host>true</host>
<siteAdmin>false</siteAdmin>
<labAdmin>false</labAdmin>
<voiceOverIp>false</voiceOverIp>
</privilege>
<languageID>3</languageID>
<active>ACTIVATED</active>
<sendWelcome>true</sendWelcome>
<isHTMLEmail>true</isHTMLEmail>
</bodyContent>
</body>
</serv:message>

API 40.4.0 Updates

XML API 40.4.0 Updates

Enforce email verification when changing emails in XML API

After a site administrator enabled Confirmation required for the user to update email address in Webex Site Administration:

  • If a non-site administrator account calls the SetUser API to change email addresses, the current email remains until the new email is verified. The account change confirmation email is sent to the new email address with the "Webex Account Change Confirmation." After clicking the link in the email to confirm, the new email address is immediately linked.


     

    If a non-site administrator calls the SetUser API several times without finishing the email verification process, the current email is kept, and the latest new email is the one that must be verified.

  • If a site administrator account calls the SetUser API to change email addresses, the email verification process isn't triggered. The new email will immediately be linked to the host's or attendee's account.

Affected APIs:

  • SetUser

GetEnrollmentInfo timeout and connection reset

The GetEnrollmentInfo API currently looks up IP addresses on the Domain Name System, which triggers huge performance impacts. We plan to simplify this process, with an empty response in the <domain> field.

Affected APIs:

  • GetEnrollmentInfo

GetEnrollmentInfo Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>sqdemo6</siteName>
<webExID>xxx</webExID>
<password>xxxx</password>
<partnerID>webexpartner</partnerID>
</securityContext>
</header>
<body>
<bodyContent
xsi:type="java:com.webex.service.binding.attendee.GetEnrollmentInfo">
<sessionKey>716773566</sessionKey>
</bodyContent>
</body>
</serv:message>

GetEnrollmentInfo Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common"
xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="att:getEnrollmentInfoResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<att:session>
<att:confID>154279066999981548</att:confID>
<att:attendee>
<att:attendeeID>3191792</att:attendeeID>
<att:enrollFields>
<att:defaultFields>
<att:firstName>Alex</att:firstName>
<att:lastName>Yang</att:lastName>
<att:email>omega.alex.yang@gmail.com</att:email>
<att:company></att:company>
<att:phoneNum></att:phoneNum>
<att:title></att:title>
<att:receiveInfo>false</att:receiveInfo>
<att:address1></att:address1>
<att:address2></att:address2>
<att:city></att:city>
<att:state></att:state>
<att:zipcode></att:zipcode>
<att:country></att:country>
<att:leadSourceID></att:leadSourceID>
<att:leadScore>0.0</att:leadScore>
</att:defaultFields>
<att:customFields/>
</att:enrollFields>
<att:domain> </att:domain>
<att:ipAddress>10.35.240.53</att:ipAddress>
<att:submitTime>02/27/2020 22:03:57</att:submitTime>
<att:status>APPROVED</att:status>
</att:attendee>
<att:attendee>
<att:attendeeID>3191797</att:attendeeID>
<att:enrollFields>
<att:defaultFields>
<att:firstName>AlexKKK</att:firstName>
<att:lastName>Test</att:lastName>
<att:email>achillesyang@hotmail.com</att:email>
<att:company></att:company>
<att:phoneNum></att:phoneNum>
<att:title></att:title>
<att:receiveInfo>false</att:receiveInfo>
<att:address1></att:address1>
<att:address2></att:address2>
<att:city></att:city>
<att:state></att:state>
<att:zipcode></att:zipcode>
<att:country></att:country>
<att:leadSourceID></att:leadSourceID>
<att:leadScore>0.0</att:leadScore>
</att:defaultFields>
<att:customFields/>
</att:enrollFields>
<att:domain> </att:domain>
<att:ipAddress>10.154.181.15</att:ipAddress>
<att:submitTime>02/27/2020 22:07:38</att:submitTime>
<att:status>APPROVED</att:status>
</att:attendee>
<att:matchingRecords>
<serv:total>2</serv:total>
<serv:returned>2</serv:returned>
<serv:startFrom>1</serv:startFrom>
</att:matchingRecords>
<att:sessionKey>716773566</att:sessionKey>
</att:session>
</serv:bodyContent>
</serv:body>
</serv:message>

API 40.2.0 Updates

XML API 40.2.0 Updates

Click here to download the XML API 40.2.0 schema.

Remove anonymous access to LstSummarySession

As a security enhancement, we're stopping support for anonymous access to the LstSummarySession API. If Webex Meetings anonymously accesses the API, the following error code and message are returned: "000015 Sorry, no record found."

Affected APIs:

  • LstSummarySession

LstSummarySession Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>sitename1</siteName>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.LstsummarySession">
<sessionKey>211894651</sessionKey>
</bodyContent>
</body>
</serv:message>

LstSummarySession Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common"

xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
<serv:header>
<serv:response>
<serv:result>FAILURE</serv:result>
<serv:reason>Sorry, no record found</serv:reason>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
<serv:exceptionID>000015</serv:exceptionID>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent/>
</serv:body>
</serv:message>

CreateMeeting and SetMeeting security enhancements


 

This change was made in XML API 40.2.0, but its description has been edited after receiving customer feedback.

As a security enhancement, we updated the CreateMeeting and SetMeeting APIs to not allow users to schedule a meeting start time that has already passed. If they try, the API prompts the error message: "060016 Session start time should be later than current time." If a user needs to schedule an instant meeting, we recommend that the meeting start time be set five minutes later than the current time.

Affected APIs:

  • CreateMeeting

  • SetMeeting

API 40.1.2 Updates

XML API 40.1.2 Updates

Click here to download the XML API 40.1.2 schema.

Scheduling a meeting automatically generates a password if one isn't provided

We enhanced the CreateMeeting, CreateEvent, CreateTrainingSession, and CreateTeleconferenceSession to include a password in the API response's body.

By default, the All meetings/events/session must have a password setting is enabled. In this scenario, if the API request doesn't include a password, a password is automatically generated from the XML API servers.

If the All meetings/events/session must have a password setting is disabled, and the API request doesn't include a password, a password is not generated from the XML API servers.

If the API request includes a password, then the response will include that password, regardless of the All meetings/events/session must have a password setting being enabled or disabled.

Affected APIs:

  • CreateMeeting

  • CreateEvent

  • CreateTrainingSession

  • CreateTeleconferenceSession

The CreateMeeting response now has the meetingPassword element:

CreateMeeting Request Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>

<siteName>siteName1</siteName>
<webExID>userID</webExID>
<password>*****</password>
<partnerID>webexpartner</partnerID>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.meeting.CreateMeeting">
<metaData>
<confName>Test_Auto_Generated_mtg_pwd</confName>
<meetingType>3</meetingType>
</metaData>

<schedule>
<startDate>10/28/2020 17:35:00</startDate>
</schedule>
</bodyContent>
</body>
</serv:message>

CreateMeeting Response Example:

<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="meet:createMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<meet:meetingkey>806745263</meet:meetingkey>
<meet:meetingPassword>UzXJuzUD428</meet:meetingPassword>
<meet:iCalendarURL>
<serv:host>https://hmwds6.qa.webex.com/hmwds6/j.php?MTID=md225d5935256319ef21b71dd8ebd0640</serv:host>
<serv:attendee>https://hmwds6.qa.webex.com/hmwds6/j.php?MTID=m26bf5e25ca587d32302fb29951b92e15</serv:attendee>
</meet:iCalendarURL>
<meet:guestToken>cfc7f3246d4862f1bb69b803e8615b7a</meet:guestToken>
</serv:bodyContent>
</serv:body>
</serv:message>

The CreateEvent response now has the eventPassword element:

The CreateTrainingSession and CreateTeleconferenceSession responses now have the sessionPassword element:

API 40.1.0 Updates

XML API 40.1.0 Updates

Click here to download the XML API 40.1 schema.

GetSessionInfo enhancements

We've added new elements to the GetSessionInfo API. The API now returns info for mobile devices too.

Affected APIs:

  • GetSessionInfo

GetSessionInfo Request Updates:

Request Example:


<?xml version="1.0" encoding="UTF-8"?>
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>sqdemo11</siteName>
<webExID>siteadmin</webExID>
<password>P@ss1234</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.ep.GetSessionInfo">
<sessionKey>713707633</sessionKey>
<pmrUrl>https://go.webex.com/join/dongchen</pmrUrl>
<sipUrl>dongchen@go.webex.com or 123456789_go@webex.com or 123456789@go.webex.com</sipUrl>
<meetingLink>https://go.webex.com/go/j.php?MTID=m814c6a483d4b5052d539f88d67acbad6</meetingLink>
<meetingUuid>34567323456787654323456787654</meetingUuid>
</bodyContent>
</body>
</serv:message>

LstAccessAnywhereHistory enhancements

We've added a new API, lstAccessAnywhereHistory, to respond with Webex Access Anywhere report info.

Affected APIs:

  • LstAccessAnywhereHistory

LstAccessAnywhereHistory Request Updates:

LstAccessAnywhereHistory Response Updates:

Request Example:


<?xml version="1.0" encoding="UTF-8"?>
<serv:message
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
<header>
<securityContext>
<siteName>sqdemo6</siteName>
<webExID>test</webExID>
<password>P@ss1234</password>
</securityContext>
</header>
<body>
<bodyContent xsi:type="java:com.webex.service.binding.history.LstAccessAnywhereHistory">
<hostWebexID>test1</hostWebexID>
<startTimeScope>
<sessionStartTimeStart>09/29/2019 00:42:34</sessionStartTimeStart>
<sessionStartTimeEnd>12/29/2019 04:42:34</sessionStartTimeEnd>
</startTimeScope>
<endTimeScope>
<sessionEndTimeStart>9/29/2019 02:42:34</sessionEndTimeStart>
<sessionEndTimeEnd>12/29/2019 05:42:34</sessionEndTimeEnd>
</endTimeScope>
<listControl>
<serv:startFrom>1</serv:startFrom>
<serv:maximumNum>10</serv:maximumNum>
<serv:listMethod>OR</serv:listMethod>
</listControl>
<order>
<orderBy>STARTTIME</orderBy>
<orderAD>ASC</orderAD>
</order>
</bodyContent>
</body>
</serv:message>

Response Example:


<?xml version="1.0" encoding="UTF-8"?>
<serv:message
xmlns:serv="http://www.webex.com/schemas/2002/06/service"
xmlns:com="http://www.webex.com/schemas/2002/06/common"
xmlns:history="http://www.webex.com/schemas/2002/06/service/history">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbStatus>PRIMARY</serv:gsbStatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodyContent xsi:type="history:LstAccessAnywhereHistoryResponse"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<history:matchingRecords>
<serv:total>775</serv:total>
<serv:returned>10</serv:returned>
<serv:startFrom>1</serv:startFrom>
</history:matchingRecords>
<history:accessAnyWhereInfo>
<history:confID>123456</history:confID>
<history:userName>dean</history:userName>
<history:computerName>6926_dean</history:computerName>
<history:clientIP>10.224.222.183</history:clientIP>
<history:startTime>11/29/2019 03:05:44</history:startTime>
<history:endTime>11/29/2019 03:10:06</history:endTime>
<history:duration>5</history:duration>
</history:accessAnyWhereInfo>
</serv:bodyContent>
</serv:body>
</serv:message>