question

corey-tenney avatar image
corey-tenney asked ·

How to update Caller-Id (Using API & Nuget pkg)

I am currently writing a utility to get the current caller-id settings for all of our extensions (1900+) and then someone will be doing some magic work in excel, and then reuploading the changes to a certain number of rows.  Anyway I am just trying to update a single record at this point and here is what I have:
    CallerIdMainClass cidMC = new CallerIdMainClass();

List<ByFeature> byf = new List<ByFeature>(); cidMC.byFeature = new List<ByFeature>(); if (ext.alternate != "") {     ByFeature feat = new ByFeature();     feat.feature = "Alternate";     CallerId cid = new CallerId();     cid.type = "PhoneNumber";     PhoneInfo pi = new PhoneInfo();     pi.id = ext.alternateId;     pi.phoneNumber = ext.alternate;     pi.uri = ext.alternateUri;     cid.phoneInfo = pi;     feat.callerId = cid;     cidMC.byFeature.Add(feat); } cidMC.uri = "https://platform.devtest.ringcentral.com/restapi/v1.0/account/237848004/extension/237848004/caller-id";   var request = JsonConvert.SerializeObject(cidMC, Formatting.Indented); var response = await rcClient.Extension(dr["extensionId"].ToString()).CallerId().Put(request);

request becomes this:

    {  "uri":     " https://platform.devtest.ringcentral.com/restapi/v1.0/account/237848004/extension/237848004/caller-i...;,
      "byFeature": [
        {
          "feature": "Alternate",
          "callerId": {
            "type": "PhoneNumber",
            "phoneInfo": {
              "id": "322761004",
              "uri": " https://platform.devtest.ringcentral.com/restapi/v1.0/account/237848004/phone-number/322761004";,
              "phoneNumber": "+13128589611"
            }
          }
        }
      ]
    }


However I am getting a 400 Bad Request back.  What am I doing wrong?
topic-default
1 |1000 characters needed characters left characters exceeded

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 answered ·
Hi Corey,

Looking at your provided request, I found some mistake in the request itself.

"phoneInfo": {
                 
              "id": "322761004",
              "uri": "https://platform.devtest.ringcentral.com/restapi/v1.0/account/237848004/phone-number/322761004";,
              "phoneNumber": "+13128589611"
            }
Read the API reference at update a caller ID. The phoneInfo in the update (PUT) request is an object which includes only the id parameter. The uri and the phoneNumber is not valid there.

Can you modify and give a try again.

+ Phong
Share
1 |1000 characters needed characters left characters exceeded

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

Tyler Liu avatar image
Tyler Liu answered ·
cidMC.uri = " https://platform.devtest.ringcentral.com/restapi/v1.0/account/237848004/extension/237848004/caller-i...;

You don't have to specify the uri in request body. 

I checked the API reference:  https://developer.ringcentral.com/api-docs/latest/index.html#!#RefUpdateCallerId it does say uri is a property in the request body. But the sample below doesn't have this property at all. And lots of other API calls also don't have it.
Share
1 |1000 characters needed characters left characters exceeded

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

corey-tenney avatar image
corey-tenney answered ·
Tyler thanks for your assistance.  I changed all this today and still receive an error.  Here is the json I am sending:

    {
       "byFeature": [
        {
          "feature": "Alternate",
          "callerId": {
            "type": "PhoneNumber",
            "phoneInfo": {
              "id": "322761004"
            }
          }
        }
      ]
    }

Share
1 |1000 characters needed characters left characters exceeded

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

Tyler Liu avatar image
Tyler Liu answered ·
Catch the exception and print the detailed error message:  https://github.com/ringcentral/ringcentral-csharp-client#exception-handling
Share
1 |1000 characters needed characters left characters exceeded

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

corey-tenney avatar image
corey-tenney answered ·
{
  "errorCode" : "InvalidParameter",
  "message" : "Parameter [] value is invalid",
  "errors" : [ {
    "errorCode" : "CMN-101",
    "message" : "Parameter [] value is invalid",
    "parameterName" : ""
  } ],
  "parameterName" : ""
}

So what parameter am I missing?
Share
1 |1000 characters needed characters left characters exceeded

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

Tyler Liu avatar image
Tyler Liu answered ·
Frankly speaking I don't know because the error message doesn' tell which parameter is wrong.

I check the API reference page and I found the following snippet:

{        "feature": "Alternate",        "callerId": {          "phoneInfo": { "id": "1155244004" }        } 
   },


It's different from yours. Could you please remove  "type": "PhoneNumber", and try again?

If it still doesn't work, please send an email to devsupport@ringcentral.com and engineers there will take a look.
Share
1 |1000 characters needed characters left characters exceeded

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

corey-tenney avatar image
corey-tenney answered ·
That didnt work either.  I put in a support email.
Share
1 |1000 characters needed characters left characters exceeded

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

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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