Данный интерфейс используется в качестве результата функции VoipParseWebhookRequest и определяет производимые
системой действия по результатам запроса на вебхук модуля телефонии.
Если это поле заполнено, то система сохранит запись звонка в ленту связанного элемента приложения.
Данные из этого поля используются системой для отображения виджета прослушивания записи звонка
в ленте элемента. Ссылка на запись разговора и его длительность также сохранятся в карточке звонка
в разделе Телефония.
asyncfunctionVoipParseWebhookRequest(request: FetchRequest): Promise<VoipWebhookParseResult> {
if (typeof request.body !== 'string') {
return {};
}
const data = JSON.parse(request.body);
return {
callRecord: {
srcPhone: data.srcPhone,
dstPhone: data.dstPhone,
direction: VoipCallDirection.In,
duration: data.duration,
// Данные из этого поля будут доступны в функции VoipGetCallLink.call: {
link: data.callLink,
},
disposition: VoipCallDisposition.Answered,
}
};
}
asyncfunctionVoipGetCallLink(callData: any): Promise<string> {
return callData.link; // Получаем данные, которые были сохранены в VoipParseWebhookRequest.
}
Если это поле заполнено, пользователь, которому позвонили или который инициировал исходящий звонок,
увидит карточку звонка. В разделе Телефония будет
создан или обновлён элемент приложения Звонок с информацией об этом звонке.
Результат парсинга сообщения с вебхука
Данный интерфейс используется в качестве результата функции
VoipParseWebhookRequestи определяет производимые системой действия по результатам запроса на вебхук модуля телефонии.Hierarchy
Properties
Optional callRecord
Информация о записи звонка.
Если это поле заполнено, то система сохранит запись звонка в ленту связанного элемента приложения. Данные из этого поля используются системой для отображения виджета прослушивания записи звонка в ленте элемента. Ссылка на запись разговора и его длительность также сохранятся в карточке звонка в разделе Телефония.
async function VoipParseWebhookRequest(request: FetchRequest): Promise<VoipWebhookParseResult> { if (typeof request.body !== 'string') { return {}; } const data = JSON.parse(request.body); return { callRecord: { srcPhone: data.srcPhone, dstPhone: data.dstPhone, direction: VoipCallDirection.In, duration: data.duration, // Данные из этого поля будут доступны в функции VoipGetCallLink. call: { link: data.callLink, }, disposition: VoipCallDisposition.Answered, } }; } async function VoipGetCallLink(callData: any): Promise<string> { return callData.link; // Получаем данные, которые были сохранены в VoipParseWebhookRequest. }Optional event
Событие телефонии.
Если это поле заполнено, пользователь, которому позвонили или который инициировал исходящий звонок, увидит карточку звонка. В разделе Телефония будет создан или обновлён элемент приложения Звонок с информацией об этом звонке.
async function VoipParseWebhookRequest(request: FetchRequest): Promise<VoipWebhookParseResult> { if (typeof request.body !== 'string') { return {}; } const data = JSON.parse(request.body); return { event: { event: VoipWebhookEvent.NotifyStart, direction: VoipCallDirection.In, dstPhone: data.dstPhone, srcPhone: data.srcPhone, disposition: VoipCallDisposition.Unknown, } }; }Optional response
Если поле заполнено, то клиенту, который выполняет запрос на вебхук, отправляется HTTP-ответ.
async function VoipParseWebhookRequest(request: FetchRequest): Promise<VoipWebhookParseResult> { return { response: new HttpResponse() .status(400) .content('Hello, world!'), }; }