Git Product home page Git Product logo

wctp-gateway's Introduction

WCTP Gateaway

GitHub license GitHub Tag Codacy Badge

About WCTP Gateway

WCTP Gateway is a web application that implements the Carrier Gateway WCTP Actor roles needed to interface with the Amtelco WCTP Intelligent Series SMS Aggregator interface.

Ardently crafted for the Amtelco and NAEO community, you can use this application to run an Amtelco-compatible primary or backup SMS aggregator service using your own Twilio and ThinQ accounts โ€” just bring your API keys!

The modern WCTP engine brings the following features and more:

  • Create and manage Enterprise Host credentials
  • Bring your own Twilio, ThinQ/Commio, or Sunwire accounts
  • Support for using Twilio Messaging Services or Phone Numbers
  • Carrier priority
  • TLS/SSL required by default
  • Email login notifications
  • Work's out of the box with Twilio's WhatsApp integration
  • A generic webhook API provider

Coming Soon

  • Improved fail-over and priorities between carrier
  • More telecom API providers (Bandwidth.com)
  • MergeComm scripting integration for Amtelco ecosystems

Status

The WCTP Gateway is operational for interacting with WCTP Enterprise Hosts and Transient Clients of all ecosystems.

The latest tagged version is:

GitHub Release (latest by date)

Commercial installation and support is available through NotifiUs, LLC

Requirements

We use application, language, and OS features that require the following tools and technologies:

  • Ubuntu Server x64 linux 18.04 LTS or higher
  • php 8.1+ for web application scripting
  • nginx with php-fpm for web server
  • redis-server for caching/queue
  • mysql for storage
  • supervisord to watch queue processes

We utilize linux specific methods of obtaining data about the hardware/server (such as memory, disk space, CPU, etc.) Because of this, we require the use of a linux host. We generally recommend Ubuntu for most users.

Technologies

WCTP Gateway is a Laravel web-application that implements a WCTP endpoint and administrative portal. This system cannot send SMS messages without a supported carrier (Telecom API provider) like Twilio or ThinQ.

Front End

The web portal UI is built on Bootstrap with some TailwindCSS sprinkled in. We use Font Awesome free for icons throughout the application. For various splash pages (errors, etc), we use open source illustrations from UnDraw.

Laravel Application

You can run Laravel in a wide-variety of environments, including Digital Ocean, Amazon, Azure, and just about any modern PHP web environment. Start from a single-server appliance setup and grow into a full-blown load balancing and clustering setup.

Contributing

Thank you for considering contributing to WCTP Gateway! Please email Patrick Labbett or submit a PR!

Security Vulnerabilities

Please see SECURITY.md

License

WCTP Gateway is open-sourced software licensed under the MIT license.

Tested compatability list

  • Amtelco WCTP 2-Way Messaging API
  • InfoRad Messaging Gateway
  • NotePage PageGate / PageGate Platinum

Carrier Drivers

Please see our guide to creating a driver for more information on creating a driver.

I recognize this is not the cleanest way to use drivers - a refactor is planned for the planned 2.x series.

wctp-gateway's People

Contributors

dependabot[bot] avatar plabbett avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

robokoder 25hour

wctp-gateway's Issues

Opt-in confirmation feature

Feature that will not send messages out to recipients until they opt-in.

Possibly require a code?
Perhaps a 1st send message that introduces service and asks them to reply to opt-in?

Need to research best practice on this.

Failure Notifications

Improve notifications for the following use cases:

  • Network timeout between CG and EH (i.e., is your WCTP site up)
  • Network timeout between Twilio/ThinQ (i.e., upstream is failing)
  • Message failure status (i.e., individual number is failing)
  • Test E2E delivery somehow

Other useful notification tasks:

  • Improved long queue notification setup through Laravel Horizon - it's config file based currently.

CG - WCTP Carrier Gateway (i.e., wctp-gateway)

EH - WCTP Enterprise Host (i.e., WCTPWeb endpoint)

Intelligent Series directory listing format

Replies may not work properly when a directory listing includes formatting like -, (, )

This is a result of normalizing outbound SMS numbers to E.164 notation (+15552223333) to be compatible with Twilio conventions.

When we receive the inbound reply from Twilio, which is in E.164 notation, we take off the +1 to be compatible with Intelligent Series directory listings (typically 10 digits)

Amtelco looks for a verbatim match to the originally sent match (including any non-numeric formatting characters) which will fail from the conversion to E.164 and back as a result of carrier requirements.

So, we need to track the originally formatted telephone number so can properly lead Amtelco back to the correct listing on replies.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.