774056846 4 hónapja
szülő
commit
3c350fbedb

+ 2 - 2
src/core/callcenter/acd.py

@@ -5,7 +5,7 @@ from datetime import datetime
 from queue import Queue
 from typing import Dict, Any, Optional
 import src.core.callcenter.cache as Cache
-from src.core.callcenter.agent import AgentService
+from src.core.callcenter.agent import AgentOperService
 from src.core.callcenter.call import CallService
 from src.core.callcenter.api import CallInfo, AgentActionRequest
 from apscheduler.schedulers.background import BackgroundScheduler
@@ -19,7 +19,7 @@ class AcdService:
         self.client = client
         self.logger = logger
         self.call_service = CallService(client, logger)
-        self.agent_service = AgentService(client, logger)
+        self.agent_service = AgentOperService(client, logger)
         self.holdsQueue: Dict[str, Queue] = {}
         self.pool = ThreadPoolExecutor(max_workers=4)
         # checkIdleScheduler = BackgroundScheduler()

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

@@ -102,7 +102,7 @@ class AgentActionRequest(BaseApi):
     """
     坐席操作
     """
-    def __init__(self, saas_id, agent_id, agent_number=None, out_id=None, identity_type=None, scene='manual', service_id=None, **kwargs):
+    def __init__(self, saas_id, agent_id=None, agent_number=None, out_id=None, identity_type=None, scene='manual', service_id=None, **kwargs):
         self.saas_id =saas_id
         # 坐席工号
         self.agent_id = agent_id

+ 2 - 2
src/core/callcenter/esl/utils/esl_event_util.py

@@ -76,8 +76,8 @@ VARIABLE_SIP_LIBRA_CALLID = "variable_sip_h_P-LIBRA-CallId"
 VARIABLE_SIP_LIBRA_IS_LAST_CALL = "variable_sip_h_P-LIBRA-IsLastCall"
 VARIABLE_ORIGINATION_UUID = "variable_origination_uuid"
 VARIABLE_SIP_LIBRA_DEVICE_ID = "variable_sip_h_P-LIBRA-DeviceId"
-VARIABLE_SIP_WHD_HANGUP_REASON = "variable_sip_bye_h_X-CIN-HangUpReason"
-VARIABLE_SIP_WHD_SERVICE_ID = "variable_sip_bye_h_X-CIN-ServiceId"
+VARIABLE_SIP_WHD_HANGUP_REASON = "variable_sip_bye_h_P-LIBRA-HangUpReason"
+VARIABLE_SIP_WHD_SERVICE_ID = "variable_sip_bye_h_P-LIBRA-ServiceId"
 VARIABLE_SIP_H_P_LIBRA_IS_EAVESDROP = "variable_sip_h_P-LIBRA-is-eavesdrop"
 
 BRIDGE_A_UNIQUE_ID = "Bridge-A-Unique-ID"

+ 11 - 4
src/core/voip/bot.py

@@ -361,8 +361,8 @@ class MyCall(pj.Call):
             self.agent.hangup(self.user_part)
         elif action_code == 'transfer':  # 转人工
             print('todo 转人工')
-            sip_headers = {'bye_h_X-CIN-HangUpReason':'transferToAgent'}
-            self.agent.hangup(self.user_part, sip_headers=sip_headers)
+            sip_headers = {'P-LIBRA-HangUpReason':'transferToAgent', 'P-LIBRA-ServiceId':'00000000000000000'}
+            self.agent.hangup(self.user_part, **sip_headers)
 
 class ToTextBotAgent:
     def __init__(self, user_asr_text, call_agent):
@@ -551,8 +551,15 @@ class BotAgent:
         call_op_param = pj.CallOpParam(True)
         call_op_param.statusCode = pj.PJSIP_SC_OK
         call_op_param.reason = reason
-        for k, v in sip_headers:
-            call_op_param.headers.append(pj.SipHeader(f"sip_h_{k}", v))
+        call_op_param.txOption = pj.SipTxOption()
+        sip_header_vector = pj.SipHeaderVector()
+        for k, v in sip_headers.items():
+            _sip_header = pj.SipHeader()
+            _sip_header.hName = str(k)
+            _sip_header.hValue = str(v)
+            print('hangup, header_name=%s, header_value=%s' % (k, v))
+            sip_header_vector.push_back(_sip_header)
+        call_op_param.txOption.headers = sip_header_vector
         acc = self.accounts.get(user_part)
         if acc:
             for k, v in acc.calls.items():