Question

Unable to graduate our app because of the Call Control permission

  • 12 May 2022
  • 3 replies
  • 369 views

We have met all graduation requirements except for the CallControl permission (for event filter: /restapi/v1.0/account/{accountId}/telephony/sessions).

We faced this issue in the past, and right now, we cannot graduate the app on our own.

Can you guys graduate the app as soon as possible?

Also, how can we prevent this from happening in the future?


PS: The ticket system is unavailable as well.


3 replies

Userlevel 1

When request for such a thing, remember to provide the app client id.

In the future, you can any API that requires the permission that you need for your notification. For example, your app is listing to telephony session event notifications and it requires the Call Control permission, test your app by making inbound calls to detect call events, then implement an extra function to just forward those incoming call to another number. That way your app will exercise the Call Control permission when it call the call forward API. Remove that function from your code after testing and graduating your app.

I forgot to add it, app id: L6g0jppRSM2773fQSmlIDw~TR9eVOBtT524bQkkGhAX2Q, client id: p7sMTbPAQcCVsUvG3W8GMA, but don't you think guys this is a waste of development time to meet the Call Control permission. I would advise either removing the permission from the event filter or having another way to test exercise it.

Quoting you: "test your app by making inbound calls to detect call events": This is exactly what we do

and then you said: "implement an extra function to just forward those incoming call to another number": This is a waist of time, I think everyone would agree.

Just having to add way more code to meet this requirement is not within everyone's budget!

Userlevel 1

Done.

I agree with you that the requirement in this case should be removed, and we are in the process to improve the app graduation experience.

However, I don't think that the recommended workaround solution is a "way more code" to meet the requirement. Look at the extra code e.g. in Node JS.

// incoming telephony event
  var body = msg.body
  if (body.parties[0].direction == "Inbound" &&
        body.parties[0].status.code == "Proceeding"){
        forwardCall(body, "+1650XXXYYYY")
  }

async function forwardCall(call, toNumber){
  var endpoint = '/restapi/v1.0/account/~/telephony/sessions/'
  endpoint += call.telephonySessionId
  endpoint += `/parties/${call.parties[0].id}/forward`
  try{
    var resp = await platform.post(endpoint, { phoneNumber:toNumber })
    var jsonObj = await resp.json()
    console.log(JSON.stringify(jsonObj))
  }catch(e){
    console.log(e.message)
  }
}

Reply