Innovative Business Software A/S TN Sms-parsing Innovative Security Manager 30. oktober 2017
MEDDELELSE OM OPHAVSRET Copyright 2017 Innovative Business Software A/S. Alle rettigheder forbeholdt. Oplysningerne i dette dokument kan ændres uden varsel. Den software, der beskrives i dette dokument, er givet i henhold til en licensaftale eller fortrolighedsaftale. Softwaren må kun anvendes i overensstemmelse med bestemmelserne i disse aftaler. Ingen del af denne publikation må gengives, lagres i et søgesystem eller overføres i nogen form eller på nogen måde elektronisk eller mekanisk, herunder fotokopiering og optagelse til andre formål end køberens personlige brug uden skriftlig tilladelse fra Innovative Business Software A/S. Innovative Business Software A/S Landemærket 10, 6. sal 1119 København K Danmark Telefon 3373 4000 info@innovative.dk www.innovative.dk ii
Sådan bruger man denne manual Denne manual er optimeret til opslagslayout (dvs tosidevisning med venstre og højre sider). For at læse manualen som den vil se ud i en trykt udgave, så gør følgende: 1. Åbn Adobe Reader. 2. Vælg Vis > Sidevisning og marker både Tosidevisning og Vis forside i tosidevisning. Brug Indholdsfortegnelsen Brug Indholdsfortegnelsen forrest i manualen. Klik på hver enkelt indgang eller klik på sidetallet for at gå direkte til emnet. Klik her for at gå til Indholdsfortegnelsen. Brug Stikordsregisteret Brug stikordsregisteret bagerst i manualen. Klik på sidetallet for at åbne emnet. Klik her for at gå til stikordsregisteret. iii
Brug funktionen "Søg" (i Adobe Reader) I Adobe Reader kan man søge efter tekst i dokumentet. Klik på forstørrelsesglasset på værktøjslinjen øverst i vinduet. Brug det til at finde ord eller tekst i PDF filen. Bemærk: Hvis forstørrelsesglasset ikke bliver vist på værktøjslinjen, så vælg Vis > Vis/skjul > Elementer på værktøjslinjen > Vis Rediger Tools > Søg eller tryk Ctrl+F. Brug navigationspanelet (i programmet Adobe Reader) Adobe Reader indeholder et navigationspanel i venstre side. Det viser alle overskrifter og bogmærker i PDF filen. iv
Support & Kontaktinformation Størstedelen af vores normale (ikke-akutte) support foregår via vores "support-ticket-system", Kayako, som man logger på via internettet (se nedenfor). De personer, der skal kunne oprette supportsager eller se en supportsags status, skal være oprettet i Kayako. I bedes derfor indledningsvis gøre følgende: 1. Lav en liste over de personer, der skal have adgang til Kayako. Listen skal indeholde følgende information: Afdeling Fornavn Efternavn e-mail-adresse Telefonnummer (mobil) Telefonnummer (direkte) Hvorvidt personen kun må se sine egne tickets ("User") eller også sine kollegers tickets ("Manager"). 2. Send listen til support@innovative.dk. Normal (ikke-akut) support Gør et af følgende: 1. Log på www.innovative.dk/support og følg vejledningen eller 2. Send en e-mail til support@innovative.dk. Akut support indenfor almindelig kontortid (mandag - fredag 09:00-16:30) Ring til support på 3373 4050. Akut support udenfor almindelig kontortid ("Døgnvagt") Telefonnummeret til døgnvagten fremgår af den separate Service- og Samarbejdsaftale. Innovative Business Software A/S Landemærket 10, 6. sal 1119København K Telefon 3373 4000 info@innovative.dk www.innovative.dk v
vi
Indholdsfortegnelse Bemærk: Denne Tech Note (TN) indeholder kun udvalgte emner. For yderligere information venligst se den relevante Administratormanual, som kan downloades her. SMS-parsing 3 SMS-parsing 4 Removing country prefix 5 SmsMatch 6 SmsMatch - Making your own match file 7 Testing regular expressions (online) 8 Testing using (almost) real data 9 1
2 Innovative Security Manager TN Sms-parsing
SMS-parsing SMS-parsing 4 Removing country prefix 5 SmsMatch 6 SmsMatch - Making your own match file 7 Testing regular expressions (online) 8 Testing using (almost) real data 9 3
SMS-parsing 4 Innovative Security Manager TN Sms-parsing
Removing country prefix N, cannot be used, works as Y Y, will remove some: 1 and 35x, xx, but not 8 in 298xxxx 45,46,47,358,321 will remove those named prefixes 1,45,46,47,298,358 5
SmsMatch Configure RegEdit SmsMatchPath to something like C:\SMS\SMSMatch In there, have files like SMSMatch *.txt (for example SMSMatch Test1.txt) E K S E M P E L =zone,comment,alarm:y; Alarm ON\s*\-.*?01:(\d*)\s(.*) =zone,comment,alarm:n; Alarm OFF\s*\-.*?01:(\d*)\s(.*)?22444877;Alarm OFF - SiteName 01:003 Cooler PC-730 02.06.15 01:01 Low fluid level 22444877: -003:Cooler PC-730 02.06.15 01:01 Low fluid level?22444877;alarm ON - SiteName 01:003 Cooler PC-730 02.06.15 01:01 Low fluid level 22444877: 003:Cooler PC-730 02.06.15 01:01 Low fluid level Input example: Alarm OFF - SiteName 01:003 Cooler PC-730 02.06.15 09:01 Low fluid level Syntax Lines starting with = (equal sign) or? (question mark) are used, others are just comments = lines are definition, two parts: fielddefinitions ; regular-expression? lines are test, with expected selftest result after Definitions = [ <lat> <lon> <zone> <comment> <haid> <alarm> ] ; Each of parts like <alarm> can have defaults using colon, as in alarm:y Defaults are used when more definitions than parenthesis Order of fields must match order of found parentheses I regular expression following colon haid defaults to sender number from received SMS/text message. =zone,comment,alarm:y; Alarm ON\s*\-.*?01:(\d*)\s(.*) This will set - zone to found info in (\d*) - comment to found info in (.*) - alarm always on =zone,comment,alarm:y; Alarm ON\s*\-.*?01:(\d*)\s(.*) This will set - zone to found info in (\d*) - comment to found info in (.*) - alarm always off 6 Innovative Security Manager TN Sms-parsing
SmsMatch - Making your own match file We now receive something like this, as seen in IbsDebug or in C:\Temp\LogSmsRX.txt 21/6-2015 16:25:24^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel On" 21/6-2015 16:25:24^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel Off" Wants restore on On message, else alarm. The message is: ^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel On As we have no real zone information, we generate alarm on - haid=sms-number - zone=1 - comment=most of the message - alarm=yes, if Off - alarm=no (restore), if On The match-filter should just make sure we do not capture all other messages, like Remember to bring home a big cake So we have to have some specific to match for, and ^ ALARM!^ could be enough. 1. Make a definition: =comment,zone:1,alarm:n; \^\salarm!\^(.*)on =comment,zone:1,alarm:y; \^\salarm!\^(.*)off This says that there has to be ^ ALARM!^, and end of line has to be On or Off And default for Alarm is N/Y for those two: On or Off 2. Make some test data, that will be tested every time SMS.exe starts?88888888;^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel On 88888888:Enter Here What IbsDebug say in next line!! 3. Check and update info - Restart SMS.exe - Look in IbsDebug.exe, look for 11:03:31.782 SMS SMS Match Exp: 88888888:Enter Here What IbsDebug say in next line!! 11:03:34.114 SMS SMS Match Got: 88888888: -1: Somestreet - asdf/stationroad^ Signalling panel 13:13:01.583 SMS <ibssms>smsmatch problems... 4. Now change testdata to?88888888;^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel On 88888888:1: Somestreet - asdf/stationroad^ Signalling panel 5. Test again, now ok - Restart SMS.exe - Look in IbsDebug.exe, look for no more SMSMatch problems 7
Testing regular expressions (online) Do use https://regex101.com for testing A few saved tests here. https://regex101.com/r/ke1fe4/6 https://regex101.com/r/ke1fe4/7 8 Innovative Security Manager TN Sms-parsing
Testing using (almost) real data Make a test file called SMStx1234.txt on the desktop, and put three lines into it: FROM: 22444877 SUBJECT: ^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel Off" IBS-TEST: 1 Now copy this file into C:\Temp, and see that correct alarm is generated in ISM, or in C:\Temp\LogSmsRX.txt as 07-07-2015 13:16:26 (22444877,Original!):"^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel On" 07-07-2015 13:16:26 (22444877):"-1: Somestreet - asdf/stationroad^ Signalling panel'" NOTE: A "negative" Zone ("-1") indicates a restore. Start ibsdebug.exe Place the definition files, where RegEdit wants them to be: SmsMatchPath =?? (for example C:\SMSMatch). Launch SMS.exe with run debug Look in the debugger for any problems during launch or right-click to select Make SMSMatch Selftest now. 9
Copy a test (for example SMStx1234.txt to C:\Temp) (only copy, do not cut!) Regular Expression tester: https://regex101.com/ Definition: =comment,lat,lon,zone:bur,alarm:y; (Unauthorized.*)http.*?q=(\d*.\d*),(\d*.\d*) Comment: is the first parenthesis Lat is the second parenthesis Lon is the third parenthesis Zone is always BUR Alarm is always Yes Another example A few saved tests here. https://regex101.com/r/ke1fe4/6 https://regex101.com/r/ke1fe4/7 10 Innovative Security Manager TN Sms-parsing
The following is most easily accomplished on a desktop PC: Put SMS.exe in a folder Launch it with -run Launch ibsdebug Adjust RegEdit with the address of the SmsMatch folder (for example in the same folder on the desktop) Restart SMS (look for the icon at the bottom right) Monitor ibsdebug Theres is a difference in behaviour with/without positions if (Lat=0) or (Lon=0) then THE FOLLOWING WILL BE DISPLAYED 88888888: 1: Somestreet - asdf/statioraod^ Signalin panel else THE FOLLOWING WILL BE DISPLAYED ID=22444877, Lat=55.53531, Lon=8.35225, Zone=POS, "Comment=Voltage < 11v :," Launch SMS.exe -RUN -IBSDEBUG Then it can read files, such as SmsTX1234.txt: = FROM: 22444877 SUBJECT: ^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel" IBS-TEST: 1 Place this in C:\Temp and monitor ibsdebug display: 15:56:40.767 SMS <ibssms>smsfile: FROM: 22444877 15:56:40.767 SMS <ibssms>smsfile: SUBJECT: ^ ALARM!^ Somestreet - asdf/stationroad^ Signalling panel On 15:56:40.767 SMS <ibssms>smsfile: IBS-TEST: 1 15:56:40.768 SMS SMSMatch found:r:\delphi\apps\sms\smsmatch\test\smsmatch ALARM!.txt 15:56:40.776 SMS <ibssms>sms file(c:\temp\smsrx6.txt): From:22444877, Subject:-1: Somestreet - asdf/stationroad^ Signalling panel Afterwards, -1:a text is sent to Conc2, which converts the content preceding the colon to a zone and a comment of the remainder -1 indicates restore 11
12 Innovative Security Manager TN Sms-parsing
Innovative Business Software A/S Landemærket 10, 6. sal DK - 1119 København K Danmark T 3373 4000 info@innovative.dk www.innovative.dk