com.java4less.sms.adapters
Class Modem

java.lang.Object
  |
  +--com.java4less.sms.adapters.Modem
All Implemented Interfaces:
Adapter

public class Modem
extends java.lang.Object
implements Adapter

This class is used to access the SMSC using a analog dial up connection. The class can be used like this:

  // create object
  Modem modem= new Modem();
  modem.setPortName("COM3");
  modem.dataBits=SerialPort.DATABITS_8; // do not forget to check if the SMSC uses 7 or 8 bits

  // open port , initialize and connect
  if (modem.openPort()) {
    if (modem.initializeModem())
      if (modem.dial("900900900")) {

        // send the sms now using the Modem adapter
        SmsSender sender=new SmsSender(modem);
        sender.createSMS51("123","456","Hello");
        sender.sendMessage();

        // close connection
        modem.hangup();

      }
      modem.closePort();
     }
 


Field Summary
 int answerAfterRings
          wait this number of rings before answering incomming call.
 java.lang.String ATFlowControlNone
          AT command for flow control none
 java.lang.String ATFlowControlRTSCTS
          AT command for flow control rts/cts
 java.lang.String ATFlowControlXONXOFF
          AT command for flow control xon/xoff
 int bitRate
          bit rate:

0: 2400 bps
1: 4800 bps
2: 7200 bps
3: 9600 bps
4: 12000 bps
5: 14400 bps
*
static int BITRATE_1200
           
static int BITRATE_12000
           
static int BITRATE_14400
           
static int BITRATE_2400
           
static int BITRATE_4800
           
static int BITRATE_7200
           
static int BITRATE_9600
           
 int dataBits
          Data bits (SerialPort.DATABITS_8 or SerialPort.DATABITS_7)
 boolean debug
          debug, send log to System.out
 boolean dialTone
          dial tone/pulse
 int flowControl
          flow controlf
static int FLOWCONTROL_NONE
           
static int FLOWCONTROL_RTSCTS
           
static int FLOWCONTROL_XONXOFF
           
 int guardTime
          guard time in milliseconds (default is 1500)
 int hangCode
          hangup code
 java.lang.String[] initCommands
          list of init AT commands
 java.lang.String lastError
          description of last error
 int lastResponse
          last response
 boolean log
          log mode
 java.lang.String logStr
          log output
 java.lang.String noEcho
          No echo command
 int parity
          parity, default is SerialPort.PARITY_NONE
 java.lang.String resetCommand
          AT reset command (ATZ)
 int resetDelay
          delay after ATZ (reset command) in msecs, default is 0
 int sendBufferSize
          size of send buffer
 int stopBits
          Stop bits, default is SerialPort.STOPBITS_1
 int timeout
          response timeout seconds (30)
 
Constructor Summary
Modem()
          constructor
 
Method Summary
 boolean closePort()
          closes connection to modem
 boolean dial(java.lang.String phoneNumber)
          connect
 java.lang.String getInitString()
          get modem init.
 void hangup()
          hang up
 boolean initializeModem()
          initialize modem (ATZ ....)
 boolean openPort()
          open connection
 byte[] receiveData(java.lang.String endDelimiter, int ptout)
          receive data
 boolean sendATCommandnoWait(java.lang.String messageString)
          send AT command , do not wait for response
 void setInitString(java.lang.String s)
          set modem init.
 void setPortName(java.lang.String p)
          select modem/port, for example COM1 , COM2 (for windows) or /dev/term/a for unix like systems
 boolean transmitBytes(byte[] b, int len)
          transmit bytes
 boolean waitForCall()
          wait for call
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BITRATE_1200

public static final int BITRATE_1200
See Also:
Constant Field Values

BITRATE_2400

public static final int BITRATE_2400
See Also:
Constant Field Values

BITRATE_4800

public static final int BITRATE_4800
See Also:
Constant Field Values

BITRATE_7200

public static final int BITRATE_7200
See Also:
Constant Field Values

BITRATE_9600

public static final int BITRATE_9600
See Also:
Constant Field Values

BITRATE_12000

public static final int BITRATE_12000
See Also:
Constant Field Values

BITRATE_14400

public static final int BITRATE_14400
See Also:
Constant Field Values

bitRate

public int bitRate
bit rate:

0: 2400 bps
1: 4800 bps
2: 7200 bps
3: 9600 bps
4: 12000 bps
5: 14400 bps
*


guardTime

public int guardTime
guard time in milliseconds (default is 1500)


lastError

public java.lang.String lastError
description of last error


dataBits

public int dataBits
Data bits (SerialPort.DATABITS_8 or SerialPort.DATABITS_7)


stopBits

public int stopBits
Stop bits, default is SerialPort.STOPBITS_1


parity

public int parity
parity, default is SerialPort.PARITY_NONE


answerAfterRings

public int answerAfterRings
wait this number of rings before answering incomming call. Default is 1.


resetCommand

public java.lang.String resetCommand
AT reset command (ATZ)


timeout

public int timeout
response timeout seconds (30)


resetDelay

public int resetDelay
delay after ATZ (reset command) in msecs, default is 0


lastResponse

public int lastResponse
last response


hangCode

public int hangCode
hangup code


FLOWCONTROL_NONE

public static final int FLOWCONTROL_NONE
See Also:
Constant Field Values

FLOWCONTROL_XONXOFF

public static final int FLOWCONTROL_XONXOFF
See Also:
Constant Field Values

FLOWCONTROL_RTSCTS

public static final int FLOWCONTROL_RTSCTS
See Also:
Constant Field Values

flowControl

public int flowControl
flow controlf


ATFlowControlNone

public java.lang.String ATFlowControlNone
AT command for flow control none


ATFlowControlXONXOFF

public java.lang.String ATFlowControlXONXOFF
AT command for flow control xon/xoff


ATFlowControlRTSCTS

public java.lang.String ATFlowControlRTSCTS
AT command for flow control rts/cts


dialTone

public boolean dialTone
dial tone/pulse


noEcho

public java.lang.String noEcho
No echo command


log

public boolean log
log mode


debug

public boolean debug
debug, send log to System.out


logStr

public java.lang.String logStr
log output


initCommands

public java.lang.String[] initCommands
list of init AT commands


sendBufferSize

public int sendBufferSize
size of send buffer

Constructor Detail

Modem

public Modem()
constructor

Method Detail

getInitString

public java.lang.String getInitString()
get modem init. String


setInitString

public void setInitString(java.lang.String s)
set modem init. String


setPortName

public void setPortName(java.lang.String p)
select modem/port, for example COM1 , COM2 (for windows) or /dev/term/a for unix like systems


openPort

public boolean openPort()
open connection


initializeModem

public boolean initializeModem()
initialize modem (ATZ ....)


waitForCall

public boolean waitForCall()
wait for call


receiveData

public byte[] receiveData(java.lang.String endDelimiter,
                          int ptout)
receive data

Specified by:
receiveData in interface Adapter

dial

public boolean dial(java.lang.String phoneNumber)
connect


hangup

public void hangup()
hang up


closePort

public boolean closePort()
closes connection to modem


sendATCommandnoWait

public boolean sendATCommandnoWait(java.lang.String messageString)
send AT command , do not wait for response


transmitBytes

public boolean transmitBytes(byte[] b,
                             int len)
transmit bytes

Specified by:
transmitBytes in interface Adapter