question

Alex Rogers avatar image
Alex Rogers asked Phong Vu commented

MakeCallOut returns CMN-102 for what appears to be a valid deviceId

My request (example below) to MakeCallOut is returning a CMN-102 error. It implies that the deviceId is wrong, but I can't work out why. I've tried sending the request including the accountId and the tilde (~) but can't seem to get it working. I believe this code worked on the sandbox. Now I'm trying it on Production. The call is supposed to dialing using the RingCentral softphone


Request:

POST https://platform.ringcentral.com/restapi/v1.0/account/~/telephony/call-out HTTP/1.1

X-User-Agent: Unknown/0.0.1 RingCentral.Net/5.16.0

Authorization: Bearer RlJBMDhQMzRQQ...

Content-Type: application/json; charset=utf-8

Host: platform.ringcentral.com

Content-Length: 73

Expect: 100-continue


{"from":{"deviceId":"801351217067"},"to":{"phoneNumber":"+493022732152"}}

--

HTTP/1.1 404 Not Found

Server: nginx

Date: Thu, 19 May 2022 20:04:45 GMT

Content-Type: application/json

Content-Length: 145

Connection: keep-alive

X-Rate-Limit-Group: heavy

X-Rate-Limit-Limit: 10

X-Rate-Limit-Remaining: 9

X-Rate-Limit-Window: 60

RoutingKey: FRA08P34

RCRequestId: eda7411e-d7ae-11ec-90aa-005056b59535


{

"errors" : [

{

"errorCode" : "CMN-102",

"message" : "Resource for parameter [deviceId] is not found"

}

]

}

==

Previously I'd sent this request:

GET https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/device HTTP/1.1

X-User-Agent: Unknown/0.0.1 RingCentral.Net/5.16.0

Authorization: Bearer RlJBMDhQMzR...

Host: platform.ringcentral.com

--


HTTP/1.1 200 OK

Server: nginx

Date: Thu, 19 May 2022 20:04:07 GMT

Content-Type: application/json

Content-Length: 1772

Connection: keep-alive

RCRequestId: d749b2f8-d7ae-11ec-bf1c-005056b5c469

RoutingKey: FRA08P34PAS03

Content-Language: en-GB

Vary: Accept-Encoding, User-Agent

X-Rate-Limit-Group: light

X-Rate-Limit-Limit: 50

X-Rate-Limit-Remaining: 49

X-Rate-Limit-Window: 60


{

"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/330036071/extension/362114071/device?page=1&perPage=100",

"records" : [ {

"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/330036071/device/801351217067",

"id" : "801351217067",

"type" : "SoftPhone",

"sku" : "DV-1",

"name" : "RingCentral Phone-App",

"serial" : "XXX",

"computerName" : "XXX",

"status" : "Offline",

"extension" : {

"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/330036071/extension/362114071",

"id" : 362114071,

"extensionNumber" : "708"

},

"phoneLines" : [ {

"id" : "157219071",

"lineType" : "Standalone",

"emergencyAddress" : {

"required" : false,

"localOnly" : true

},

"phoneInfo" : {

"id" : 435446071,

"phoneNumber" : "+492284229820716",

"type" : "VoiceFax",

"usageType" : "DirectNumber",

"country" : {

"uri" : "https://platform.ringcentral.com/restapi/v1.0/dictionary/country/83",

"id" : "83",

"name" : "Germany"

}

}

} ],

"emergency" : {

"addressStatus" : "Invalid",

"addressEditableStatus" : "AnyDevice"

},

"linePooling" : "Host"

} ],

"paging" : {

"page" : 1,

"totalPages" : 1,

"perPage" : 100,

"totalElements" : 1,

"pageStart" : 0,

"pageEnd" : 0

},

"navigation" : {

"firstPage" : {

"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/330036071/extension/362114071/device?page=1&perPage=100"

},

"lastPage" : {

"uri" : "https://platform.ringcentral.com/restapi/v1.0/account/330036071/extension/362114071/device?page=1&perPage=100"

}

}

}



call handling
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

1 Answer

Alex Rogers avatar image
Alex Rogers answered Phong Vu commented

Update: I've subsequently found out that my deviceId is "508363071" and when I use this deviceId value then MakeCallOut now works, but I can't figure out how/why this is my Id and why I get a different id returned to the GetDevices.

1 comment
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Phong Vu avatar image Phong Vu ♦♦ commented ·

To call the /call-out endpoint, your app must be authenticated by the owner of the device which will initiate the call. In other words, only the owner of a device can call the /call-out endpoint to dial from that device. The best way to get the device id(s) is to get extension device API of that authenticated user.

0 Likes 0 ·

Developer sandbox tools

Using the RingCentral Phone for Desktop, you can dial or receive test calls, send and receive test SMS or Fax messages in your sandbox environment.

Download RingCentral Phone for Desktop:

Tip: switch to the "sandbox mode" before logging in the app:

  • On MacOS: press "fn + command + f2" keys
  • On Windows: press "Ctrl + F2" keys