fix: call status fix
diff --git a/erpnext/erpnext_integrations/exotel_integration.py b/erpnext/erpnext_integrations/exotel_integration.py
index 167fcb7..c4f6636 100644
--- a/erpnext/erpnext_integrations/exotel_integration.py
+++ b/erpnext/erpnext_integrations/exotel_integration.py
@@ -33,10 +33,23 @@
@frappe.whitelist(allow_guest=True)
def handle_missed_call(**kwargs):
- update_call_log(kwargs, 'Missed')
+ status = ""
+ CallType = kwargs.get("CallType")
+ DialCallStatus = kwargs.get("DialCallStatus")
+
+ if CallType == "incomplete" and DialCallStatus == "no-answer":
+ status = 'No Answer'
+ elif CallType == "client-hangup" and DialCallStatus == "canceled":
+ status = 'Canceled'
+
+ update_call_log(kwargs, status)
def update_call_log(call_payload, status='Ringing', call_log=None):
call_log = call_log or get_call_log(call_payload)
+
+ # for a new sid, call_log and get_call_log will be empty so create a new log
+ if not call_log:
+ call_log = create_call_log(call_payload)
if call_log:
call_log.status = status
call_log.to = call_payload.get('DialWhomNumber')