I have been asked by one customer to prepare some automated system which can dial admin cellular phone number in case of any trouble. They use PRTG for monitoring their environment. PRTG is IMHO very good monitoring system. It can send an email notification when sensor is down or some threshold is matched. Email is OK but when you have 24/7/365 SLAs it is important to know about critical events as soon as possible. My idea was to prepare simple system which checks periodically PRTG sensors over API and dial cellular phone in case of any critical sensor downtime.
So here is the system description. Hardware is based on SOEKRIS or ALIX hardware systems with FreeBSD installed on read-only CompactFlash. I use GSM modem Siemens ES75 connected via RS-232 serial cable to dial GSM phone number.
This blog post is not about hardware, FreeBSD or PRTG API integration but about Siemens ES75 usage but I believe recent overview is important to show you full context.
So, first of all we have to connect to the modem. We need some terminal emulator like Windows Hyper Terminal, putty, Minicom, etc. I use default unix terminal programm cu.
Default terminal speed of Siemens ES75 is 115200 bauds.
So here is the system description. Hardware is based on SOEKRIS or ALIX hardware systems with FreeBSD installed on read-only CompactFlash. I use GSM modem Siemens ES75 connected via RS-232 serial cable to dial GSM phone number.
This blog post is not about hardware, FreeBSD or PRTG API integration but about Siemens ES75 usage but I believe recent overview is important to show you full context.
So, first of all we have to connect to the modem. We need some terminal emulator like Windows Hyper Terminal, putty, Minicom, etc. I use default unix terminal programm cu.
Default terminal speed of Siemens ES75 is 115200 bauds.
So here here is cu command syntax to connect modem over my USB<->RS-232 reduction for Mac. ->
cu -s 115200 -l /dev/tty.usbserial-00007324
If you have FreeBSD the cu syntax is the same. Only COM port device is different. Below is connection over COM2 (/dev/cuau1).
cu -s 115200 -l /dev/cuau1or
cu -s 115200 -l /dev/ttyU0
So when we are connected to the modem we can use AT commands to work with modem. Useful AT commands follows.
Set the modem into factory defaults
at&f
If you want disable echo use
ate0to enable echo use
ate1Write running configuration to EEPROM
at&w
To slow down modem terminal speed to 38400 bauds
Display SIM card identification number
The return is SIM PIN so it means we have to enter PIN to register in to GSM network. Here is how to authenticate with PIN 3303
at+ipr=38400Get modem vendor
at+cgmiGet modem model
at+cgmmIn my modem Siemens ES75 it Vendor and Model strings looks like this
at+cgmi
Cinterion
OK
at+cgmm
MC75i
OKTo display signal strength of the device
at+csqReturned signal value can be compared with table here.
Display SIM card identification number
at^scidExtended event indicator control
at^sindHere is example how to get all available indicators
at^sind?
^SIND: battchg,1,5
^SIND: signal,1,99
^SIND: service,1,0
^SIND: sounder,1,0
^SIND: message,1,1
^SIND: call,1,0
^SIND: roam,1,0
^SIND: smsfull,1,0
^SIND: rssi,1,4
^SIND: audio,0,0
^SIND: simstatus,0,5
^SIND: vmwait1,0,0
^SIND: vmwait2,0,0
^SIND: ciphcall,0,1
^SIND: adnread,0,1
^SIND: eons,0,0,"","T-Mobile CZ"
^SIND: nitz,0,,,
^SIND: lsta,0,0
^SIND: band,0,3
^SIND: simlocal,0,1
OK
Before you can use GSM network you usually have to register and authenticate by your PIN. Here is example of AT+CPIN read command which will return if SIM PIN authentication is required.
at+cpin?
+CPIN: SIM PIN
OK
The return is SIM PIN so it means we have to enter PIN to register in to GSM network. Here is how to authenticate with PIN 3303
at+cpin=3303
OK
Right now we are registered in GSM network. You can verify it by running AT+CPIN? read command again
at+cpin=?
OK
There is no other authentication required so this is the proof we are registered in GSM network and we can use it. If you want completely disable PIN authentication you can use command
at+clck="SC",0,"3303"So now let's call some mobile number.
atd602123456;
BUSY
Here I dialed phone number 602123456 on my mobile and because I dropped the call the status was returned as BUSY.
And if you want to check incoming calls during the ringing you can see on terminal
If you want to see caller phone number (aka calling line identification presentation) then you have to instruct modem by following command
And if you want to check incoming calls during the ringing you can see on terminal
RING
RING
RING
for every ring.
at+clip=1
OK
and during ringing you will also see caller identification
RING
+CLIP: "+420602123456",145,,,,0
RING
+CLIP: "+420602123456",145,,,,0
RING
+CLIP: "+420602123456",145,,,,0
or you can ask for caller phone number during ringing by command
at+clccand response is
RING
RING
RING
at+clcc
+CLCC: 1,1,4,0,0,"+420602525736",145
OK
RING
RING
And if you want to hang up incoming call you can use following command
That's it for now. If you need more AT commands for GSM modem Siemens ES75 ask google for document "mc75_atc_01001_eng.pdf". I found one document here. ath
OK
No comments:
Post a Comment