DavidLiu 3 ماه پیش
والد
کامیت
f50a1f7801
3فایلهای تغییر یافته به همراه12 افزوده شده و 17 حذف شده
  1. 3 8
      src/core/callcenter/enumeration.py
  2. 8 8
      src/core/callcenter/esl/handler/channel_answer_handler.py
  3. 1 1
      src/core/callcenter/views.py

+ 3 - 8
src/core/callcenter/enumeration.py

@@ -277,14 +277,9 @@ class DeviceType(Enum):
 
 
 class CallType(Enum):
-    IM = (0, 'IM')
-    INBOUND_CALL = (1, '呼入')
-    AGENT_CALL = (2, '手动外呼')
-    AUTO_CALL = (3, '预测外呼')
-    BOT_CALL = (4, '机器人外呼')
-    BOTH_CALL = (5, '双向外呼')
-    SIP_OUTBOUND_CALL = (6, '硬话机外呼')
-    INNER_CALL = (7, '内呼')
+    AGENT_CALL = (1, '手动外呼')
+    BOT_CALL = (2, '机器人外呼')
+    BOTH_CALL = (3, '双向外呼')
 
     def __init__(self, code=None, description=None):
         self.code = code

+ 8 - 8
src/core/callcenter/esl/handler/channel_answer_handler.py

@@ -41,8 +41,8 @@ class ChannelAnswerHandler(EslEventHandler):
             return
 
 
-        if device_info.device_type == DeviceType.CUSTOMER.code:
-            # self.record(event, device_id)
+        if CallType.AGENT_CALL.code == call_info.call_type and device_info.device_type == DeviceType.CUSTOMER.code:
+            self.record(event, device_id)
             self.push_handler.push_on_ring_start(saas_id=call_info.saas_id, flow_id=call_info.cti_flow_id, user_id=call_info.agent_key, scene=AgentScene.MANUAL, call_id=call_info.call_id)
 
         device_info.answer_time = EslEventUtil.getEventDateTimestamp(event)
@@ -67,10 +67,10 @@ class ChannelAnswerHandler(EslEventHandler):
         device_id = device.device_id
 
         # 启用录音, 生产时候打开
-        # record_url = self.record(event, device_id)
-        # device.record = record_url
-        # device.record_start_time = device.answer_time
-        # self.dataHandleServer.update_record(call_id, {"url": record_url})
+        record_url = self.record(event, device_id)
+        device.record = record_url
+        device.record_start_time = device.answer_time
+        self.dataHandleServer.update_record(call_id, {"url": record_url})
 
         call.direction = Direction.OUTBOUND.code
         call.answer_flag = AnswerFlag.AGENT_ANSWER.code
@@ -102,7 +102,7 @@ class ChannelAnswerHandler(EslEventHandler):
     def call_bridge(self, call: CallInfo, device: DeviceInfo, next_command: NextCommand, event):
         self.logger.info("开始桥接电话: callId:%s, caller:%s, called:%s, device1:%s, device2:%s"% (call.call_id,
                          call.caller, call.called, next_command.device_id, next_command.next_value))
-        # self.record(event, device_id=device.device_id)
+        self.record(event, device_id=device.device_id)
         device1 = call.device_info_map.get(next_command.device_id)
         device2 = call.device_info_map.get(next_command.next_value)
 
@@ -118,7 +118,7 @@ class ChannelAnswerHandler(EslEventHandler):
         # 转接电话 deviceInfo为被转接设备
         from_device_id = next_command.device_id
         device_id = EslEventUtil.getDeviceId(event)
-        # self.record(event, device_id)
+        self.record(event, device_id)
         call.next_commands.append(NextCommand(device_id, NextType.NEXT_TRANSFER_SUCCESS.code, call.device_list[1]))
         self.logger.info("转接电话中 callId:%s, from:%s, to:%s "% (call.call_id, from_device_id, device_id))
         self.inbound_client.transfer_call(device_id, next_command.next_value)

+ 1 - 1
src/core/callcenter/views.py

@@ -177,7 +177,7 @@ def manual_call():
     # ext?: object
     # callId: string
     data = request.get_json()
-    req = AgentCallRequest(saas_id=data.get('saas_id'), call_type=CallType.OUTBOUND_CALL, caller=data.get('caller'),
+    req = AgentCallRequest(saas_id=data.get('saas_id'), call_type=CallType.AGENT_CALL.code, caller=data.get('caller'),
                            agent_id=data.get('agent_id'), called=data.get('called'), cti_flow_id=data.get('ctiFlowId'))
     res = call_service.call(req)
     return success_response(res)