From 1273d14c3642eb5b8637acc616827d410fb3aed4 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Thu, 23 Jan 2025 16:51:20 +0530 Subject: [PATCH 1/2] fix: update receiver while updating call log --- crm/integrations/exotel/handler.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crm/integrations/exotel/handler.py b/crm/integrations/exotel/handler.py index add2267c..6629570d 100644 --- a/crm/integrations/exotel/handler.py +++ b/crm/integrations/exotel/handler.py @@ -277,6 +277,12 @@ def update_call_log(call_payload, status="Ringing", call_log=None): call_log.recording_url = call_payload.get("RecordingUrl") call_log.start_time = call_payload.get("StartTime") call_log.end_time = call_payload.get("EndTime") + + if direction == "incoming": + call_log.receiver = call_payload.get("AgentEmail") + else: + call_log.caller = frappe.session.user + call_log.save(ignore_permissions=True) frappe.db.commit() return call_log From 6b23b29a6af88d99cabadf4283c6e4c9c93d071c Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Thu, 23 Jan 2025 22:26:18 +0530 Subject: [PATCH 2/2] fix: renamed Twilio Agents to CRM Telephony Agent in code --- .../crm_telephony_agent/crm_telephony_agent.json | 11 ++++++++++- crm/integrations/twilio/api.py | 4 ++-- crm/integrations/twilio/twilio_handler.py | 4 +++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/crm/fcrm/doctype/crm_telephony_agent/crm_telephony_agent.json b/crm/fcrm/doctype/crm_telephony_agent/crm_telephony_agent.json index 042632f6..768ca5a0 100644 --- a/crm/fcrm/doctype/crm_telephony_agent/crm_telephony_agent.json +++ b/crm/fcrm/doctype/crm_telephony_agent/crm_telephony_agent.json @@ -14,6 +14,7 @@ "section_break_ozjn", "twilio", "twilio_number", + "call_receiving_device", "column_break_aydj", "exotel", "exotel_number", @@ -100,11 +101,19 @@ "fieldtype": "Select", "label": "Default Medium", "options": "\nTwilio\nExotel" + }, + { + "default": "Computer", + "depends_on": "twilio", + "fieldname": "call_receiving_device", + "fieldtype": "Select", + "label": "Device", + "options": "Computer\nPhone" } ], "index_web_pages_for_search": 1, "links": [], - "modified": "2025-01-19 14:17:12.880185", + "modified": "2025-01-23 22:24:53.448716", "modified_by": "Administrator", "module": "FCRM", "name": "CRM Telephony Agent", diff --git a/crm/integrations/twilio/api.py b/crm/integrations/twilio/api.py index 0df049ae..7437177a 100644 --- a/crm/integrations/twilio/api.py +++ b/crm/integrations/twilio/api.py @@ -21,7 +21,7 @@ def generate_access_token(): if not twilio: return {} - from_number = frappe.db.get_value("Twilio Agents", frappe.session.user, "twilio_number") + from_number = frappe.db.get_value("CRM Telephony Agent", frappe.session.user, "twilio_number") if not from_number: return { "ok": False, @@ -40,7 +40,7 @@ def voice(**kwargs): def _get_caller_number(caller): identity = caller.replace("client:", "").strip() user = Twilio.emailid_from_identity(identity) - return frappe.db.get_value("Twilio Agents", user, "twilio_number") + return frappe.db.get_value("CRM Telephony Agent", user, "twilio_number") args = frappe._dict(kwargs) twilio = Twilio.connect() diff --git a/crm/integrations/twilio/twilio_handler.py b/crm/integrations/twilio/twilio_handler.py index 2d6b7df1..35394b0b 100644 --- a/crm/integrations/twilio/twilio_handler.py +++ b/crm/integrations/twilio/twilio_handler.py @@ -162,7 +162,9 @@ def get_twilio_number_owners(phone_number): # keep + sign in the number at start of the number phone_number = "".join([c for c in phone_number if c.isdigit() or c == "+"]) user_voice_settings = frappe.get_all( - "Twilio Agents", filters={"twilio_number": phone_number}, fields=["name", "call_receiving_device"] + "CRM Telephony Agent", + filters={"twilio_number": phone_number}, + fields=["name", "call_receiving_device"], ) user_wise_voice_settings = {user["name"]: user for user in user_voice_settings}