Twilio - Отправить SMS, если вызов отклонен или не принят - PullRequest
0 голосов
/ 03 августа 2020

Я использую 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;

Любая помощь приветствуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...