Я использую Twilio в проекте PHP, и у меня возникли небольшие проблемы с выяснением, как его изменить дальше.
В настоящее время рабочий процесс требует отправки начального SMS независимо от статуса вызова. Мне нужно выяснить, как отправить второе сообщение, если на вызов не ответили или он был полностью отклонен.
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require 'vendor/autoload.php';
use Twilio\Twiml;
use Twilio\Rest\Client;
use Twilio\Exceptions\RestException;
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
$caller = $_POST['From'];
$twilioNumber = $_POST['To'];
} else {
$caller = $_GET['From'];
$twilioNumber = $_GET['To'];
}
sendSms( $caller, $twilioNumber );
callTracking( $twilioNumber );
$twilioResponse = new Twiml();
$twilioResponse->play( 'https://www.example.com/welcome.mp3', array( 'loop' => 1 ) );
$dial = $twilioResponse->dial();
$dial->number(
'+15555555555', [
'url' => 'https://www.example.com/example.xml',
'method' => 'GET',
]
);
$twilioResponse->play( 'https://www.example.com/thank-you.mp3', array( 'loop' => 1 ) );
$twilioResponse->hangup();
function sendSms( $toNumber, $fromNumber ) {
$accountSid = 'your_account_sid';
$authToken = 'your_auth_token';
$client = new Client( $accountSid, $authToken );
$messageData = "The message sent at start of call.";
try {
$client->messages->create(
$toNumber,
array(
'from' => $fromNumber,
'body' => $messageData,
)
);
} catch ( RestException $e ) {
if ( $e->getStatusCode() == 21614 ) {
echo "Uh oh, looks like this caller can't receive SMS messages.";
}
}
}
header( 'Content-Type: text/xml' );
echo $twilioResponse;
Любая помощь приветствуется!