Cuando trato de pasar el parámetro de mi aplicación usando el método [TwilioVoice Call], no puedo obtener esos parámetros en la aplicación twiML. pero cuando trato de pasar los mismos datos de POSTMAN con FormData, funciona bien y también puedo crear una llamada con éxito.

¿Podría ayudarme cómo puedo usar param pasado de mi aplicación de iOS a twiML?

Aplicación TwiML en PHP:

<?php
/*
 * Makes a call to the specified client using the Twilio REST API.
 */
include('./vendor/autoload.php');
include('./config.php');
$to = isset($_GET["to"]) ? $_GET["to"] : "";
if (!isset($to) || empty($to)) {
    $to = isset($POST["to"]) ? $_POST["to"] : "";
}
$from = isset($_GET["from"]) ? $_GET["from"] : "";
if (!isset($from) || empty($from)) {
    $from = isset($POST["from"]) ? $_POST["from"] : "";
}

use Twilio\Twiml;
$response = new Twiml();
$dial = $response->dial(['callerId' => $from]);
$dial->client($to);
echo $response;

Objetivo C de iOS:

self.call = [TwilioVoice call:[self fetchAccessToken]
                           params:@{@"to": @"1",@"from":@"2"}
                             uuid:uuid
                         delegate:self];

Registro de errores de Twilio cuando intento pasar un parámetro desde iOS

Advertencia: marcación 13224: Twilio no admite llamadas a este número o el número no es válido

enter image description here

Código de aplicación TwiML de referencia

https://github.com/twilio/voice-quickstart-server-php

0
PinkeshGjr 23 feb. 2018 a las 09:50

2 respuestas

La mejor respuesta

Twilio desarrolladora evangelista aquí.

El error 12100 proviene de que Twilio no puede analizar el TwiML devuelto por su servidor. En este caso, se debe a que su PHP no devuelve TwiML, está intentando realizar una llamada utilizando la API REST.

Debería devolver un <Dial> con un <Client>. También puede construir esto usando la biblioteca auxiliar. Intente cambiar su código a esto:

<?php
    include('./vendor/autoload.php');
    include('./config.php');

    $to = isset($_REQUEST["To"]) ? $_REQUEST["To"] : "";
    $to = str_replace("client:", "", $to);

    $from = isset($_REQUEST["From"]) ? $_REQUEST["From"] : "";

    use Twilio\Twiml;

    $response = new Twiml();
    $dial = $response->dial(['callerId' => $from]);
    $dial->client($to);

    echo $response;

Avísame si eso ayuda.

1
philnash 26 feb. 2018 a las 06:38

Paso 1. En el nombre tienes que pasar el nombre del usuario (lo que quieras)

Paso 2. Necesitas generar token usando 3 parámetros

Paso 3. Necesitas crear un objeto de VoiceGrant

Paso 4. Necesitas pasar una identificación

Paso 5. Necesita configurar el ID de notificación PUSH generado desde twilio

$name = $this->input->post('name');
            //$PUSH_CREDENTIAL_SID = 'CRaf1a66dd4a7656876e16c7820ef5c01e';
             $outgoingApplicationSid = 'APf9b1b789ba690b8789d95a42511f2018';
              // choose a random username for the connecting user
             $identity = $name;
             // Create access token, which we will serialize and send to the client


             $token = new AccessToken(
             $this->twilioAccountSid,
             $this->twilioApiKey,
             $this->twilioApiSecret,
             3600,
             $identity
              );
          //     $chatGrant = new ChatGrant( $pushCredentialSid= "CRaf1a66dd4a7656876e16c7820ef5c01e");
          //
          // print_r($chatGrant);die;
             // Create Chat grant
             // $voiceGrant = new VoiceGrant($serviceSid = 'IS840a7e5f64634ab6bf179c3f8b0adfc4',$pushCredentialSid = 'CRaf1a66dd4a7656876e16c7820ef5c01e');
             $voiceGrant = new VoiceGrant();
             $voiceGrant->setOutgoingApplicationSid($outgoingApplicationSid);

             // Optional: add to allow incoming calls
             $voiceGrant->setIncomingAllow(true);

             $voiceGrant->setPushCredentialSid('CRaf1a66dd4a7656876e16c7820ef5c01e');


             // Add grant to token
             $token->addGrant($voiceGrant);

             // render token to string
            $voice_token = $token->toJWT();
             if($voice_token){
                $data['token'] = $voice_token;
                 $this->response = array('status'=>1,'data'=>$data);
             }else{
                 $this->response = array('status'=>0,'message'=>'Not found');
             }
0
mechnicov 30 mar. 2019 a las 11:07