Skip to main content

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"

}

}

}



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.


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.


Reply