diff --git a/scaip b/scaip
new file mode 100644
index 0000000..7dc2014
--- /dev/null
+++ b/scaip
@@ -0,0 +1 @@
+{"Id":120,"Name":null,"Description":null,"FirmwareVersion":null,"InProgress":true,"MessageTypes":[{"Id":7591,"Code":"BPRS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"DISABLED[1234]<><><>ME<><><><><>PANICBUTTON<><><><><><><><><><><><><>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^DISABLED[1234][^<]*[^<<]*[^<<]*ME[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*PANICBUTTON[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":8061,"Code":"COMM","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"","HasTemplateGlobal":true,"ResponseTemplate":"<>","TemplateGlobal":"<>","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"","RegExGlobal":"^[^ ]*","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":8062,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"SCAIP-ALSOS;<>;","HasTemplateGlobal":false,"ResponseTemplate":"<> OK","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^SCAIP-ALSOS;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":2210,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"DISABLED[<>]<><><>ME<><><><><><><>0010<><><><><><><><><><><>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^DISABLED[[^<]*][^<<]*[^<<]*[^<<]*ME[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*0010[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7586,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"DISABLED[<>]<><><><><><><><><>","HasTemplateGlobal":false,"ResponseTemplate":"<> OK","TemplateGlobal":"","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":"","ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^DISABLED[[^<]*][^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*[^<<]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]}],"Commands":[],"Operations":[{"Id":90,"Name":"scaip","Operation":"// write your code here..\n// old code\n// var moment = require('moment');\n// // OPERATIONS START\n// var nowTime, event_time, location_time, send_time, location_accuracy, speed, fix_state, zone_id;\n// //Define defaults (in case variables not set) \n// nowTime = event_time = location_time = send_time = moment.utc().unix();\n// //if fix_state doesn't exist, set it to 0\n// msg.push({\n// 'code': 'event_time',\n// 'value': event_time\n// });\nfunction isLocalTesting() {\n return typeof require === \"undefined\";\n}\n\nfunction execute_ops(msg, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\n var net = null;\n var moment = null;\n if (!isLocalTesting()) {\n net = require('net');\n moment = require('moment');\n }\n var codeValues = [];\n var tasks = [];\n var configsToAck = [];\n var configsToUpdate = [];\n var configsToSend = [];\n AddValue(codeValues, \"event_time\", Math.round(Date.now() / 1000));\n if (oystaTemplate == 'True') {}\n if (globalTemplate == \"True\") {\n const xml = raw;\n // AddValue(codeValues, \"reference\", getTagValue(xml, \"ref\"));\n // AddValue(codeValues, \"version\", getTagValue(xml, \"ver\"));\n // AddValue(codeValues, \"system_config\", getTagValue(xml, \"sco\"));\n // AddValue(codeValues, \"call-handling\", getTagValue(xml, \"cha\"));\n // AddValue(codeValues, \"heartbeat-options\", getTagValue(xml, \"hbo\"));\n // AddValue(codeValues, \"cid\", getTagValue(xml, \"cid\"));\n // AddValue(codeValues, \"device-type\", getTagValue(xml, \"dty\"));\n AddValue(codeValues, \"imei\", getTagValue(xml, \"did\"));\n // AddValue(codeValues, \"device-component\", getTagValue(xml, \"dco\"));\n // AddValue(codeValues, \"caller-id\", getTagValue(xml, \"cid\"));\n // AddValue(codeValues, \"status-text\", getTagValue(xml, \"stt\"));\n // AddValue(codeValues, \"priority\", getTagValue(xml, \"pri\"));\n // AddValue(codeValues, \"location-code\", getTagValue(xml, \"lco\"));\n // AddValue(codeValues, \"location-value\", getTagValue(xml, \"lva\"));\n // AddValue(codeValues, \"wgs-pos\", getTagValue(xml, \"geo\"));\n // AddValue(codeValues, \"time-stamp\", getTagValue(xml, \"tim\"));\n // AddValue(codeValues, \"gga-pos\", getTagValue(xml, \"gga\"));\n // AddValue(codeValues, \"location-text\", getTagValue(xml, \"lte\"));\n // AddValue(codeValues, \"info-code\", getTagValue(xml, \"ico\"));\n // AddValue(codeValues, \"info-text\", getTagValue(xml, \"ite\"));\n // AddValue(codeValues, \"additional-message\", getTagValue(xml, \"ame\"));\n // AddValue(codeValues, \"mty\", \"ME\");\n const statusCodeString = getTagValue(xml, \"stc\");\n const statusCode = parseInt(statusCodeString, 10);\n if (statusCode === 10) {\n let imei = getTagValue(xml, \"did\");\n let new_message = \"SCAIP-ALSOS;\" + imei + \";\";\n sendMessageToLocalhost(new_message);\n AddValue(codeValues, \"toSend\", new_message);\n }\n }\n var dataToReceiver = {\n 'values': codeValues\n };\n if (tasks.length > 0) {\n dataToReceiver.tasks = tasks\n };\n // only send data if we have some\n // if (codeValues !== undefined || codeValues.length !== 0) {\n console.log(dataToReceiver);\n // }\n return {\n 'output': dataToReceiver\n }\n}\n\nfunction getTagValue(xml, tagName) {\n const startTag = '<' + tagName + '>';\n const endTag = '' + tagName + '>';\n let tagValue = '';\n if (xml.includes(startTag)) {\n tagValue = xml.substring(xml.lastIndexOf(startTag) + startTag.length, xml.lastIndexOf(endTag));\n }\n return tagValue;\n}\n\nfunction createConnection(port, server) {\n c = net.createConnection(port, server);\n c.on('error', function(error) {\n c = createConnection(port, server);\n });\n return c;\n}\n\nfunction sendMessageToLocalhost(str) {\n if (isLocalTesting()) {\n console.log(\"Sending message to server: \" + str);\n } else {\n var server = '127.0.0.1';\n // acceptance\n var c = createConnection(5678, server);\n // protocol-dev\n //var c = createConnection(5878, server);\n c.write(`${str}`);\n c.end();\n }\n}\n\nfunction AddValue(msgArray, p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n msgArray.push(cvpair);\n}\nif (!isLocalTesting()) {\n let return_values = execute_ops(msg, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\n // map output to global var\n dataToReceiver = return_values.output;\n}","Type":0,"ProtocolActionObjects":[]}],"Groups":[],"GroupParams":[],"ProtocolChanges":[],"ProtocolActionObjects":[],"Tags":[],"MessageCodes":[]}
\ No newline at end of file