In sandbox, I am attempting to park a call to a public park location via the park API, then pick it up again via the pickup API. Parking the call works great and returns the extension to which the call was parked, a new party ID, etc. I am unable to pick the call back up, however. The documentation is unclear as to what I should be passing as party ID, so I tried:
- The party ID returned from the park API (ends in -3): {"errorCode" : "TAS-102", "message" : "Incorrect State"}
- The party ID I used before parking the call (ends in -2): {"errorCode" : "TAS-102", "message" : "Incorrect State"}
- The party ID of the original caller (ends in -1): {"errorCode" : "TAS-106", "message" : "Operation is not allowed"}
- The park location's extension (*803): Invalid Request
How do I pick up a call off a public park location via the API?
Ok, I found the differences. I always run my tests on production and it works well.
I just test on my sandbox account and found the same issues as what you are facing. I don't think that there will be a quick fix for sandbox. But I could say that your code should work well on production. Here is the recap of the issues in sandbox.
- Transfer a call to a park location using the park location internal id specified in the "parkOrbit" body param will fail with "Forbidden" error.
- Transfer a call to a park location using the park location extension number specified in the "extensionNumber" body param will pass but the call will not be parked because the park location does not accept calls even the park location is enabled and having members.
The park API is for parking a call to a public location. The pickup API is for picking up a parked call from a private location. Unfortunately, we don't have API to pickup call from public location.
To park a call to a private location, please use the transfer call party API to transfer the call to a park orbit (you must define it using the service web tool at Groups - Park Locations), then you can use the pickup API to pickup that parked call.
That is not ideal. I decided to try to use a private park location. What ID do I pass for the park orbit? I tried the extension (10001) and the ID from the extension list (346781004) and both return {"errorCode" : "TAS-106", "message" : "Operation is not allowed"}. Are park orbits not supported in sandbox? Or am I doing something else wrong?
It should work with both "parkOrbit" which is the park location internal id, or the "extensionNumber" which is the park location extension number.
The error you received seems to me that you try to transfer/park a call that does not belong to you, the user who is authenticated the app.
For call transfer and most of call control APIs, only the owner of the call can control that call.
- I am definitely the owner of the call. I answered it via the API using the same access token. The call is on the extension returned from /restapi/v1.0/account/~/extension/~. I can hold, unhold, park to a public park extension, transfer to other extension types, etc.
- Using the park orbit's extension in the "extensionNumber" field does transfer the call but it does not park it. The caller hears something like "this group does not accept calls" and is disconnected.
With that message, it's because you don't have any member in the park location. Login sandbox your service, open the park location and choose several user extension, including the one that wants to park the call (the owner), save it and try again.
I am testing with the user "Ringcentral User 1", which is a member of both park locations on the system.
The park extension is enabled:
I am testing with the user "Ringcentral User 1", which is a member of both park locations on the system.
The park extension is enabled:
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