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
{
"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" : {
},
"lastPage" : {
}
}
}
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.
A new Community is coming to RingCentral!
Posts are currently read-only as we transition into our new platform.We thank you for your patience
during this downtime.
Try Workflow Builder
Did you know you can easily automate tasks like responding to SMS, team messages, and more? Plus it's included with RingCentral Video and RingEX plans!Try RingCentral Workflow Builder