summaryrefslogblamecommitdiffstats
path: root/For Weekly Test/20-07-2011/localsipReceiver.py
blob: eb95ce055b1546513e31a2ac72d6810e194f0e3c (plain) (tree)
1
2
3
4
5
6
7
8
9

                  
                  
                   
 
                      
 
                                                     
 
                            
                                                            

 
                                            

                                         
 
                                   

                                             
 

                                              
                          

                                        
                                                      

                                     
                                      
                                      
              
            
                   


        
                                                 
                                                               
                                  
        
                                                                  
                                                                                     



                              
            
                                                                            

                                                                                              
                

                                               

                                                              
                                                

                                                        

                                           
                                                            

                                                 
                                                                    

                                                   
 

                                        
                                                                  



                                                
                                                                             

                        
                                                                  
                                     
                        

                                  


                                                                     



                                                 

                                                    

                             
 
                                        
                                                                     

                   












                                                             
import sys
import pjsua as pj
import classServer
import LogFileClass

from time import sleep

logger = LogFileClass.Logging('UniSIPRecHandler.log')

def log_cb(level, str, len):
    print str, "SIP University account 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(50107)
	logger.logEvent('Connect to Controller via port 50107')
	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 University SIP server')
    		acc_cfg = pj.AccountConfig("132.230.252.228", "4976120397897", "hB8M3WyFt61C")
    		acc = lib.create_account(acc_cfg, cb=MyAccountCallback())
		
		if acc.info().reg_status < 700:

			logger.logEvent(acc.info().reg_status)
			sleep(5)
			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')