InSTEDD Messaging Platform
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Merge pull request #35 from instedd/feature/smpp-log-missing-from-add… Jan 11, 2019
config Merge pull request #40 from instedd/feature/intercom Jan 11, 2019
db Merge pull request #10 from instedd/feature/qst_channel_carrier Jul 6, 2016
doc Removed unused stuff Jan 12, 2012
docker Allow customisation of puma flags Aug 28, 2015
lib Add .travis.yml Jul 6, 2016
log Renamed witness log file so that it is hidden by default Jun 21, 2010
public Started introducing users Feb 6, 2013
script Reverted services changes because they don't work in Mac and assume r… Sep 4, 2012
test Merge pull request #35 from instedd/feature/smpp-log-missing-from-add… Jan 11, 2019
.gitignore Vagrantfile Mar 20, 2017
.hgignore Added public/assets to ignore list Sep 30, 2013
.project Added application interface configuration Nov 19, 2009
.ruby-version Use .ruby-version with 1.9.3-p484 Nov 26, 2013
.travis.yml Build Docker image on Travis Jan 11, 2019
Capfile Capify project. Jan 12, 2015
Dockerfile Run the app as a single Puma server Jan 11, 2019
Gemfile Upgrade Rails to latest 3.2.x version to fix some vulnerabilities rep… Jan 14, 2019
Gemfile.lock Upgrade Rails to latest 3.2.x version to fix some vulnerabilities rep… Jan 14, 2019
LICENSE Added GPLv3 license May 31, 2012
Procfile Add foreman in production environment so it can be used by capistrano… Mar 27, 2014
README.markdown Update README Dec 6, 2018
Rakefile Removed all references to cucumber Jan 6, 2012
Vagrantfile Vagrantfile Mar 20, 2017
config.ru Migrated to Rails 3. All tests pass but many deprecation warning Aug 15, 2011
docker-compose-prod.yml Docker Compose configuration to run in production mode Aug 29, 2017
docker-compose-rabbitmq-cmd.sh remove intermedita dockerfile rabbitmq dev image Jul 29, 2016
docker-compose.yml Fixing an issue that happened when the shorcode came like “+xxxx” and… Jun 29, 2018
travis-build.sh Build Docker image on Travis Jan 11, 2019

README.markdown

Nuntium

Build Status

Nuntium is an open source and free platform -developed by InSTEDD- that allows applications to send and receive all type of messages. Examples of messages are sms, emails and twitter direct messages.

Read about some of the new features in the last release.

Let's start with an example

Suppose you have a website that lets users browse and geolocate sms sent by users. Once a message is geolocated you want to send this information to a particular number. Also suppose you have an sms number by which you can receive and send sms. You want your website to focus on the geolocation task and leave the sending and receiving of sms to Nuntium. Here's how you do it:

  • You get an account in Nuntium.
  • You create an Application in Nuntium that will represent your application. You then select an Interface for it, for example HTTP callback. An Interface is something that lets Nuntium communicate with your application.
  • You create a Channel that will communicate with the cellphone company. A Channel is something that lets Nuntium communicate with the world.

Your website gets messages from Nuntium using the configured Interface (in this case via an HTTP callback containing the messages.) Once a message is geolocated your website sends it to Nuntium (it performs an HTTP POST to Nuntium). And that's it!

What are the benefits of using Nuntium?

  • Your application deals with a simple protocol (HTTP, might be another one) instead of communicating directly with the cellphone company.
  • Nuntium will do its best to deliver messages.
  • You have a complete trace of what happened to each message.
  • You can specify custom routing logic.
  • You can change the routing logic without touching a single line in your application's source code.

This way you don't have to repeat this logic in every application that needs to send and receive messages.

Installing

Installation docs

API

API documentation

Docker development

docker-compose.yml file build a development environment mounting the current folder and running rails in development environment.

Run the following commands to have a stable development environment.

$ docker-compose run --rm --no-deps web bundle install
$ docker-compose run --rm web bash -c 'rake db:setup db:seed'
root@web_1 $ rake db:setup db:seed
$ docker-compose up

Intercom

Nuntium supports Intercom as its CRM platform. To load the Intercom chat widget, simply start Nuntium with the env variable INTERCOM_APP_ID set to your Intercom app id (https://www.intercom.com/help/faqs-and-troubleshooting/getting-set-up/where-can-i-find-my-workspace-id-app-id).

Nuntium will forward any conversation with a logged user identifying them through their email address. Anonymous, unlogged users will also be able to communicate.

If you don't want to use Intercom, you can simply omit INTERCOM_APP_ID or set it to ''.

To test the feature in development, add the INTERCOM_APP_ID variable and its value to the environment object inside the web service in docker-compose.yml.