SMS Device
Status:
This documenation applies to version 1.47.695.165 (2024-01-30) of the SMS device (CSmsCalcDevice).
Contents:
- Overview
- Device Status and Control
- Message Slots
- Send priority
- Phone Book
- SMS Message formats
- SMS Control Messages
Overview
The CSmsCalcDevice is used for sending SMS messages from ConSys. The device is based on subscription to message groups/slots. When a new message is available in a message slot it is send to all subscribers of the slot.
This device replace the old SMS/Mail device.. The CSmsCalcDevice send SMS messages through and connected SMS modem. The device has been developed for the following modems:
Siretta ZETA series, Model ZETA-NLP-LTE (EU)
Siretta Zest-N-GPRS (EU) (ISA old modem)
using native serial communication to the modems (the old device used the StrongCube component as interface)
Remark that only verified phone numbers will be allowed. At ISA, these are all normal danish phone numbers except the modems own number.
Device Status and Control
quickSms Direct send of SMS. Format < phone number >;< rext to be send >
incomingSms Last incoming message - format < phone number >, < message >
declineNumbers List of phone numbers that will be declined. Messages can not be send to these numbers and messages from these numbers will not get any reply from the SMS device. The modem phone number(s) are per default in this list and can not be removed. Additional numbers can be added/removed by addDecline, removeDecline
priorityNumbers, priorityAdded, addPriority, removePriority: See Send priority
pausedNumbers List of temporary paused phone numbers in the format < phone number >:< paused hours left >. When a phone number is in the paused list no messages will be sent to the phone. The pause time can be set up to 720 hours ~ 30 days using either the addPaused, removePaused and pause parameter or by sending a PAU SMS to the service.
phoneNumber Phone number to be used when adding or removing from decline, priority and paused lists.
resetCounters Reset counters - except total counters, can not be reset.
validityPeriod Validity period of send messages.
The representation of time in Period property is as follows:
000 to 143 : (Period + 1) * 5 minutes
144 to 167 : 12 hours + ((Period - 143) * 30 minutes)
168 to 196 : (Period - 166) * 1 day
197 to 255 : (Period - 192) * 1 week
The maximum period that can be set in the current version of the device 174 ~ 7 days.
Setting a value between 175-255 will set to 174.
Setting a value >255 will set the default period to 168 ~ two days.
sendInProgress0: No message send in progress, >=1: sms segment part of message being send. A single message can consist of up to 10 segments/sms. Counts up for each segment/sms being send. In case of error during send of a segment a second try of the segment send is tried - the counter is also incrememented in this case.
#msgQue Number of messages in que waiting to be send.
outToday, outMonth, outYear, outTotal Counts number of messages send in the given period. The number of messages send is smaller than number of SMS send because larger messages are send as multiple SMS.
smsOutToday, smsOutMonth, smsOutYear, smsOutTotal Counts the number of SMS send in the given period. Large messages are send as multiple SMS, so larger than the outX counters.
inToday, inMonth, inYear, inTotal Counts the number of incoming SMS messages in the given periods.
smsSndFailCnt Incremented when a SMS message send failed when sending a segment/part of a PDU message. 1 Retry of each part will be made. If retry fail the message send is aborted.
msgSndFailCnt Incremented when a message send failed. (For text message, single SMS failed, PDU messages a retry send SMS of each failed part is tried before failing).
msgNmbr Message number of the last error/message. Message numbers are:
2: Timeout in serial port while waiting for data.
2000: Error: Read thread exception.
3000: Error: Phone number(s) can not be removed from decline numbers. The modem number(s) are hardcoded into the decline list.
3001: Warning: A message has not been send to a phone in a slot message phone list because it is in the paused or declined list.
4000: Warning: The modem has responded with an error during send of and SMS message (as part of a PDU message). The device will try to resend the failed message part.
4001: Error: Sending of a message failed (in the case of a PDU message a retry send of the message part has been made and also failed
4002: Ok: PDU message has been send ok after retry send of failed parts.
Message Slots
The SMS device has up to 50 mail slots 0..49. The message set in message is send to all phone numbers in the smsTo list.
message The message to send.
smsTo List of phone numbers that receives messages in send from this group. Maintained using addSms and removeSMS and by the SMS Control Messages.
priority Messages with highest priority message slots are send before messages with lower priority slots. Recommended slot priority numbers are 0..99. See also Send priority
maxSegments The maximum number of SMS PDU segments/parts allowed to be send for a message in this slot. If maxSegments is set to 1: If only Ascii characters below byte value 128 in the message: Send as in a 7 bit text mode SMS with up to 160 characters. If unicode characters present: Send as 1 SMS PDU message in USC2 mode with up to 70 characters.
smsSndTp Send type: The SMS encoding send type - see SMS Message formats
msgLength The uncut length of message
segments The number of SMS segments/parts used to send the message. If cut, eqaul to maxSegments.
cut TRUE if the last send message was cut (not full message send) due to maximum number allowed segments reached.
send Press/set TRUE to send the message. Will be released/set FALSE when the message(s) has been added to the send que. If the number of remaining SMS per hour or day is reached the message is not send and the control/button will stay TRUE (pressed down).
send_at Last message send time.
smsMHour Maximum allowed number of messages send per hour.
smsMDay Maximum allowed number of messages send per day.
smsRHour Remaining number of messages allowed to send in the current hour.
smsRDay Remaining number of messages allowed to send in the current day.
resetMax Reset all max send counters,
Send priority
Messages are sent in priority order – messages with the highest priority are send first. The priority of a given message is the sum of the slot priority and phone number priority. It is recommended to set slot priorities between 0-99 and phone number priorities as n*100. Phone number priorities are set/maintained through the common SMS status and control parameters:
SMSCONTROL.priorityNumbers: List of priority numbers in the format < phone number >:< priority >. Phone number priority will be added to SMS slot priority when adding the message to the send que. Furthermore, numbers in this list will be added to the head of the SmsTo lists when ad when added to these.
SMSCONTROL.phoneNumber: Phone number to be used when adding or removing from decline, priority and paused lists.
SMSCONTROL.priorityAdded: The priority to be added to the slot priority number. It is recommended to set added phone priorities as N*100.
SMSCONTROL.addPriority: Add phoneNumber to priority numbers.
SMSCONTROL.removePriority: Remove phoneNumber to priority numbers.
Phone Book
The SMS device has an internal phonebook with the most used phone numbers associated with names. The phonebook is stored in the text file ‘SmsPhoneBook.txt’ located in the persistent store sub folder on the ConSys device computer. The phonebook is read at device startup. Numbers found in the phonebook will be displayed using the name associated with the phone number instead the phone number itself. All set values can be using either the name or the phone number.
It is recommended to use names without space as phonebook names, best just using person initials. Internally in the device and in the device persistent stored data the actual phone numbers are always used. This to ensure that a missing or corrupt phonebook file will not have any influence on the function of the device, just the display of phone names.
SMS Message formats
The SMS device can send messages in using different encodings/send formats. The type to be used for a given message is decided automatically by the device based on the text to send and the maximum numbers of segments/SMS parts allowed to be used for the message. The possible send types are:
Message send types as in smsSndTp:
0, unknown: unknown,
1, plainAsciiText: Plain Ascii text
2, pduUnicodeSingle: PDU Unicode Single SMS
3, pduAsciiMultiple: PDU Ascii Multiple SMS
4, pduUnicodeMultiple: PDU Unicode Multiple SMS
plainAsciiText: Plain Ascii text:
Used for plain text messages with up to 160 characters only containing 7 bit Ascii characters, i.e. characters with numeric values up to 127. The message is send in plain text mode in 7 bit encoded characters.
pduUnicodeSingle: PDU Unicode Single SMS
Used for messages including characters outside the Ascii range in plainAsciiText with up to 70 characters. The message is send as 16 bit Unicode characters.
pduAsciiMultiple: PDU Ascii Multiple SMS
Used for plain text messages with more than 160 characters only containing 7 bit Ascii characters. The message is send as several multi segment PDU encoded SMS parts. Each SMS can have up to 134 characters (the rest of the 140 byte SMS data part is used as part of the PDU header).
pduUnicodeMultiple: PDU Unicode Multiple SMS
Used for messages including characters outside the Ascii range in plainAsciiText with more than 70 characters. The message is send as several multi segment PDU encoded SMS parts. Each SMS can have up to 67 characters send as 16 bit Unicode characters.
SMS Control Messages
The SMS Device can be controlled by incomming SMS messages send to the modem. All SMS commands are three characters long - followed by the command parameters.
SMS Command Syntax:
Request Help:
HLP|HEL|?
Will return an SMS with a list of of commands that can be send to the SMS service.
Mail Lists:
Add to list lstNo:
ADD< lstNumber >
Remove from list lstNo (no list number, remove from all lists):
RMV[< lstNumber >]
or
REM[< lstNumber >]
Pause send of messages from all subscribed groups for the specified number of hours:
PAU< hours >
hours: 0: Cancel pause (ie. resume sending messages)
hours: 1-720, >720 => 720 hours ~ 30 days.
Request list of subscribed mail lists:
LST
Beam status messages: ASD group 13: Send ADD13 to +45xxxxxxxx to subscribe.
Sends an SMS when the beam is lost.
SMS RMV13 to +45xxxxxxxx to unsubscribe.Pause messages for 24 hours: Send PAU24 to +45xxxxxxxx
Other links:
Last Modified 30 January 2024