sms-gateway

module
v1.7.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2024 License: Apache-2.0

README

Contributors Forks Stargazers Issues Apache 2.0 License

Android SMS Gateway Server

This server acts as the backend component of the Android SMS Gateway, facilitating the sending of SMS messages through connected Android devices. It includes a RESTful API for message management, integration with Firebase Cloud Messaging (FCM), and a database for persistent storage.

Table of Contents

Features

  • Send SMS messages via a RESTful API.
  • Get message status.
  • Get the list of connected devices.
  • Public and private modes.

Prerequisites

  • Go (for development and testing purposes)
  • Docker and Docker Compose (for Docker-based setup)
  • A configured MySQL/MariaDB database

Quickstart

The easiest way to get started with the server is to use the Docker-based setup in Private Mode. In this mode device registration endpoint is protected, so no one can register a new device without knowing the token.

  1. Set up MySQL or MariaDB database.
  2. Create config.yml, based on config.example.yml. The most important sections are database, http and gateway. Environment variables can be used to override values in the config file.
    1. In gateway.mode section set private.
    2. In gateway.private_token section set the access token for device registration in private mode. This token must be set on devices with private mode active.
  3. Start the server in Docker: docker run -p 3000:3000 -v ./config.yml:/app/config.yml capcom6/sms-gateway:latest.
  4. Set up private mode on devices.
  5. Use started private server with the same API as the public server at sms.capcom.me.

See also docker-composee.yml for Docker-based setup.

Work modes

The server has two work modes: public and private. The public mode allows anonymous device registration and used at sms.capcom.me. Private mode can be used to send sensitive messages and running server in local infrastructure.

In most operations public and private modes are the same. But there are some differences:

  • POST /api/mobile/v1/device endpoint is protected by API key in private mode. So it is not possible to register a new device on private server without knowing the token.
  • FCM notifications from private server are sent through sms.capcom.me. Notifications don't contain any sensitive data like phone numbers or message text.

See also private mode discussion.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the Apache-2.0 license. See LICENSE for more information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL