- Главная
- /
- Статья
Многопользовательские партнеры Webex Calling (MT) могут настроить веб-хук для сбора записей Webex Calling для всех ваших клиентов. Это обеспечивает эффективную сверку счетов, аналитику и отчетность без необходимости запрашивать каждого клиента по отдельности.
Обзор
Веб-хук Detailed Call Records предлагает безопасное, масштабируемое и надежное решение, основанное на событиях, а не на запросах. Этот веб-хук позволяет лучше отслеживать Webex Calling действия ваших клиентов и поддерживает различные варианты использования: от выставления счетов до составления индивидуальных отчетов.
Вы можете использовать этот веб-хук для удобного сбора данных по всем клиентам, управление которыми осуществляется через Partner Hub, без запроса каждого клиента по отдельности. Этот веб-хук позволяет разрабатывать настраиваемые приложения для составления отчетов, выставления счетов и аналитики, отвечающие как внутренним бизнес-требованиям , так и предоставляющим дополнительные услуги.
Ознакомиться с веб-хуком и сопутствующими API можно в этом API-интерфейсе Vidcast: Webex Calling Partner Detailed Call History.
Что дает партнерский веб-хук
Веб-хук предоставляет подробную историю звонков каждые 5 минут. Каждый полезный материал для вебхука содержит :
- Записи звонков, которые закончились за 10—5 минут до текущего времени.
- Любые поздние записи, обработанные Webex Calling облаком.
- Автоматически заполняет записи о просроченных звонках в последующие полезные данные Webhook для обеспечения надежной доставки.
Чтобы показать, как записи звонков включаются в каждую полезную нагрузку, рассмотрим следующий пример:
- Полезная информация, полученная в 14:05, содержит вызовы, закончившиеся с 13:55 до 14:00.
- Звонки, заканчивающиеся с 14:00 до 14:05, включаются в полезную нагрузку 14:10.
- Записи, выполненные ранее (например, звонок, закончившийся в 14:04), но обработанные в Webex Calling облаке с опозданием (например, в 14:11), включаются в следующую запланированную полезную нагрузку (например, 14:15).
Веб-хуки надежно доставляют записи. Однако при воспроизведении записей системой при определенных условиях вы можете получить дубликаты записей в последующих загрузках Webhook. Вы несете ответственность за дедупликацию записей. Чтобы идентифицировать дубликаты записей, используйте поле ReportID в качестве первичного ключа и поле ReportTime , чтобы определить, когда звонок был завершен или обработан. Используйте эти поля для обновления или вставки записей во внутренние хранилища данных.
Веб-хук в Центре партнеров
Предоставляя веб-хук, вы позволяете аналитической платформе отправлять записи звонков на ваш URL-адрес обратного вызова при каждом их создании.
Webex Callingзаписи доставляются в том же формате, что и существующие API-интерфейсы подробных записей вызовов. Можно настроить веб-хук и выбрать один из двух типов лент:
- Аналитика — включает все записи звонков по всем организациям-клиентам, с которыми сотрудничает партнер. Webex Calling Сюда входят организации, в которых:
- Партнер управляет организацией клиентов, исполняя роль полноправного администратора партнера.
- У организации-заказчика есть активная Webex Calling подписка в партнерской организации.
- Выставление счетов — включает записи звонков пользователей с Webex Calling лицензией, проданной и предоставленной партнером. Записи звонков для Workspaces включены в эту ленту.
Доступ и конфиденциальность данных
Только партнер-владелец может получить доступ к подробным записям звонков (CDR) для выставления счетов.
- Партнер (или субпартнер), управляющий лицензией, связанной с записью телефонных разговоров, становится партнером-владельцем.
- Право собственности определяется следующим образом: идентификатор пользователя > идентификатор лицензии > идентификатор подписки > идентификатор партнера.
- Каждый CDR доступен только одному партнеру.
- Некоторые записи о звонках не связаны с партнером по выставлению счетов, и не все партнеры, связанные с организацией, имеют равный доступ ко всем записям, поскольку эти записи могут содержать личную информацию (PII).
Настройте URL-адрес обратного вызова Webhook
Настройте веб-хук в Центре партнеров. Для каждой партнерской организации можно настроить только один веб-хук.
Убедитесь, что у вас есть роль полноправного администратора с правами полного администратора в организации, а доступ включен в Control Hub (в разделе Управление > выберите полного администратора или полноправного администратора партнера, а затем выберите Роли администраторов > Партнер).
Те же требования к доступу действуют при использовании API-интерфейсов согласования и учета партнеров.
| 1 |
Войдите в Центр партнеров. |
| 2 |
Перейдите в .
|
| 3 |
Введите URL-адрес для использования в разделе Webhook. URL-адрес должен заканчиваться символом /webhook (например, https://yourdomain.com/webhook).
|
| 4 |
Если вы хотите аутентифицировать полезные данные веб-хука с помощью секретного токена, вы можете добавить его. Дополнительные сведения о веб-хуках и секретных токенах Webex см. в разделе Webex для разработчиков: веб-хуки. |
| 5 |
Выберите один из следующих типов ресурсов для использования в веб-хуке:
|
Конечные точки API партнеров
В дополнение к веб-хуку Webex Calling предоставляет конечные точки API для поддержки сверки данных. Эти конечные точки позволяют наверстать упущенное или сопоставить хранилища данных с недостающими записями, которые, возможно, не получил ваш прослушиватель Webhook. Двумя конечными точками API являются API согласования и API записей.
Записи из этих API доступны в течение 30 дней. Чтобы вы получили все ожидаемые записи, мы рекомендуем периодически сверять ваши хранилища записей, например, каждые 12 или 24 часа.
Для доступа к этим API необходимо использовать токен партнерского доступа. Аутентифицирующийся пользователь должен быть полноправным администратором-партнером с полным доступом на уровне администратора организации и иметь доступ к Webex Calling CDR API. Токен OAuth должен включать область действия. spark-admin:calling_cdr_read Ролей администраторов, доступных только для чтения, недостаточно для API согласования данных и учета партнеров.
Используйте analytics-callingконечную точку в качестве области Webex Calling данных организации-заказчика. Используйте соответствующий базовый URL-адрес для API «Согласование» и «Записи»:
- США и Канада:
https://analytics-calling.webexapis.com - Европа:
https://analytics-calling-eu.webexapis.com - Индия:
https://analytics-calling-in.webexapis.com - Австралия:
https://analytics-calling-au.webexapis.com
Диапазоны окон API применимы к обеим конечным точкам, что позволяет лучше справляться с нагрузкой на сервисы.
- Для временных диапазонов, превышающих 48 часов, максимально допустимая продолжительность окна составляет 12 часов (обязательно).
- Для идентификатора организации-партнера скорость использования API ограничена одним первоначальным запросом API в минуту на каждый объем токенов. При использовании разбиения на страницы допускается до 10 дополнительных запросов API с разбивкой на страницы в минуту на каждый токен, которые можно выполнить сразу после первоначального запроса.
Конечная точка API сверки
Конечная точка API примирения возвращает общее количество записей звонков, созданных для каждого клиента, управляемого партнером в течение указанного периода времени. Эти данные можно использовать для проверки локального хранилища и выявления отсутствующих или противоречивых записей звонков конкретных клиентов.
Требования к доступу: аутентифицирующийся пользователь должен быть администратором-партнером с полным доступом на уровне администратора и иметь доступ к Webex CallingCDR API. Токен доступа должен включать spark-admin:calling_cdr_readобласть действия.
Если вы управляете более чем 200 организациями-клиентами, API разбивает результаты на страницы, чтобы улучшить читаемость.
URL-адрес конечной точки API согласования используется в следующем формате:
https://analytics-calling.webexapis.com/v1/partners/cdrcountbyorg?endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z
Параметры API
Вы можете использовать API для получения записей о звонках за последние 30 дней. Выбранное вами временное окно должно начинаться как минимум за 5 минут до текущего времени UTC и не должно превышать 12 часов между началом и окончанием одного вызова API.
Параметры API:
-
StartTime (обязательно, строка) — дата и время начала (UTC) первой записи, которую вы хотите собрать. Убедитесь, что:
- Вы форматируете время следующим образом
YYYY-MM-DDTHH:MM:SS.mmmZ. Например,2025-08-15T06:00:00.000Z.
- Дата и время начала не должны превышать 30 дней с текущего времени UTC.
- Интервал между ними
startTimeи неendTimeможет превышать 12 часов.
- Вы форматируете время следующим образом
-
EndTime (обязательно, строка) — дата и время окончания (UTC) записей, которые вы хотите собрать. Записи основаны на времени отчета, то есть на момент завершения вызова. Убедитесь, что:
- Вы форматируете время следующим образом
YYYY-MM-DDTHH:MM:SS.mmmZ. Например,2025-08-15T18:00:00.000Z. - Дата и время окончания должны быть указаны за 5 минут до текущего времени UTC и не старше 30 дней.
- Дата и время окончания должны быть больше
startTime. - Промежуток
startTimeмежду ними неendTimeможет превышать 12 часов.
- Вы форматируете время следующим образом
Пример JSON-ответа конечной точки API примирения:
{
"cdr_counts": [
{
"orgId": "zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
"count": 3009
},
{
"orgId": "yyyyyyyy-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
"count": 129
},
{
"orgId": "xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
"count": 27895
}
]
}
Заголовки ответов API указывают общее количество возвращенных организаций и наличие дополнительных страниц. Проверьте следующие параметры заголовка, чтобы убедиться, что вы запросили все страницы:
- количество страниц: общее количество страниц (например, 2)
- total-orgs: общее количество организаций, включенных в ответ (например, 283)
- текущая страница: номер текущей страницы (например, 1)
Например, если в заголовках указано num-pages=2, total-orgs=283 и current-page=1, вы просматриваете первую страницу двухстраничного ответа, содержащего в общей сложности 283 организации. Чтобы перейти на следующую страницу, добавьте параметр page=2 в запрос GET, как показано ниже:
https://analytics-calling.webexapis.com/v1/partners/cdrcountbyorg?endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z&page=2
Записывает конечную точку API
Конечная точка Records API используется для запроса недостающих записей вызовов в определенных организациях, в которых расхождения или недостающие данные были обнаружены с помощью API согласования.
Рекомендуемый порядок действий: /v1/partners/cdrcountbyorgсначала позвоните. Затем используйте точное значение, orgIdкоторое было cdr_counts[].orgIdполучено при звонке /v1/partners/cdrsbyorg.
API Records возвращает записи вызовов в формате JSON, идентичном формату, описанному в API подробной истории вызовов. Возвращенная полезная нагрузка содержит те же поля, что и возвращаемая полезная нагрузка «Подробная история вызовов». Дополнительные сведения о полях и их значениях см. в разделе Webex CallingПодробный отчет об истории вызовов.
API предоставляет записи вызовов, которые закончились за 5 минут до текущего времени. Чтобы обеспечить доступность всех записей звонков, мы рекомендуем запрашивать API через час после выбранного временного интервала.
URL-адрес конечной точки Records API используется в следующем формате:
https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z
Параметры API
-
orgId(обязательно, строка) — идентификатор организации клиента, для которой вы хотите получить записи. Имя параметра чувствительно к регистру букв. Идентификаторы организаций можно получить в поле ответа API примиренияcdr_counts[].orgId. -
StartTime (обязательно, строка) — дата и время начала (UTC) первой записи, которую вы хотите собрать. Убедитесь, что:
- Вы форматируете время следующим образом
YYYY-MM-DDTHH:MM:SS.mmmZ. Например,2025-08-15T06:00:00.000Z. - Дата и время начала не должны превышать 30 дней с текущего времени UTC.
- Интервал между
startTimeи неendTimeдолжен превышать 12 часов в одном запросе API.
- Вы форматируете время следующим образом
-
EndTime (обязательно, строка) — дата и время окончания (UTC) последней записи, которую вы хотите собрать. Записи основаны на времени отчета, то есть на момент завершения вызова. Убедитесь, что:
- Вы форматируете время следующим образом
YYYY-MM-DDTHH:MM:SS.mmmZ. Например,2025-08-15T18:00:00.000Z. - Дата и время окончания должны быть указаны как минимум за 5 минут до текущего времени UTC и не старше 30 дней.
- Дата и время окончания должны быть больше
startTime. - Интервал между
startTimeи неendTimeдолжен превышать 12 часов в одном запросе API.
- Вы форматируете время следующим образом
-
max (необязательно, число) — ограничивает максимальное количество записей на странице ответа. Убедитесь, что:
- Диапазон значений — от 500 до 5000. Значение по умолчанию равно 5000. Например,
max=1000. - Если API содержит больше возвращаемых записей, чем указано максимальное значение, ответ разбивается на страницы.
- Если указано значение ниже 500, оно автоматически корректируется до 500. Если указано значение выше 5000, оно уменьшается до 5000.
- Диапазон значений — от 500 до 5000. Значение по умолчанию равно 5000. Например,
Разбивка на страницы
Чтобы определить, разбиты ли ответы API на страницы, проверьте заголовки ответов на наличие заголовка Link. Если nextссылка присутствует в заголовке «Ссылка», извлеките ее и используйте startTimeForNextFetchзначение для запроса следующего набора записей. Если следующей ссылки нет, будут собраны все отчеты за выбранный временной диапазон.
Запросы API к последующим страницам можно отправлять немедленно, но частота запросов, разбитых на страницы, должна составлять не более 10 запросов в минуту в зависимости от объема токена.
Используйте идемпотентную обработку и дедупликацию при извлечении записей, в том числе в ответах, разбитых на страницы, или в повторяющихся окнах сверки. Используйте в reportIdкачестве первичного ключа и reportTimeдля определения последней обработанной записи.
Например, если первоначальный запрос API выглядит следующим образом:
https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=2025-08-15T18:00:00.000Z&startTime=2025-08-15T06:00:00.000Z&max=5000
тогда заголовок Link в ответе выглядит так:
<https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=2025-08-15T18:00:00.000Z&startTime=2025-08-15T06:00:00.000Z&startTimeForNextFetch=2025-08-15T09:30:00.000Z&totalCount=20000&max=5000>; rel="next"
При разбиении на страницы используется только заголовок rel="next"Link. Если ответ содержит rel="next"ссылку, используйте этот URL-адрес для получения следующей страницы записей. Если в ответе нет rel="next"ссылки, значит, вы получили все доступные записи за выбранный временной диапазон.
Разбивка страниц в этом API соответствует стандарту RFC5988 (веб-ссылки). Дополнительные сведения см. в разделе Основы REST API.
Изучите коды ответов конечных точек API
В этом разделе представлен обзор распространенных кодов ответов, которые могут возникнуть при работе с конечной точкой API согласования и конечной точкой Records API. Эти конечные точки играют важную роль в синхронизации, проверке данных и составлении отчетов. Понимание этих кодов ответов необходимо для эффективного устранения неполадок и обеспечения надежной и стабильной интеграции.
|
Код ответа |
Описание кода ответа |
|---|---|
|
200 |
OK |
|
400 |
Неверный запрос: запрос недействителен или не может быть обработан иным образом. Дополнительное объяснение будет приведено в сопутствующем сообщении об ошибке. |
|
401 |
Несанкционировано: учетные данные для аутентификации отсутствовали или неверны. |
|
403 |
Запрещено: запрос понят, но в нем отказано или доступ запрещен. |
|
404 |
Не найден: запрошенный URI недействителен или запрошенный ресурс, например пользователь, не существует. Также возвращается, если запрошенный формат не поддерживается запрошенным методом. |
|
405 |
Метод не разрешен: запрос к ресурсу был отправлен с использованием метода HTTP-запроса, который не поддерживается. |
|
409 |
Конфликт: запрос не удалось обработать из-за того, что он противоречит некоторому установленному правилу системы. Например, человека нельзя добавлять в комнату более одного раза. |
|
410 |
Исчезло: запрошенный ресурс больше не доступен. |
|
415 |
Неподдерживаемый тип носителя. Запрос был отправлен ресурсу без указания типа носителя или использовался неподдерживаемый тип носителя. |
|
423 |
Заблокировано: запрошенный ресурс временно недоступен. Возможно, присутствует заголовок Retry-After, указывающий, сколько секунд нужно подождать, прежде чем повторять запрос. |
|
428 |
Обязательное условие: файлы нельзя сканировать на наличие вредоносных программ, их необходимо принудительно загрузить. |
|
429 |
Слишком много запросов: за определенный промежуток времени было отправлено слишком много запросов, и частота запросов ограничена. Должен присутствовать заголовок Retry-After, указывающий, сколько секунд нужно подождать, прежде чем можно будет сделать успешный запрос. |
|
451 |
По умолчанию запросы |
|
500 |
Внутренняя ошибка сервера: на сервере что-то пошло не так. Если проблема не исчезнет, обратитесь в [службу поддержки разработчиков Webex] (/explore/support). |
|
502 |
Неисправный шлюз: во время обработки запроса сервер получил неверный ответ от вышестоящего сервера. Повторите попытку позже. |
|
503 |
Служба недоступна: сервер перегружен запросами. Повторите попытку позже. |
|
504 |
Тайм-аут шлюза: вышестоящий сервер не ответил вовремя. Если в запросе используется максимальный параметр, попробуйте уменьшить его. |
API отчетов и шаблонов партнеров
Вы можете создавать и загружать отчеты, доступные в Partner Hub, с помощью API-интерфейсов Partner Reports. Дополнительные сведения см. в отчете/шаблонах для партнеров.
Партнеры также могут получить доступ к нескольким отчетам и загрузить их непосредственно из Partner Hub. Дополнительные сведения см. в разделе Отчеты Partner Hub.
История редакций
История редакций документов
|
Дата редакции |
Мы внесли в статью следующие изменения |
|---|---|
|
13/08/26 |
|
|
2/04/2026 |
|