Add queue timeout voicemail and Amazon SNS SMS provider support
This update adds two major features: 1. Queue Timeout Voicemail - Callers can now leave voicemail when queue timeout is reached - Configurable per-queue voicemail prompts with TTS support - Automatic transcription and urgent keyword detection - Admin setting to choose between voicemail or callback on timeout 2. Amazon SNS SMS Provider - Alternative SMS provider to Twilio for sending text messages - Useful when Twilio SMS approval is difficult to obtain - Provider abstraction layer allows switching between Twilio/SNS - Full AWS SNS configuration in admin settings - Supports custom sender IDs in compatible countries - Lower cost per SMS compared to Twilio New Files: - includes/class-twp-voicemail-handler.php - Voicemail recording handler - includes/interface-twp-sms-provider.php - SMS provider interface - includes/class-twp-sms-provider-twilio.php - Twilio SMS implementation - includes/class-twp-sms-provider-sns.php - Amazon SNS implementation - includes/class-twp-sms-manager.php - SMS provider abstraction manager - QUEUE_VOICEMAIL_SMS_FEATURES.md - Complete feature documentation Modified Files: - includes/class-twp-call-queue.php - Added voicemail option to timeout handler - includes/class-twp-twilio-api.php - Updated send_sms() to use provider abstraction - admin/class-twp-admin.php - Added SMS provider and timeout action settings - composer.json - Added AWS SDK dependency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -275,49 +275,12 @@ class TWP_Twilio_API {
|
||||
}
|
||||
|
||||
/**
|
||||
* Send SMS
|
||||
* Send SMS (uses configured SMS provider - Twilio or Amazon SNS)
|
||||
*/
|
||||
public function send_sms($to_number, $message, $from_number = null) {
|
||||
try {
|
||||
// Determine the from number
|
||||
$from = $from_number ?: $this->phone_number;
|
||||
|
||||
// Validate we have a from number
|
||||
if (empty($from)) {
|
||||
error_log('TWP SMS Error: No from number available. Please configure SMS notification number in settings.');
|
||||
return [
|
||||
'success' => false,
|
||||
'error' => 'No SMS from number configured. Please set SMS notification number in plugin settings.'
|
||||
];
|
||||
}
|
||||
|
||||
$sms = $this->client->messages->create(
|
||||
$to_number,
|
||||
[
|
||||
'from' => $from,
|
||||
'body' => $message
|
||||
]
|
||||
);
|
||||
|
||||
return [
|
||||
'success' => true,
|
||||
'data' => [
|
||||
'sid' => $sms->sid,
|
||||
'status' => $sms->status,
|
||||
'from' => $sms->from,
|
||||
'to' => $sms->to,
|
||||
'body' => $sms->body,
|
||||
'price' => $sms->price,
|
||||
'priceUnit' => $sms->priceUnit
|
||||
]
|
||||
];
|
||||
} catch (\Twilio\Exceptions\TwilioException $e) {
|
||||
return [
|
||||
'success' => false,
|
||||
'error' => $e->getMessage(),
|
||||
'code' => $e->getCode()
|
||||
];
|
||||
}
|
||||
// Use SMS Manager to handle provider abstraction
|
||||
require_once dirname(__FILE__) . '/class-twp-sms-manager.php';
|
||||
return TWP_SMS_Manager::send_sms($to_number, $message, $from_number);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user