feat: Open modal in realtime for incoming call
diff --git a/erpnext/crm/call_summary/call_summary_utils.py b/erpnext/crm/call_summary/call_summary_utils.py
index 822fb3e..0b6131f 100644
--- a/erpnext/crm/call_summary/call_summary_utils.py
+++ b/erpnext/crm/call_summary/call_summary_utils.py
@@ -2,8 +2,10 @@
@frappe.whitelist()
def get_contact_doc(phone_number):
- contacts = frappe.get_all('Contact', filters={
- 'phone': phone_number
+ phone_number = phone_number[-10:]
+ contacts = frappe.get_all('Contact', or_filters={
+ 'phone': ['like', '%{}%'.format(phone_number)],
+ 'mobile_no': ['like', '%{}%'.format(phone_number)]
}, fields=['*'])
if contacts:
diff --git a/erpnext/crm/call_summary/exotel_call_handler.py b/erpnext/crm/call_summary/exotel_call_handler.py
new file mode 100644
index 0000000..82c925d
--- /dev/null
+++ b/erpnext/crm/call_summary/exotel_call_handler.py
@@ -0,0 +1,12 @@
+import frappe
+
+@frappe.whitelist(allow_guest=True)
+def handle_request(*args, **kwargs):
+ r = frappe.request
+
+ payload = r.get_data()
+
+ print(r.args.to_dict())
+ print(payload)
+
+ frappe.publish_realtime('incoming_call', r.args.to_dict())
\ No newline at end of file
diff --git a/erpnext/public/js/call_summary_dialog.js b/erpnext/public/js/call_summary_dialog.js
index c4c6d48..17bf7b9 100644
--- a/erpnext/public/js/call_summary_dialog.js
+++ b/erpnext/public/js/call_summary_dialog.js
@@ -1,6 +1,6 @@
-frappe.call_summary_dialog = class {
+class CallSummaryDialog {
constructor(opts) {
- this.number = '+91234444444';
+ this.number = opts.number;
this.make();
}
@@ -15,10 +15,18 @@
if (!res) {
this.$modal_body.html('Unknown Contact');
} else {
- this.$modal_body.html(`${res.first_name}`);
+ this.$modal_body.append(`${frappe.utils.get_form_link('Contact', res.name, true)}`)
}
});
d.show();
}
+}
-};
\ No newline at end of file
+$(document).on('app_ready', function() {
+ frappe.realtime.on('incoming_call', data => {
+ const number = data.CallFrom;
+ frappe.call_summary_dialog = new CallSummaryDialog({
+ number
+ });
+ });
+});