fix: Set Contact or Lead for call log

- Set contact or lead to call log on new Contact or Lead creation
diff --git a/erpnext/communication/doctype/call_log/call_log.py b/erpnext/communication/doctype/call_log/call_log.py
index fdbdb63..c9fdfbe 100644
--- a/erpnext/communication/doctype/call_log/call_log.py
+++ b/erpnext/communication/doctype/call_log/call_log.py
@@ -61,4 +61,26 @@
 	employee_emails = [employee.user_id for employee in employees]
 	frappe.cache().hset('employees_with_number', number, employee_emails)
 
-	return employee
\ No newline at end of file
+	return employee
+
+def set_caller_information(doc, state):
+	'''Called from hoooks on creation of Lead or Contact'''
+	if doc.doctype not in ['Lead', 'Contact']: return
+
+	numbers = [doc.get('phone'), doc.get('mobile_no')]
+	for_doc = doc.doctype.lower()
+
+	for number in numbers:
+		if not number: continue
+		print(number)
+		filters = frappe._dict({
+			'from': ['like', '%{}'.format(number.lstrip('0'))],
+			for_doc: ''
+		})
+
+		logs = frappe.get_all('Call Log', filters=filters)
+
+		for log in logs:
+			call_log = frappe.get_doc('Call Log', log.name)
+			call_log.set(for_doc, doc.name)
+			call_log.save(ignore_permissions=True)
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 47d1a68..be9a4fb 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -231,8 +231,12 @@
 	('Sales Invoice', 'Purchase Invoice', 'Delivery Note'): {
 		'validate': 'erpnext.regional.india.utils.set_place_of_supply'
 	},
-	"Contact":{
-		"on_trash": "erpnext.support.doctype.issue.issue.update_issue"
+	"Contact": {
+		"on_trash": "erpnext.support.doctype.issue.issue.update_issue",
+		"after_insert": "erpnext.communication.doctype.call_log.call_log.set_caller_information"
+	},
+	"Lead": {
+		"after_insert": "erpnext.communication.doctype.call_log.call_log.set_caller_information"
 	},
 	"Email Unsubscribe": {
 		"after_insert": "erpnext.crm.doctype.email_campaign.email_campaign.unsubscribe_recipient"