Advertisement
Guest User

Untitled

a guest
Jul 18th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. import datetime
  2. import MySQLdb
  3. import pyst.manager
  4. import re
  5. import time
  6.  
  7. DBHOST=""
  8. DBUSER="root"
  9. DBPASS=""
  10. DBNAME="asterisk"
  11. DBHOST2=""
  12. DBUSER2="root"
  13. DBPASS2=""
  14. DBNAME2="sim_bank"
  15. #TECH="Dongle"
  16. TECH="SIP"
  17.  
  18. #NAME="GSM-9-XX"
  19. #NAME="FO-XX"
  20. NAME="[A-Z]XXX"
  21. LENNAME=4;
  22.  
  23.  
  24.  
  25. PATTERN = "^" + TECH + "/" + NAME.replace('X', '[0-9]')
  26. PATTERN2 = "^" + NAME.replace('X', '[0-9]')
  27.  
  28. def handle_event(event, manager):
  29. if event.name == "Dial" and event.message["SubEvent"] == "Begin" and re.compile(PATTERN).match(event.message["Destination"]):
  30. db = MySQLdb.connect(host=DBHOST, user=DBUSER, passwd=DBPASS, db=DBNAME)
  31. c = db.cursor()
  32. number = event.message["Dialstring"][LENNAME+1:]
  33. name = event.message["Destination"][len(TECH)+1:len(TECH)+1+LENNAME]
  34. print name + " Dial " + number
  35. c.execute("update panel set number=%s where name=%s", (number, name))
  36. c.close()
  37. db.close()
  38. if event.name == "Newchannel" and re.compile(PATTERN).match(event.message["Channel"]):
  39. db = MySQLdb.connect(host=DBHOST, user=DBUSER, passwd=DBPASS, db=DBNAME)
  40. c = db.cursor()
  41. name = event.message["Channel"][len(TECH)+1:len(TECH)+1+LENNAME]
  42. print name + " New"
  43. c.execute("update panel set state=1,date=now(),number=null where name=%s", (name,))
  44. c.close()
  45. "/var/www/monitor/monitor.py" 137L, 4402C
  46. c = db.cursor()
  47. d = db2.cursor()
  48. d.execute("select scid,gsm_number from scid_gsm")
  49. rows = d.fetchall()
  50. gids = {}
  51. for row in rows:
  52. gids[str(row[0])] = str(row[1])
  53. c.execute("select balance,scid from trunks_trunk where name=%s", (event["Device"],))
  54. row = c.fetchone()
  55. if not row:
  56. return
  57. print event["Device"], event["State"],row[0]
  58. if gids.has_key(str(row[1])):
  59. gsm = str(gids[row[1]])
  60. else:
  61. gsm = ""
  62. c.execute("update panel set status=%s,balance=%s,gsm_number=%s where name=%s", (event["State"], row[0], gsm, event["Device"]))
  63. c.close()
  64. d.close()
  65. db.close()
  66. db2.close()
  67.  
  68.  
  69. db = MySQLdb.connect(host=DBHOST, user=DBUSER, passwd=DBPASS, db=DBNAME)
  70. db2 = MySQLdb.connect(host=DBHOST2, user=DBUSER2, passwd=DBPASS2, db=DBNAME2)
  71. c = db.cursor()
  72. d = db2.cursor()
  73. c.execute("select name from trunks_trunk order by name")
  74. rows = c.fetchall()
  75. #print rows
  76. c.execute("delete from panel")
  77. for row in rows:
  78. if re.compile(PATTERN2).match(row[0]):
  79. print row[0], "X"
  80. c.execute("insert into panel(name) values(%s)", (row[0],))
  81. c.close()
  82. d.close()
  83. db.close()
  84. db2.close()
  85.  
  86. manager = pyst.manager.Manager()
  87. manager.connect('localhost')
  88. manager.login('monitor', 'monitor')
  89. manager.register_event('*', handle_event)
  90.  
  91. while True:
  92. res = manager.send_action({"Action": "Sippeers"})
  93. res = manager.send_action({"Action": "DongleShowDevices"})
  94. time.sleep(10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement