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 042632f69..768ca5a0c 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/exotel/handler.py b/crm/integrations/exotel/handler.py index add2267c3..6629570dd 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 diff --git a/crm/integrations/twilio/api.py b/crm/integrations/twilio/api.py index 0df049ae6..7437177a3 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 2d6b7df1f..35394b0bc 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}