# Messages
Send and receive SMS and MMS messages. This tool utilizes a service
called, message_queue to send and receive messages.
It relays SMS messages to registered endpoints including softphones and desk
phones that support message_queue.
This feature supports multiple Providers simultaneously.
## Install
```
cd /var/www/fusionpbx/app
git clone https://github.com/fusionpbx/fusionpbx-app-messages.git messages
git clone https://github.com/fusionpbx/fusionpbx-app-providers.git providers
php /var/www/fusionpbx/core/upgrade/upgrade.php
```
Navigate to **Advanced** > **Upgrade** and run the following:
- App Defaults
- Schema
- Group Permissions
- Menu Defaults
## Menu
```
If you used restore menu defaults you can skip this step.
Providers
Title: Providers
Link: /app/providers/providers.php
Parent Menu: Accounts
Groups: superadmin
Messages
Title: Messages
Link: /app/messages/messages.php
Parent Menu: Applications
Groups: superadmin
```
```
cp /var/www/fusionpbx/app/messages/resources/service/debian-message_queue.service /etc/systemd/system/message_queue.service
systemctl enable message_queue
systemctl start message_queue
systemctl daemon-reload
```
```
cp /var/www/fusionpbx/app/messages/resources/service/debian-message_events.service /etc/systemd/system/message_events.service
systemctl enable message_events
systemctl start message_events
systemctl daemon-reload
```
- Add the NGINX rewrite rule to support the media URL to support MMS.
```
nano /etc/nginx/sites-enabled/fusionpbx
```
- Add the message media rewrite below inside the server 443 section.
Add it just below the REST API rewrite rule or just above the phone
vendor rewrite rules.
```
server {
listen 443;
```
- Rewrite rule
```
#message media
rewrite "^/app/messages/media/(.*)/(.*)" /app/messages/message_media.php?id=$1&action=download last;
```
- Then restart nginx
```
service nginx restart
```
## Setup
- Go to **Accounts** > **Providers**.
- Press the **ADD** button and find your provider and then press the
**SETUP** button. After adding your provider will need to get Add
your API key authorization to the settings that were added for your
SMS provider.
- If your provider is not listed then you will need access to your
Providers SMS API documentation and would need to compare with the
other providers.
- When you're ready to add your provider press **Add Provider** for a
template to start from. You may need support for this step if you plan
to add your own VoIP provider.
- Destinations** > **Inbound**: Assign the destination to a user or
group. In **Dialplan** > **Destinations** make sure the number you have
enabled for SMS is assigned to a user account and to a provider using
the select list in inbound destinations.
- Make sure to set the Country Code.
- This helps to match the SMS destination number with an inbound
destination. It makes it possible to the number without the country
code, with the country code and e.164.
### Extensions
- In **Accounts** > **Extensions** make sure the user is
assigned to an extension.
### Mobile
- On your mobile phone send an SMS or MMS message to the
number you set up for SMS with the provider.
### Messages
- In **Application** > **Messages** you can use the **New
Messages** button to send an SMS or MMS message.
### Providers
- The providers are identified and allowed to use IP
authentication.