1
0
forked from test/crm

fix: check exotel number

This commit is contained in:
Shariq Ansari 2025-01-15 18:05:24 +05:30
parent 591e126911
commit 49de7c92a5
2 changed files with 23 additions and 2 deletions

View File

@ -9,7 +9,8 @@
"user",
"user_name",
"column_break_hdec",
"mobile_no"
"mobile_no",
"exotel_number"
],
"fields": [
{
@ -41,11 +42,16 @@
"in_list_view": 1,
"in_standard_filter": 1,
"label": "User Name"
},
{
"fieldname": "exotel_number",
"fieldtype": "Data",
"label": "Exotel Number"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2025-01-11 16:20:21.877873",
"modified": "2025-01-15 16:19:21.965415",
"modified_by": "Administrator",
"module": "FCRM",
"name": "CRM Exotel Agent",

View File

@ -66,6 +66,12 @@ def make_a_call(to_number, from_number=None, caller_id=None, link_to_document=No
if not from_number:
from_number = frappe.get_value("CRM Exotel Agent", {"user": frappe.session.user}, "mobile_no")
if not caller_id:
caller_id = frappe.get_value("CRM Exotel Agent", {"user": frappe.session.user}, "exotel_number")
if caller_id and caller_id not in get_all_exophones():
frappe.throw(_("Exotel Number {0} is not valid").format(caller_id), title=_("Invalid Exotel Number"))
if not from_number:
frappe.throw(
_("You do not have mobile number set in your Exotel Agent"), title=_("Mobile Number Missing")
@ -119,6 +125,15 @@ def get_exotel_endpoint(action=None):
)
def get_all_exophones():
endpoint = get_exotel_endpoint("IncomingPhoneNumbers.json")
response = requests.get(endpoint)
return [
phone.get("IncomingPhoneNumber", {}).get("PhoneNumber")
for phone in response.json().get("IncomingPhoneNumbers", [])
]
def get_status_updater_url():
from frappe.utils.data import get_url