Доступ к записям из кода
Обновлено
Получить локальный MP3
Серверный метод плагина:
crmEwcrmbeelinePlugin::getRecordFile(int $call_id): ?stringАргумент — ID звонка CRM, не идентификатор Билайна. Результат — абсолютный путь к MP3 или null, если доступной записи нет либо загрузка завершилась ошибкой.
Пример для серверного кода, где $call_id уже получен из CRM:
wa('crm')->getPlugin('ewcrmbeeline');
$path = crmEwcrmbeelinePlugin::getRecordFile((int) $call_id);
if ($path !== null) {
// Передайте файл своему обработчику.
}Метод возвращает существующий файл либо скачивает запись, если её состояние позволяет загрузку по требованию: «есть у Билайна», «скачано», а для удалённой по сроку записи — только при режиме загрузки по требованию. Записи, которые ещё ждут фоновой проверки или получили конечную ошибку, метод не обрабатывает.
Проверки прав пользователя внутри getRecordFile() нет. Вызывающий серверный код должен сам проверить доступ к звонку перед выдачей содержимого пользователю. Штатное прослушивание в CRM выполняет такую проверку отдельно.
Получить ссылку Билайна
Класс crmEwcrmbeelinePluginTelephony реализует стандартный метод телефонии CRM:
getRecordUrl($plugin_call_id, $plugin_record_id)Его использует в том числе метод API CRM crm.call.recordUrl. Здесь $plugin_record_id — ID записи в таблице плагина, а не ID звонка CRM. Метод получает ссылку непосредственно у Билайна; она отличается от защищённого локального проигрывателя и зависит от наличия записи у оператора. Срок её действия задаётся Билайном.
События CRM
События отправляются в контексте приложения crm. Другой плагин CRM может зарегистрировать обработчики в своей конфигурации:
'handlers' => [
'ewcrmbeeline_record_downloaded' => 'onBeelineRecordDownloaded',
'ewcrmbeeline_transcript_ready' => 'onBeelineTranscriptReady',
],Соответствующие методы обработчиков нужно реализовать в классе своего плагина.
| Событие | Когда отправляется | Параметры |
|---|---|---|
ewcrmbeeline_record_downloaded |
После успешного сохранения скачанного MP3 и обновления записи в базе | call_id — ID звонка CRM; record_id — ID записи плагина; path — абсолютный путь к MP3 |
ewcrmbeeline_transcript_ready |
После сохранения готовых реплик и краткого содержания в премиуме | call_id — ID звонка CRM; speech_record_id — ID записи речевой аналитики |
Повторное скачивание файла также вызывает ewcrmbeeline_record_downloaded. Обработчик должен учитывать возможность повторной обработки одного звонка. Текст расшифровки в параметры ewcrmbeeline_transcript_ready не входит.