|
@@ -6,7 +6,7 @@ import time
|
|
import src.core.callcenter.cache as Cache
|
|
import src.core.callcenter.cache as Cache
|
|
from src.core.callcenter.constant import saasId, HOLD_MUSIC_PATH
|
|
from src.core.callcenter.constant import saasId, HOLD_MUSIC_PATH
|
|
from src.core.callcenter.enumeration import CallCause, Direction, NextType, DeviceType, CdrType
|
|
from src.core.callcenter.enumeration import CallCause, Direction, NextType, DeviceType, CdrType
|
|
-from src.core.callcenter.api import AgentCallRequest, AgentInfo, CallInfo, HangupCallRequest, CheckInCallRequest, \
|
|
|
|
|
|
+from src.core.callcenter.api import AgentCallRequest, CallInfo, HangupCallRequest, CheckInCallRequest, \
|
|
DeviceInfo, NextCommand, MakeCallContext
|
|
DeviceInfo, NextCommand, MakeCallContext
|
|
from src.core.callcenter.esl.constant.sip_header_constant import sipHeaderServiceId
|
|
from src.core.callcenter.esl.constant.sip_header_constant import sipHeaderServiceId
|
|
from src.core.callcenter.snowflake import Snowflake
|
|
from src.core.callcenter.snowflake import Snowflake
|
|
@@ -24,7 +24,8 @@ class CallService:
|
|
device_id = 'D' + self.snowflake.next_id()
|
|
device_id = 'D' + self.snowflake.next_id()
|
|
now = lambda: int(round(time.time() * 1000))
|
|
now = lambda: int(round(time.time() * 1000))
|
|
|
|
|
|
- agent = Cache.get_agent_info(request.agent_id)
|
|
|
|
|
|
+ agent = Cache.get_agent_info(request.saas_id, request.agent_id)
|
|
|
|
+ route_gateway = Cache.get_route_gateway(request.saas_id)
|
|
call_info = CallInfo(call_id=call_id, agent_key=agent.agent_number, cti_host=agent.sip_server,
|
|
call_info = CallInfo(call_id=call_id, agent_key=agent.agent_number, cti_host=agent.sip_server,
|
|
caller=agent.agent_number, called=request.called, direction=Direction.INBOUND,
|
|
caller=agent.agent_number, called=request.called, direction=Direction.INBOUND,
|
|
caller_display=request.caller_display, called_display=request.called_display,
|
|
caller_display=request.caller_display, called_display=request.called_display,
|
|
@@ -56,7 +57,7 @@ class CallService:
|
|
def transfer(self, call_info: CallInfo, agent_number, service_id):
|
|
def transfer(self, call_info: CallInfo, agent_number, service_id):
|
|
caller = call_info.called
|
|
caller = call_info.called
|
|
call_id = call_info.call_id
|
|
call_id = call_info.call_id
|
|
- agent = Cache.get_agent_info(call_info.agent_key)
|
|
|
|
|
|
+ agent = Cache.get_agent_info(call_info.saas_id, call_info.agent_key)
|
|
device_id = 'D' + self.snowflake.next_id()
|
|
device_id = 'D' + self.snowflake.next_id()
|
|
now = lambda: int(round(time.time() * 1000))
|
|
now = lambda: int(round(time.time() * 1000))
|
|
|
|
|
|
@@ -110,5 +111,5 @@ class CallService:
|
|
self.client.hangup_call(call_info.call_id, device, CallCause.RESTART)
|
|
self.client.hangup_call(call_info.call_id, device, CallCause.RESTART)
|
|
|
|
|
|
def checkin_call(self, request: CheckInCallRequest):
|
|
def checkin_call(self, request: CheckInCallRequest):
|
|
- agent = Cache.get_agent_info(request.agent_number)
|
|
|
|
|
|
+ agent = Cache.get_agent_info(request.saas_id, request.agent_number)
|
|
return self.client.show_channel(agent.device_id)
|
|
return self.client.show_channel(agent.device_id)
|