774056846 4 months ago
parent
commit
0acda48f58
2 changed files with 13 additions and 16 deletions
  1. 3 0
      src/core/callcenter/acd.py
  2. 10 16
      src/core/callcenter/esl/handler/channel_hangup_handler.py

+ 3 - 0
src/core/callcenter/acd.py

@@ -27,10 +27,13 @@ class AcdService:
         # checkIdleScheduler.start()
 
     def transfer_to_agent(self, call_info: CallInfo, device_id, service_id):
+        print('debugger::transfer_to_agent, come in ', end="", flush=True)
         # 1. hold住并且播放等待音
         self.call_service.hold(call_info, device_id)
+        print('debugger::transfer_to_agent, 1111111 ', end="", flush=True)
         # 获得空闲坐席
         agent_number = self.agent_service.assign(AgentActionRequest(saas_id=saasId, service_id=service_id))
+        print('debugger::transfer_to_agent, 222222 %s'%agent_number, end="", flush=True)
         if not agent_number:
             # 如果没有空闲坐席,播放等待音
             self.logger.info("AcdService transferToAgent agentNumber is empty serviceId:%s,called:%s,callId:%s",

+ 10 - 16
src/core/callcenter/esl/handler/channel_hangup_handler.py

@@ -26,32 +26,28 @@ class ChannelHangupHandler(EslEventHandler):
         self.call_service = CallService(inbound_client, logger)
 
     def handle(self, address, event, coreUUID):
-        print(json.loads(event.serialize('json')))
+        print(json.loads(event.serialize('json')), end="", flush=True)
         try:
             call_id = EslEventUtil.getCallId(event)
-            print('debugger::call_id is ', call_id)
-            sys.stdout.flush()  # 强制刷新输出缓冲区
+            print('debugger::call_id is ', call_id, end="", flush=True)
             if not call_id:
                 self.release(event)
-                print("call_id is null")
+                print("call_id is null", end="", flush=True)
                 return
             call = Cache.get_call_info(call_id)
-            print('debugger::call_info is ', call)
-            sys.stdout.flush()  # 强制刷新输出缓冲区
+            print('debugger::call_info is ', call, end="", flush=True)
             if not call:
-                print("call:%s is null", call_id)
+                print("call:%s is null", call_id, end="", flush=True)
                 return
             device_id = EslEventUtil.getDeviceId(event)
             device = call.device_info_map.get(device_id)
-            print('debugger::device_id is ', device_id)
-            sys.stdout.flush()  # 强制刷新输出缓冲区
+            print('debugger::device_id is ', device_id, end="", flush=True)
             if not device:
-                print("device:%s is null", device_id)
+                print("device:%s is null", device_id, end="", flush=True)
                 return
 
             count = len(call.device_list)
-            print('debugger::ChannelHangupHandler, call_id=%s, device_id=%s, count=%s'% (call_id, device_id, count))
-            sys.stdout.flush()  # 强制刷新输出缓冲区
+            print('debugger::ChannelHangupHandler, call_id=%s, device_id=%s, count=%s'% (call_id, device_id, count), end="", flush=True)
             try:
                 call.device_list.remove(device_id)
             except:
@@ -82,15 +78,14 @@ class ChannelHangupHandler(EslEventHandler):
             if device.record_start_time:
                 device.record_time = int(device.end_time) - int(device.record_start_time)
             call.device_info_map[device.device_id] = device
-            print('debugger::ChannelHangupHandler, hangup_reason=%s, device_type=%s' % (hangup_reason, device.device_type))
+            print('debugger::ChannelHangupHandler, hangup_reason=%s, device_type=%s' % (hangup_reason, device.device_type), end="", flush=True)
             # 如果是转人工
-            sys.stdout.flush()  # 强制刷新输出缓冲区
             if 'transferToAgent' == hangup_reason and DeviceType.ROBOT.code == device.device_type:
                 call.answer_flag = AnswerFlag.TRANSFER_TO_AGENT.code
                 service_id = EslEventUtil.getLIBRAServiceId(event)
                 Cache.add_call_info(call)
+                print('debugger::ChannelHangupHandler, transferToAgent, service_id=%s' % (service_id), end="", flush=True)
                 self.acd_service.transfer_to_agent(call, device, service_id)
-                sys.stdout.flush()  # 强制刷新输出缓冲区
                 return
 
             # 如果有下一步
@@ -108,7 +103,6 @@ class ChannelHangupHandler(EslEventHandler):
             # 判断挂机方向 && 更新缓存
             self.hangup_dir(call, device, cause)
             Cache.add_call_info(call)
-            sys.stdout.flush()  # 强制刷新输出缓冲区
         except:
             traceback.print_exc()