0

Use Case scenario :

In case of Priority 1 incident in ServiceNow, we need to automate the system to start a conference meeting with pre-determined users in Circuit application.

REST API to create conversation is available but not to start conference.

We need to avoid manual intervention and to auto start the conference on creation of Priority 1 incident.

Queries :

1) Kindly advise if there is any way we can achieve this or circuit team will have some development plan to develop API to auto start conference.

2) If we use JS SDK, which have functionality available to create and start conference, so do we need to login every time while starting the conference from ServiceNow.

3) For JS SDK (implicit grant type), how authorization works for end user. How client id generated in circuit will be used for each end user. Can end user user their own circuit credentials to create and start conference.

4) When I use JS SDK to start conference, conference is getting started in my ServiceNow application then I need to pull request is Circuit application. Is there any way we can directly start conference in Circuit application.

Nirav
  • 1
  • 1

1 Answers1

0
  1. There is an undocumented REST API (/remote/call/start) to start a call on the user's webclient or desktop client. Note that this API is undocumented which means there is no guaranteed backwards compatibility, but it will likely remain backwards compatible. The destClientId can be used to start the call on a specific device. E.g. If the user has the desktop client and web client running you could specify which one. If not provided but the user is logged on to multiple devices, then a prompt will be shown to start the call. Use API /telephony/deviceInfos to get the destClientIds.
    await this.axios.post('/remote/call/start',{
      mediaType: 'audio',  // audio, video or telephony
      destClientId: ...,   // optional. client id of user's device to start call on
      emailAddress: ...,   // email of user to call, only for direct call
      phoneNumber: ...,    // dialabe phone number
      convId: ...          // conversation ID, used for group calls
    });
  1. If the user still has a circuit session (30 days if the user uses Circuit clients with "private computer" checked) and the the access token is still valid according to TTL setting in application registration, then the JS SDK can logon without the user having to enter any credentials, or to accept permissions. logonCheck can be used to automatically login.

  2. re what you question is here. For implicit, the clientId for the application is hardcoded in the application JS code. But since the client_id is restricted to be used on the registered domains, nobody else can use your client_id. The logon is shown the circuit-sdk github page:

    const client = new Circuit.Client({
      client_id: '<your client_id>',
      domain: '<circuit domain>  // e.g. circuitsandbox.net
    });
    const user = await client.logon();
  1. Yes, use API startConference and pass the clientId (aka destClientId) of the client you wish to start the call at. Use getDevices to find the user's clientIds. This is the same as the REST API described in #1 above.
Roger Urscheler
  • 774
  • 2
  • 6
  • 11