刘威 преди 5 месеца
родител
ревизия
8fca2df515
променени са 1 файла, в които са добавени 13 реда и са изтрити 13 реда
  1. 13 13
      src/core/callcenter/esl/client.py

+ 13 - 13
src/core/callcenter/esl/client.py

@@ -381,16 +381,12 @@ class OutboundClient:
         threading.Thread(target=self.start, args=()).start()
 
     class ESLRequestHandler(socketserver.BaseRequestHandler):
-        def __init__(self, outbound):
-            self.bot_agent = outbound.bot_agent
-            self.logger = outbound.logger
-
         def setup(self):
             try:
-                print(self.client_address, 'connected!')
+                self.client.logger.info('%s connected!',self.client_address)
                 fd = self.request.fileno()
                 con = ESL.ESLconnection(fd)
-                print('Connected: ', con.connected())
+                self.client.logger.info('Connected: %s', con.connected())
                 if con.connected():
                     info = con.getInfo()
 
@@ -398,8 +394,8 @@ class OutboundClient:
                     event_name = info.getHeader("Event-Name")
                     device_id = info.getHeader("unique-id")
                     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)
                     con.execute("bridge", f"user/{destination}", device_id)
@@ -422,14 +418,18 @@ class OutboundClient:
                     #     print('come in ')
                     #     traceback.print_exc()
                 else:
-                    print("Failed to connect to FreeSWITCH")
+                    self.client.logger.info("Failed to connect to FreeSWITCH")
             except:
                 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 服务器
-        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()