Prechádzať zdrojové kódy

1: fixing orphaned data in zabbix sender
2: merge json files per second to send to GenieACS
3: add upload/download volume to calculate used valume in zabbix

Sasan Torabkheslat 5 rokov pred
rodič
commit
172735c269

+ 176 - 78
.idea/workspace.xml

@@ -13,7 +13,11 @@
   <component name="ChangeListManager">
     <list default="true" id="6938f4e3-b9b8-4c34-bea6-8fc5ace411e6" name="Default Changelist" comment="">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cmake-build-debug/CMakeFiles/clion-log.txt" beforeDir="false" afterPath="$PROJECT_DIR$/cmake-build-debug/CMakeFiles/clion-log.txt" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/main.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/main.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/soapcwmpService.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/soapcwmpService.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/soapcwmpService.h" beforeDir="false" afterPath="$PROJECT_DIR$/soapcwmpService.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/stdsoap2.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/stdsoap2.cpp" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/cmake-build-debug/" />
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -31,8 +35,8 @@
       <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/main.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="239">
-              <caret line="594" column="8" selection-start-line="594" selection-start-column="8" selection-end-line="594" selection-end-column="8" />
+            <state relative-caret-position="334">
+              <caret line="557" column="44" selection-start-line="557" selection-start-column="44" selection-end-line="557" selection-end-column="44" />
               <folding>
                 <element signature="e#604#788#0" />
                 <element signature="e#790#856#0" />
@@ -40,13 +44,99 @@
                 <element signature="e#1109#1140#0" />
                 <element signature="e#5722#6744#0" />
                 <element signature="e#6746#7432#0" />
-                <element signature="e#7434#8491#0" />
-                <element signature="e#8494#10862#0" />
-                <element signature="e#13027#33145#0" />
-                <element signature="e#16266#16299#0" />
-                <element signature="e#25273#25300#0" />
-                <element signature="e#33745#33966#0" />
-                <element signature="e#37122#38422#0" />
+                <element signature="e#7434#8489#0" />
+                <element signature="e#8492#10860#0" />
+                <element signature="e#16356#16389#0" />
+                <element signature="e#25715#25742#0" />
+                <element signature="e#33750#37430#0" />
+                <element signature="e#33996#34217#0" />
+                <element signature="e#37433#39679#0" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/stdsoap2.cpp">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="119">
+              <caret line="7775" column="12" selection-start-line="7775" selection-start-column="12" selection-end-line="7775" selection-end-column="12" />
+              <folding>
+                <element signature="e#2635#2680#0" expanded="true" />
+                <element signature="e#2741#2763#0" expanded="true" />
+                <element signature="e#2834#2903#0" expanded="true" />
+                <element signature="e#2967#3018#0" expanded="true" />
+                <element signature="e#3047#3066#0" expanded="true" />
+                <element signature="e#3207#3400#0" expanded="true" />
+                <element signature="e#3529#3600#0" expanded="true" />
+                <element signature="e#4002#4089#0" expanded="true" />
+                <element signature="e#4497#4582#0" expanded="true" />
+                <element signature="e#5915#6028#0" expanded="true" />
+                <element signature="e#7921#7962#0" expanded="true" />
+                <element signature="e#8111#8437#0" expanded="true" />
+                <element signature="e#8585#9114#0" expanded="true" />
+                <element signature="e#9265#9418#0" expanded="true" />
+                <element signature="e#11522#11750#0" expanded="true" />
+                <element signature="e#11894#12124#0" expanded="true" />
+                <element signature="e#12266#12476#0" expanded="true" />
+                <element signature="e#12620#12842#0" expanded="true" />
+                <element signature="e#20324#20680#0" expanded="true" />
+                <element signature="e#21229#21253#0" expanded="true" />
+                <element signature="e#21473#21515#0" expanded="true" />
+                <element signature="e#22356#23204#0" expanded="true" />
+                <element signature="e#23371#23479#0" expanded="true" />
+                <element signature="e#23646#23758#0" expanded="true" />
+                <element signature="e#23928#24036#0" expanded="true" />
+                <element signature="e#25166#25321#0" expanded="true" />
+                <element signature="e#25480#25569#0" expanded="true" />
+                <element signature="e#25731#25897#0" expanded="true" />
+                <element signature="e#28124#28177#0" expanded="true" />
+                <element signature="e#28446#28656#0" expanded="true" />
+                <element signature="e#28819#29013#0" expanded="true" />
+                <element signature="e#29256#29444#0" expanded="true" />
+                <element signature="e#29612#29823#0" expanded="true" />
+                <element signature="e#30560#30624#0" expanded="true" />
+                <element signature="e#30659#30700#0" expanded="true" />
+                <element signature="e#30857#30996#0" expanded="true" />
+                <element signature="e#31029#31081#0" expanded="true" />
+                <element signature="e#31284#31294#0" expanded="true" />
+                <element signature="e#33603#34526#0" expanded="true" />
+                <element signature="e#40460#40659#0" expanded="true" />
+                <element signature="e#40866#40878#0" expanded="true" />
+                <element signature="e#40918#41014#0" expanded="true" />
+                <element signature="e#41267#41587#0" expanded="true" />
+                <element signature="e#42615#43057#0" expanded="true" />
+                <element signature="e#43216#43367#0" expanded="true" />
+                <element signature="e#43529#43798#0" expanded="true" />
+                <element signature="e#44527#44652#0" expanded="true" />
+                <element signature="e#45569#45747#0" expanded="true" />
+                <element signature="e#45907#46104#0" expanded="true" />
+                <element signature="e#46267#46446#0" expanded="true" />
+                <element signature="e#46939#46968#0" expanded="true" />
+                <element signature="e#46995#47031#0" expanded="true" />
+                <element signature="e#47180#47251#0" expanded="true" />
+                <element signature="e#47276#47320#0" expanded="true" />
+                <element signature="e#48711#51458#0" expanded="true" />
+                <element signature="e#55553#57750#0" expanded="true" />
+                <element signature="e#57838#57872#0" expanded="true" />
+                <element signature="e#64095#64122#0" expanded="true" />
+                <element signature="e#68550#68616#0" expanded="true" />
+                <element signature="e#68846#69009#0" expanded="true" />
+                <element signature="e#69237#69402#0" expanded="true" />
+                <element signature="e#74768#74943#0" expanded="true" />
+                <element signature="e#76220#76245#0" expanded="true" />
+                <element signature="e#76646#77370#0" expanded="true" />
+                <element signature="e#78855#79032#0" expanded="true" />
+                <element signature="e#79804#79992#0" expanded="true" />
+                <element signature="e#81712#83004#0" expanded="true" />
+                <element signature="e#83410#83590#0" expanded="true" />
+                <element signature="e#84919#85110#0" expanded="true" />
+                <element signature="e#88102#90201#0" expanded="true" />
+                <element signature="e#99913#99970#0" expanded="true" />
+                <element signature="e#127254#127519#0" expanded="true" />
+                <element signature="e#127807#130586#0" expanded="true" />
+                <element signature="e#130874#132211#0" expanded="true" />
+                <element signature="e#132472#133729#0" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -55,8 +145,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/soapcwmpService.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="223">
-              <caret line="291" column="20" lean-forward="true" selection-start-line="291" selection-start-column="20" selection-end-line="291" selection-end-column="20" />
+            <state relative-caret-position="11850">
+              <caret line="790" column="95" selection-start-line="790" selection-start-column="95" selection-end-line="790" selection-end-column="95" />
               <folding>
                 <element signature="e#0#614#0" />
               </folding>
@@ -67,8 +157,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/soapcwmpService.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="3315">
-              <caret line="221" column="34" selection-start-line="221" selection-start-column="34" selection-end-line="221" selection-end-column="34" />
+            <state relative-caret-position="3015">
+              <caret line="201" column="4" selection-start-line="201" selection-start-column="4" selection-end-line="201" selection-end-column="4" />
               <folding>
                 <element signature="e#0#612#0" />
               </folding>
@@ -80,7 +170,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>gSOAP/2.8</find>
       <find>Data required for operation</find>
       <find>SOAP_NO_DATA</find>
       <find>10000</find>
@@ -110,6 +199,7 @@
       <find>Method :</find>
       <find>CheckQueue</find>
       <find>cerr</find>
+      <find>tr069</find>
     </findStrings>
   </component>
   <component name="Git.Settings">
@@ -131,19 +221,17 @@
         <option value="$PROJECT_DIR$/influxdb.h" />
         <option value="$PROJECT_DIR$/trapi.h" />
         <option value="$PROJECT_DIR$/CMakeLists.txt" />
-        <option value="$PROJECT_DIR$/stdsoap2.cpp" />
         <option value="$PROJECT_DIR$/soapcwmpService.h" />
         <option value="$PROJECT_DIR$/soapcwmpService.cpp" />
+        <option value="$PROJECT_DIR$/stdsoap2.cpp" />
         <option value="$PROJECT_DIR$/main.cpp" />
       </list>
     </option>
   </component>
-  <component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
-  <component name="ProjectFrameBounds" extendedState="6" fullScreen="true">
-    <option name="x" value="1280" />
-    <option name="y" value="-181" />
-    <option name="width" value="1920" />
-    <option name="height" value="1080" />
+  <component name="OCFindUsagesOptions" text="false" ivars="false" properties="true" derivedClasses="false" />
+  <component name="ProjectFrameBounds">
+    <option name="width" value="1280" />
+    <option name="height" value="800" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true">
     <ConfirmationsSetting value="2" id="Add" />
@@ -153,6 +241,7 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -164,7 +253,6 @@
           <select />
         </subPane>
       </pane>
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -237,7 +325,9 @@
       <workItem from="1577875009389" duration="1490000" />
       <workItem from="1577888800205" duration="3932000" />
       <workItem from="1578124895054" duration="43427000" />
-      <workItem from="1579512098384" duration="5529000" />
+      <workItem from="1579512098384" duration="6254000" />
+      <workItem from="1580889441995" duration="2425000" />
+      <workItem from="1581073079174" duration="407000" />
     </task>
     <task id="LOCAL-00001" summary="Disable InfluxDB">
       <created>1572183659791</created>
@@ -295,11 +385,18 @@
       <option name="project" value="LOCAL" />
       <updated>1579597476180</updated>
     </task>
-    <option name="localTasksCounter" value="9" />
+    <task id="LOCAL-00009" summary="Add datetime to Upgrade/Provision Procedures">
+      <created>1579941355197</created>
+      <option name="number" value="00009" />
+      <option name="presentableId" value="LOCAL-00009" />
+      <option name="project" value="LOCAL" />
+      <updated>1579941355197</updated>
+    </task>
+    <option name="localTasksCounter" value="10" />
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="307490000" />
+    <option name="totallyTimeSpent" value="311047000" />
   </component>
   <component name="TodoView" selected-index="3">
     <todo-panel id="selected-file">
@@ -311,26 +408,26 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="1280" y="-181" width="1920" height="1080" extended-state="6" />
+    <frame x="0" y="0" width="1280" height="800" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.46380696" visible="true" weight="0.18051118" />
-      <window_info id="Structure" order="1" sideWeight="0.536193" side_tool="true" weight="0.17891374" />
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.46183205" visible="true" weight="0.18497577" />
+      <window_info id="Structure" order="1" sideWeight="0.53816795" side_tool="true" visible="true" weight="0.18497577" />
       <window_info id="Favorites" order="2" sideWeight="0.536193" side_tool="true" weight="0.17891374" />
       <window_info anchor="bottom" id="Message" order="0" />
-      <window_info anchor="bottom" id="Find" order="1" weight="0.32673267" />
+      <window_info anchor="bottom" id="Find" order="1" weight="0.32591093" />
       <window_info anchor="bottom" id="Run" order="2" weight="0.45148516" />
       <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" weight="0.32876712" />
-      <window_info anchor="bottom" id="File Transfer" order="7" weight="0.2260274" />
+      <window_info anchor="bottom" id="File Transfer" order="7" weight="0.22457626" />
       <window_info anchor="bottom" id="Database Changes" order="8" />
-      <window_info anchor="bottom" id="Messages" order="9" visible="true" weight="0.26138613" />
+      <window_info active="true" anchor="bottom" id="Messages" order="9" visible="true" weight="0.259887" />
       <window_info anchor="bottom" id="Terminal" order="10" weight="0.32574257" />
       <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
       <window_info anchor="bottom" id="Version Control" order="12" weight="0.32876712" />
-      <window_info anchor="bottom" id="CMake" order="13" weight="0.42673266" />
+      <window_info anchor="bottom" id="CMake" order="13" weight="0.42655367" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -377,7 +474,8 @@
     <MESSAGE value="Add Database for Inform and CheckQueue (phase 1)&#10;&#10;Inform : Done&#10;&#10;CheckQueue: In progress....&#10;&#10;exception handling on json parsing" />
     <MESSAGE value="Add Database for Inform and CheckQueue (phase 1)&#10;                                  &#10;                                  Inform : Done&#10;                                  &#10;                                  CheckQueue: In progress....&#10;                                  &#10;                                  exception handling on json parsing&#10;                                  &#10;                                  update database after sending task to cpe" />
     <MESSAGE value="Upgrade Procedures completed" />
-    <option name="LAST_COMMIT_MESSAGE" value="Upgrade Procedures completed" />
+    <MESSAGE value="Add datetime to Upgrade/Provision Procedures" />
+    <option name="LAST_COMMIT_MESSAGE" value="Add datetime to Upgrade/Provision Procedures" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
     <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="true" />
     <option name="REARRANGE_BEFORE_PROJECT_COMMIT" value="true" />
@@ -656,10 +754,44 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/soapStub.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="240">
+          <caret line="1059" column="14" selection-start-line="1059" selection-start-column="14" selection-end-line="1059" selection-end-column="14" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/json.hpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="232">
+          <caret line="20684" column="22" selection-start-line="20684" selection-start-column="22" selection-end-line="20684" selection-end-column="22" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/soapcwmpService.cpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="11850">
+          <caret line="790" column="95" selection-start-line="790" selection-start-column="95" selection-end-line="790" selection-end-column="95" />
+          <folding>
+            <element signature="e#0#614#0" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/soapcwmpService.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="3015">
+          <caret line="201" column="4" selection-start-line="201" selection-start-column="4" selection-end-line="201" selection-end-column="4" />
+          <folding>
+            <element signature="e#0#612#0" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/stdsoap2.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="223">
-          <caret line="6716" selection-start-line="6716" selection-end-line="6716" />
+        <state relative-caret-position="119">
+          <caret line="7775" column="12" selection-start-line="7775" selection-start-column="12" selection-end-line="7775" selection-end-column="12" />
           <folding>
             <element signature="e#2635#2680#0" expanded="true" />
             <element signature="e#2741#2763#0" expanded="true" />
@@ -740,44 +872,10 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/soapStub.h">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="240">
-          <caret line="1059" column="14" selection-start-line="1059" selection-start-column="14" selection-end-line="1059" selection-end-column="14" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/json.hpp">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="232">
-          <caret line="20684" column="22" selection-start-line="20684" selection-start-column="22" selection-end-line="20684" selection-end-column="22" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/soapcwmpService.h">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="3315">
-          <caret line="221" column="34" selection-start-line="221" selection-start-column="34" selection-end-line="221" selection-end-column="34" />
-          <folding>
-            <element signature="e#0#612#0" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/soapcwmpService.cpp">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="223">
-          <caret line="291" column="20" lean-forward="true" selection-start-line="291" selection-start-column="20" selection-end-line="291" selection-end-column="20" />
-          <folding>
-            <element signature="e#0#614#0" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/main.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="239">
-          <caret line="594" column="8" selection-start-line="594" selection-start-column="8" selection-end-line="594" selection-end-column="8" />
+        <state relative-caret-position="334">
+          <caret line="557" column="44" selection-start-line="557" selection-start-column="44" selection-end-line="557" selection-end-column="44" />
           <folding>
             <element signature="e#604#788#0" />
             <element signature="e#790#856#0" />
@@ -785,13 +883,13 @@
             <element signature="e#1109#1140#0" />
             <element signature="e#5722#6744#0" />
             <element signature="e#6746#7432#0" />
-            <element signature="e#7434#8491#0" />
-            <element signature="e#8494#10862#0" />
-            <element signature="e#13027#33145#0" />
-            <element signature="e#16266#16299#0" />
-            <element signature="e#25273#25300#0" />
-            <element signature="e#33745#33966#0" />
-            <element signature="e#37122#38422#0" />
+            <element signature="e#7434#8489#0" />
+            <element signature="e#8492#10860#0" />
+            <element signature="e#16356#16389#0" />
+            <element signature="e#25715#25742#0" />
+            <element signature="e#33750#37430#0" />
+            <element signature="e#33996#34217#0" />
+            <element signature="e#37433#39679#0" />
           </folding>
         </state>
       </provider>

+ 4 - 4
cmake-build-debug/CMakeFiles/clion-log.txt

@@ -1,4 +1,4 @@
-/usr/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /tmp/tmp.55FUdkWZ0x
--- Configuring done
--- Generating done
--- Build files have been written to: /tmp/tmp.55FUdkWZ0x/cmake-build-debug
+CMake executable not found: /usr/bin/cmake Configure
+
+Cannot get compiler information:
+	Unable to create temporary file

+ 24 - 13
main.cpp

@@ -1,5 +1,4 @@
 #include <iostream>
-#include "cwmp.nsmap"
 #include "httppost.h"
 #include "soapcwmpService.h"
 #include "plugin/threads.h"
@@ -163,7 +162,7 @@ std::string url_encode(const std::string &value) {
 
 int main() {
     signal(SIGPIPE, handler);
-    std::cout << "TR069 Server Started on Port " << port << "(1.1.1)...\n" << std::endl;
+    std::cout << "TR069 Server Started on Port " << port << "(1.2)...\n" << std::endl;
     cwmpService service(SOAP_XML_INDENT);
     service.soap->send_timeout = service.soap->recv_timeout = 5;
     service.soap->transfer_timeout = 60;
@@ -290,8 +289,8 @@ int cwmpService::GetRPCMethods(
 int cwmpService::GetParameterValuesResponse(
         struct _cwmp__GetParameterValuesResponse *cwmp__GetParameterValuesResponse) { return SOAP_OK; }
 
-int cwmpService::Inform(struct _cwmp__Inform *cwmp__Inform,
-                        struct _cwmp__InformResponse *cwmp__InformResponse) {
+int cwmpService::Inform(struct _cwmp__Inform *cwmp__Inform, struct _cwmp__InformResponse *cwmp__InformResponse,
+                        struct soap *soap) {
 
 
     std::string _id = std::string(cwmp__Inform->DeviceId->OUI) + "-" + std::string(cwmp__Inform->DeviceId->ProductClass)
@@ -314,23 +313,28 @@ int cwmpService::Inform(struct _cwmp__Inform *cwmp__Inform,
     std::stringstream strstream;
     strstream << second;
     strstream >> _time;
+    ip = soap->host;
     for (int i = 0; i < cwmp__Inform->ParameterList->__size; ++i) {
         char *_Name = cwmp__Inform->ParameterList->__ptrParameterValueStruct[i]->Name;
         char *_Value = cwmp__Inform->ParameterList->__ptrParameterValueStruct[i]->Value;
-        outfile << _Name << ": " << _Value << std::endl;
         if (std::string(_Name).compare("InternetGatewayDevice.DeviceInfo.X_TGT_IMSI") == 0) {
             imsi = _Value;
+            break;
         }
-        if (std::string(_Name).compare("InternetGatewayDevice.WEB_GUI.Network.Network_Mode.WANIPAddress") == 0) {
-            ip = _Value;
-        }
+    }
+    for (int i = 0; i < cwmp__Inform->ParameterList->__size; ++i) {
+        char *_Name = cwmp__Inform->ParameterList->__ptrParameterValueStruct[i]->Name;
+        char *_Value = cwmp__Inform->ParameterList->__ptrParameterValueStruct[i]->Value;
+        outfile << _Name << ": " << _Value << std::endl;
+//        if (std::string(_Name).compare("InternetGatewayDevice.DeviceInfo.X_TGT_IMSI") == 0) {
+//            imsi = _Value;
+//        }
+//        if (std::string(_Name).compare("InternetGatewayDevice.WEB_GUI.Network.Network_Mode.WANIPAddress") == 0) {
+//            ip = _Value;
+//        }
         std::string cpe = cwmp__Inform->DeviceId->SerialNumber;
         auto j = std::find(std::begin(zbx_keys), std::end(zbx_keys), _Name);
         if (j != std::end(zbx_keys)) {
-//            th.push_back(std::thread(ZBX_Send, &_Name,&_Value, &imsi));
-//            ind.push_back(i);
-//            th.push_back(std::thread(ZBX_Send, &cwmp__Inform->ParameterList->__ptrParameterValueStruct[i]->Name,
-//                                     &cwmp__Inform->ParameterList->__ptrParameterValueStruct[i]->Value, &imsi));
             if (!strcmp(_Name, "InternetGatewayDevice.WEB_GUI.Network.LTE_Setting.Status.DL_MCS") == 0 or
                 !strcmp(_Name, "InternetGatewayDevice.WEB_GUI.Network.LTE_Setting.Status.UL_MCS") == 0) {
                 if (!strcmp(_Value, "QPSK")) {
@@ -480,6 +484,12 @@ int cwmpService::Inform(struct _cwmp__Inform *cwmp__Inform,
 //</editor-fold>
         }
     }
+    std::ofstream zbx_data;
+    zbx_data.open("/var/tmp/zbx_sender-" + _time, std::ios_base::app);
+    zbx_data << "IMSI-" << imsi << " " << "BytsReceived" << " " << second << " \"" << tr069["BytesReceived"] << "\""
+             << std::endl;
+    zbx_data << "IMSI-" << imsi << " " << "BytsSent" << " " << second << " \"" << tr069["BytesSent"] << "\""
+             << std::endl;
 
 //<editor-fold desc="Json">
     std::string ISOTime = currentISO8601TimeUTC();
@@ -547,7 +557,8 @@ int cwmpService::Inform(struct _cwmp__Inform *cwmp__Inform,
     second = time(NULL);
     strstream << second;
     strstream >> _time;
-    json_data.open("/var/tmp/json_data/" + url_encode(_id) + "_" + _time, std::ios_base::app);
+    json_data.open("/var/tmp/json_data/json-" + _time, std::ios_base::app);
+//    json_data.open("/var/tmp/json_data/" + url_encode(_id) + "_" + _time, std::ios_base::app);
     json_data << tr069_json.dump(4);
 
     mysqlpp::Connection conn(false);

+ 1 - 1
soapcwmpService.cpp

@@ -788,7 +788,7 @@ static int serve___cwmp__Inform(struct soap *soap, cwmpService *service) {
         || soap_envelope_end_in(soap)
         || soap_end_recv(soap))
         return soap->error;
-    soap->error = service->Inform(soap_tmp___cwmp__Inform.cwmp__Inform, &cwmp__InformResponse);
+    soap->error = service->Inform(soap_tmp___cwmp__Inform.cwmp__Inform, &cwmp__InformResponse, soap);
     if (soap->error)
         return soap->error;
     soap->encodingStyle = ""; /* use SOAP encoding style */

+ 1 - 1
soapcwmpService.h

@@ -199,7 +199,7 @@ public:
     //
     /// Web service operation 'Inform' implementation, should return SOAP_OK or error code
     virtual int
-    Inform(struct _cwmp__Inform *cwmp__Inform, struct _cwmp__InformResponse *cwmp__InformResponse) SOAP_PURE_VIRTUAL;
+        Inform(struct _cwmp__Inform *cwmp__Inform, struct _cwmp__InformResponse *cwmp__InformResponse, struct soap *soap) SOAP_PURE_VIRTUAL;
 
     //
     /// Web service operation 'Reboot' implementation, should return SOAP_OK or error code

+ 1 - 1
stdsoap2.cpp

@@ -7754,7 +7754,7 @@ http_response(struct soap *soap, int status, ULONG64 count) {
             return err;
     }
 #endif
-    err = soap->fposthdr(soap, "Server", "ACS/1.1.1 By Sassan");
+    err = soap->fposthdr(soap, "Server", "FDIACS/1.2 By Sassan");
 //    err = soap->fposthdr(soap, "Server", "gSOAP/2.8");
     if (err)
         return err;