Send SMS - Error MSG-304

  • 1
  • Problem
  • Updated 3 weeks ago
  • In Progress
I have my app working fine in Sandbox, but in production when trying to send a text, i recieve the following response:

body=>"{\r\n  
\"errorCode\" : \"FeatureNotAvailable\",\r\n
  \"message\" : \"Phone number doesn't belong to extension\",\r\n
 \"errors\" : [ {\r\n    
        \"errorCode\" : \"MSG-304\",\r\n  
        \"message\" : \"Phone number doesn't belong to extension\"\r\n  
} ]\r\n}", :url=>#<URI::HTTPS:0x007ffb5c0b65d0 URL:https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/sms>;,

I am trying to text a users cell phone number. We receive txts on our cells fine in sandbox mode
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb

Posted 3 years ago

  • 1
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,662 Points 5k badge 2x thumb
What is the from number you're using please and is it part of your production RingCentral account for the user you've authenticated in the session?

Could you provide the request headers and body you're using please?
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb
Hey Ben, 

I am using the following as my request headers/body :

conn.headers['Authorization'] = "Bearer #{token["access_token"]}"   
conn.headers['Content-Type'] = "application/json"

and the body

res = conn.post '/restapi/v1.0/account/~/extension/~/sms', {      to: recipients,
      from: {phoneNumber: 'mainRingcentralNumber'},
      text: message
    }.to_json


in the above, recipients is a local phone number and message is just a string message
the from number is 5128272252 and we are using extension 101; we got those from the user accound credentials page on the ringcentral dev dashboard
(Edited)
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,662 Points 5k badge 2x thumb
The "to" property must contain a Caller-Info object that has a phoneNumber property similar to your "from" property.

Check the, developer guide here for more information: https://developers.ringcentral.com/api-docs/latest/index.html#!#RefCreateSMSMessage
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb
Sorry, it wasn't clear from the example. recipients is a Caller info object  and looks like this [{phoneNumber: '512XXXXXXX'}]

so 

recipients = [{phoneNumber: '512XXXXXXX'}]
res = conn.post '/restapi/v1.0/account/~/extension/~/sms', {      to: recipients,
      from: {phoneNumber: 'mainRingcentralNumber'},
      text: message
    }.to_json
(Edited)
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,662 Points 5k badge 2x thumb
Yes, that should work as expected. If not, please provide the headers and error message please.
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb
also, incase it helps, this does work in the sandbox

the headers:


conn.headers['Authorization'] = "Bearer #{token["access_token"]}"    
conn.headers['Content-Type'] = "application/json"

The Body: 

conn.post '/restapi/v1.0/account/~/extension/~/sms', {      to: [{phoneNumber: 512XXXXXXX}],
      from: {phoneNumber: 'mainRingcentralNumber'},
      text: message
    }.to_json

the response/error:

<Faraday::Response:0x007fac88eb5a00 @env={:method=>:post, :body=>"{\r\n  \"errorCode\" : \"FeatureNotAvailable\",\r\n  \"message\" : \"Phone number doesn't belong to extension\",\r\n  \"errors\" : [ {\r\n    \"errorCode\" : \"MSG-304\",\r\n    \"message\" : \"Phone number doesn't belong to extension\"\r\n  } ]\r\n}", :url=>#<URI::HTTPS:0x007fac846bc438 URL:https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/sms>;, :request_headers=>{"User-Agent"=>"Faraday v0.8.9", "Authorization"=>"Bearer U0pDMDFQMDdQQVMwNXxBQUF5cjVEZURodDZhSWx2cGFYUlhsREJCdkd6Yzk5d0JEd3ZraExzNm5yNGl0YUt5bG5fRE5QX0Rtd0JobXl4MG16Qm9DRy04NzZPaDNPV3FzbEwwTUtuNHVYM3ZWR2xWd052cjZSYUdsbW93bmpXd3pyRkt3aFJrZTBGaEVGeDJVZ3xZNHl2WGd8YkdUYVhKZEpucGlYQnF0QndBRUs5UQ", "Content-Type"=>"application/json"}, :parallel_manager=>nil, :request=>{:proxy=>nil}, :ssl=>{}, :status=>403, :response_headers=>{"server"=>"nginx/1.8.0", "date"=>"Mon, 21 Mar 2016 19:32:46 GMT", "content-type"=>"application/json;charset=UTF-8", "content-length"=>"218", "connection"=>"close", "rcrequestid"=>"b06f05f4-ef9b-11e5-af18-005056973311", "routingkey"=>"SJC01P07PAS05", "x-loadmetric"=>"7", "x-error-id"=>"2da5f246-03f3-481a-8dd3-14a4df00e683", "x-rate-limit-group"=>"medium", "x-rate-limit-limit"=>"40", "x-rate-limit-remaining"=>"39", "x-rate-limit-window"=>"60", "content-language"=>"en-US"}, :response=>#<Faraday::Response:0x007fac88eb5a00 ...>}, @on_complete_callbacks=[]> => {"errorCode"=>"FeatureNotAvailable", "message"=>"Phone number doesn't belong to extension", "errors"=>[{"errorCode"=>"MSG-304", "message"=>"Phone number doesn't belong to extension"}]}
(Edited)
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,662 Points 5k badge 2x thumb
Awesome, thanks for sharing your success.
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb
?? that was my error

it works in the sandbox but not production ...that was there production error
(Edited)
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb
It is still not working
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb
I received an email that this case was closed, is there a way to reopen it please?
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,662 Points 5k badge 2x thumb
Sorry about that, thought you had things working the way you needed.

In production:
  1. Has your app/integration been graduated to production?
  2. Are you using the production API Base URL: https://platform.ringcentral.com/ ?
  3. Are you using production API keys (if you have production access)?
  4. Do I need to re-review this in the context of your production account?
Thanks for helping to isolate the answers.
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb
No problem, i think i just got you confused by saying that it was working in staging.  To answer you questions
  1. The app has been graduated
  2. we are using production url
  3. correct keys
  4. I am not sure what you mean by review in conext of production account, but if that means that you can take a look at my account specifically, I am beginning to think that the problem may lie in an account specific spot.  It's just weird that we are perfectly fine in staging.
Thanks again for getting back!
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,662 Points 5k badge 2x thumb
And the "from" number is a number associated with the respective production RingCentral account?
Photo of Travis Carona

Travis Carona

  • 240 Points 100 badge 2x thumb
That is correct
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,662 Points 5k badge 2x thumb
Could you send me the request headers and body you're using privately to: benjamin.dean@ringcentral.com please?

I'd like to run some tests myself please.
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,662 Points 5k badge 2x thumb
Actually, I just spoke with Support and they have your issue running there as well.

Could you send that information to your support thread and I'll have them escalate the ticket to isolate and resolve the issue please?

Thanks.
Photo of Anton Nikitin

Anton Nikitin, Official Rep

  • 3,024 Points 3k badge 2x thumb
Official Response
If you indicate a company number (not direct extension number) as your "from" number, you must be logged in as a company operator to be allowed to send SMS from this number. By default, main system administrator extension is defined as a company operator, but it can be changed in RingCentral Service Web UI .  
Photo of Anton Nikitin

Anton Nikitin, Official Rep

  • 3,024 Points 3k badge 2x thumb
Official Response
Photo of Dave Maxfield

Dave Maxfield

  • 60 Points
HI, I am having a similar issue,

This is my header and request string.

curl --request POST \ --url 'https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/sms' \ --header 'accept: application/json' \ --header 'authorization: Bearer SUFEMDFQMDdQQVMwMHxBQUMxaXFvRnNqRjRQSE5yc1pCSTdacldhNjJLZl9wbHRHd3c3Z3R6eHZUZXRmNzFRMmJZOTlRRFdyTnU4a0dDb2N0NF9QWWRPMEVYNENYQjd4dmJsWHJobm5GOTQ4Zi1PTFRIczcycTVONm13em0xVDVFbTd3YkZXRGtIalZ1Qzk1R3Z5cnhkdTRFLVdQLVVtcVBsbzNtTmpTbG43LVpsM3BSb0dZR19MVlo5bGhoU1ZXNEYwVG9taHY3cjI0RVA3UnBoOXpZR1RqSDlLWDJuSFFHSlJjMnF8SHVZRXVRfEEwcDA1RzQ4S3JsaG5CcFViUEJ4SkF8QUE' \ --header 'content-type: application/json' \ --data '{"from":{"phoneNumber":"+18035096800"},"to":[{"phoneNumber":"(378) 400-1234"}],"text":"testing"}'


This is the response i recieve.
The error code is 304
{ "errorCode": "FeatureNotAvailable", "message": "Phone number doesn't belong to extension", "errors": [ { "errorCode": "MSG-304", "message": "Phone number doesn't belong to extension" } ] }
Photo of Anton Nikitin

Anton Nikitin, Official Rep

  • 3,024 Points 3k badge 2x thumb
Dave,

The phone number you use to send a message from (+18035096800) must belong to authenticated user.
Photo of Frank Eady

Frank Eady

  • 60 Points
Hi, Anton Nikitin
I working on app: Should I define as "from number" the number from here: https://prnt.sc/njgern ?
Photo of Anton Nikitin

Anton Nikitin, Official Rep

  • 3,024 Points 3k badge 2x thumb
If you are logged in to the app in production as this account user, then yes.