<span style="display:block;height:15px!important"></span>
<p align="center"><img src="https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_logo.png" alt="SMS Relentless" width="191px" height="157px"/></p>

<span style="display:block;height:20px!important"></span>

**SMS Relentless is a Nextcloud application that allows sending and receiving SMS and MMS messages in Nextcloud.**

A telnyx.com, plivo.com, twilio.com or flowroute.com account and a real phone number acquired from one of the 4 providers are needed.

<span style="display:block;height:20px!important"></span>

## Features

<span style="display:block;height:10px!important"></span>

* 🚀 Use one or multiple local phone numbers in countries of your choice, to send and receive SMS/MMS messages with your browser, on any device connected to the Internet.

* 📑 Sent and received SMS/MMS messages are stored in the database per sending/receiving user and can be viewed in paginated tables with filters for every column.

* 🖼️ Up to 10 files of various formats, including jpeg, png and gif, can be sent as MMS messages from MMS enabled phone numbers. Files included in incoming MMS messages are not downloaded automatically. They are stored as URL links to the actual files, so that the receivers can download them only if they trust the senders.

* 📔 SMS/MMS messages older than a specified number of days can be deleted in bulk with one click and they are automatically archived in csv files stored in Nextcloud, before being removed from the database. This makes them available for future analysis.

* 💻 Sending SMS/MMS messages to thousands of recipients can be achieved by uploading a txt/csv file containing the recipients' phone numbers and the same SMS/MMS is sent automatically to all. The time interval between two consecutive messages is configurable.

* 👤 The Display Name of Nextcloud users can be prepended to their messages, to make the origin of messages clearer.

* ⚠️ Admins can restrict the use of specific phone numbers to specific groups or users.

* ✉️ Auto-replies in 'daily mode' and 'vacation mode' can be configured for any controlled phone number.

* 🔏 SMS/MMS messages coming from Telnyx, Plivo and Twilio are checked for authenticity by verifying the SMS provider's signature.

* 📧 Users receive notifications in Nextcloud and (optionally) emails when new SMS/MMS messages arrive.

* 📄 Each sent message receives a delivery receipt displayed in the Sent SMS Messages table.

* 🎎 Messages exchanged between pairs of numbers are organized into conversations on a separate page where each conversation can be viewed, tagged and archived.

* 📞 It can be used with regular 'long code' (10-digit) phone numbers, but also with 'toll-free' numbers and 'short codes'. Users see a list with their current phone numbers and can set them as Sender IDs. Setting alphanumeric Sender IDs is also possible. 

* 📱 If Nextcloud is accessed in Firefox for mobile (version 123.0 or newer), it can be used directly on mobile devices.

* 💵 It allows checking the current Telnyx/Plivo/Twilio balance by selecting the provider on the left panel.

* 💰 The only ongoing cost is about $1 per month (depending on the country) for an SMS/MMS enabled phone number located in a country chosen by the user. No contracts.

* 💸 Low prices per SMS: starting from $0.0040 per sent message and $0.0040 per received message (Telnyx), or $0.0085 per sent message and $0.0085 per received message (Plivo), or $0.0109 per sent message and 0.0079 per received message (Twilio), or $0.0055 per sent message and 0.0040 per received message (Flowroute) in the USA.

<span style="display:block;height:10px!important"></span>

Double Bastion is not affiliated with Telnyx, Plivo, Twilio or Flowroute.

### Donations

* 🎁 [Donate](https://www.doublebastion.com/donations/)

<span style="display:block;height:20px!important"></span>

Send SMS message
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_send_sms.png)
<span style="display:block;height:40px!important"></span>
Send MMS message
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_send_mms.png)
<span style="display:block;height:40px!important"></span>
List received SMS messages
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_received_messages.png)
<span style="display:block;height:40px!important"></span>
List sent SMS messages
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_sent_messages.png)
<span style="display:block;height:40px!important"></span>
List active and archived conversations
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/active_archived_conversations.png)
<span style="display:block;height:40px!important"></span>
List messages grouped by phone number
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_grouped_by_number.png)
<span style="display:block;height:40px!important"></span>
List all the messages exchanged between the sending and the receiving phone number
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_exchanged_messages_popup.png)
<span style="display:block;height:40px!important"></span>
List all the messages sent from or received by phone number
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_messages_to_from_popup.png)
<span style="display:block;height:40px!important"></span>
Send SMS message to multiple recipients
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_send_mass_sms.png)
<span style="display:block;height:40px!important"></span>
Filter messages by date and keyword
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_filter_messages_by_date_and_keyword.png)
<span style="display:block;height:40px!important"></span>
Delete old SMS messages
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_delete_old_messages.png)
<span style="display:block;height:40px!important"></span>
Access SMS Relentless on mobile phone
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/sms_relentless_on_mobile.png)
<span style="display:block;height:40px!important"></span>
List received messages on mobile phone
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/received_messages_on_mobile.png)
<span style="display:block;height:40px!important"></span>
Quick reply on mobile phone
<span style="display:block;height:10px!important"></span>
![Image of SMS Relentless Interface](https://git.doublebastion.com/sms-relentless/raw/develop/img/reply_to_message_on_mobile.png)
<span style="display:block;height:40px!important"></span>

## Browsers
<span style="display:block;height:10px!important"></span>

SMS Relentless works with all major browsers.

<span style="display:block;height:20px!important"></span>

## Programming Languages
<span style="display:block;height:10px!important"></span>

SMS Relentless only uses PHP, SQL, jQuery, CSS and HTML. This means it's efficient, light-weight and easy to maintain and debug.

<span style="display:block;height:20px!important"></span>

## Minimum Requirements
<span style="display:block;height:10px!important"></span>

- **Nextcloud 22+** has to be installed and properly configured, preferably by following the <a href="https://www.doublebastion.com/install-nextcloud/" rel="noreferrer noopener" target="_blank">Install Nextcloud</a> chapter in our guide.

- **A telnyx.com, plivo.com, twilio.com or flowroute.com account and an SMS/MMS enabled phone number** attached to it.

- The **libcurl** PHP library has to be installed on the server (it's usually installed automatically when PHP is installed).

To enable email notifications for every received SMS/MMS, the "sendmail" utility ("/usr/sbin/sendmail" on Debian Linux), has to be present on the server. "sendmail" is a binary which gets 
installed when Postfix is installed. Also, the web server user (www-data) has to be allowed to send emails from command line (by specifying "authorized\_submit\_users = www-data" in 
"/etc/postfix/main.cf" for Postfix on Debian).

<span style="display:block;height:20px!important"></span>

## Installation
<span style="display:block;height:10px!important"></span>

<a href="https://www.doublebastion.com/install-nextcloud/#install-sms-relentless" rel="noreferrer noopener" target="_blank">This chapter</a> of our Complete Guide to a Complete Linux Server 
explains in detail how to install and use this application.

SMS Relentless is a component of RED Scarf Suite. It can be installed and used alone, but if you want to install <a href="https://www.doublebastion.com/red-scarf-suite-components/" rel="noreferrer noopener" target="_blank">all 
the components</a> of RED Scarf Suite, you can follow our <a href="https://www.doublebastion.com/free-server/complete-guide-to-a-complete-linux-server/" rel="noreferrer noopener" target="_blank">complete guide</a>.

<span style="display:block;height:20px!important"></span>

## Contribute
<span style="display:block;height:10px!important"></span>

This is the official git repository of SMS Relentless. The <a href="https://github.com/DoubleBastionAdmin/sms-relentless" rel="noreferrer noopener" target="_blank">GitHub SMS Relentless
repository</a> is just a pointer to this repository. We don’t use GitHub for developing SMS Relentless because GitHub is owned by one of the companies that proved their disrespect for
digital freedom over the years and because centralized services create autonomy and privacy issues, in spite of all the benefits.

If you want to contribute code to this project, please submit <a href="https://git.doublebastion.com/sms-relentless/pullrequests/contrib" rel="noreferrer noopener" target="_blank">this form</a>, 
mentioning your intended changes. We'll send you the credentials needed to push code to the "contrib" branch of this repository. After we review the changes we can include them in the 
project.

Please post any bugs that are not security related, or feature requests, on the <a href="https://git.doublebastion.com/sms-relentless/issues/develop" rel="noreferrer noopener" target="_blank">
issue tracker</a>. If you notice bugs related to security, don’t post them on the issue tracker; instead, send them to manager [at] doublebastion [dot] com .

<span style="display:block;height:20px!important"></span>

## License
<span style="display:block;height:10px!important"></span>

SMS Relentless as a whole is licensed under the GNU Affero General Public License Version 3, or any later version. If you use SMS Relentless or distribute it in modified or unmodified 
form, you will need to comply with the terms of the GNU Affero General Public License Version 3, or any later version.

SMS Relentless includes libraries licensed under different free software licenses. These libraries contain their respective original copyright notices.
