feat: Add Call Log, Communication Medium, Communication Medium Timeslot doctype
diff --git a/erpnext/communication/doctype/call_log/__init__.py b/erpnext/communication/doctype/call_log/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/communication/doctype/call_log/__init__.py
diff --git a/erpnext/communication/doctype/call_log/call_log.js b/erpnext/communication/doctype/call_log/call_log.js
new file mode 100644
index 0000000..0018516
--- /dev/null
+++ b/erpnext/communication/doctype/call_log/call_log.js
@@ -0,0 +1,8 @@
+// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Call Log', {
+	// refresh: function(frm) {
+
+	// }
+});
diff --git a/erpnext/communication/doctype/call_log/call_log.json b/erpnext/communication/doctype/call_log/call_log.json
new file mode 100644
index 0000000..0da5970
--- /dev/null
+++ b/erpnext/communication/doctype/call_log/call_log.json
@@ -0,0 +1,86 @@
+{
+ "autoname": "call_id",
+ "creation": "2019-06-05 12:07:02.634534",
+ "doctype": "DocType",
+ "engine": "InnoDB",
+ "field_order": [
+  "call_id",
+  "call_from",
+  "column_break_3",
+  "received_by",
+  "section_break_5",
+  "call_status",
+  "call_duration",
+  "call_summary"
+ ],
+ "fields": [
+  {
+   "fieldname": "call_id",
+   "fieldtype": "Data",
+   "label": "Call ID",
+   "read_only": 1
+  },
+  {
+   "fieldname": "call_from",
+   "fieldtype": "Data",
+   "label": "Call From",
+   "read_only": 1
+  },
+  {
+   "fieldname": "column_break_3",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "received_by",
+   "fieldtype": "Data",
+   "label": "Received By",
+   "read_only": 1
+  },
+  {
+   "fieldname": "section_break_5",
+   "fieldtype": "Section Break"
+  },
+  {
+   "fieldname": "call_status",
+   "fieldtype": "Select",
+   "label": "Call Status",
+   "options": "Ringing\nIn Progress\nMissed",
+   "read_only": 1
+  },
+  {
+   "description": "Call Duration in seconds",
+   "fieldname": "call_duration",
+   "fieldtype": "Int",
+   "label": "Call Duration",
+   "read_only": 1
+  },
+  {
+   "fieldname": "call_summary",
+   "fieldtype": "Data",
+   "label": "Call Summary",
+   "read_only": 1
+  }
+ ],
+ "modified": "2019-06-05 12:08:55.527178",
+ "modified_by": "Administrator",
+ "module": "Communication",
+ "name": "Call Log",
+ "owner": "Administrator",
+ "permissions": [
+  {
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "System Manager",
+   "share": 1,
+   "write": 1
+  }
+ ],
+ "sort_field": "modified",
+ "sort_order": "ASC",
+ "track_changes": 1
+}
\ No newline at end of file
diff --git a/erpnext/communication/doctype/call_log/call_log.py b/erpnext/communication/doctype/call_log/call_log.py
new file mode 100644
index 0000000..fcca0e4
--- /dev/null
+++ b/erpnext/communication/doctype/call_log/call_log.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+# import frappe
+from frappe.model.document import Document
+
+class CallLog(Document):
+	pass
diff --git a/erpnext/communication/doctype/call_log/test_call_log.py b/erpnext/communication/doctype/call_log/test_call_log.py
new file mode 100644
index 0000000..dcc982c
--- /dev/null
+++ b/erpnext/communication/doctype/call_log/test_call_log.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+# import frappe
+import unittest
+
+class TestCallLog(unittest.TestCase):
+	pass
diff --git a/erpnext/communication/doctype/communication_medium/__init__.py b/erpnext/communication/doctype/communication_medium/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/communication/doctype/communication_medium/__init__.py
diff --git a/erpnext/communication/doctype/communication_medium/communication_medium.js b/erpnext/communication/doctype/communication_medium/communication_medium.js
new file mode 100644
index 0000000..e37cd5b
--- /dev/null
+++ b/erpnext/communication/doctype/communication_medium/communication_medium.js
@@ -0,0 +1,8 @@
+// Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Communication Medium', {
+	// refresh: function(frm) {
+
+	// }
+});
diff --git a/erpnext/communication/doctype/communication_medium/communication_medium.json b/erpnext/communication/doctype/communication_medium/communication_medium.json
new file mode 100644
index 0000000..f009b38
--- /dev/null
+++ b/erpnext/communication/doctype/communication_medium/communication_medium.json
@@ -0,0 +1,81 @@
+{
+ "autoname": "Prompt",
+ "creation": "2019-06-05 11:48:30.572795",
+ "doctype": "DocType",
+ "engine": "InnoDB",
+ "field_order": [
+  "communication_medium_type",
+  "catch_all",
+  "column_break_3",
+  "provider",
+  "disabled",
+  "timeslots_section",
+  "timeslots"
+ ],
+ "fields": [
+  {
+   "fieldname": "communication_medium_type",
+   "fieldtype": "Select",
+   "in_list_view": 1,
+   "label": "Communication Medium Type",
+   "options": "Voice\nEmail\nChat",
+   "reqd": 1
+  },
+  {
+   "description": "If there is no assigned timeslot, then communication will be handled by this group",
+   "fieldname": "catch_all",
+   "fieldtype": "Link",
+   "label": "Catch All",
+   "options": "Employee Group"
+  },
+  {
+   "fieldname": "column_break_3",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "provider",
+   "fieldtype": "Link",
+   "label": "Provider",
+   "options": "Supplier"
+  },
+  {
+   "default": "0",
+   "fieldname": "disabled",
+   "fieldtype": "Check",
+   "label": "Disabled"
+  },
+  {
+   "fieldname": "timeslots_section",
+   "fieldtype": "Section Break",
+   "label": "Timeslots"
+  },
+  {
+   "fieldname": "timeslots",
+   "fieldtype": "Table",
+   "label": "Timeslots",
+   "options": "Communication Medium Timeslot"
+  }
+ ],
+ "modified": "2019-06-05 11:49:30.769006",
+ "modified_by": "Administrator",
+ "module": "Communication",
+ "name": "Communication Medium",
+ "owner": "Administrator",
+ "permissions": [
+  {
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "System Manager",
+   "share": 1,
+   "write": 1
+  }
+ ],
+ "sort_field": "modified",
+ "sort_order": "ASC",
+ "track_changes": 1
+}
\ No newline at end of file
diff --git a/erpnext/communication/doctype/communication_medium/communication_medium.py b/erpnext/communication/doctype/communication_medium/communication_medium.py
new file mode 100644
index 0000000..f233da0
--- /dev/null
+++ b/erpnext/communication/doctype/communication_medium/communication_medium.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+# import frappe
+from frappe.model.document import Document
+
+class CommunicationMedium(Document):
+	pass
diff --git a/erpnext/communication/doctype/communication_medium/test_communication_medium.py b/erpnext/communication/doctype/communication_medium/test_communication_medium.py
new file mode 100644
index 0000000..fc5754f
--- /dev/null
+++ b/erpnext/communication/doctype/communication_medium/test_communication_medium.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+# import frappe
+import unittest
+
+class TestCommunicationMedium(unittest.TestCase):
+	pass
diff --git a/erpnext/communication/doctype/communication_medium_timeslot/__init__.py b/erpnext/communication/doctype/communication_medium_timeslot/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/communication/doctype/communication_medium_timeslot/__init__.py
diff --git a/erpnext/communication/doctype/communication_medium_timeslot/communication_medium_timeslot.json b/erpnext/communication/doctype/communication_medium_timeslot/communication_medium_timeslot.json
new file mode 100644
index 0000000..b278ca0
--- /dev/null
+++ b/erpnext/communication/doctype/communication_medium_timeslot/communication_medium_timeslot.json
@@ -0,0 +1,56 @@
+{
+ "creation": "2019-06-05 11:43:38.897272",
+ "doctype": "DocType",
+ "editable_grid": 1,
+ "engine": "InnoDB",
+ "field_order": [
+  "day_of_week",
+  "from_time",
+  "to_time",
+  "employee_group"
+ ],
+ "fields": [
+  {
+   "fieldname": "day_of_week",
+   "fieldtype": "Select",
+   "in_list_view": 1,
+   "label": "Day of Week",
+   "options": "Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday",
+   "reqd": 1
+  },
+  {
+   "columns": 2,
+   "fieldname": "from_time",
+   "fieldtype": "Time",
+   "in_list_view": 1,
+   "label": "From Time",
+   "reqd": 1
+  },
+  {
+   "columns": 2,
+   "fieldname": "to_time",
+   "fieldtype": "Time",
+   "in_list_view": 1,
+   "label": "To Time",
+   "reqd": 1
+  },
+  {
+   "fieldname": "employee_group",
+   "fieldtype": "Link",
+   "in_list_view": 1,
+   "label": "Employee Group",
+   "options": "Employee Group",
+   "reqd": 1
+  }
+ ],
+ "istable": 1,
+ "modified": "2019-06-05 12:19:59.994979",
+ "modified_by": "Administrator",
+ "module": "Communication",
+ "name": "Communication Medium Timeslot",
+ "owner": "Administrator",
+ "permissions": [],
+ "sort_field": "modified",
+ "sort_order": "ASC",
+ "track_changes": 1
+}
\ No newline at end of file
diff --git a/erpnext/communication/doctype/communication_medium_timeslot/communication_medium_timeslot.py b/erpnext/communication/doctype/communication_medium_timeslot/communication_medium_timeslot.py
new file mode 100644
index 0000000..d68d2d6
--- /dev/null
+++ b/erpnext/communication/doctype/communication_medium_timeslot/communication_medium_timeslot.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+# import frappe
+from frappe.model.document import Document
+
+class CommunicationMediumTimeslot(Document):
+	pass