SurferJoe
SurferJoe

Reputation: 985

How to use the extensionId on RingCentral API with RingOut

I can RingOut successfully requesting:

https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/ring-out

But when I want to add the extension id I get a CMN-102 error (Resource for parameter [extensionId] is not found) see request example below:

https://platform.ringcentral.com/restapi/v1.0/account/~/extension/279580017/ring-out

I'm pretty certain I have the correct id as I'm grabbing the extensionId from the request below successfully:

https://platform.ringcentral.com/restapi/v1.0/account/~/extension

If anyone has run into this or can point out any potential pitfalls I would very much appreciate some pointers.

Upvotes: 2

Views: 453

Answers (1)

Grokify
Grokify

Reputation: 16354

From your post and the error you are receiving, I'm assuming you are attempting to perform a RingOut with an extensionId that did not authorize your app. Attempting to do this will result in the error you received. Here's more information on this.

RingOut ExtensionId Scope

The RingOut API only supports using extensionId path parameter for the authorizing user extension. Because of this, all you ever need to call is the following endpoint for RingOut:

POST /restapi/v1.0/account/~/extension/~/ring-out

If you want to use the explicit extensionId, it needs to be the extensionId returned in the following endpoint:

GET /restapi/v1.0/account/~/extension/~

If you call the endpoint with a path extensionId parameter that did not authorize the access token being used, then you will receive the:

Non-Matching ExtensionId Error

If you attempt to perform a RingOut with a path extensionId value that is not the authorizing user, you will receive a HTTP status 404 error with the following body:

HTTP/1.1 404 Not Found

{
  "errorCode": "CMN-102",
  "message": "Resource for parameter [extensionId] is not found",
  "errors": [
    {
      "errorCode": "CMN-102",
      "message": "Resource for parameter [extensionId] is not found",
      "parameterName": "extensionId"
    }
  ],
  "parameterName": "extensionId"
}

How to Perform RingOut for Many Users

To perform RingOut for many users at this time, you will need to do either of the following:

  • each user will have to perform an authorization with your app, either through a login pop-up via OAuth 2.0 authorization code or implicit grant.
  • alternately, you can ask them for their passwords to perform OAuth 2.0 password grant authorization.

A number of OAuth 2.0 demo apps are available on our GitHub accounts:

Enhancement Request

If you would like the ability to RingOut to any user without an active session, let us know and we can consider it as a feature enhancement. The best way is to login to our Community with your RingCentral account and post a request here:

https://devcommunity.ringcentral.com/ringcentraldev

Upvotes: 2

Related Questions