Преобразование текста в речь Nexmo прерывается, когда ответы - PullRequest
0 голосов
/ 28 ноября 2018

Я перевожу текст в речь в своем приложении, используя пакет Nexmo composer.СМС работает хорошо, но есть проблема с сервисом T2S.Когда я отправляю запрос, он звонит мне, но когда я нажимаю «Ответить», он завершает звонок.Вот пример json, который добавляется в вызов T2S:

[ "{ "action": "talk", 
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut ligula nec quam pulvinar rn bibendum. Sed nisi ipsum, pretium tempor bibendum vel, condimentum ut erat. Vivamus sagittis, rn mi eget tincidunt laoreet, diam ligula euismod nisi, sit amet maximus ipsum arcu facilisis erat. rn Donec sed efficitur enim. Phasellus sagittis pulvinar semper. Pellentesque quis nibh sed neque rn maximus sodales. Morbi vel ornare elit. ", 
"voiceName": "Salli" }" ]

Я также пробую с этим:

{ "action": "talk", 
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut ligula nec quam pulvinar rn bibendum. Sed nisi ipsum, pretium tempor bibendum vel, condimentum ut erat. Vivamus sagittis, rn mi eget tincidunt laoreet, diam ligula euismod nisi, sit amet maximus ipsum arcu facilisis erat. rn Donec sed efficitur enim. Phasellus sagittis pulvinar semper. Pellentesque quis nibh sed neque rn maximus sodales. Morbi vel ornare elit. ", 
"voiceName": "Salli" }

, но ни один не работает.

Вот примеротправить мне вызов и сделать файл в S3, который Nexmo будет читать:

$json_file = str_random(16).'.json';

        $data = [
            'action' => 'talk',
            'text' => $event->notification->content.' '.$event->arrived_in,
            'voiceName' => 'Salli'
        ];

        $newJsonString = json_encode($data, JSON_PRETTY_PRINT);

        $this->flysystem->connection('awss3');
        $this->flysystem->write('call_cleanup_notifications/'.$json_file, stripslashes($newJsonString));

        $basic  = new Basic(getenv('NEXMO_KEY'), getenv('NEXMO_SECRET'));

        $this->flysystem->connection('awss3');
        $key = $this->flysystem->read('application.key');

        $keypair = new Keypair($key, getenv('NEXMO_APPLICATION_ID'));

        $client = new Client(new Container($basic, $keypair));
$client->calls()->create([
            'to' => [[
                'type' => 'phone',
                'number' => $event->cleanupUserChanel->home_phone_number
            ]],
            'from' => [
                'type' => 'phone',
                'number' => getenv('NEXMO_SMS_FROM')
            ],
            'answer_url' => [getenv('GATEWAY_API_URL').'/notification_call/'.$json_file],
        ]);

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Вот решение для создания этого файла J2 T2S в правильном формате:

            $json_file = str_random(16) . '.json';
            $data[] = (object) [
                'action' => 'talk',
                'text' => "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
                'voiceName' => 'Salli'
            ];
//save file in file system using flysystem composer package
            $this->flysystem->write($json_file, json_encode($data,JSON_PRETTY_PRINT));
0 голосов
/ 28 ноября 2018

Я думаю, что вы достаточно близки с этим первым примером, но NCCO не совсем корректный JSON.В начале, после [, удалите кавычку " до того, как объект начнется с {.(затем сделайте то же самое в конце, удалите последнюю кавычку перед ]. Надеюсь, это поможет!

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