summaryrefslogtreecommitdiffstats
path: root/Under-Testing
diff options
context:
space:
mode:
authorTriatmoko2011-11-17 04:24:51 +0100
committerTriatmoko2011-11-17 04:24:51 +0100
commit25128f34cdfae5318d1a38441bf09781ef91a2ba (patch)
tree004e2ee7c744b10acf024e945008d472dc8f03d0 /Under-Testing
parentdelete unused files (diff)
downloadgsm-selftest-25128f34cdfae5318d1a38441bf09781ef91a2ba.tar.gz
gsm-selftest-25128f34cdfae5318d1a38441bf09781ef91a2ba.tar.xz
gsm-selftest-25128f34cdfae5318d1a38441bf09781ef91a2ba.zip
update loging files for every handler and fic device configuration function
Diffstat (limited to 'Under-Testing')
-rw-r--r--Under-Testing/Server-Code-New/ControllerClass.py1
-rw-r--r--Under-Testing/Server-Code-New/DbClass.py9
-rw-r--r--Under-Testing/Server-Code-New/GSMHandler.py30
-rw-r--r--Under-Testing/Server-Code-New/SIPHandler.py110
-rw-r--r--Under-Testing/Server-Code-New/gsmselftest.py3
-rw-r--r--Under-Testing/Server-Code-New/startSoftware.py12
6 files changed, 85 insertions, 80 deletions
diff --git a/Under-Testing/Server-Code-New/ControllerClass.py b/Under-Testing/Server-Code-New/ControllerClass.py
index 38867ee..321bc2d 100644
--- a/Under-Testing/Server-Code-New/ControllerClass.py
+++ b/Under-Testing/Server-Code-New/ControllerClass.py
@@ -125,6 +125,7 @@ class controller:
with open('handler.txt', 'w') as F:
writer = csv.writer(F)
writer.writerow([AccountInfo])
+ F.close()
except ValueError:
print "can't write to file"
diff --git a/Under-Testing/Server-Code-New/DbClass.py b/Under-Testing/Server-Code-New/DbClass.py
index e3b2b5c..d937eb1 100644
--- a/Under-Testing/Server-Code-New/DbClass.py
+++ b/Under-Testing/Server-Code-New/DbClass.py
@@ -19,7 +19,7 @@ class DBMySQLConnection:
def connectDB(self):
try:
- #try the connection
+ #try to connect
self.datBaseConn=MySQLdb.connect(self.host,self.usern, self.passw,self.db)
self.datBaseConn.paramstyle = 'format'
self.cur = self.datBaseConn.cursor() #make the cursor, used for sending queries
@@ -171,6 +171,13 @@ class DBMySQLConnection:
def updateGSMDevice(self, deviceName, newPortName, newNumber):
if self.connectionCreated == 1:
try:
+ try:
+ #delete old device portName which assign to this port, to prevent double port address in the table.
+ stmt = "UPDATE DeviceAddressTable SET portName = 'missing' WHERE portName = '"+newPortName+"'"
+ self.cur.execute(stmt)
+ except ValueError:
+ print "Error execute query"
+
stmt = "UPDATE DeviceAddressTable SET portName = '"+ newPortName + "', number = '"+ newNumber+ "' WHERE deviceName = '" + deviceName+ "'"
self.cur.execute(stmt)
return 1
diff --git a/Under-Testing/Server-Code-New/GSMHandler.py b/Under-Testing/Server-Code-New/GSMHandler.py
index e964635..7cfcfb1 100644
--- a/Under-Testing/Server-Code-New/GSMHandler.py
+++ b/Under-Testing/Server-Code-New/GSMHandler.py
@@ -20,10 +20,9 @@ def openFile():
global portListen
global portAddress
- #String format:
- # textFile = 'Account:username:password:server:handler:PortName:portCaller
-
- reader = csv.reader(open('handler.txt'), delimiter=':')
+ #String format: 'Account:username:password:server:handler:PortName:portCaller
+ File = open('handler.txt')
+ reader = csv.reader(File, delimiter=':')
for row in reader:
if str(row[0]) == 'Account':
#username = str(row[1])
@@ -32,8 +31,7 @@ def openFile():
handler = str(row[4])
portAddress = str(row[5])
portListen = int(row[6])
-
- #print 'this:', row
+ File.close()
baudRate = 19200
@@ -82,13 +80,13 @@ def initSystem():
anyConnection = handlerSocket.openSocket()
try :
- logger.logEvent('we are here')
+ logger.logEvent('Trying connect to the device')
gsmDevice = GSMClass.serialPort(portAddress, baudRate, 15)
initDevice = gsmDevice.portInit(5)
logger.logEvent('init device ' + str(initDevice))
except ValueError:
- logger.logEvent('Error MAN')
+ logger.logEvent('Failure when trying connect to device')
########################################################
@@ -245,12 +243,10 @@ def receiveStart():
callSuccess = 'CALL OK'
else:
callSuccess = 'CALL NOT OK'
-
-
-
- sendMessage = handlerSocket.sendData(callSuccess)
if deviceError==0:
- tryHangUp = gsmDevice.hangUp()
+ tryHangUp = gsmDevice.hangUp()
+ sendMessage = handlerSocket.sendData(callSuccess)
+
return sendMessage
############################
@@ -304,10 +300,12 @@ def callStart(numberToCall):
else:
callSuccess = 'CALL NOT OK'
- handResponse = handlerSocket.sendData(callSuccess)
-
if deviceError==0:
- tryHangUp = gsmDevice.hangUp()
+ try:
+ tryHangUp = gsmDevice.hangUp()
+ except ValueError:
+ print 'Error when try hangup the call'
+ handResponse = handlerSocket.sendData(callSuccess)
return handResponse
#########################
diff --git a/Under-Testing/Server-Code-New/SIPHandler.py b/Under-Testing/Server-Code-New/SIPHandler.py
index b2343f4..6758f88 100644
--- a/Under-Testing/Server-Code-New/SIPHandler.py
+++ b/Under-Testing/Server-Code-New/SIPHandler.py
@@ -14,6 +14,9 @@ def log_cb(level, str, len):
# Receive events from incoming Call
class Account(pj.AccountCallback):
+ def __init__(self, account=None):
+ pj.AccountCallback.__init__(self, account)
+
def on_incoming_call(self, call):
global current_call
@@ -22,11 +25,12 @@ class Account(pj.AccountCallback):
call_cb = Calling(current_call)
current_call.set_callback(call_cb)
- logger.logEvent(current_call)
+ server.sendData('Incoming Call')
+ logger.logEvent('Current Call :'+current_call)
call.answer(200)
logger.logEvent("Answer call")
- server.sendData('CALL OK')
+ sleep(2)
#print 'Answer Call'
try :
logger.logEvent("Try to Hangup the call")
@@ -38,8 +42,11 @@ class Account(pj.AccountCallback):
if current_call <> None:
logger.logEvent("Hangup call")
#print 'Hangup Call'
- call.hangup()
-
+ try:
+ call.hangup()
+ except ValueError:
+ message = 'cant hangup the call'
+ #server.sendData('CALL OK')
logger.logEvent('CALL OK')
#creating object for calling
@@ -53,20 +60,23 @@ class Calling(pj.CallCallback):
if self.call.info().state <> pj.CallState.DISCONNECTED:
if self.call.info().state_text == "CONNECTING":
- #print 'Call Connecting'
logger.logEvent("Call Connecting")
- logger.logEvent('200')
+ try:
+ logger.logEvent('Try to hangup the call')
+ self.call.hangup()
+ logger.logEvent('Hangup OK')
+ except ValueError:
+ logger.logEvent('hangup failed, waiting destination hangup the call')
+
server.sendData('CALL OK')
if self.call.info().last_reason == "Busy Here":
- #print 'Number busy or offline'
logger.logEvent('Number busy or Offline')
server.sendData('CALL NOT OK')
logger.logEvent('CALL NOT OK')
if self.call.info().state == pj.CallState.DISCONNECTED:
logger.logEvent('Call Disconnected')
- #print 'Call Discont'
current_call = None
#function to make a call
@@ -77,18 +87,17 @@ def make_call(uri):
return acc.make_call(uri, cb)
except pj.Error, e:
- #print "408 " + str(e)
- logger.logEvent('408')
+ logger.logEvent('Error when trying to call, 408')
+ server.sendData('CALL NOT OK')
return None
def openFile():
global sipServer, username, password, ip, portadd
global port
- #String format:
- # textFile = 'Account:username:password:server:handler:PortName:portCaller
-
- reader = csv.reader(open('handler.txt'), delimiter=':')
+ #file format: 'Account:username:password:server:handler:PortName:portCommunication
+ File = open('handler.txt')
+ reader = csv.reader(File, delimiter=':')
for row in reader:
if str(row[0]) == 'Account':
username = str(row[1])
@@ -97,15 +106,13 @@ def openFile():
#handler = str(row[4])
#portadd = str(row[5])
port = int(row[6])
+ File.close()
#send greeting message to the controller
def greeting():
- global server
- global status
- #port = sys.argv[2]
+ global server
server = None
- status = None
# create socket communication object
server = ServerClass.ServerHandler(port)
@@ -113,15 +120,15 @@ def greeting():
conn = server.openSocket()
if server.connected == 1:
- #connection to the controller esatablish
+ #connection to the controller establish
+ logger.logEvent('Connection Establish')
if server.receiveData(25) == 'HELLO HANDLER':
- #print 'GREETING'
server.sendData('HELLO CONTROLLER')
- status = 'OK'
+ return 1
else:
- status = 'NOT OK'
logger.logEvent('Cant connect to Controller')
- sys.exit(1)
+ del server
+ return 0
def initLogFile(sipServer):
@@ -152,7 +159,6 @@ def initState():
if message == 'RECEIVER':
state = 'RECEIVER'
-
elif message[0:6] == 'CALLER':
state = 'CALLER'
no = message[7:]
@@ -162,31 +168,12 @@ def initState():
num = no[7:]
else:
num = no
- print 'INIT STATE', state
-
-def initHandler():
- global sipServer
- global username
- global password
-
-
- accConf = sys.argv[1] # need to read from text file
-
- username = accConf[0:accConf.find(':')]
-
- line = accConf[accConf.find(':')+1:]
- password = line[0:line.find(':')]
-
- newLine = line[line.find(':')+1:]
- sipServer = newLine[0:newLine.find(':')]
-
lib = pj.Lib()
stop = False
-#print 'INIT SYSTEM'
+print 'INIT SYSTEM'
-#initHandler()
openFile()
setproctitle.setproctitle('SIP Handler')
initLogFile(sipServer)
@@ -203,9 +190,9 @@ while stop <> True:
lib.start()
lib.set_null_snd_dev()
- greeting()
-
-
+ if greeting() != 1:
+ lib.destroy()
+ break
try:
initState()
acc_cfg = pj.AccountConfig(str(sipServer),str(username),str(password))
@@ -228,7 +215,7 @@ while stop <> True:
print data
logger.logEvent(data)
- #shutting down message
+ #get shutting down message
if data == 'TERMINATE CONNECTION':
print data
logger.logEvent('Terminate')
@@ -251,7 +238,6 @@ while stop <> True:
logger.logEvent(data)
logger.logEvent('Make a call to: ' + num)
number = "sip:"+num+"@"+sipServer
- #print number
make_call(number)
else:
logger.logEvent('No number to call')
@@ -267,21 +253,27 @@ while stop <> True:
else:
logger.logEvent('Unknow Message')
server.sendData('Unknow Message')
- server.closeConnection()
- sys.exit(0.5)
+ break
else:
logger.logEvent("488 Not Acceptable Here")
- lib.destroy()
+ server.sendData('DEVICE NOT READY')
+ break
- except ValueError:
- #print "401 Unauthorized " + str(e)
+ except ValueError:
logger.logEvent("401 Unauthorized ")
+ break
logger.logEvent("Goodbye")
-acc.delete()
-lib.destroy()
-server.closeConnection()
-lib = None
-acc = None
+
+# trying to clean everything before shutting down
+try:
+ acc.delete()
+ lib.destroy()
+ lib = None
+ acc = None
+ server.closeConnection()
+ del server
+except ValueError:
+ message = 'trying failure'
diff --git a/Under-Testing/Server-Code-New/gsmselftest.py b/Under-Testing/Server-Code-New/gsmselftest.py
index 21037a5..ffd24c9 100644
--- a/Under-Testing/Server-Code-New/gsmselftest.py
+++ b/Under-Testing/Server-Code-New/gsmselftest.py
@@ -11,6 +11,9 @@ import WebsiteCommClass
import signal
import random
from time import sleep
+import setproctitle
+
+setproctitle.setproctitle('Controller Software')
class bcolors:
HEADER = '\033[95m'
diff --git a/Under-Testing/Server-Code-New/startSoftware.py b/Under-Testing/Server-Code-New/startSoftware.py
index 2d54560..b2beb58 100644
--- a/Under-Testing/Server-Code-New/startSoftware.py
+++ b/Under-Testing/Server-Code-New/startSoftware.py
@@ -1,7 +1,9 @@
#! /usr/bin/env python
import ServerClass
-import subprocess
+import subprocess
+import setproctitle
+setproctitle.setproctitle('Start Software')
while 1:
# try connect to website
server = ServerClass.ServerHandler(34600)
@@ -9,9 +11,11 @@ while 1:
test = server.receiveData(2)
if test == 'START APP':
print 'start'
- #subprocess.Popen(args=['gnome-terminal','--command= python gsmselftest.py'])
- script = 'gsmselftest.py'
- subprocess.Popen(['python',script], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ try:
+ script = 'gsmselftest.py'
+ subprocess.Popen(['python',script], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ except ValueError:
+ print " - can't start controller software -"
server.closeConnection()
del server