FGSMS Protocol
History
Date: 18/04/01 24/04/01 26/04/01 15/08/01 19/10/01 18/11/2001 25/11/2001 29/11/01
By Francesco Germinara © 2002
Definitions
CC = Call Cellular Phone
RC = Receiver Cellular Phone
PC = Personal Computer
Protocol from CC to RC
1) CC sends to a SMS to RC
2) PC is polling to read RC new incoming messages or to new mails from Internet
3) PC process SMS then, if it was a correct SMS, send the result via SMS
4) If user have enabled the Notify message function, send notify message
FGSMS Language, friendly named “Coffee language”, in honor of my friends Sandro Pisani, Roberto Massa, Paolo Mattiazzi ,Filippo Rame, Salvatore Biazzo, Luca Vailetta.
Reserved character
# diesis ->Start SMS block
- minus -> separator for parameters on command line
% percent -> command option
blank -> command delimiter
// -> comment NOTE: need a blank before //
Command Name
CM = Check for new mail
PM = Put mail send emails (only plain text supported)
GM = Retrieve mail, only plain text supported
VI = Version Information
UI = User identification
BC = Batch Command
SM = Send SMS
SB = Set Bit (OUTPUT signal to fgHWsms interface)
RI = Read Input ( INPUT signal from fgHWsms interface)
Command Syntax
CM = Check for new mail
#CM Retrieve information about new mails arrived
#CM [%xxx] x=Number of divided message that you want to retrieve, note if you
send
[%s] The results was posted in short format
nMsg # From
Return Message from server
NONE: Server not accepted the request.
Number of mails present and for each the size of the plain text. If the length of the response message is greater of 160 characters the server split the response and send you n messages to complete the task
IMPORTANT
You can decide to send only one response message, when send a #CM command. In this case, you receive also, in the first message, the total number of the divided messages then you can decide which message you want, send to the server a #CM %xxx command.
Example:
CC>#CM
Results are for long format
#1-4 300
#2-4 688
#3-4 12300
#4-4 300
Results are for short format
1
2
3
4
N.DivMsg: #4
To retrieve the 3th divided message
CC>#CM %3
CC>#CM %3 //CheckMail
PM = Put mail into server queue to send
#PM -userIDtaddressTO –Subject-Text message
userIDtaddressTO (Mandatory)
Are addresses of mail or user ID assigned from Server
Subject
Is the subject of the message
Text message (Mandatory)
Is the message to be send
Example:
CC>#PM --Info-How are you ?
CC>#PM - Info-New price for new product.
Possible result is
None
GM = Retrieve mail, only plain text supported
#GM -xxx [%nnn] x=number of message to retrieve
n=number of divided message
Example:
CC>#GM -2 (get message # 2)
Possible result is
From: (#2)
Sent: Wed 18 Apr 2001 1:05 pm
Subject: Info
Text: How are you ?
CC>#GM -2 %3 (get message # 2 – 3th part)
Note: Server configuration can allow short response (no date and no subject) are sent.
VI = Version information
#VI
Example:
CC>#VI
Possible result is
FgSMSServerName
FGSMS v. 1.00
(c) Francesco Germinara
Yyyy send
Zzzz received
Cost xxxx valuta
UI = User identification
#UI
CC>#UI -simnumber-password
User must send this command when receive a request message from the server, like this:
Please send me a #UI
command for identification.
Example:
CC>#UI -282839494938-franco
NOTE: If simm number or password is not correct the service is disabled.
If the UI command in send the same day of the expiration date, the server make the renew of the service else server send the information about the service status and enable the service.
BC = Batch Command
#BC –batchcmd[%opt1%opt2%optn]
Execute the batch command specified on the server
Example:
CC>#BC -makebck
CC>#BC -shuthdown#parm1#parm2
SM = Send SMS
#SM -numphone-textmsg //The number must start with + countrycode
#SM -groupID|userID-textmsg
Send a text message as SMS to a phone number specified or to a specified userID or a specified groupID.
The system first search for userID then for groupID.
Example:
CC>#SM -+393483902256-Whassupppp, tonight ?
CC>#SM -allUser-Good morning, having a nice day.
CC>#SM -GFranco-How are you ?
SB = Set Bit ( Set/Reset OUTPUT lines signal of FGHWSMS interface)
#SB -memAddr-bitnumber %on | %off | %sts
%on = Set the specified bit of memory address
%off = Reset the specified bit of memory address
%sts = Return status: ON or OFF (return also other bits info…)
Example:
CC>#SB-0-7 %on //SET bit7 to ON for memory 0
CC>#SB-0-7 %off //SET bit7 to OFF for memory 0
CC>#SB-0-7 %sts
possible result is:
Luce entrata acceso-B3 Out: On= 3,0
NOTE:
memAddr = 0 -> LPT1:
memAddr = 1 -> LPT2:
memAddr = 2 -> LPT3:
RI = Read Input Bit (INPUT lines signal of FGHWSMS interface)
#RI -memAddr-bitnumber
Return status: ON or OFF for the Input specified and actual sts for the other inputs
Example:
CC>#RI-0-7
possible result is:
Luce entrata spento-B7 Inp: On= 7,6,5,2,1,0
FGHWSMS HARDWARE Interface:
MemAddr = 0 is the PARALLEL PORT of server computer (LPT1) if you have connected more FGHWSMS interface on LPTs port you can set memAddr with other value like 1 (LPT2) or 2 (LPT3).
Other different memAddr value are ignorated and are present only for future use.
Every FGHWSMS interface can handle 8 different I/O signal, the maximum I/O that you can allowed to use is 24 I/O (with 3 FGHWSMS inteface).
New hw project are beginning for use PIC to incremente the number of I/O and for use also analaog I/O.
Cost of service
For each user the software maintains this statistics
-N° of messages send from server (RC) to cellular client (CC) for answer to a previous command
-N° of messages send from server (RC) to cellular client (CC) for notify message
-N° of message send from server (RC) to Internet mail server
-N° of times that have used the system
-Log of any access to the system
The pure cost is the SMS send from server (RC) to Cellular Client (CC) of the system.
If the system must relay message over other mail server, there is a cost of this service offered by the Internet provider.
The cost of the this service (it can be free if persons are all of the same organitation.)
Security of service
-User password and logon ID for read mail address are stored on server
-SIM Number and number of cellular are also stored on the server
-Every call made from cellular (CC) to server (RC) and cellular number.
-After the expired date the server send to CC a message that notify the disable of the service
-identification data with the #UI command for on Line renew of service.
-Every operation is logged by the system
All rights reserved.
Francesco Germinara. 2001,2002 © SoftTech di Germinara Francesco