From d87943efc511408bd85d4a1bc15e11151fb4db22 Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <me@adhisimon.org>
Date: Tue, 3 Sep 2019 17:21:39 +0700
Subject: [PATCH] PDU processed

---
 lib/serialport-parsers.js | 14 +++++++++++++-
 package-lock.json         |  5 +++++
 package.json              |  1 +
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/lib/serialport-parsers.js b/lib/serialport-parsers.js
index d8505c2..a9c7ed2 100644
--- a/lib/serialport-parsers.js
+++ b/lib/serialport-parsers.js
@@ -39,6 +39,17 @@ function onCSQ(data) {
     return val[1];
 }
 
+function onPdu(data, parsedData) {
+    const from = parsedData.getAddress && parsedData.getAddress().getPhone
+        ? parsedData.getAddress().getPhone() : null;
+
+    const msg = parsedData.getData && parsedData.getData().getData
+        ? parsedData.getData().getData() : null;
+
+    logger.verbose('PDU processed', { from, msg });
+    return { from, msg };
+}
+
 function onCOPS(data) {
     const val = data.toString().trim().match(/\+COPS:\s*(.*)/);
     if (!val || !val[1]) return null;
@@ -85,7 +96,8 @@ parserReadline.on('data', (data) => {
 
     const pduParsed = parsePdu(data);
     if (pduParsed) {
-        logger.verbose('Got a PDU data', { pduParsed });
+        logger.verbose('Got a PDU data', { type: typeof pduParsed });
+        onPdu(data, pduParsed);
     } else if (isResultCodeIs(data, 'CSQ')) {
         logger.verbose('Got a signal quality report', { data: data.toString() });
         onCSQ(data);
diff --git a/package-lock.json b/package-lock.json
index 9054dbc..ddef173 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3524,6 +3524,11 @@
         "pify": "^2.0.0"
       }
     },
+    "pdu": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/pdu/-/pdu-1.1.0.tgz",
+      "integrity": "sha1-vugaShe1ndzys5wMFuIJF6aTmjQ="
+    },
     "performance-now": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
diff --git a/package.json b/package.json
index 6c1d1eb..89a7093 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,7 @@
     "locks": "^0.2.2",
     "moment": "^2.24.0",
     "node-pdu": "^1.0.15",
+    "pdu": "^1.1.0",
     "request": "^2.88.0",
     "serialport": "^7.1.5",
     "serialport-gsm": "^3.2.0"
-- 
1.9.0