Instant Connect Meeting Links
This guide shows how you can construct Instant Connect URLs for hosts and guests.
Using a simple REST API, you can easily generate Instant Connect URLs for one or multiple hosts and guests. The API allows for a variety of customizations via its request payload, including:
- A configurable meeting subject
- Not before and expiration times for the authorization JWT
- Automatic addition of Cisco devices to a meeting
- Parameters to set the number of hosts and guests up to a combined maximum of 25 (you can use the same API call to generate another 25 if necessary)
- An option to generate short URLs
- Various advanced encryption options
The guide includes a step by step example using Postman, if you're new to REST APIs. Alternatively, if you're a REST veteran, you can skip directly to the API Reference materials at the end of this document.
anchorPrerequisites
anchorBefore you can use Instant Connect, your Webex Admin will need to login to the Instant Connect webpage and choose Activate Instant Connect here:https://instant.webex.com/integrate/.
You only have to activate Instant Connect once.
Next, you'll need to generate an access token which is required to make the API call to retrieve the encrypted part of the URLs. You've got two options for access tokens:
- A 12 hour time limited Personal Access token for development purposes
- A 100 year Bot token for production use
In addition, optionally, to enable adding devices to the meeting, you'll need to configure Instant Rounding as described in the following help.webex.com article Configure Virtual Rounding.
Retrieve a Personal Access Token for Development
To obtain a Webex Personal Access Token (valid for 12 hours), navigate to the Webex Developer Portal, login with your Webex org admin account, and copy the Bearer token value:
Retrieve a Bot Token for Production Usage
For a production-level implementation, we recommend creating a new Webex Bot and using the Bot’s access token (valid for 100 years). You can copy the Bot access token once you've created your new bot:
anchorStep by Step Instant Connect API Call Using Postman
anchorWith your access token, you use the Instant Connect API to retrieve the encrypted ciphers that you'll append to the base URLs for hosts and guests. In this section we'll use Postman to walk you through an example REST call that generates ciphers for a single host and a single participant using the minimum required request payload.
This example uses the desktop version of Postman, but the web version works just as well.
To retrieve the encrypted ciphers using Postman:
Open Postman and select New.
Choose Environment.
Name your new environment, in this case InstantConnect and define the two following variables with the corresponding values:
- Name:
mtg-broker-url
; Value:https://mtg-broker-a.wbx2.com
- Name:
bot-token
; Value: your personal access token or bot token
Click Save.
- Name:
Choose your new environment from the drop down list.
Choose New.
Choose HTTP Request.
Configure the request as follows:
- Choose POST as the request type.
- Enter
{{mtg-broker-url}}/api/v2/joseencrypt
as the URL. - Select Auth, choose Bearer Token as the Type, and enter
{{bot-token}}
as the value for the token.
Select Body, select the type as raw JSON and enter the following JSON string (you can change the
sub
(subject) string to whatever you'd like as long as it is unique for each meeting):{ "jwt": { "sub": "Subject goes here." }, "aud": "a4d886b0-979f-4e2c-a958-3e8c14605e51" }
Select Send. You'll see the response in the Body tab of the Postman console.
Your response will look something like:
{
"host": [
{
"cipher": "eyJwMnMiOiJiLVZB...-xtzA"
}
],
"guest": [
{
"cipher": "eyJwMnMiOiJuNmxv...FaqA"
}
]
}
You'll notice you've got two cipher
values, one for the host and one for a single guest. Those are the values that you'll append to the meeting URL after &data=
.
The cipher
values are truncated to save space..
For the host URL after appending the cipher, you'll get:
https://instant.webex.com/gen/v1/login?int=jose&v=1&data=eyJwMnMiOiJiLVZB...-xtzA
For the guest URL after appending the cipher, you'll get:
https://instant.webex.com/gen/v1/talk?int=jose&v=1&data=eyJwMnMiOiJuNmxv...FaqA
The remaining sections describe additional configurations and contain complete reference materials.
anchorInstant Connect URL REST API Reference
anchorThis section contains the full reference for all of the Instant Connect URL REST API including example requests and responses.
Request Endpoint
The REST API endpoint is:
POST https://mtg-broker-a.wbx2.com/api/v2/joseencrypt
Request Headers
Use the following headers in your request:
- Content-Type:
application/json
- Authorization:
Bearer <Personal or Bot access token goes here>
Body Parameters
Use the following body parameters to customize your REST request:
Parameter | Description |
---|---|
aud (required) | String Value: a4d886b0-979f-4e2c-a958-3e8c14605e51 Indicates the audience for which the JWT is intended. |
jwt (required) | Object |
sub (required) (under jwt ) | String A unique value in your organization which will be used to place hosts and guests into the same collaboration space. |
nbf (under jwt ) | Integer The nbf (not before) claim identifies the time given as the number of seconds from the Unix Epoch (1970-01-01T00:00:00Z UTC ) before which the JWT will not be accepted for processing. |
exp (under jwt ) | Integer The exp (expiration time) claim identifies the expiration time given as the number of seconds from the Unix Epoch (1970-01-01T00:00:00Z UTC ) on or after which the JWT will not be accepted for processing. If not specified, set for 15 minutes later than the time when the request was made. |
flow (under jwt ) | Object |
id (under flow ) | String Takes only one value currently - sip-no-knock . If id is defined along with data mentioned below, the SIP addresses mentioned in the data object will be called to join the Instant Connect Meeting. |
data (under flow ) | Object List of Cisco Device SIP addresses that should be added to this meeting automatically. |
numHost | Integer [0 … 25] Default: 1 Number of encrypted strings to be used by hosts. NOTE: The maximum number of links, combining both host and guest, that can be requested at one time is 25. |
numGuest | Integer [0 … 25] Default: 1 Number of encrypted strings to be used by guests. NOTE: The maximum number of links, combining both host and guest, that can be requested at one time is 25. |
provideShortUrls | Boolean Default: false If set to true , the response will have shortened data portions of the meeting URL. It will also contain a shortened base URL |
verticalType | String Default: hc Relevant only if provideShortUrls is true . Currently takes two values, gen (for general flow) and hc (for healthcare flow). |
loginUrlForHost | Boolean Default: true Relevant only if provideShortUrls is true. If set to false , the short URL for hosts will be non-login links which means the host won't have an option to login for the meeting. |
jweAlg | String Default: PBES2-HS512+A256KW Enum: PBES2-HS256+A128KW PBES2-HS384+A192KW PBES2-HS512+A256KW Algorithm to encrypt the Content Encryption Key, which produces the JWE Encrypted Key. |
saltLength | Integer [8 … 128] Default: Random value between 8 and 128 inclusive.Length of the salt to be used in conjunction with jweAlg . |
iterations | Integer [1000 … 32767] Default: A random value between 1000 and 32767 inclusive.Number of iterations to be used in conjunction with the jweAlg . |
enc | String Default: A256GCM Options: A128CBC-HS256 A192CBC-HS384 A256CBC-HS512 A128GCM A192GCM A256GCM Algorithm used to encrypt the JWT. |
jwsAlg | String Default: HS512 Options: HS256 HS384 HS512 Algorithm used to sign the JWT. |
Response
A successful request returns:
A response message of type
200 OK
A response payload of type
application/json
Request and Response Payload Examples
The following examples show various request payloads as a formatting reference as well as their resultant responses.
The cipher
values are truncated to save space.
Minimum Request Body Payload
{
"jwt": {
"sub": "Subject goes here."
},
"aud": "a4d886b0-979f-4e2c-a958-3e8c14605e51"
}
Response from the Minimal Request Body
{
"host": [
{
"cipher": "eyJwMnMiOiJiLVZB...-xtzA"
}
],
"guest": [
{
"cipher": "eyJwMnMiOiJuNmxv...FaqA"
}
]
}
Complete Sample JSON Request Payload Without Device Support
To create multiple host and guest URLs in the same response, increase the value of numHost
and numGuest
up to a maximum of 25.
{
"jwt": {
"sub": "Subject goes here.",
"Nbf": 1671480433000,
"Exp": 1671480433000
},
"aud": "a4d886b0-979f-4e2c-a958-3e8c14605e51",
"numGuest": 1,
"numHost": 1,
"provideShortUrls": false,
"verticalType": "gen",
"loginUrlForHost": false,
"jweAlg": "PBES2-HS512+A256KW",
"saltLength": 8,
"iterations": 1000,
"enc": "A256GCM",
"jwsAlg": "HS512"
}
Complete Sample JSON Response Payload Without Device Support
In this case the response will appear similar to the minimal request payload response above. The cipher provided, however will reflect the additional configuration options. In addition, increasing the values for numHost
and numGuest
will return multiple cipher instances that you can use to create multiple Instant Connect URLs.
Sample Request Payload Generating Short URLs
Adding the parameter provideShortUrls
generates short URLs in addition to the regular cipher.
When you use the provideShortUrls
parameter, you can also specify the loginUrlForHost
parameter which, when set to false
, disables login for the host.
{
"jwt": {
"sub": "Subject goes here."
},
"aud": "a4d886b0-979f-4e2c-a958-3e8c14605e51",
"provideShortUrls": true,
"verticalType": "gen",
"loginUrlForHost": false
}
Short URL Response Payload
The short
values are combined with the baseUrl
value in the response payload to generate "short" URLs as described below. The cipher
values can be used as described below as well.
{
"host": [
{
"cipher": "eyJwMnMiOiJQUnJX ... EbZaQ",
"short": "Kuyqdx3"
}
],
"guest": [
{
"cipher": "eyJwMnMiOiJPamRX ... xVfyA",
"short": "LCFCNRz"
}
],
"baseUrl": "https://instant.webex.com/visit/"
}
Complete Sample JSON Request Payload Including Device Support
To enable device support, add the flow
element to the jwt
element in your regular request body.
You can have multiple SIP addresses as well.
{
"jwt": {
"sub": "Subject goes here.",
"Nbf": 1671480433000,
"Exp": 1671480433000,
"flow": {
"id": "sip-no-knock",
"data": [
{
"uri": "example1@intadmin.room.wbx2.com"
},
{
"uri": "example2@intadmin.room.wbx2.com"
}
]
}
},
"aud": "a4d886b0-979f-4e2c-a958-3e8c14605e51",
"numGuest": 1,
"numHost": 1,
"provideShortUrls": true,
"verticalType": "gen",
"loginUrlForHost": false,
"jweAlg": "PBES2-HS512+A256KW",
"saltLength": 8,
"iterations": 1000,
"enc": "A256GCM",
"jwsAlg": "HS512"
}
Complete Sample JSON Response Payload Including Device Support
As with the other complete payload, the response will appear similar to the minimal request payload response above. The cipher provided, however will reflect the additional configuration options and the SIP addresses are added once the host joins the meeting.
anchorBuild Instant Connect URLs
anchorDepending upon whether you've generated regular or "short" URLs you can build final Instant Connect URLs in one of two ways.
Build Long URLs
The following URLs are used as bases for the complete host and guest URLs. The API generates a cipher which you then append to the &data=
portion of the base URL:
- Host:
https://instant.webex.com/gen/v1/login?int=jose&v=1&data=
- Guest:
https://instant.webex.com/gen/v1/talk?int=jose&v=1&data=
Append your API response cipher
values as the &data=
parameter value to form your Webex Instant Connect meeting for host and guest long URLs.
Long URL Examples
- Host URL:
https://instant.webex.com/gen/v1/login?int=jose&v=1&data=eyJwMnMiOiJfRFN ... ufUvar_w
- Guest URL:
https://instant.webex.com/gen/v1/talk?int=jose&v=1&data=eyJwMnMiOiJYZVp ... dL_GqSw
Build Short URLs
To construct a final short URL, append the short
key values to the baseUrl
generated in the response.
Short URL Examples
- Host URL:
https://instant.webex.com/visit/m8iHTzH
- Guest URL:
https://instant.webex.com/visit/oJCP7UY