gosms

package module
v0.0.0-...-179fbbe Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2021 License: MIT Imports: 11 Imported by: 0

README

SmsBundle

Une api pour envoyer / recevoir des sms avec un dongle usb.

Comment ça marche ?

  • Vous pouvez cloner le dépôt ou utiliser l'image docker matthieuleboeuf/smsbundle:latest.
  • Ce projet est composé de deux fichiers principaux le read.py et le send.py.
  • Le read.py sert à intercepter les messages envoyés au numéro ainsi que gérer le dongle usb, il fait une requête post à une url spécifié dans la configuration.
  • Le send.py contient un petit serveur web, lorsqu'il est appellé permet de communiquer avec read.py pour envoyer un sms.

Installer le projet

  • Il faut d'abord créer le fichier config.yml à partir du fichier d'exemple.
  • Vous pouvez installer docker compose pour suivre la partie avec docker ou faire votre propre commande de lancement.
Avec docker :
  • docker pull matthieuleboeuf/smsbundle:latest - récupérer l'image docker.
  • docker-compose up -d - Il faut changer /path/to/config.yml avec le bon répertoire pareil pour le dongle usb.
Sans docker :
  • git clone https://github.com/MatthieuLeboeuf/SmsBundle.git - Téléchargement des fichiers.
  • pip install Pyro4 threaded python-gsmmodem-new pyyaml simplejson - Installation des dépendences.
  • python2.7 read.py et python2.7 send.py - Il faut lancer les deux fichiers.

Fichier de configuration

  • pin_code: Code pin de la carte sim.
  • device: Le dongle usb.
  • callback_host: Adresse ip ou nom de domaine du serveur ou la requête va être envoyée.
  • callback_adress: Url sur le serveur web par exemple /callback/sms.
  • send_port: Port du serveur web pour l'envoi des sms.
  • access_token: Token d'accès pour envoyer des sms.

Documentation

Index

Constants

View Source
const (
	SMSPending   = iota // 0
	SMSProcessed        // 1
	SMSError            // 2
)
View Source
const SMSRetryLimit = 3

TODO: should be configurable

Variables

This section is empty.

Functions

func EnqueueMessage

func EnqueueMessage(message *SMS, insertToDB bool)

func GetConfig

func GetConfig(configFilePath string) (ini.File, error)

func GetLast7DaysMessageCount

func GetLast7DaysMessageCount() (map[string]int, error)

func GetStatusSummary

func GetStatusSummary() ([]int, error)

func InitDB

func InitDB(driver, dbname string) (*sql.DB, error)

func InitWorker

func InitWorker(modems []*modem.GSMModem, bufferSize, bufferLow, loaderTimeout, countOut, loaderLongTimeout int)

Types

type SMS

type SMS struct {
	UUID      string `json:"uuid"`
	Mobile    string `json:"mobile"`
	Body      string `json:"body"`
	Status    int    `json:"status"`
	Retries   int    `json:"retries"`
	Device    string `json:"device"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

func GetMessages

func GetMessages(filter string) ([]SMS, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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