|
@@ -381,16 +381,12 @@ class OutboundClient:
|
|
threading.Thread(target=self.start, args=()).start()
|
|
threading.Thread(target=self.start, args=()).start()
|
|
|
|
|
|
class ESLRequestHandler(socketserver.BaseRequestHandler):
|
|
class ESLRequestHandler(socketserver.BaseRequestHandler):
|
|
- def __init__(self, outbound):
|
|
|
|
- self.bot_agent = outbound.bot_agent
|
|
|
|
- self.logger = outbound.logger
|
|
|
|
-
|
|
|
|
def setup(self):
|
|
def setup(self):
|
|
try:
|
|
try:
|
|
- print(self.client_address, 'connected!')
|
|
|
|
|
|
+ self.client.logger.info('%s connected!',self.client_address)
|
|
fd = self.request.fileno()
|
|
fd = self.request.fileno()
|
|
con = ESL.ESLconnection(fd)
|
|
con = ESL.ESLconnection(fd)
|
|
- print('Connected: ', con.connected())
|
|
|
|
|
|
+ self.client.logger.info('Connected: %s', con.connected())
|
|
if con.connected():
|
|
if con.connected():
|
|
info = con.getInfo()
|
|
info = con.getInfo()
|
|
|
|
|
|
@@ -398,8 +394,8 @@ class OutboundClient:
|
|
event_name = info.getHeader("Event-Name")
|
|
event_name = info.getHeader("Event-Name")
|
|
device_id = info.getHeader("unique-id")
|
|
device_id = info.getHeader("unique-id")
|
|
kwargs = json.loads(info.serialize('json'))
|
|
kwargs = json.loads(info.serialize('json'))
|
|
- destination = self.bot_agent.register(**kwargs)
|
|
|
|
- self.logger.info("device_id=%s, destination=%s", device_id, destination)
|
|
|
|
|
|
+ destination = self.client.bot_agent.register(**kwargs)
|
|
|
|
+ self.client.logger.info("device_id=%s, destination=%s", device_id, destination)
|
|
|
|
|
|
Cache.add_device_user_part(device_id, destination)
|
|
Cache.add_device_user_part(device_id, destination)
|
|
con.execute("bridge", f"user/{destination}", device_id)
|
|
con.execute("bridge", f"user/{destination}", device_id)
|
|
@@ -422,14 +418,18 @@ class OutboundClient:
|
|
# print('come in ')
|
|
# print('come in ')
|
|
# traceback.print_exc()
|
|
# traceback.print_exc()
|
|
else:
|
|
else:
|
|
- print("Failed to connect to FreeSWITCH")
|
|
|
|
|
|
+ self.client.logger.info("Failed to connect to FreeSWITCH")
|
|
except:
|
|
except:
|
|
traceback.print_exc()
|
|
traceback.print_exc()
|
|
|
|
|
|
- def start(self, HOST= '0.0.0.0', PORT=8084):
|
|
|
|
- # HOST, PORT = "0.0.0.0", 8084
|
|
|
|
|
|
+ class CustomTCPServer(socketserver.TCPServer):
|
|
|
|
+ def __init__(self, server_address, RequestHandlerClass, client):
|
|
|
|
+ self.client = client
|
|
|
|
+ socketserver.TCPServer.__init__(server_address, RequestHandlerClass)
|
|
|
|
|
|
|
|
+ def start(self, HOST='0.0.0.0', PORT=8084):
|
|
|
|
+ # HOST, PORT = "0.0.0.0", 8084
|
|
# 创建一个 TCP 服务器
|
|
# 创建一个 TCP 服务器
|
|
- with socketserver.TCPServer((HOST, PORT), self.ESLRequestHandler(self)) as server:
|
|
|
|
- print(f"ESL server listening on {HOST}:{PORT}")
|
|
|
|
|
|
+ with self.CustomTCPServer((HOST, PORT), self.ESLRequestHandler, self) as server:
|
|
|
|
+ self.logger.info(f"ESL server listening on {HOST}:{PORT}")
|
|
server.serve_forever()
|
|
server.serve_forever()
|