SMS Gateway by pengxiang


									CFMX7: SMS Applications
Made Easy
Damon Cooper
Director of Engineering, ColdFusion
                   Session Overview
•       Introduction to SMS & ColdFusion (10 min)
•       SMS App Development & Deployment (5 min)
•       ColdFusion Event Gateways (5 min)
•       ColdFusion SMS Gateway (5 min)
•       ColdFusion SMS Development Tools (5 min)
•       Setup, Binding and Message Handling (15 min)
•       Advanced Message Options (5 min)
    •     Delivery & “Disposition Status” Receipts 
    •     Security, Authentication and Encryption
•       Tips & Next Steps (5 min)
    Introduction to SMS & ColdFusion
§       About Short Message Service (SMS):
    •     Designed for sending and receiving text messages to/from 
          mobile phones and devices.
    •     Part of GSM cellular standard (1991)
    •     SMS usage is extensive worldwide and increasing 
          pervasive in US:
          • China: 550 Billion SMS messages in 2004, 1.4 Trillion 
             by 2006. (CHINA COMMS Network) 
          • UK: 23-25 Billion SMS messages for 2004 (MDA)
          • Used by over 70% of mobile phone users worldwide
          • Most messages delivered in <10 seconds 
    •     SMS US and Canadian carriers include: AT&T Wireless, 
          Verizon, Sprint, Cingular, Nextel, T-Mobile, Bell Mobility, 
          Rogers/AT&T, Telus Mobility and Microcell, etc.
    •     Secure, reliable, virtually everywhere and basically 
          works the same regardless of handset or carrier.
    Introduction to SMS & ColdFusion
§       Benefits
    •     Fully mobile: available anywhere, anytime w/store-and-
    •     Secure: GSM has built-in authentication and encryption
    •     Everywhere: No special hardware or software required for 
    •     Push or Pull: excellent for timely alerts, alerts with simple 
          responses, simple textual menus, info lookup, etc
§       Limitations
    •     Limited message length (160 chars)
    •     Device keypad interfaces make typing lengthy messages
    •     Response time can vary and can impact app usability 
          and design
    Introduction to SMS & ColdFusion
§       Key SMS Terminology
    •     SMSC: Short Message Service Center (carrier or 
          aggregator).  These provision SMPP accounts and 
          interface with mobile network.
    •     SMPP: 
          • “Short Message Peer to Peer” protocol.  
          • ColdFusion uses this to talk to SMSC’s.  
          • Industry standard protocol simplifies integration of 
              custom applications with wireless mobile networks. 
              Widely deployed in mobile telecom industry.  
          • v3.4 is most widely in use currently but next version, 
              v5.0 is in draft.
    •     MO: Mobile Originated.  Messages sent from a device.
    •     MT: Mobile Terminated. Messages sent to a device.
    •     ESME: External Short Message Entity (your application)
    •     Aggregator: Company providing a single interface (ie 
          SMPP account) to access multiple cellular provider
    Introduction to SMS & ColdFusion
§    Technical Use Case Scenarios
       •   PersonóPerson (2-way chat)
       •   AppàPerson (1-way Push)
       •   AppóPerson (2-way interactive, Push)
       •   PersonóApp (2-way interactive, Pull)
       •   AppóApp (2-way interactive, Push or Pull)

§    SMS Application Examples
       •   Airline 2-way flight change notification and rebooking
       •   SMS Banking, ABC News, UPS Tracking, American Idol 
       •   Mass media & mobile apps (voting, contests, 411 lookups, 
           customer feedback, etc)
       •   Stock & Weather Alerts (1- or 2-way Push or Pull)
       •   Any mobile GSM device (transmit GPS & telemetry, remote 
           device monitoring, vending machines, gas pumps, even Coke 
           cans (Coca Cola US summer contest), etc.
       •   YOUR ENTERPRISE APPS (PO approvals, critical 
           notifications, phone directory lookup, CEO dashboard & 
           alerts, meeting reminders, cancellations, SMS-Email bridging, 
Introduction to SMS & ColdFusion
    Introduction to SMS & ColdFusion
§       SMS Basic Operation:

    •    Messages can be 160 chars (Latin) or 70 chars 
         (non-Latin, such as Arabic and Chinese)
    •    Messages are sent from device to an SMSC
    •    SMSC interacts with mobile network to figure out 
         user availability and location
    •    SMS uses the GSM control channel (rather 
         than the voice channel) 
         • End user can receive an SMS whether or
            not a voice call is in progress - the phone 
            need only be turned on
    Introduction to SMS & ColdFusion
§       SMS Basic Operation (Cont’d):

    •     If device is off, the SMSC holds message for 
          “Validity Period” (usually default of 72 hours) and 
          delivers message to device when turned on

    •     If desired, message status receipts 
          (“delivered”, “undeliverable for validity period”, 
          etc) are sent to originator

    •     With SMS the sender generally pays some per-
          message fee (bulk packages usually available) 
          • Big difference between SMS and email 
    Introduction to SMS & ColdFusion
§       Building Mobile SMS-Enabled Applications
    •     SMS is compelling as a pervasive platform for 
          many types of mobile applications, BUT

    •     Building & deploying SMS mobile-enabled apps 
          today can be complex and costly

    •     Menu-based or simple responses

    •     Need session management

    •     Need scalable, failsafe, throttling, metering, 
          monitoring, logging and auto-rebind capabilities
    Introduction to SMS & ColdFusion
§    Building Mobile SMS-Enabled Applications
    • ColdFusion MX 7 and SMS:
       • Create new mobile applications or mobile-
           enable existing apps
       • Build and test with integrated SMS 
           development & testing tools
       • Deploy on standard Java J2EE servers 
           quickly and simply
       • Do all this in as little as 5 minutes with
           ColdFusion MX 7
    • Enterprise-Ready: (ie AT&T Wireless
Introduction to SMS & ColdFusion
      SMS App Development & Deployment 
§   Development Process:
    – Design your application
    – Develop your ColdFusion CFCs, CFM pages, and any 
      other application elements
    – Test your application using built-in SMSC Test Server, pre-
      configured Test SMS Gateway instance and mobile device 
      client simulator
§   Deployment Process:
    – Establish an SMPP account with SMSC provider / 
    – Configure a new SMS Gateway instance to use your 
      SMSC’s SMPP Server. Configure the gateway using the 
      information provided by your provider
    – Test your application using the telecommunication 
      provider’s SMSC and target mobile devices and when 
      ready, go live!
ColdFusion Event Gateway Overview
§ ColdFusion Event Gateways:
  • Pluggable protocol-specific elements which allow ColdFusion 
    applications to respond and interact with the outside world
  • Generate external events or messages from ColdFusion 
  • Pass along external events or messages to ColdFusion 
  • Some of the Gateways provided with ColdFusion MX 7:
     • SMS Gateway
     • XMPP/Jabber IM Gateway
     • IBM/Lotus Sametime IM Gateway
     • JMS Gateway
     • Asynchronous CFML Gateway
     • TCP/IP Socket Gateway
     • Directory Watcher Gateway
     • Example Gateway (with source)
ColdFusion Event Gateway Overview
§ Event Gateway Architecture Features:
   • Published Gateway API for 3rd parties who wish to create new 
     ColdFusion MX 7 Gateways
   • Multithreaded, asynchronous message and event handling and 
   • Gateway Type and Instance Administrative interface & API
   • Allow Coldfusion MX 7 Gateway applications to be written using
     just CFCs to listen for and respond directly to external events
   • Can be used to Gateway-enable .NET, J2EE or legacy apps
   • Require NO Java or threading knowledge to create Gateway 
   • Full Gateway apps can be packaged and deployed as pure J2EE 
     EAR/WAR files on standard J2EE servers
   • Provides automatic “Session” and persistent “Client” variable
     scope management and logging facilities
   • Highly tuned, scalable and lightweight for maximum performance
   • Full textual menu-driven app framework included
ColdFusion Event Gateway Overview
   The ColdFusion SMS Gateway
§ SMS Gateway Overview
  • Establishes a two-way SMPP-over-TCP/IP connection to 
    SMSC provider
  • SMPP provider provides an address (telephone number or 
    Short Code),  TCP/IP connection and SMPP configuration 
    setting information for account
  • Must associate SMS Gateway “instances” with
    configuration files.  Default starting CFG files in 
  • SMS Gateway conforms to SMPP 3.4 (most commonly 
    deployed currently), available from SMS Forum at
   The ColdFusion SMS Gateway
§ SMS Gateway Overview (Cont’d)
  • ColdFusion applications can initiate and send messages 
    (“push”) to SMS-enabled devices with the 
    “sendGatewayMessage()” function 
  • To use sendGatewayMessage(), specifiy:
      • Destination mobile device telephone number
      • SMS Gateway instance ID
      • Message and advanced message options
  • Mobile devices send messages to a ColdFusion listener 
    CFC by using SMS Gateway instance’s telephone
    number or Short Code
  • Incoming messages include the originating device’s
    phone number, so listener CFCs can respond to messages 
    sent by mobile devices
ColdFusion SMS Development Tools
§ Built-in tools
   • SMSC Test Server
      • Simulates the phone company or 3rd part aggregator’s 
        SMSC Server
      • Started in the Administrtor
      • Off by default on start
   • Pre-configured SMSC Test Gateway Instance
      • Pre-configured to talk to SMSC Test Server
      • Not running by default
      • Pre-configured to point to sample gateway menuing 
        application in {cfroot}\gateway\cfc\examples\menu.cfc
   • SMSC Test Client Device
      • Simulates basic cell phone with SMS “chat” mode
      • Run from Windows Start Menu or batch file
      • Pre-configured to talk to the SMSC Test Server
ColdFusion SMS Development Tools
§ Demo
  Setup, Binding and Message Handling
§ SMS Gateway Setup:
  • Create a new SMS Gateway instance and set Config and 
    CFC files
  • SMS Gateway must bind to SMSC before handling
  • CFG file specifies all params and other key configurables
  Setup, Binding and Message Handling
§ SMS Gateway Setup:
  • CFG file params include:
     • CFC method to be called on incoming SMSC message.  
     • Outbound message throttle rate (def=100, 0=unlimited)
     • Mode (synchronous/asynchronous)
         – Synchronous: wait for SMSC response. 
           SendGatewayMessage returns messageID or empty string 
           if error.  
         – Asynchronous: don’t wait for SMSC response. Empty 
           string returned.
     • Retry behavior after specific types of errors.
     • Bind connection EnquireLink check interval (checks if 
       connection is OK)
     • Number of bind attempts before giving up (def  -1 = try 
     • Bind retry interval.  How long to wait between rebind 
       attempts.  Def=10 seconds
  Setup, Binding and Message Handling
§ Logged events and exceptions go to 
§ Inbound Message Handling
  • Specially-handled messages:
     • Unbind directive: SMS Gateway unbinds and 
       restarts and attempts to rebind
     • EnquireLink or status request: SMS Gateway 
       responds with appropriate response
  • Messages forwarded to your CFC can be new
    incoming text messages or status notifications 
    about previously-sent messages
  • A CFEvent structure is created & loaded with 
    short messages text, originator, recipient, etc and 
    passed to listener CFC method
Setup, Binding and Message Handling
§ SMS Gateway CFEvent Structure:

§ Example:
         Simple “Echo” Pull SMS App
  <cffunction name="onIncomingMessage">
    <cfargument name="CFevent" type="struct" required="YES">

     /* Create a return structure that contains the message. */
     retValue = structNew();
     retValue.command = "submit";
     retValue.destAddress = arguments.CFEVENT.originatorid;
     retValue.shortMessage = "Echo: " & CFEvent.Data.MESSAGE;

    <!--- send the return message --->
    <cfreturn retValue>

 Setup, Binding and Message Handling
§ Sending Outbound Messages
  • Put the command, destination and data in a
    structure and then either: 
     • “Return” it in response to an incoming 
       message, OR 
     • Use the SendGatewayMessage(gatewyID, 
       data) function
  • Typical outbound data structure:
 Setup, Binding and Message Handling
§ Slightly more evolved SMS Demo 
  (temperature converter):
      Sending SMS from a Web App

  /* Create a structure that contains the message. */
  msg = structNew();
  msg.command = "submit";
  msg.destAddress = "5551234";
  msg.shortMessage = form.SMSMessage;
  ret = sendGatewayMessage("SMS Menu App - 5551212",

 Setup, Binding and Message Handling
§ Sending SMS from a Web Page Demo:
        Advanced Message Options
§ Requesting Message Disposition Status
  • Include a RegisteredDelivery field in Data
    parameter of sendGatewayMessage() function or 
    return variable of CFC listener method:
      • 0 = (Default) Do not return delivery information
      • 1 = Return a receipt if the message is not 
        delivered before the time out (Validity Period)
      • 2 = Return a receipt if the message is delivered 
        or fails.
  • Some providers support intermediate delivery 
    notifications (see provider’s docs)
  • Must use synchronous mode to get a
       Advanced Message Options
§ Handling Message Disposition Status 
   • Incoming message routine must handle these special 
     messages: need to parse and unload  MessageID and Status 
     fields from “Data.Message”
   • Format (from Appendix B of SMPP 3.4 Spec):
     “id:IIIIIIIIII sub:SSS dlvrd:DDD submit
     date:YYMMDDhhmm done date:YYMMDDhhmm
     stat:DDDDDDD err:E Text: ...”
      Advanced Message Options
§ Handling Message Disposition Status 
     • Can match up status MessageID with any sent
       MessageID and act accordingly. 
        – If a message expired before it was delivered, you might 
          send a new message to another person (ie emergency 
          personnel) or take some other action.
     • For details of the SMSC delivery receipt 
       message structure, see Appendix B of the
       SMPP 3.4 specification.
       Advanced Message Options
§ Requesting Message Disposition Status
  • Sample CFEvent with SMSC Disposition Status:
         Advanced Message Options
§ Security, Authentication and Encryption
   • Voice and data (including SMS message traffic) between
     SMSC and mobile device is encrypted as part of the GSM 
   • The mobile user's identity is authenticated first, before 
     encrypted communication session begins.  
   • AT&T Wireless has a page that describes the various
     security aspects of GSM and SMS:
   • The connection between CF and SMSC:
      • The SMPP standard provides for login/bind
        authentication and authorization, but 
      • No inherent SMPP support encryption of message 
      • Most SMSC providers require a secure hardware or
        software VPN connection around the SMPP connection.
   • The pervasiveness, mobility and security of the SMS
     platform paves the way for development of some very exciting 
     business and m-commerce applications!
                Tips & Next Steps
§ Get ColdFusion MX 7 and get started now!
§ Deployment considerations:
  • 5-digit cross-carrier US Short-Code (like the American Idol 
    show), needs to obtained via 
    and setup SMPP aggregator/provider account (ie m-Qube, 
    Mobileway, etc). 
  • Easy to setup, but takes 4-9 weeks, so allow lead time 
  • Short Codes come in a number of varieties:
     • Carrier-specific (ie 4-digit AT&T Wireless Short Code)
     • 5-digit US Short Code ( 
     • Universal Short Code (tougher to get)
                   Tips & Next Steps
§ Cont’d
   • If audience on only one carrier, going carrier-specific is
     probably a good choice and provides lightening fast response 
   • If audience is US mixed-carrier, US Short Code and 3rd party
     aggregator SMPP provider is good choice with very good 
     response times
   • Can have a "SIM" modem setup at an aggregator or carrier, but 
     response times VERY slow, capacity very limited, but for 
     very small applications and audiences, this may suffice.  Also much 
   • SMPP accounts range from $40/month for development 
     accounts to many thousands, based on volume. US AT&T 
     SMPP account can be had for about $500/month:
CFMX7: SMS Applications
Made Easy
Damon Cooper
Director of Engineering, ColdFusion

To top