Данный интерфейс используется в качестве результата функции VoipParseWebhookRequest и определяет производимые системой действия по результатам запроса на вебхук модуля телефонии.

Hierarchy

  • VoipWebhookParseResult

Properties

Optional callRecord

callRecord: VoipCallRecord

Информация о записи звонка.

Если это поле заполнено, то система сохранит запись звонка в ленту связанного элемента приложения. Данные из этого поля используются системой для отображения виджета прослушивания записи звонка в ленте элемента.

async function VoipParseWebhookRequest(request: FetchRequest): Promise<VoipWebhookParseResult> {
    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.callLink; // Получаем данные, которые были сохранены в VoipParseWebhookRequest.
}

Optional event

Событие телефонии. Если это поле заполнено, то система отобразит уведомления о звонке связанным пользователям.

async function VoipParseWebhookRequest(request: FetchRequest): Promise<VoipWebhookParseResult> {
   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

response: HttpResponse

Если поле заполнено, то клиенту, который выполняет запрос на вебхук, отправляется HTTP-ответ.

async function VoipParseWebhookRequest(request: FetchRequest): Promise<VoipWebhookParseResult> {
    return {
        response: new HttpResponse()
            .status(400)
            .content('Hello, world!'),
    };
}