twilio project revision
This commit is contained in:
@@ -1061,28 +1061,51 @@ class TWP_Webhooks {
|
||||
* Handle outbound agent with from number webhook
|
||||
*/
|
||||
public function handle_outbound_agent_with_from($request) {
|
||||
$params = $request->get_params();
|
||||
$target_number = isset($params['target_number']) ? $params['target_number'] : '';
|
||||
$from_number = isset($params['from_number']) ? $params['from_number'] : '';
|
||||
$agent_call_sid = isset($params['CallSid']) ? $params['CallSid'] : '';
|
||||
try {
|
||||
$params = $request->get_params();
|
||||
|
||||
// Get parameters from query string or POST body
|
||||
$target_number = $request->get_param('target_number') ?: '';
|
||||
$from_number = $request->get_param('from_number') ?: '';
|
||||
$agent_call_sid = $request->get_param('CallSid') ?: '';
|
||||
|
||||
// Log parameters for debugging
|
||||
error_log('TWP Outbound Webhook - Target: ' . $target_number . ', From: ' . $from_number . ', CallSid: ' . $agent_call_sid);
|
||||
error_log('TWP Outbound Webhook - All params: ' . print_r($params, true));
|
||||
|
||||
if ($target_number && $from_number) {
|
||||
// Create TwiML to call the target number with the specified from number
|
||||
$twiml = '<?xml version="1.0" encoding="UTF-8"?>';
|
||||
$twiml .= '<Response>';
|
||||
$twiml .= '<Say voice="alice">Connecting your outbound call...</Say>';
|
||||
$twiml .= '<Dial callerId="' . esc_attr($from_number) . '" timeout="30">';
|
||||
$twiml .= '<Number>' . esc_html($target_number) . '</Number>';
|
||||
$twiml .= '</Dial>';
|
||||
$twiml .= '<Say voice="alice">The number you called is not available. Please try again later.</Say>';
|
||||
$twiml .= '</Response>';
|
||||
|
||||
return $this->send_twiml_response($twiml);
|
||||
} else {
|
||||
// Enhanced error message with debugging info
|
||||
$error_msg = 'Unable to process outbound call.';
|
||||
if (empty($target_number)) {
|
||||
$error_msg .= ' Missing target number.';
|
||||
}
|
||||
if (empty($from_number)) {
|
||||
$error_msg .= ' Missing from number.';
|
||||
}
|
||||
|
||||
error_log('TWP Outbound Error: ' . $error_msg . ' Params: ' . json_encode($params));
|
||||
|
||||
$twiml = '<?xml version="1.0" encoding="UTF-8"?>';
|
||||
$twiml .= '<Response><Say voice="alice">' . esc_html($error_msg) . '</Say><Hangup/></Response>';
|
||||
return $this->send_twiml_response($twiml);
|
||||
}
|
||||
|
||||
if ($target_number && $from_number) {
|
||||
// Create TwiML to call the target number with the specified from number
|
||||
$twiml = new \Twilio\TwiML\VoiceResponse();
|
||||
$twiml->say('Connecting your outbound call...', ['voice' => 'alice']);
|
||||
|
||||
$dial = $twiml->dial([
|
||||
'callerId' => $from_number, // Use the specified from number as caller ID
|
||||
'timeout' => 30
|
||||
]);
|
||||
$dial->number($target_number);
|
||||
|
||||
// If no answer, leave a message
|
||||
$twiml->say('The number you called is not available. Please try again later.', ['voice' => 'alice']);
|
||||
|
||||
return $this->send_twiml_response($twiml->asXML());
|
||||
} else {
|
||||
$twiml = '<Response><Say voice="alice">Unable to process outbound call.</Say><Hangup/></Response>';
|
||||
} catch (Exception $e) {
|
||||
error_log('TWP Outbound Webhook Exception: ' . $e->getMessage());
|
||||
$twiml = '<?xml version="1.0" encoding="UTF-8"?>';
|
||||
$twiml .= '<Response><Say voice="alice">Technical error occurred. Please try again.</Say><Hangup/></Response>';
|
||||
return $this->send_twiml_response($twiml);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user