import sys import pjsua as pj import classServer import LogFileClass from time import sleep logger = LogFileClass.Logging('sipRecHandler.log') def log_cb(level, str, len): print str, "sip Handler Receiver Log" class MyAccountCallback(pj.AccountCallback): def on_incoming_call(self, call): current_call = call logger.logEvent(current_call) sleep(0.5) call.answer(200) logger.logEvent("Answer call") sleep(0.5) if current_call <> None: logger.logEvent("Hangup call") call.hangup() server.sendData('200') logger.logEvent('200') lib = pj.Lib() stop = False logger.logEvent('') try: server = classServer.ServerHandler(50104) logger.logEvent('Connect to Controller via port 50104') conn = server.openSocket() lib.init(log_cfg = pj.LogConfig(level=1, callback=log_cb)) transport = lib.create_transport(pj.TransportType.UDP, pj.TransportConfig(0)) lib.start() lib.set_null_snd_dev() try: logger.logEvent('Register Account to SIP Asterik server') acc_cfg = pj.AccountConfig("132.230.4.8", "mpselftest2", "2mpselftest") acc = lib.create_account(acc_cfg, cb=MyAccountCallback()) if acc.info().reg_status < 700: logger.logEvent(acc.info().reg_status) server.sendData('ready') logger.logEvent('Handler Ready') while stop <> True: data = server.receiveData(0) if data == "487": logger.logEvent('Terminate') stop = True break transport = None acc.delete() logger.logEvent('Un-Rigester SIP Account') acc = None lib.destroy() lib = None server.closeConnection() logger.logEvent('Close Connection to the Controller') else: logger.logEvent("488 Not Acceptable Here") lib.destroy() lib = None acc = None server.closeConnection() logger.logEvent('Close Connection to the Controller') except pj.Error, e: print "401 Unauthorized " +str(e) logger.logEvent("401 Unauthorized ") lib.destroy() lib = None server.closeConnection() logger.logEvent('Close Connection to the Controller') except pj.Error, e: print "Exception: " + str(e) logger.logEvent(str(e)) lib.destroy() lib = None server.closeConnection() logger.logEvent('Close Connection to the Controller')