goatsms

package module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: May 21, 2018 License: GPL-2.0 Imports: 5 Imported by: 0

README

goatsms

This was an experimental fork of gosms. My immediate intent was to replace the modem driver with something more robust, and then restructuring the internals and adding new features like:

  • cancellation
  • deletion
  • receiving SMSs
  • better support for reverse proxies

So far I've:

  • switched to my own modem driver
  • re-organised the directory layout
  • replaced worker with sender
  • dropped http basicAuth support - use a reverse proxy instead
  • added updatedb to migrate gosms databases to goatsms.
  • switched to PDU mode to send SMS PDUs to the modem.
  • added support for UTF-8 messages, including emoticons 😁, and encoding using UCS-2 or National Language Shift tables as suitable.
  • added support for splitting large messages into multi-part SMS PDUs.

My initial intent was for this fork to merge back into gosms, but as gosms appears mostly idle, and with my changes already rewriting core functionality, like worker, I doubt that will ever happen, hence the rename to goatsms.

This is still very much a work in progress, but might be worth playing with if you are having problems with gosms.

The rest is drawn directly from gosms...

Your own local SMS gateway

Purpose

Can be used to send SMS, where you don't have access to internet or cannot use Web SMS gateways or want to save some money per SMS, or have minimal requirements for personal / internal use and such

  • deploy in less than 1 minute
  • supports Windows, GNU\Linux, Mac OS
  • works with GSM modems
  • provides API over HTTP to push messages to gateway, just like the internet based gateways do
  • takes care of queuing, throttling and retrying
  • supports multiple devices at once

gosms dashboard

Deployment
  • Update conf.ini [DEVICES] section with your modem's COM port. for ex. COM10 or /dev/ttyUSB2
  • Run
API Specification
  • /api/sms/ [POST]

    • param mobile
      • mobile number to send message to
      • number should have contry code prefix
      • for ex. +919890098900
    • param message
      • message text
      • max length is limited to 160 characters
    • response
{
  "status": 200,
  "message": "ok"
}
  • /api/logs/ [GET]
    • response
{
  "status": 200,
  "message": "ok",
  "summary": [ 10, 50, 2 ],
  "daycount": { "2015-01-22": 10, "2015-01-23": 25 },
  "messages": [
    {
      "uuid": "d04f17c4-a32c-11e4-827f-00ffcf62442b",
      "mobile": "+1858111222",
      "body": "Hey! Just playing around with gosms.",
      "status": 1
    },
  ]
}
- message status codes
  - 0 : Pending
  - 1 : Processed
  - 2 : Error
Planned features
  • Allowing multiple mobile numbers with a single message in /api/sms/
  • CRUD support for messages, possibly support cancellation of message
  • Authentication support for API
  • Adding authentication for Dashboard
  • Send an email to admin on high failure rate
Building from source

On Ubuntu

  • go get github.com/haxpax/gosms
  • cd $GOPATH/src/github.com/haxpax/gosms/dashboard
  • go get
  • go build

On Windows

  • Setup GCC for go-sqlite3 package

    • For 32 bit
      • Download MinGW
      • Add C:\MinGW\bin to PATH
      • run mingw-get install gcc from command line
    • For 64 bit
    • Install
    • Add its bin dir to path, typically C:\Program Files\mingw-w64\x86_64-4.9.2-posix-seh-rt_v3-rev1\mingw64\bin
  • go get github.com/haxpax/gosms

  • cd $GOPATH/src/github.com/haxpax/gosms/dashboard

  • go get

  • go build

run dashboard executable. Copy assets, templates, conf.ini, dashboard[.exe] if you want to move to another directory db.sqlite is created at first run if not present, copy that too if its there

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetConfig

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

Types

This section is empty.

Directories

Path Synopsis
cmd
internal
db

Jump to

Keyboard shortcuts

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