question

todd75 avatar image
todd75 asked lee commented

Caller Id parameter ignored when using the RingOut API - am I utilizing the parameter properly?

We are trying to set the outbound callerid number using the RingOut API. If I view my user record directly in RingCentral I can change the caller id number under RingOut from Web and that works fine.


The issue I'm having is that I'd really love to be able to set it dynamically, and I was excited to see that the RingOut API documentation clearly states that there is a Clid parameter for setting it. Unfortunately, that parameter seems to get ignored. Am I missing something?

rest api
1 |3000

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

ak avatar image
ak answered
Yes, certainly you can update the callerID of the extension to ' Blocked'. Kindly, take a look at the API request below: 

HTTP Request
PUT /v1.0/account/~/extension/~/caller-id

HTTP Body
{
                 
  "uri": "https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/caller-id",
"byFeature": [
    {
      "feature": "RingOut",
      "callerId": {
        "type": "Blocked"
      }
    }
  ]
And you can see this being updated in the Service Web under the ' Outbound Caller ID' settings.
1 |3000

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

lee avatar image
lee answered
Thanks AK. That does work to change to a Blocked number but I can't change to a blocked number, RingOut and then change back to PhoneNumber all in one go without the CallerID showing the phone number.

My guess is the outgoing caller id only pulls when you've hit "1" on your phone to make the connection and by that time the extension has already been reverted back to PhoneNumber.

So now I have to monitor the RingOut call status until it's not "Pending" I'm assuming so then once it's completed I can fire off the API call to change the extension Caller ID back to PhoneNumber. What a pain!

It would be a whole lot easier if you guys update the API to allow for pushing the CallerID in the original RingOut call (including the ability to Block) instead of this work around of changing the Caller ID on the extension. Will this be added in the near future?

1 |3000

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

ak avatar image
ak answered
Apologize for any inconvenience that is being caused at the moment and we appreciate your thoughts and findings. 

Well, the good new is that we would have the feature of ' Dynamically updating the callerId' during RingOut API in our very next release. We shall keep you posted on this release soon. 
1 |3000

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

lee avatar image
lee answered
OK thanks.

I'm still waiting to port our numbers so I'll put this part of the integration on the back burner and hope you guys release before we complete the port. 
1 |3000

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

lee avatar image
lee answered ak commented
Any update when the next release will be?
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.

ak avatar image ak commented ·
Hi Lee,

I did check with my Team and per the release timelines, we should have this feature available by October 15th roughly. 

We shall keep you posted with an update on the developer community about the release.

-1 Like -1 ·
ak avatar image
ak answered
Lee,

I will check with the Team and provide an update to you by EOD today. Thanks. 

1 |3000

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

lee avatar image
lee answered lee commented
Any update AK? It's roughly October 15th. ;) 
3 comments
1 |3000

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

lee avatar image lee commented ·
FYI for anybody interested. I heard back via email and basically it's not going to happen for a "few weeks."

So I'll be working on coding a work around as I need this by Monday. 
0 Likes 0 ·
ak avatar image ak commented ·
Hi Lee,

We apologize for the delay. But our team is working on getting this feature released at the earliest. As we communicated via email, we would also like to convey to our developer community that we will keep you updated once we have this feature available for the RingOut API Endpoint. 

0 Likes 0 ·
lee avatar image lee commented ·
Thanks AK.

Unfortunately we already have this feature on our current system we're replacing with RingCentral and my end users enjoy their "easy buttons" and we're due to cut over our system on Monday.

Ah well.. gives me an opportunity to learn more of the API. 
0 Likes 0 ·
lee avatar image
lee answered
So today our phone numbers have been ported and my solution for call out isn't working at intended.

I'm getting a "Resource for parameter [extensionId] is not found" error for any extension other than my own (probably because mine is the main accountid too).

I look up the extension in question (via /restapi/v1.0/account/~/extension/OtherUserExtensionIDHere)
  and sure enough it does not have the "CallOut" feature like my extension does. Is this due to my account not being fully setup yet and do I need to contact my account manager or can I set permissions for this somewhere?

Even another SuperAdmin extension doesn't have permission so I don't think it's something I can even set in Roles.

If I pass in the phone number for the extension but not the extensionid (i.e. ~) then the correct user does get called to connect the call but then MY caller id is shown on the RingOut for their call!






1 |3000

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

ak avatar image
ak answered lee commented
Hi Lee,

I'm getting a "Resource for parameter [extensionId] is not found" error for any extension other than my own (probably because mine is the main accountid too).
You are trying to Login ( authorize ) using one extension and trying to initiate the Ringout for another extension by passing in the  extensionID

Let's say you have two extensions :

Ext 101 -> User A ( extensionId : 12345678 )
Ext 102 -> User B ( extensionId : 87654321 )

Your API call / calls would be as below :



  1. Login using the Ext 101 ( extensionId : 12345678 )
  2. Make Ringout :
      The Response would be as below :
{
                 
  "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"
}

Kindly make sure to use ( ~ ) or the extension ID associated with the User logged in to initiate the Ringout. 

As for the callerID, once we have the release, you could pass in the callerID as a parameter to reflect the same for the call. Meanwhile, you could use the Edit Extension's Caller ID property or you could update the same in Service Web :
https://community.ringcentral.com/ringcentral/topics/how-do-i-change-the-number-that-appears-when-i-...



14 comments
1 |3000

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

lee avatar image lee commented ·
I've been working with the Javascript SDK ( https://github.com/ringcentral/ringcentral-js) today and this will work to replace our call out feature.

Not as seamless as we would like as our end users will need to authenticate with RingCentral but with some UI changes I've made it work with our system.

The demo didn't include a RingOut version but was pretty easy to create based on the MMS example.

Nice thing is the Fax and MMS features are included as demos and something I was going to build into our CRM in the future so now I can kill a few birds with one stone.
1 Like 1 ·
lee avatar image lee commented ·
This is a server side only app.

So what you're saying is I need to get all my users username and password for RingCentral to do this and store that info and provide when logging in via the server?

Yes, I've already figured out how to change the caller id to block.. make the ring out and then change it back to their original caller id (which should be their direct number). Problem is it's pulling my call id info but I understand why now.
0 Likes 0 ·
ak avatar image ak commented ·
No, you don't need to get all the users username and password but instead, you could initiate a Ringout by passing their phone number or the extension number as part of the RingOut HTTP Body. 

Below is an example on how you could do it: ( HTTP body ) 

You can pass either of the two :
  1. Main Company Number * Extension Number 
  2. Direct Number or the Digital Line associated with the extension
{
                    
    "from": {
        "phoneNumber":"MainCompanyNumber*101"
    },
    "to": {
            "phoneNumber":"ToNumber"
    },
    "playPrompt": true
}



0 Likes 0 ·
lee avatar image lee commented ·
Yes, I already did that and as I said before it shows the caller id for my number not theirs. It does call the correct person to connect the call.

All my users have their own direct numbers (including me). We don't use a main company number else I would have just changed my caller id to be our company number and moved on.
0 Likes 0 ·
ak avatar image ak commented ·
You are allowed to select either of the below numbers as the Outbound Caller-ID on an extension:
  • Main Company Number
  • Additional Numbers 
  • Call Queue Number
  • Others
  • Direct Number / Digital Line on the extension
So if you are looking to set the callerID to be the same as the ' from' number then it has to be one of the above. 
0 Likes 0 ·
Show more comments
lee avatar image
lee answered lee commented
Apologize for any inconvenience that is being caused at the moment and we appreciate your thoughts and findings. 
Well, the good new is that we would have the feature of ' Dynamically updating the callerId' during RingOut API in our very next release. We shall keep you posted on this release soon. 
Was this implemented? I don't see anything in the change log and there has been no update in 3 months. I'm going to be working on our integration again soon and would like to know if you will ever get this put into the RingOut API. 



2 comments
1 |3000

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

John Wang avatar image John Wang ♦♦ commented ·
Our API References was updated with the new API but for some reason it wasn't included in the Changelog. The API Reference section is here:

https://developer.ringcentral.com/api-docs/latest/index.html#!#MakeRingOutCallerInfoRequestFrom

For the RingOut API, you will see that we launched a new endpoint "ring-out" and deprecated the previous "ringout" endpoint. If you use "ring-out", dynamically assigned CallerId will work.

POST /restapi/v1.0/account/{accountId}/extension/{extensionId}/ring-out

A caveat is that the user can only use CallerId numbers they are authorized to use. To get a list of numbers a user can use for CallerId call the extension/phone-number endpoint and filter for phone numbers with the "CallerId" feature.

GET /restapi/v1.0/account/{accountId}/extension/{extensionId}/phone-number

Please try it out!
1 Like 1 ·
lee avatar image lee commented ·
OK great thanks! Yes I was looking at the change log.

My app already authorizes per user (I won't go into how annoying that is) so sounds like I'm good to go back to our app and add additional features so they can set the CallerID.

1 Like 1 ·

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