Добавлены скрипты для работы с разбитыми на фрагменты СМС
[openhab-process.git] / mqtt-agi / clear-sms-spool
diff --git a/mqtt-agi/clear-sms-spool b/mqtt-agi/clear-sms-spool
new file mode 100644 (file)
index 0000000..b8814b4
--- /dev/null
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import sys
+reload(sys)
+sys.setdefaultencoding('utf-8')
+
+from ConfigParser import ConfigParser
+import paho.mqtt.client as paho
+from pymessaging.sms import SmsDeliver
+
+import sqlite3
+from sqlite3 import Error
+
+from tempfile import mkstemp
+from shutil import move
+
+conffile = sys.argv[1:2]
+
+config = ConfigParser()
+config.add_section('sms')
+# set defaults for anonymous auth
+config.set('sms', 'tmpfile', '/tmp/sms.db')
+config.read(conffile)
+
+sms_db = config.get('sms','tmpfile')
+
+try:
+  conn = sqlite3.connect(sms_db)
+
+  cur = conn.cursor()
+  cur.execute("select ref from sms_parts group by ref having max(datetime) is null or (julianday('now')-julianday(max(datetime)))>0.005;")
+  refs=cur.fetchall()
+  for ref in refs:
+    cur.execute("select text from sms_parts where ref=%s order by seq" % (ref))
+    full_text=''.join(rec[0] for rec in cur.fetchall()).replace("\"","")
+    f,path=mkstemp(suffix=".call")
+    f=open(path,"w")
+    f.write("Application: Dial\n")
+    f.write("Channel: Local/smsraw@DID_mobile\n")
+    f.write("Context: smsraw\n")
+    f.write("Setvar: SMS_FULL_TEXT=%s" % full_text)
+    f.close()
+    move(path,'/var/spool/asterisk/outgoing')
+    cur.execute("delete from sms_parts where ref=%s" % (ref))
+    conn.commit()
+
+except:
+  None
\ No newline at end of file