Отправка Voice (звонок)
Voice-сообщения позволяют отправлять клиентам сервисную информацию голосовым сообщением или сделать автоматический обзвон по базе клиентов.
Отправка Voice осуществляется через общий метод отправки сообщений POST /api/message
.
Пример запроса для отправки Voice:
- cURL
- PHP
- Node.js
- Python
curl -X POST "https://cp.redsms.ru/api/message" \
-H "login: <USERNAME>" \
-H "ts: ts-value-42" \
-H "secret: $(echo -n 'ts-value-42<API_KEY>' | md5sum | awk '{print $1}')" \
-H "Content-type: application/json" \
-d '{
"route": "voice",
"from": "<VOICE_SENDER_NAME>",
"to": "+79993332211",
"text": "Ваш код авторизации - 0 8 3 5. Повторяю - 0 8 3 5"
}'
# В OSX вместо команды md5sum необходимо использовать команду md5
$login = '<USERNAME>';
$ts = 'ts-value-' . time();
$api_key = '<API_KEY>';
$secret = md5($ts . $api_key);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://cp.redsms.ru/api/message');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'login: ' . $login,
'ts: ' . $ts,
'secret: ' . $secret,
'Content-type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'route' => 'voice',
'from' => '<VOICE_SENDER_NAME>',
'to' => '+79993332211',
'text' => 'Ваш код авторизации - 0 8 3 5. Повторяю - 0 8 3 5'
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
$response_data = json_decode($response);
// print_r($info['http_code']);
// print_r($response_data);
const https = require('https');
const crypto = require('crypto');
const login = '<USERNAME>';
const ts = `ts-value-${Date.now()}`;
const apiKey = '<API_KEY>';
const secret = crypto.createHash('md5').update(ts + apiKey).digest('hex');
(new Promise((resolve, reject) => {
const body = JSON.stringify({
route: 'voice',
from: '<VOICE_SENDER_NAME>',
to: '+79993332211',
text: 'Ваш код авторизации - 0 8 3 5. Повторяю - 0 8 3 5',
});
const request = https.request(
{
method: 'POST',
host: 'cp.redsms.ru',
path: '/api/message',
headers: {
login,
ts,
secret,
'Content-Length': Buffer.byteLength(body),
'Content-Type': 'application/json',
},
},
(response) => {
const buffers = [];
response.on('error', reject);
response.on('data', (buffer) => buffers.push(buffer));
response.on('end', () => {
const responseBody = Buffer.concat(buffers).toString();
const responseData = JSON.parse(responseBody);
if (response.statusCode !== 200) {
return reject(responseData);
}
resolve(responseData);
));
},
);
request.write(body);
request.end();
}))
.then(console.log)
.catch(console.error);
import hashlib
import json
import requests
import time
login = '<USERNAME>'
ts = unicode(time.time())
api_key = '<API_KEY>'
secret = hashlib.md5((ts + api_key).encode()).hexdigest()
headers = {
'login': login,
'ts': ts,
'secret': secret,
'Content-type': 'application/json',
}
data = {
'route': 'voice',
'from': '<VOICE_SENDER_NAME>',
'to': '+79993332211',
'text': 'Ваш код авторизации - 0 8 3 5. Повторяю - 0 8 3 5'
}
r = requests.post('https://cp.redsms.ru/api/message', headers=headers, data=json.dumps(data))
# print(r.status_code)
# print(r.text)
Вы можете найти доступные значения для имени отправителя Voice <VOICE_SENDER_NAME>
в личном кабинете в разделе «Имена отправителей».
Пример тела ответа:
{
"items": [
{
"uuid": "0f9a4cfa-8bed-11ee-94af-0242c0a86496",
"status": "created",
"status_time": 1703956078,
"to": "+79993332211"
}
],
"errors": [],
"count": 1,
"success": true
}
Тарификация
Тарификация звонков посекундная. Оплачиваются только прослушанные секунды, но не менее 5 секунд. Количество прослушанных секунд указывается в поле parts_count
.
По умолчанию происходит тарификация за максимально возможное количество секунд (по длине аудиодорожки). В случае, если пользователь принял звонок, в поле parts_count
будет указано фактическое количество прослушанных секунд (не менее 5), а разница в стоимости будет возвращена на баланс.
Параметры синтеза речи
Вы можете использовать параметры voice_voice
, voice_speed
и voice_emotion
для изменения аудиодорожки звонка.
Пример запроса Voice с параметрами синтеза речи:
- cURL
- PHP
- Node.js
- Python
curl -X POST "https://cp.redsms.ru/api/message" \
-H "login: <USERNAME>" \
-H "ts: ts-value-42" \
-H "secret: $(echo -n 'ts-value-42<API_KEY>' | md5sum | awk '{print $1}')" \
-H "Content-type: application/json" \
-d '{
"route": "voice",
"from": "<VOICE_SENDER_NAME>",
"voice_voice": "jane",
"voice_speed": 0.9,
"voice_emotion": "good",
"to": "+79993332211",
"text": "Ваш код авторизации - 0 8 3 5. Повторяю - 0 8 3 5"
}'
# В OSX вместо команды md5sum необходимо использовать команду md5
$login = '<USERNAME>';
$ts = 'ts-value-' . time();
$api_key = '<API_KEY>';
$secret = md5($ts . $api_key);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://cp.redsms.ru/api/message');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'login: ' . $login,
'ts: ' . $ts,
'secret: ' . $secret,
'Content-type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'route' => 'voice',
'from' => '<VOICE_SENDER_NAME>',
'voice_voice' => 'jane',
'voice_speed' => 0.9,
'voice_emotion' => 'good',
'to' => '+79993332211',
'text' => 'Ваш код авторизации - 0 8 3 5. Повторяю - 0 8 3 5'
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
$response_data = json_decode($response);
// print_r($info['http_code']);
// print_r($response_data);
const https = require('https');
const crypto = require('crypto');
const login = '<USERNAME>';
const ts = `ts-value-${Date.now()}`;
const apiKey = '<API_KEY>';
const secret = crypto.createHash('md5').update(ts + apiKey).digest('hex');
(new Promise((resolve, reject) => {
const body = JSON.stringify({
route: 'voice',
from: '<VOICE_SENDER_NAME>',
voice_voice: 'jane',
voice_speed: 0.9,
voice_emotion: 'good',
to: '+79993332211',
text: 'Ваш код авторизации - 0 8 3 5. Повторяю - 0 8 3 5',
});
const request = https.request(
{
method: 'POST',
host: 'cp.redsms.ru',
path: '/api/message',
headers: {
login,
ts,
secret,
'Content-Length': Buffer.byteLength(body),
'Content-Type': 'application/json',
},
},
(response) => {
const buffers = [];
response.on('error', reject);
response.on('data', (buffer) => buffers.push(buffer));
response.on('end', () => {
const responseBody = Buffer.concat(buffers).toString();
const responseData = JSON.parse(responseBody);
if (response.statusCode !== 200) {
return reject(responseData);
}
resolve(responseData);
));
},
);
request.write(body);
request.end();
}))
.then(console.log)
.catch(console.error);
import hashlib
import json
import requests
import time
login = '<USERNAME>'
ts = unicode(time.time())
api_key = '<API_KEY>'
secret = hashlib.md5((ts + api_key).encode()).hexdigest()
headers = {
'login': login,
'ts': ts,
'secret': secret,
'Content-type': 'application/json',
}
data = {
'route': 'voice',
'from': '<VOICE_SENDER_NAME>',
'voice_voice': 'jane',
'voice_speed': 0.9,
'voice_emotion': 'good',
'to': '+79993332211',
'text': 'Ваш код авторизации - 0 8 3 5. Повторяю - 0 8 3 5'
}
r = requests.post('https://cp.redsms.ru/api/message', headers=headers, data=json.dumps(data))
# print(r.status_code)
# print(r.text)
Варианты голоса voice_voice
Значение | Пол | Пример аудиодорожки |
---|---|---|
alyss | 👩 женский | |
erkanyavas | 👨 мужской | |
ermil | 👨 мужской | |
jane | 👩 женский | |
oksana |