After you get the correct Firebase Sender ID you can correct it in config.php and it should start working.
]]>You can try to enable the alternative service if your messages are staying in "Pending" status for a long time. You just have to open the app and click on the Play button to start the service as highlighted in the below screenshot.
It is still a good idea to follow the below instructions.
Some device manufacturers like Xiaomi, Honor, Oppo, Realme and some others use their own battery saver app. You will need to add the SMS Gateway app into the exceptions list in the battery saver app if your phone is using a custom battery saver. For example, you can see how I added the SMS Gateway app into exceptions list on Redmi Note 3.
If you are using a device that doesn't have the stock Android, then it may have AutoStart permission settings. You need to download the latest version of the app from here. If after installing, it prompts you with the message "Your device is restricting the application's functionality. Please enable/add the application in the whitelist, so it can work normally." then it means it is restricting the app. Just press the OK button, and it will take you to the screen where you can whitelist your app.
There is a chance that the latest version of the app can't detect the AutoStart permission, because it is not possible to test the app on every device. In that case, you should consult your device manufacturer to see if there is any setting like that available on your device.
If you don't see the above settings on your phone, then you can check out the following site. It lists all restrictive functionality available on commonly used devices. Just whitelist the App or disable any restrictive functionality, and it should work normally.
Even after following the above instructions, if you still encounter the issue, then you need to try the app on a different device. It is recommended that you use a Stock Android device for the best experience. It is also preferable to use a device with 4 GB or more RAM for the best experience.
]]>Some device manufacturers also set the limit on number of messages you can send in certain time span. If you are getting error "SMS Gateway is sending the large number of messages." then follow below guide to prevent it or set the minimum delay above 60 sec to avoid this issue.
https://support.rbsoft.org/articles/im-getting-the-frequent-prompt-with-message-sms-gateway-is-sending-large-number-of-messages-do-you-want-to-allow-this-app-to-continue-sending-messages-how-can-i-stop-it
This can also happen due to SIM blocks. In that case, you can follow this guide.
If you are trying to send MMS, then make sure SMS Gateway app is the default app for SMS. If it isn't, you can set it as default by following the below guide.
https://support.rbsoft.org/articles/how-to-prevent-default-messaging-app-from-storing-every-message-i-send-1948
This can also happen if you don't have a sufficient balance on your phone to send SMS or MMS.
It can also happen if the app is unable to report the status to the server because of connection failure. In this case, App will do it after some time.
If you are using older Oppo or Realme devices, then the app will prompt you every time you send the message. So it is not preferable to use older Oppo or Realme devices to use this app.
]]>Also, If you are getting 500 error while exporting or importing Excel file then make sure your server meets following requirements.
You need to create a script as suggested in the WebHook Example Script section of the API page in your Admin Panel and upload it to your server. Just provide its URL in Add WebHook form on the API page and hit the Save button. Now, whenever you will receive a message on your device that script will be executed automatically.
Remember, you can't execute the WebHook script directly. It won't work.
Here is a detailed example of how to add it.
[1] Login to your Admin Panel and open the API page. You will section called "Webhook Example Script" as shown in the screenshot below.
[2] Just copy all the text inside this section. Now create a PHP file named "hook-example.php" at the root of your server, and paste all the text you copied from that section into this file.
[3] Now to make it work you have to add the URL of the file we created. Just login to your Admin Panel and open your API page. You will see a section called "Add Webhook for received messages". Just enter the URL for the "hook-example.php" into the form and press save as shown below. It is recommended to provide a secure URL (starts with https://) if your server URL is also a secure URL.
[4] Now you have to turn on the "Read Received" from the mobile app as shown here if you haven't done so.
Now, Whenever you receive the message on your device which is registered to the SMS Gateway account where you added this webhook, the webhook script will be called automatically.
]]>
I submitted the app for a review many times but they rejected it every time. I also tried submitting it with the instructional video featuring a demo page completely integrated with the app but they rejected the app without even looking at the demo.
This doesn't mean that the app will stop working. The app will work normally but it won't be available via Play Store anymore.
Unfortunately, This is out of my hand. I will provide update notifications through CodeCanyon. You can get the latest version of the app from here.
If you don't know how to sideload apps then you can follow this guide to install the APK file.
If you have any questions then you can contact Google Play support.
]]>https://namecheap.pxf.io/7mgnQ5
If you still having problems with login. You can try the alternate session file. Just remove the "includes/session.php" and rename "includes/session-alt.php" to "session.php". Now it should use the default file-based sessions.
]]>First thing you need to do is Turn on the USB Debugging on your Android device.
On modern Android devices, you’ll find USB Debugging in the Developer Options menu, which is hidden by default.
To unlock it, head to Settings and scroll down to About phone. Scroll down again, and you’ll see a Build number entry at the bottom. Tap this several times, and you’ll see a notification letting you know that you’re now a developer.
Now jump back to Settings and scroll back down to the bottom where you accessed About phone. On Android Pie and later, you’ll need to open the System entry and expand the Advanced section. Here you’ll see a new entry titled Developer options. On older versions of Android, you’ll see the Developer options entry listed next to About phone instead.
Regardless, once you’re inside, look for USB debugging under the Debugging header. Hit the slider to enable it, and confirm Android’s warning that you understand what this feature is for. If your device also have the option called "Disable permission monitoring" in Developer options, then you have to enable it to make this work.
You may need to install ADB driver from here before connecting your phone.
Now you’ve turned on USB Debugging. To use it, you just need to plug your phone into a PC using a USB cable. When you do this, you’ll see a prompt on your phone asking if you want to authorize USB Debugging for that specific computer. This is a security feature designed to keep your device safe from attack, so make sure you trust the computer before accepting this.
Now download the zip file from here and extract it anywhere on your Windows PC. After extracting it, open the "increase-sms-limit" folder and double-click on "increase-sms-limit.bat". It should set your Android device SMS limit high enough to avoid the prompt.
This method is not guaranteed to work on every device. If it doesn't work, then there is nothing you can do about it.
]]>If you are sending MMS messages, then make sure SMS Gateway is set as default app for sending SMS. If it isn't, then you can set it as default by following the below guide.
Some countries have different rules for mobile number formatting while sending messages. The badly formatted mobile number is also one of the reasons for failed response. You can check out the guide from here to see how to format mobile numbers while sending messages.
Sometimes operators can ban your SIM for sending too many messages, or they can have a rate limit on the number of messages you can send in a certain time frame. In this case, using higher delay between messages can prevent failures.
Every network operator works differently, and a "Failed" response is given by the network operator. It usually happens when your network operator can't reach the mobile number. You can try changing the sim card or using the same sim on another device.
There is nothing you can do about it if you are still getting a failed response from the network operator after trying all the instructions provided above. You can check out the error code list shown below to get the reason for failure.
NO_SERVICE | Your device simply has no cell reception. You're probably in the middle of nowhere, somewhere inside, underground, or up in space. Certainly away from any cell phone tower. Sometimes it also happens when you get a call while sending messages. |
RADIO_OFF | You switched your device into airplane mode, which tells your device exactly "turn all radios off" (cell, wifi, Bluetooth, NFC, ...). |
LIMIT_EXCEEDED | Failed because the phone reached the sending queue limit. |
GENERIC_FAILURE | Something went wrong and there's no way to tell what, why or how. |
GENERIC_FAILURE [1] | This cause indicates that the destination requested by the Mobile Station cannot be reached because, although the number is in a valid format, it is not currently assigned (allocated). |
GENERIC_FAILURE [8] | This cause indicates that the MS has tried to send a mobile originating short message when the MS’s network operator or service provider has forbidden such transactions. |
GENERIC_FAILURE [10] | This cause indicates that the outgoing call barred service applies to the short message service for the called destination. |
GENERIC_FAILURE [17] | This cause is sent to the MS if the MSC cannot service an MS generated request because of PLMN failures, e.g. problems in MAP. |
GENERIC_FAILURE [21] | This cause indicates that the equipment sending this cause does not wish to accept this short message, although it could have accepted the short message since the equipment sending this cause is neither busy nor incompatible. |
GENERIC_FAILURE [27] | This cause indicates that the destination indicated by the Mobile Station cannot be reached because the interface to the destination is not functioning correctly. The term “not functioning correctly” indicates that a signaling message was unable to be delivered to the remote user; e.g., a physical layer or data link layer failure at the remote user, user equipment off-line, etc. |
GENERIC_FAILURE [28] | This cause indicates that the subscriber is not registered in the PLMN (i.e. IMSI not known). |
GENERIC_FAILURE [29] | This cause indicates that the facility requested by the Mobile Station is not supported by the PLMN. |
GENERIC_FAILURE [29] | This cause indicates that the facility requested by the Mobile Station is not supported by the PLMN. |
GENERIC_FAILURE [30] | This cause indicates that the subscriber is not registered in the HLR (i.e. IMSI or directory number is not allocated to a subscriber). |
GENERIC_FAILURE [38] | This cause indicates that the network is not functioning correctly and that the condition is likely to last a relatively long period of time; e.g., immediately reattempting the short message transfer is not likely to be successful. |
GENERIC_FAILURE [41] | This cause indicates that the network is not functioning correctly and that the condition is not likely to last a long period of time; e.g., the Mobile Station may wish to try another short message transfer attempt almost immediately. |
GENERIC_FAILURE [42] | This cause indicates that the short message service cannot be serviced because of high traffic. |
GENERIC_FAILURE [47] | Resources unavailable. This cause is used to report a resource unavailable event only when no other cause applies. |
GENERIC_FAILURE [50] | This cause indicates that the requested short message service could not be provided by the network because the user has not completed the necessary administrative arrangements with its supporting networks. |
GENERIC_FAILURE [69] | This cause indicates that the network is unable to provide the requested short message service. |
GENERIC_FAILURE [81] | This cause indicates that the equipment sending this cause has received a message with a short message reference which is not currently in use on the MS-network interface. |
GENERIC_FAILURE [95] | This cause is used to report an invalid message event only when no other cause in the invalid message class applies. |
GENERIC_FAILURE [96] | This cause indicates that the equipment sending this cause has received a message where a mandatory information element is missing and/or has a content error (the two cases are indistinguishable). |
GENERIC_FAILURE [97] | This cause indicates that the equipment sending this cause has received a message with a message type it does not recognize either because this is a message not defined or defined but not implemented by the equipment sending this cause. |
GENERIC_FAILURE [98] | Message not compatible with short message protocol state |
GENERIC_FAILURE [99] | This cause indicates that the equipment sending this cause has received a message which includes information elements not recognized because the information element identifier is not defined or it is defined but not implemented by the equipment sending the cause. However, the information element is not required to be present in the message in order for the equipment to send the cause to process the message. |
GENERIC_FAILURE [111] | This cause is used to report a protocol error event only when no other cause applies. |
GENERIC_FAILURE [127] | This cause indicates that there has been interworking with a network that does not provide causes for actions it takes; thus, the precise cause for a message which is being sent cannot be ascertained. |
GENERIC_FAILURE [128] | Telematic internetworking not supported |
GENERIC_FAILURE [129] | Short message type 0 not supported |
GENERIC_FAILURE [130] | Cannot replace short message |
GENERIC_FAILURE [143] | Unspecified TP-PID error |
GENERIC_FAILURE [144] | Data code scheme not supported |
GENERIC_FAILURE [145] | Message class not supported |
GENERIC_FAILURE [159] | Unspecified TP-DCS error |
GENERIC_FAILURE [160] | Command cannot be actioned |
GENERIC_FAILURE [161] | Command unsupported |
GENERIC_FAILURE [175] | Unspecified TP-Command error |
GENERIC_FAILURE [176] | TPDU not supported |
GENERIC_FAILURE [192] | SC busy |
GENERIC_FAILURE [193] | No SC subscription |
GENERIC_FAILURE [194] | SC System failure |
GENERIC_FAILURE [195] | Invalid SME address |
GENERIC_FAILURE [196] | Destination SME barred |
GENERIC_FAILURE [197] | SM Rejected-Duplicate SM |
GENERIC_FAILURE [198] | TP-VPF not supported |
GENERIC_FAILURE [199] | TP-VP not supported |
GENERIC_FAILURE [208] | D0 SIM SMS Storage full |
GENERIC_FAILURE [209] | No SMS Storage capability in SIM |
GENERIC_FAILURE [210] | Error in MS |
GENERIC_FAILURE [211] | Memory capacity exceeded |
GENERIC_FAILURE [212] | Sim application toolkit busy |
GENERIC_FAILURE [213] | SIM data download error |
GENERIC_FAILURE [255] | Unspecified error cause |
GENERIC_FAILURE [300] | ME Failure |
GENERIC_FAILURE [301] | SMS service of ME reserved |
GENERIC_FAILURE [302] | Operation not allowed |
GENERIC_FAILURE [303] | Operation not supported |
GENERIC_FAILURE [304] | Invalid PDU mode parameter |
GENERIC_FAILURE [305] | Invalid Text mode parameter |
GENERIC_FAILURE [310] | SIM not inserted |
GENERIC_FAILURE [311] | SIM PIN required |
GENERIC_FAILURE [312] | PH-SIM PIN required |
GENERIC_FAILURE [313] | SIM failure |
GENERIC_FAILURE [314] | SIM busy |
GENERIC_FAILURE [315] | SIM wrong |
GENERIC_FAILURE [316] | SIM PUK required |
GENERIC_FAILURE [317] | SIM PIN2 required |
GENERIC_FAILURE [318] | SIM PUK2 required |
GENERIC_FAILURE [320] | Memory failure |
GENERIC_FAILURE [321] | Invalid memory index |
GENERIC_FAILURE [322] | Memory full |
GENERIC_FAILURE [330] | SMSC address unknown |
GENERIC_FAILURE [331] | No network service |
GENERIC_FAILURE [332] | Network timeout |
GENERIC_FAILURE [340] | No +CNMA expected |
GENERIC_FAILURE [500] | Unknown error |
GENERIC_FAILURE [512] | User abort |
GENERIC_FAILURE [513] | Unable to store |
GENERIC_FAILURE [514] | Invalid Status |
GENERIC_FAILURE [515] | Device busy or Invalid Character in string |
GENERIC_FAILURE [516] | Invalid length |
GENERIC_FAILURE [517] | Invalid character in PDU |
GENERIC_FAILURE [518] | Invalid parameter |
GENERIC_FAILURE [519] | Invalid length or character |
GENERIC_FAILURE [520] | Invalid character in text |
GENERIC_FAILURE [521] | Timer expired |
GENERIC_FAILURE [522] | Operation temporary not allowed |
GENERIC_FAILURE [532] | SIM not ready |
GENERIC_FAILURE [534] | Cell Broadcast error unknown |
GENERIC_FAILURE [535] | Protocol stack busy |
GENERIC_FAILURE [538] | Invalid parameter |
UNKNOWN_ERROR [*] | Something went wrong and there's no way to tell what, why, or how. |
If you are uploading big excel file with thousands of messages then make sure your server has big enough max_execution_time and memory_limit values.
If it still doesn't work after following the above instructions. Look for errors related to the SMS Gateway app in your PHP error_log file and submit a ticket with the error message. If your error_log file doesn't have any errors related to SMS Gateway then it must be an issue with your server and in that case, you should contact your server administrator about the issue.
]]>After you get it, just modify the config.php file from where you installed SMS Gateway admin panel. Change line looking like the following one.
define('PURCHASE_CODE', 'Enter your Purchase Code here');]]>
Making the app default messaging app will prevent the storage of both sent and received messages so make sure you have the "Read Received" option turned on so you can see the received messages in the SMS Gateway app.
If you won't revert the above changes then you can open your primary messaging app and it will prompt you to make it a default app. Just choose "Yes" and you will be able to store sent and received messages in your primary messaging app.
1. Get your Firebase Service Account JSON by following the below guide.
https://smsgateway.rbsoft.org/docs/downloading_firebase_service_account_json.htm
2. Download the latest package zip file from CodeCanyon. You will find "SMS.Gateway.Package.zip" in the "Package" folder after you extract the zip file you downloaded. Upload it into the "htdocs" or "public_html" folder using file manager in cPanel.
3. After the upload completes, click on your zip file and extract the file using the toolbar option in cPanel file manager.
4. Now you have to create a database and database user which will be used as "Database Name" and "Database User" during the installation process. Follow below video tutorial until 4:30. You can skip the rest of the video.
5. You will also need a Purchase Code to install it. You can get it by following the below guide.
https://help.market.envato.com/hc/en-us/articles/202822600-Where-Is-My-Purchase-Code
6. Now navigate to your domain using your browser, and you will see the following form. Just enter all the details we collected so far, your Name, email you want to use for Admin account and Admin account password. Press Install and it will be installed. Database Server field should be "localhost" or "127.0.0.1" without quotes in most cases.
6. It is recommended to set up a cron job for certain functionality to work. Follow the below tutorial for that.
https://smsgateway.rbsoft.org/docs/setting_up_the_cron_job_1.htm
7. You can use following APK with your server.
https://rbsoft.org/downloads/sms-gateway/sms-gateway.apk
It is recommended that you create your own APK as shown in the below guide. That APK will be tied to your server, and you won't have to insert the Server URL while using it.
https://smsgateway.rbsoft.org/docs/create_customized_android_application.htm
]]>After you get the correct Firebase Server Key, you can correct it in config.php, and it should start working.
After selecting the user, just click on Add Device button as shown below.
You will be presented with the following dialog, just follow the instructions in it and the device will be added to that user's account.
You will be able to delete this device anytime from this user's account by selecting it and pressing Remove. Furthermore, you can also disconnect the device from this user's account and assign it to another by signing out from the application and following the above steps to add it to the other user's account.
You can turn on "Send next message in campaign only after current message is processed by network operator" option on Profile page for a better experience. If you didn't enable "Request a delivery report for each message you send (Only SMS)" option on Profile page, you can set delay to 0 to send messages faster when the previously mentioned option is enabled, but it is recommended to keep 2 sec delay for SMS if you have delivery reports enabled. If you still face issue where messages are getting Failed status or stuck in Queued status for a long time, then try to increase the delay between messages.
It is recommended to keep 2 sec minimum delay for SMS and 4 sec for MMS. For SMS if you are seeing more than 1 message while sending as shown in following screenshot then just multiply number of messages with 2 and set that as a min delay. So for 4 messages as shown in the screenshot, it is a good idea to set 8 (2 x 4) sec minimum delay.
1. Set some ranged delay like "15-30" between messages. You can do this from the profile page. It will select a random delay from the range for each message. The greater the difference between the minimum and maximum value, the better.
2. Use spintax feature available in v9.2 or above to randomize the message. Below is the example of spintax.
{Hi|Hey|Hello},
How are you?
{Best|Kind} Regards,
Ravi
In the above message, it will choose Hi, Hello, or Hey randomly for each message. This helps greatly to randomize the text.
3. Add random number using new feature added in v9.2 or above for more randomization. You can do this by adding "%random-10%" without quotes in your message. You can change 10 to any other value. It determines the length of the random number.
To overcome this limitation, you can also convert the multistep code to single step. For example, if you have a USSD code like *786# and you want to send 1 as reply to it, then you can use *786*1# to see if it works. This works for me, so it may work for you too. You can also do this for more than one input. For example, if you have a USSD code like *141# and you want to send 4 as the first input and 2 as the second, then you can use *141*4*2# to see if it works. This may work differently for your USSD provider. You can ask your USSD provider to see if this code can be done in a single step.
If you are using web panel v9.3.1 or below, make sure your Android app version is also v9.3.1 or below. You can create APK for older version using build server as shown here. You don't have to get the "google-services.json" to create an older version of APK. It is recommended to upgrade web panel to latest version because Google is going to discontinue older version of Firebase API on June 2024. That can prevent an older version from working after that.
Sent, Failed and Delivered status are given by your network operator. If you can send SMS or MMS normally, then you should be able to do it with this app, because all SMS related app on the phone uses the same system function to send messages. Make sure your SIM plan allows you to send SMS or MMS. Default messaging allows you to send RCS messages too, so make sure you don't confuse it with SMS or MMS.