Запрос на звонок через Битрикс. REST
Делаем запрос на звонок через webhook Битрикс. Получаем id запроса. Позже проверяем статус звонка по этому id.
<?
$queryUrl = 'https:
$queryData = http_build_query(array(
'FROM_LINE' => "78123891111",
'TO_NUMBER' => "79111238765",
'TEXT_TO_PRONOUNCE' => "Ваша задолженность равна 999 рублей.",
'VOICE' => "ruinternalmale",
));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
$result = curl_exec($curl);
curl_close($curl);
echo $result;
Проверка статусов звонков.
<?
$queryUrl = 'https:
$queryData = http_build_query(array(
'FILTER' => array("CALL_ID" =>
array("infocall.7286eb453c009df2a0ef0f062ee7fb8a.1559036330",
"infocall.f1241e3127e4d9139c56f68174a5e89b.1559036362")),
));
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
$result = curl_exec($curl);
curl_close($curl);
echo $result;
?>
Аналог в 1С. Обзвон контрагентов.
Процедура ОбзвонКонтрагентовЧерезБитрикс24()
Голос = "ruinternalmale";
результат = ЗапросНаЗвонок("79111238765", "Ваша задолженность равна 999 рублей.", Голос);
Если результат = Истина Тогда
Иначе
КонецЕсли;
КонецПроцедуры
Функция ЗапросНаЗвонок(НомерКонтрагента, ПроговариваемыйТекст, Голос)
соединение = новый HTTPСоединение("mirossa.bitrix24.ru", , , , , , Новый ЗащищенноеСоединениеOpenSSL());
запрос = новый HTTPЗапрос("rest/190/c473xhf2qsfahmxy/voximplant.infocall.startwithtext.json");
текстЗапроса = "FROM_LINE=78123891111&TO_NUMBER=" + НомерКонтрагента + "&TEXT_TO_PRONOUNCE=" + ПроговариваемыйТекст + "&VOICE=" + Голос;
запрос.УстановитьТелоИзСтроки(текстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
ответ = соединение.ОтправитьДляОбработки(запрос);
текстОтвета = ответ.ПолучитьТелоКакСтроку();
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(текстОтвета);
Пока ЧтениеJSON.Прочитать() Цикл
Если ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.ИмяСвойства Тогда
Если ЧтениеJSON.ТекущееЗначение = "RESULT" Тогда
ЧтениеJSON.Прочитать();
Если ЧтениеJSON.ТекущееЗначение = Истина Тогда
ЧтениеJSON.Закрыть();
возврат Истина;
Иначе
ЧтениеJSON.Закрыть();
возврат текстОтвета;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЧтениеJSON.Закрыть();
возврат текстОтвета;
КонецФункции
Функция ПроверкаСтатусовЗвонков(массивCALL_ID)
соединение = новый HTTPСоединение("mirossa.bitrix24.ru", , , , , , Новый ЗащищенноеСоединениеOpenSSL());
запрос = новый HTTPЗапрос("rest/190/c473xhf2qsfahmxy/voximplant.statistic.get.json");
текстЗапроса = "";
сс = -1;
для каждого эл из массивCALL_ID Цикл
сс = сс + 1;
текстЗапроса = текстЗапроса + "FILTER[CALL_ID][" + строка(сс) + "]=" + эл + "&";
КонецЦикла;
текстЗапроса = Сред(текстЗапроса, 1, СтрДлина(текстЗапроса) - 1);
запрос.УстановитьТелоИзСтроки(текстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
ответ = соединение.ОтправитьДляОбработки(запрос);
текстОтвета = ответ.ПолучитьТелоКакСтроку();
возврат Истина;
КонецФункции
Список голосов:
"auenglishfemale" - "Австралийский английский (женский)"
"brportuguesefemale" - "Бразильский португальский (женский)"
"caenglishfemale" - "Канадский английский (женский)"
"cafrenchfemale" - "Канадский французский (женский)"
"cafrenchmale" - "Канадский французский (мужской)"
"chchinesefemale" - "Китайский (женский)"
"chchinesemale" - "Китайский (мужской)"
"eurcatalanfemale" - "Каталонский (женский)"
"eurczechfemale" - "Чешский (женский)"
"eurdanishfemale" - "Датский (женский)"
"eurdutchfemale" - "Голландский (женский)"
"eurfinnishfemale" - "Финский (женский)"
"eurfrenchfemale" - "Французский (женский)"
"eurfrenchmale" - "Французский (мужской)"
"eurgermanfemale" - "Немецкий (женский)"
"eurgermanmale" - "Немецкий (мужской)"
"euritalianfemale" - "Итальянский (женский)"
"euritalianmale" - "Итальянский (мужской)"
"eurnorwegianfemale" - "Норвежский (женский)"
"eurpolishfemale" - "Польский (женский)"
"eurportuguesefemale" - "Португальский (женский)"
"eurportuguesemale" - "Португальский (мужской)"
"eurspanishfemale" - "Испанский (женский)"
"eurspanishmale" - "Испанский (мужской)"
"eurturkishfemale" - "Турецкий (женский)"
"eurturkishmale" - "Турецкий (мужской)"
"hkchinesefemale" - "Гонконгский кантонский (женский)"
"huhungarianfemale" - "Венгерский (женский)"
"jpjapanesefemale" - "Японский (женский)"
"jpjapanesemale" - "Японский (мужской)"
"krkoreanfemale" - "Корейский (женский)"
"krkoreanmale" - "Корейский (мужской)"
"ruinternalfemale" - "Русский (женский)"
"ruinternalmale" - "Русский (мужской)"
"swswedishfemale" - "Шведский (женский)"
"twchinesefemale" - "Тайванский китайский (женский)"
"ukenglishfemale" - "Английский (женский)"
"ukenglishmale" - "Английский (мужской)"
"usenglishfemale" - "Американский английский (женский)"
"usenglishmale" - "Американский английский (мужской)"
"usspanishfemale" - "Американский испанский (женский)"
"usspanishmale" - "Американский испанский (мужской)"
|