SMS Aggregators, Modems, & WCTP

A technical primer for Amtelco systems and the NAEO community

Presented by Patrick Labbett

Follow the presentation live!

Hi, I'm Patrick.

I turn your call center technical employees into superheroes

SMS

Short Message Service

Whenever I'm on-call

What happens when you send an SMS?

A moment of silence for T9 predictive texting

SMS Message Size

Which is correct?

  • 140 bytes
  • 160 characters
  • 70 characters

 

 

ALL OF THEM!

140 bytes can hold 160 7-bit encoded characters or 70 16-bit Unicode encoded characters

 

Short Message Service Center

(SMSC)

  • AP&P cell phone sends SMS message
  • SMSC stores message and looks up recipient
  • If on same network and phone is online, send message to device.
  • Hold message until phone available or retries expire (Store and Forward)
  • If on different network, send to upstream SMSC of Z-Mobile

Let's take a look under the hood

Hayes AT Command Set

A command language to instruct a modem to dial, hangup, send data, and other related activities

Send an SMS using Hayes AT Commands

AT
OK

AT+CMGF=1
OK

AT+CMGW="+16146827015"
> This is an SMS message!
+CMGW: 1
OK

AT+CMSS=1
+CMSS: 7
OK

This is how Amtelco's IS SMS Service talks with modems!

Receive SMS using Hayes AT Commands

AT
OK

AT+CMGF=1
OK

AT+CMGL="ALL"
+CMGL: 1,"REC READ","+16146827015",,"06/03/20,00:10:29+31"
This is an SMS message!

+CMGL: 2,"REC READ","+16146827015",,"06/03/20,00:33:20+42"
Hey this is Patrick are you coming to the webinar?

OK

SMS is not* HIPAA Compliant

DON'T DO IT!

  • Not encrypted in transit
  • Minimal auditing available
  • Access control not guaranteed
  • Plain-text copies stored in SMSC history

Remove ALL PHI from SMS

* Without significant (carrier-grade) workflow and infrastructure requirements

How to securely send text messages with PHI

RECAP SO FAR

  • SMS is sent between mobile devices
  • SMS can be 160 (70) characters long
  • SMS is relayed via one or more SMSC
  • SMS uses Hayes AT commands for control
  • SMS is not HIPAA compliant

Cellular Modems

Using cellular modems to send and receive SMS

Connecting Intelligent Series with modems

A physical cable between your modem device and your computer is connected on a COM port

Trying to move to the cloud? Search for virtual COM ports (or better yet consider an aggregator)

DB-25 RS-232

DE-9 RS-232

(Still a dinosaur...)

USB-A/C/Mini/Micro

RFCOM (Bluetooth)

Not practical outside of having fun

Tools of the trade?

Hyper-Terminal Putty

Finding COM ports

(A quick tangent)

  • Use Device Manager Ports (LPT & COM) section
  • Open Phone and Modem from the Control Panel
  • mode command line tool

Nerds only!

IS System Settings

Modem Setup

Virtual Terminals

Sending from a script

Why you need to start migrating to SMS aggregators

GSM/GPRS can only send 6-10 SMS messages per minute

No insight into deliver-ability issues once the SMS message has been sent

Prone to inter-carrier issues

Hard to find compatible combination of modem, SIM, and carrier services

The golden days of unlimited texting in business environments are coming to an end

utility-style transactional billing says hi

WCTP

Wireless Communications Transfer Protocol

What is WCTP?

  • HTTP-based API - not RESTful
  • Uses XML, widely supported
  • Originally for wireless devices (pagers)

What does this mean? 

 

HTTP is everywhere - it's easily scaled, and can be secured using standard TLS website certificates

How does

WCTP work?

Think of WCTP as an additional highway lane to access carrier networks.

WCTP

Carrier Network

SMSC

3rd Party Integrator

"Wireline" to "Wireless" network transactions

Software

Maybe this is easier to understand?

WCTP actor roles

  • carrier gateway
  • enterprise host
  • polling enterprise
  • transient client
  • proxy server

Example WCTP Request

<?xml version="1.0"?>
<!DOCTYPE wctp-Operation SYSTEM "http://dtd.wctp.org/wctp-dtd-v1r3.dtd">
<wctp-Operation wctpVersion="wctp-dtd-v1r3" wctpToken="1AA">
  <wctp-SubmitRequest>
    <wctp-SubmitHeader submitTimestamp="2020-06-03T18:15:00">
      <wctp-Originator senderID="5551234567"/>
      <wctp-MessageControl messageID="4"/>
      <wctp-Recipient recipientID="5557654321"/>
    </wctp-SubmitHeader>
    <wctp-Payload>
      <wctp-Alphanumeric>
      	The message to send goes here!
      </wctp-Alphanumeric>
    </wctp-Payload>
  </wctp-SubmitRequest>
</wctp-Operation>

So why are we talking about WCTP again?

STANDARDS-based HTTP interface widely adopted in the telecommunications industry...

Instead of building specific integrations for each provider, Amtelco can use WCTP!

SMS Aggregators

High-volume software-defined SMS conversations

AKA SMS Gateways

Partner with multiple carriers to provide multiple delivery paths

1st or 3rd party

Tier-1 SMS Aggregator

Connections to the top five carrier networks in the US (Verizon, AT&T, T-Mobile, Sprint, & US Cellular)

RECAP

Everything we just learned - an SMS aggregator handles for you.

No
More
Hardware

Handles carrier failover, retries, multiple carrier connections, redundancy, and simplified integrations.

Redundancy and availability now hinge on your network connectivity.

(So use two aggregators)

Intelligent Series

Working with SMS aggregators in the Amtelco Intelligent Series platform

Amtelco SMS aggregator

Original Aggregator: Integritek (Formerly T3 of Georgia) used a custom-made HTTP API (does not use WCTP)

WCTP 2-Way Interface: Amtelco builds a standards compliant WCTP interface

Infinite Convergence: Amtelco and Infinite Convergence partner on SMS using WCTP interface

First 3rd party integration: TAS Innovations SMS server (swiss army knife)

WCTP 2-Way Messaging API

(Really, this just means WCTP)

Inbound

Outbound

Works with Virtual Terminals, too!

Outbound SMS via WCTP

Name Arbitrary
Address Full WCTP address
Sender ID Username
Security Code Password
Auth ID / Auth Code Sometimes required
Provider Name Arbitrary*

Inbound Provider Setup

 <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="server" value="192.168.1.1" />
    <add key="port" value="5200" />
    <add key="customerId" value="1234" />
    <add key="station" value="1" />
    <add key="source" value="Infinite" />
  </appSettings>
  <system.web>

Install Amtelco's WCTPWeb application

The WCTP Terminal Provider Name should match the source in WCTPWeb web.config

Once WCTPWeb is configured, give your provider the address

https://your-company.com/wctpweb

If you don't have TLS/SSL enabled on your web-server, you SHOULD NOT continue.

 

YOU

ONLY

HAVE

TO

CHANGE

THE

TERMINAL

Sending outbound SMS

Handling inbound SMS

Dispatch jobs!

MergeComm!

Advanced SMS handling through MergeComm SMS and WCTP triggers

Licensing considerations

Each provider you wish to accept inbound messages from must have a corresponding WCTPWeb installation.

Sending is much simpler - if you are licensed for WCTP outbound you can setup multiple providers.

As always, consult Amtelco for help!

Demo

Open Source SMS aggregator

Please consider supporting open-source development by sponsoring this project!

https://github.com/sponsors/plabbett

Thank you

Questions?

Made with Slides.com