amIRinging/main.py

62 lines
1.5 KiB
Python

import urllib2
import json
import ssl
import os
import time
from pprint import pprint
from win10toast import ToastNotifier
toaster = ToastNotifier()
myExtension = 1254
nocURL = "https://noc.ventraip.net.au/new/api.php"
context = ssl._create_unverified_context()
phoneQueues = {"QUEUE618":"Synergy Sales","QUEUE285":"Ventra Sales","QUEUE384":"Synergy Technical","QUEUE286":"Ventra Billing","QUEUE284":"Ventra Technical"}
ringing = False
def getNOCData(URL):
data = urllib2.urlopen(URL, context=context)
jsonData = json.loads(data.read())
#file = open('testData.json')
#jsonData = json.load(file)
return jsonData
def amRinging(ring, queue):
global ringing
if ring == True:
toaster.show_toast(phoneQueues[queue],
"Is ringing :(",
icon_path=None,
# duration=20,
threaded=True)
ringing = False
if __name__ == '__main__':
# while True:
# data = getNOCData(nocURL)
# pprint(data)
while True:
try:
data = getNOCData(nocURL)
#pprint(data["queues"])
except urllib2.URLError, e:
print(str(e.reason))
continue
for queue in phoneQueues:
queueData = data["queues"][queue]["loggedIn"]
#print("The queue is %s" % phoneQueues[queue])
for extension in queueData:
#print("\t%s" % extension)
if data["queues"][queue]["calls"] > 0:
if extension["extension"] == myExtension:
#print(extension["status"])
if extension["status"] == 6:
ringing = True
else:
ringing = False
amRinging(ringing, queue)
time.sleep(1)