question

rakesh-kumar4761 avatar image
rakesh-kumar4761 asked Anirban edited

How to get errors, if SMS sending is failed in REST API using PHP

Hello everyone,


I'm using PHP REST API to send SMS, but unable to send SMS. My request is successful and return SMS ID with all the details but the SMS status is 'SendingFailed', I don't know why?


There is nor error code returned in the response. Please help me to get the errors that why the SMS not sent.


My request code is as follows:

$url = "https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/extension/~/sms";
$param=json_encode(array('to'=>array(array('phoneNumber'=>$to)),'from'=>array('phoneNumber'=>'+19164374306'),'text'=>$smsBody));
$response = http($url,'POST',$param,$auth_token);

The response I'm getting is :


Array(
    [uri] => https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/extension/~/message-...
    [id] => 2788749004
    [to] => Array
        (
            [0] => Array
                (
                    [phoneNumber] => tonumber
                )
        )
    [from] => Array
        (
            [phoneNumber] => +19164374306
            [location] => Sacramento, North, CA
        )
    [type] => SMS
    [creationTime] => 2017-03-18T06:33:39.000Z
    [readStatus] => Read
    [priority] => Normal
    [attachments] => Array
        (
            [0] => Array
                (
                    [id] => 2788749004
                    [uri] => https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/extension/~/message-...
                    [type] => Text
                    [contentType] => text/plain
                )
        )
    [direction] => Outbound
    [availability] => Alive
    [subject] => Test SMS using a RingCentral Developer account - this  is test msg by vishal
    [messageStatus] => SendingFailed
    [smsSendingAttemptsCount] => 1
    [conversationId] => 2.2628912365145E+18
    [conversation] => Array
        (
            [id] => 2262891236514496402
            [uri] => https://platform.devtest.ringcentral.com/restapi/v1.0/conversation/2262891236514496402
        )
    [lastModifiedTime] => 2017-03-18T06:33:40.041Z
)
rest apierrors
1 |3000

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

benjamin-dean avatar image
benjamin-dean answered
Hello Rakesh,

First, I would highly recommend using the official RingCentral PHP SDK if at all possible...why?
  • Simplifies integrations with the RingCentral API
  • Standardizes application development with RingCentral using recommended best practices
  • Open Source SDK === Lots of developers contributing and improving the source (not just you)
  • Since it is one of the official RingCentral SDKs, there are dedicated resources available to help with issues developers report in the Github Issue Tracker
Next, have you checked that the following states of the RingCentral Account/Extension/Phone Numbers can be used to for sending SMS ( preferably prior to the SMS API request):
  1. The account has SMS enabled https://developers.ringcentral.com/api-explorer/latest/index.html#/!/Account/loadServiceInfo
  2. The extension has the permission to send SMS: https://developers.ringcentral.com/api-explorer/latest/index.html#/!/Extension/loadExtensionInfo
  3. The "fromNumber" being used in the body of the request is one of the extension's phone numbers that has the "SmsSender" feature listed for that property respectively? https://developers.ringcentral.com/api-explorer/latest/index.html#/!/Extension/listExtensionPhoneNum...
Lastly, it is a recommended best practice to check the authenticated user's Authorization Profile permissions for specific operations prior to executing them:  https://developers.ringcentral.com/api-explorer/latest/index.html#/!/Authorization_Profile/loadUserP.... This accomplishes two very important goals:
  1. Allows your application / integration to be proactive about an operation which a user or system is attempting to perform
  2. Improves the user experience by informing a user or service worker of the state which is preventing the desired action (handling more than just the "happy path" of an application's operation)
Full information about these resources is also available in the RingCentral API Reference:  https://developers.ringcentral.com/api-docs/latest/index.html
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 ryan-ryan4536 commented

Hi Rakesh,

Could you please open a support ticket with the developer support team and we could take a look at it.

7 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.

ak avatar image ak commented ·
So, the sandbox number had a missing SMS ON permission on it. We have enabled it now. Could you please verify if you are able to send SMS.
0 Likes 0 ·
ryan-ryan4536 avatar image ryan-ryan4536 commented ·
How do you validate SMS ON permission is set for the sandbox number? How do you validate the extension has the permission to send SMS?
0 Likes 0 ·
ak avatar image ak commented ·
You would need to use the Get Extension Info API Endpoint. 

The JSON response would include a field to indicate the features available on the ext :

"serviceFeatures": [    {
                    
      "featureName": "SMS",
      "enabled": true
    },
    {
      "featureName": "SMSReceiving",
      "enabled": true
    },
    {
      "featureName": "Pager",
      "enabled": true
    },
    {
      "featureName": "PagerReceiving",
      "enabled": true
    }
]


0 Likes 0 ·
ryan-ryan4536 avatar image ryan-ryan4536 commented ·
Thank you for the reply.  What would cause the extension to not have permission to send SMS?  Does every direct phone number we have with RingCentral not have SMS on by default?  Is there a way to validate the setup for the phone number/extension in the main admin portal of RingCentral?
0 Likes 0 ·
ryan-ryan4536 avatar image ryan-ryan4536 commented ·
Upon calling RingCentral Support (those guys are so awesome and professional by the way), it takes 72 hours for a new phone number to be enabled for SMS.  FYI in case anybody stumbles across this thread and wonders why their SMS is disabled / not working
0 Likes 0 ·
Show more comments
Anirban avatar image
Anirban answered Anirban edited

Just for reference, it's always good and suggested approach to use RingCentral official SDK. Ring central has different SDK for java, php, javascript etc ...

ref: https://github.com/ringcentral

Using the official SDK is always better and remove complexity and issues with authentication and has good issue tracking system

1 |3000

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

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