|
@@ -31,26 +31,26 @@ class ChannelHangupHandler(EslEventHandler):
|
|
self.logger.info(json.loads(event.serialize('json')))
|
|
self.logger.info(json.loads(event.serialize('json')))
|
|
try:
|
|
try:
|
|
call_id = EslEventUtil.getCallId(event)
|
|
call_id = EslEventUtil.getCallId(event)
|
|
- self.logger.info('debugger::call_id is %s', call_id)
|
|
|
|
|
|
+ self.logger.info('call_id is %s', call_id)
|
|
if not call_id:
|
|
if not call_id:
|
|
self.release(event)
|
|
self.release(event)
|
|
self.logger.info("call_id is null")
|
|
self.logger.info("call_id is null")
|
|
return
|
|
return
|
|
call = self.cache.get_call_info(call_id)
|
|
call = self.cache.get_call_info(call_id)
|
|
- self.logger.info('debugger::call_info is %s', call)
|
|
|
|
|
|
+ self.logger.info('call_info is %s', call)
|
|
if not call:
|
|
if not call:
|
|
self.logger.info("call:%s is null", call_id)
|
|
self.logger.info("call:%s is null", call_id)
|
|
return
|
|
return
|
|
device_id = EslEventUtil.getDeviceId(event)
|
|
device_id = EslEventUtil.getDeviceId(event)
|
|
device_id = device_id if device_id else EslEventUtil.getUniqueId(event)
|
|
device_id = device_id if device_id else EslEventUtil.getUniqueId(event)
|
|
device = call.device_info_map.get(device_id)
|
|
device = call.device_info_map.get(device_id)
|
|
- # self.logger.info('debugger::device_id is ', device_id)
|
|
|
|
|
|
+ # self.logger.info('device_id is ', device_id)
|
|
if not device:
|
|
if not device:
|
|
self.logger.info("device:%s is null", device_id)
|
|
self.logger.info("device:%s is null", device_id)
|
|
return
|
|
return
|
|
|
|
|
|
count = len(call.device_list)
|
|
count = len(call.device_list)
|
|
- self.logger.info('lwdebugger::ChannelHangupHandler, call_id=%s, device_id=%s, count=%s'% (call_id, device_id, count))
|
|
|
|
|
|
+ self.logger.info('ChannelHangupHandler, call_id=%s, device_id=%s, count=%s'% (call_id, device_id, count))
|
|
try:
|
|
try:
|
|
call.device_list.remove(device_id)
|
|
call.device_list.remove(device_id)
|
|
except:
|
|
except:
|
|
@@ -87,14 +87,14 @@ class ChannelHangupHandler(EslEventHandler):
|
|
# 更新通话记录
|
|
# 更新通话记录
|
|
# self.dataHandleServer.update_record(call_id, {"time_end": datetime.fromtimestamp(int(device.end_time)),"times":device.talk_time})
|
|
# self.dataHandleServer.update_record(call_id, {"time_end": datetime.fromtimestamp(int(device.end_time)),"times":device.talk_time})
|
|
|
|
|
|
- self.logger.info('debugger::ChannelHangupHandler, hangup_reason=%s, device_type=%s, cdr_type=%s, end_time=%s, skip_hangup_all=%s' % (hangup_reason, device.device_type, device.cdr_type, call.end_time, skip_hangup_all))
|
|
|
|
|
|
+ self.logger.info('ChannelHangupHandler, hangup_reason=%s, device_type=%s, cdr_type=%s, end_time=%s, skip_hangup_all=%s' % (hangup_reason, device.device_type, device.cdr_type, call.end_time, skip_hangup_all))
|
|
# 如果是转人工
|
|
# 如果是转人工
|
|
# if 'transferToAgent' == hangup_reason and DeviceType.ROBOT.code == device.device_type:
|
|
# if 'transferToAgent' == hangup_reason and DeviceType.ROBOT.code == device.device_type:
|
|
# call.answer_flag = AnswerFlag.TRANSFER_TO_AGENT.code
|
|
# call.answer_flag = AnswerFlag.TRANSFER_TO_AGENT.code
|
|
# service_id = EslEventUtil.getLIBRAServiceId(event)
|
|
# service_id = EslEventUtil.getLIBRAServiceId(event)
|
|
# call.transfer_agent = True
|
|
# call.transfer_agent = True
|
|
# self.cache.add_call_info(call)
|
|
# self.cache.add_call_info(call)
|
|
- # self.logger.info('debugger::ChannelHangupHandler, transferToAgent, service_id=%s' % (service_id))
|
|
|
|
|
|
+ # self.logger.info('ChannelHangupHandler, transferToAgent, service_id=%s' % (service_id))
|
|
# self.acd_service.transfer_to_agent(call, device_id, service_id)
|
|
# self.acd_service.transfer_to_agent(call, device_id, service_id)
|
|
# return
|
|
# return
|
|
|
|
|
|
@@ -106,6 +106,7 @@ class ChannelHangupHandler(EslEventHandler):
|
|
# 一般情况下,挂断其他所有设备
|
|
# 一般情况下,挂断其他所有设备
|
|
if device.cdr_type <= 4 and not call.end_time and not skip_hangup_all:
|
|
if device.cdr_type <= 4 and not call.end_time and not skip_hangup_all:
|
|
call.end_time = device.end_time
|
|
call.end_time = device.end_time
|
|
|
|
+ self.logger.info("liuwei::debugger::hang_all, call_info:%s, device_info:%s"%(call,device))
|
|
self.call_service.hangup_all(call, CallCause.HANGUP_EVENT)
|
|
self.call_service.hangup_all(call, CallCause.HANGUP_EVENT)
|
|
# self.inbound_client.hangup_call(call_id, device_id, CallCause.HANGUP_EVENT)
|
|
# self.inbound_client.hangup_call(call_id, device_id, CallCause.HANGUP_EVENT)
|
|
|
|
|