twilio project revision
This commit is contained in:
@@ -1594,14 +1594,26 @@ class TWP_Admin {
|
||||
<?php
|
||||
// Get Twilio phone numbers
|
||||
$twilio = new TWP_Twilio_API();
|
||||
$numbers = $twilio->get_phone_numbers();
|
||||
$numbers_result = $twilio->get_phone_numbers();
|
||||
|
||||
if ($numbers['success'] && is_array($numbers['numbers'])) {
|
||||
foreach ($numbers['numbers'] as $number) {
|
||||
echo '<option value="' . esc_attr($number['phone_number']) . '">' . esc_html($number['phone_number']) . '</option>';
|
||||
if ($numbers_result['success'] && isset($numbers_result['data']['incoming_phone_numbers'])) {
|
||||
$numbers = $numbers_result['data']['incoming_phone_numbers'];
|
||||
if (is_array($numbers) && !empty($numbers)) {
|
||||
foreach ($numbers as $number) {
|
||||
echo '<option value="' . esc_attr($number['phone_number']) . '">' . esc_html($number['phone_number']) . '</option>';
|
||||
}
|
||||
} else {
|
||||
echo '<option value="" disabled>No phone numbers found - purchase a number first</option>';
|
||||
}
|
||||
} else {
|
||||
echo '<option value="" disabled>No phone numbers available - purchase a number first</option>';
|
||||
echo '<option value="" disabled>Error loading phone numbers - check API credentials</option>';
|
||||
if (isset($numbers_result['error'])) {
|
||||
echo '<option value="" disabled>Error: ' . esc_html($numbers_result['error']) . '</option>';
|
||||
}
|
||||
// Debug info for troubleshooting
|
||||
if (current_user_can('manage_options') && WP_DEBUG) {
|
||||
echo '<option value="" disabled>Debug: ' . esc_html(json_encode($numbers_result)) . '</option>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
@@ -2944,25 +2956,30 @@ class TWP_Admin {
|
||||
private function initiate_outbound_call_with_from($from_number, $to_number, $agent_phone) {
|
||||
$twilio = new TWP_Twilio_API();
|
||||
|
||||
// Build webhook URL with parameters
|
||||
$webhook_url = home_url('/wp-json/twilio-webhook/v1/outbound-agent-with-from') . '?' . http_build_query(array(
|
||||
'target_number' => $to_number,
|
||||
'agent_user_id' => get_current_user_id(),
|
||||
'from_number' => $from_number
|
||||
));
|
||||
|
||||
// First call the agent
|
||||
$agent_call_result = $twilio->make_call(
|
||||
$agent_phone,
|
||||
home_url('/wp-json/twilio-webhook/v1/outbound-agent-with-from'),
|
||||
array(
|
||||
'target_number' => $to_number,
|
||||
'agent_user_id' => get_current_user_id(),
|
||||
'from_number' => $from_number
|
||||
),
|
||||
$webhook_url,
|
||||
null, // No status callback needed for this
|
||||
$from_number // Use specified from number
|
||||
);
|
||||
|
||||
if ($agent_call_result['success']) {
|
||||
$call_sid = isset($agent_call_result['data']['sid']) ? $agent_call_result['data']['sid'] : null;
|
||||
|
||||
// Set agent to busy
|
||||
TWP_Agent_Manager::set_agent_status(get_current_user_id(), 'busy', $agent_call_result['call_sid']);
|
||||
TWP_Agent_Manager::set_agent_status(get_current_user_id(), 'busy', $call_sid);
|
||||
|
||||
// Log the outbound call
|
||||
TWP_Call_Logger::log_call(array(
|
||||
'call_sid' => $agent_call_result['call_sid'],
|
||||
'call_sid' => $call_sid,
|
||||
'from_number' => $from_number,
|
||||
'to_number' => $to_number,
|
||||
'status' => 'outbound_initiated',
|
||||
@@ -2975,7 +2992,7 @@ class TWP_Admin {
|
||||
))
|
||||
));
|
||||
|
||||
return array('success' => true, 'call_sid' => $agent_call_result['call_sid']);
|
||||
return array('success' => true, 'call_sid' => $call_sid);
|
||||
}
|
||||
|
||||
return array('success' => false, 'error' => $agent_call_result['error']);
|
||||
|
Reference in New Issue
Block a user