- Strona główna
- /
- Artykuł
Webex Calling Partnerzy z wieloma dzierżawcami (MT) mogą skonfigurować webhook, aby gromadzić rekordy Webex Calling dla wszystkich Twoich klientów. Umożliwia to efektywne uzgadnianie rozliczeń, analizę i raportowanie bez konieczności indywidualnego zapytania każdego klienta.
Przegląd
Webhook Detailed Call Records oferuje bezpieczne, skalowalne i solidne rozwiązanie oparte na zdarzeniach, a nie żądaniach. Ten internetowy hook zapewnia lepszy wgląd w Webex Calling działania klientów, wspierając przypadki użycia, od rozliczeń po raportowanie dostosowane do indywidualnych potrzeb.
Możesz użyć tego haczyka internetowego do wygodnego gromadzenia rekordów dla wszystkich klientów zarządzanych za pośrednictwem Partner Hub bez indywidualnego zapytania każdego klienta. Ten webhook umożliwia tworzenie niestandardowych aplikacji do raportowania, rozliczeń i analitycznych zarówno dla wewnętrznych wymagań biznesowych, jak i usług o wartości dodanej.
Aby zapoznać się z wprowadzeniem do webhook i towarzyszących mu interfejsów API, obejrzyj ten Vidcast: Webex Calling Partner Detailed Call History API.
Co zapewnia Partner Webhook
Webhook dostarcza szczegółowe zapisy historii połączeń co 5 minut. Każdy ładunek webhook zawiera:
- Rekordy połączeń, które zakończyły się między 10 minutami a 5 minutami przed bieżącym czasem.
- Wszelkie późne rekordy przetwarzane przez ch Webex Calling murę.
- Automatycznie zasypuje rekordy opóźnionych połączeń w kolejnych ładunkach sieciowych, aby zapewnić niezawodną dostawę.
Aby pokazać, w jaki sposób rekordy połączeń są zawarte w każdym ładunku użytkowym, rozważ następujący przykład:
- Ładunek otrzymany o 14:05 zawiera połączenia, które zakończyły się między 13:55 a 14:00.
- Połączenia kończące się między 14:00 a 14:05 są wliczone w ładunek 14:10.
- Rekordy ukończone wcześniej (na przykład połączenie, które zakończyło się o 14:04), ale przetwarzane późno przez Webex Calling chmurę (na przykład o 14:11), są uwzględnione w następnym zaplanowanym ładunku (na przykład 14:15).
Webhooki niezawodnie dostarczają rekordy. Możesz jednak otrzymywać zduplikowane rekordy w kolejnych ładunkach webhook, gdy system odtwarza rekordy pod pewnymi warunkami. Jesteś odpowiedzialny za obsługę usuwania duplikacji rekordów. Aby zidentyfikować zduplikowane rekordy, użyj pola ReportID jako klucza podstawowego i pola ReportTime, aby określić, kiedy wywołanie zostało zakończone lub przetworzone. Użyj tych pól, aby zaktualizować lub wstawiać rekordy do wewnętrznych magazynów danych.
Webhook w centrum partnerskim
Udostępniając haczyk internetowy, umożliwiasz platformie analitycznej wysyłanie rekordów połączeń na adres URL wywołań zwrotnych za każdym razem, gdy są one generowane.
Webex Callingrekordy są dostarczane w tym samym formacie, co istniejące interfejsy API szczegółowych rekordów połączeń. Możesz skonfigurować webhook i wybrać jeden z dwóch typów kanałów:
- Analityka — zawiera wszystkie rekordy połączeń dla wszystkich organizacji klientów, z którymi partner ma relacje. Webex Calling Dotyczy to organizacji, w których:
- Partner zarządza organizacją klienta z rolą Partnera Pełnego Administratora.
- Organizacja klienta ma aktywną Webex Calling subskrypcję w organizacji partnerskiej.
- Rozliczanie — zawiera zapisy połączeń dla połączeń wykonywanych przez użytkowników posiadających Webex Calling licencję sprzedaną i udzieloną przez partnera. Rekordy połączeń dla Obszarów roboczych są zawarte w tym kanale.
Dostęp i prywatność danych
Tylko partner będący właścicielem może uzyskać dostęp do rekordów szczegółów połączeń (CDR) w celu rozliczenia.
- Partner (lub subpartner), który zarządza licencją związaną z zapisem połączenia, staje się partnerem będącym właścicielem.
- Własność określa: Identyfikator użytkownika > Identyfikator licencji > Identyfikator subskrypcji > Identyfik ator partnera.
- Każdy CDR jest dostępny dla jednego partnera.
- Niektóre rekordy połączeń nie są przypisywane do partnera rozliczeniowego i nie wszyscy partnerzy powiązani z organizacją otrzymują równy dostęp do wszystkich rekordów, ponieważ rekordy te mogą zawierać dane osobowe (PII).
Konfigurowanie adresu URL wywołania zwrotnego webhook
Skonfiguruj haczyk sieciowy w centrum partnerskim. Możesz skonfigurować tylko jeden webhook na organizację partnerską.
Upewnij się, że pełna rola administratora Partnera z funkcją „Dostęp na pełnym poziomie administratora organizacji ” oraz zaznaczony w Centrum sterowania (w obszarze Zarządz anie > Uży wybierz pełnego administratora lub pełnego administratora partnera, a następnie wybierz pozycję Role administratora > Partner).
Te same wymagania dotyczące dostępu obowiązują podczas korzystania z interfejsów API uzgadniania i rekordów partnerów.
| 1 |
Zaloguj się do Partner Hub. |
| 2 |
Przejdź do .
|
| 3 |
Wprowadź adres URL do użycia w sekcji Webhook. Adres URL musi kończyć się na /webhook (na przykład https://yourdomain.com/webhook).
|
| 4 |
Jeśli chcesz uwierzytelnić swoje ładunki webhook za pomocą tajnego tokena, możesz go dodać. Aby uzyskać więcej informacji na temat haczyków internetowych i tajnych tokenów Webex, zobacz Webex dla programistów: Webhook. |
| 5 |
Wybierz jeden z następujących typów zasobu, który ma być używany dla webhook:
|
Punkty końcowe API dla partnerów
Oprócz webhook, Webex Calling zapewnia punkty końcowe API do obsługi uzgadniania danych. Te punkty końcowe umożliwiają nadrobienie zaległości lub pogodzenie magazynów danych z brakującymi rekordami, których słuchacz webhook mógł nie otrzymać. Dwa punkty końcowe API to interfejs API uz godnienia i interfej s API rekordów.
Rekordy z tych interfejsów API są dostępne przez 30 dni. Aby mieć pewność, że otrzymasz wszystkie oczekiwane rekordy, zalecamy okresowe uzgadnianie magazynów płyt, na przykład co 12 lub 24 godziny.
Aby uzyskać dostęp do tych interfejsów API, musisz użyć tokena dostępu partnera. Użytkownik uwierzytelniający musi być pełnym administratorem partnera z pełnym dostępem organizacji na poziomie administracyjnym i musi mieć włączony dostęp do interfejsu API Webex Calling CDR. Token OAuth musi zawierać zakres. spark-admin:calling_cdr_read Role administratora tylko do odczytu nie są wystarczające dla interfejsów API uzgadniania partnerów i rekordów.
Użyj analytics-callingpunktu końcowego dla regionu Webex Calling danych organizacji klienta. Użyj odpowiedniego bazowego adresu URL zarówno dla interfejsów API uzgadniania, jak i rekordów:
- Stany Zjednoczone i Kanada:
https://analytics-calling.webexapis.com - Europa:
https://analytics-calling-eu.webexapis.com - Indie:
https://analytics-calling-in.webexapis.com - Australia:
https://analytics-calling-au.webexapis.com
Zakresy okien API mają zastosowanie do obu punktów końcowych, aby lepiej radzić sobie z obciążeniem usług.
- W przypadku przedziałów czasowych większych niż 48 godzin maksymalny dozwolony czas trwania okna wynosi 12 godzin (wymuszony).
- W przypadku identyfikatora organizacji partnerskiej interfejsy API są ograniczone do jednego początkowego żądania interfejsu API na minutę, na każdy zakres tokena. Jeśli używana jest paginacja, dozwolone jest maksymalnie 10 dodatkowych paginowanych żądań interfejsu API na minutę, na token, które można wykonać natychmiast po początkowym żądaniu.
Punkt końcowy interfejsu API uzgodnienia
Punkt końcowy interfejsu API uzgodnienia zwraca całkowitą liczbę rekordów połączeń wygenerowanych dla każdego klienta zarządzanego przez partnera w określonym czasie. Możesz użyć tych sumy do weryfikacji lokalnej pamięci masowej i identyfikacji brakujących lub niespójnych rekordów połączeń dla określonych klientów.
Wymóg dostępu: Użytkownik uwierzytelniający musi być Administratorem Partnera z pełnym dostępem na poziomie administratora i musi mieć włączony dostęp do interfejsu API Webex Calling CDR. Token dostępu musi zawierać spark-admin:calling_cdr_readzakres.
Jeśli zarządzasz ponad 200 organizacjami klientów, interfejs API wyświetla wyniki stron w celu poprawy czytelności.
Adres URL punktu końcowego interfejsu API uzgodnienia używa następującego formatu:
https://analytics-calling.webexapis.com/v1/partners/cdrcountbyorg?endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z
Parametry API
Możesz użyć interfejsu API do pobierania rekordów połączeń z ostatnich 30 dni. Wybrane okno czasowe musi rozpocząć się co najmniej 5 minut przed bieżącą godziną UTC i nie może przekraczać 12 godzin między godzinami rozpoczęcia i zakończenia w jednym wywołaniu API.
Parametry API to:
-
StartTime (wymagane, ciąg znaków) —Data i godzina rozpoczęcia (UTC) pierwszego rekordu, który chcesz zebrać. Upewnij się, że:
- Formatujesz czas jako
YYYY-MM-DDTHH:MM:SS.mmmZ. Na przykład,2025-08-15T06:00:00.000Z.
- Data i godzina rozpoczęcia nie mogą być starsze niż 30 dni od bieżącego czasu UTC.
- Okno między
startTimei nieendTimemoże przekraczać 12 godzin.
- Formatujesz czas jako
-
EndTime (wymagane, ciąg znaków) — data i godzina zakończenia (UTC) rekordów, które chcesz zebrać. Rekordy są oparte na czasie raportu, czyli w momencie zakończenia połączenia. Upewnij się, że:
- Formatujesz czas jako
YYYY-MM-DDTHH:MM:SS.mmmZ. Na przykład,2025-08-15T18:00:00.000Z. - Data i godzina zakończenia muszą być 5 minuty przed bieżącym czasem UTC i nie starsze niż 30 dni.
- Data i godzina zakończenia muszą być większe niż
startTime. - Okno między
startTimea nieendTimemoże przekraczać 12 godzin.
- Formatujesz czas jako
Przykład odpowiedzi JSON punktu końcowego interfejsu API uzgodnienia:
{
"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
}
]
}
Nagłówki odpowiedzi API wskazują całkowitą liczbę zwróconych organizacji i czy dostępne są dodatkowe strony. Sprawdź następujące parametry nagłówka, aby upewnić się, że zapytałeś wszystkie strony:
- num-pages: Całkowita liczba stron (na przykład 2)
- totalne organy: Łączna liczba organizacji uwzględnionych w odpowiedzi (na przykład 283)
- bieżąca strona: Bieżący numer strony (na przykład 1)
Na przykład, jeśli nagłówki pokazują num-pages=2, total-orgs=283 i current-page=1, wyświetlana jest pierwsza strona dwustronicowej odpowiedzi zawierającej łącznie 283 organizacje. Aby uzyskać dostęp do następnej strony, dodaj parametr page=2 do żądania GET, jak pokazano poniżej:
https://analytics-calling.webexapis.com/v1/partners/cdrcountbyorg?endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z&page=2
Punkt końcowy API rekordów
Punkt końcowy interfejsu API rekordów służy do wyszukiwania brakujących rekordów połączeń dla określonych organizacji, w których rozbieżności lub brakujące dane zostały zidentyfikowane za pomocą interfejsu API uzgodnienia.
Zalecany przepływ: Zadzwo /v1/partners/cdrcountbyorgń najpierw. Następnie użyj dokładnego zwro orgIdtu cdr_counts[].orgIdpodczas dzwonienia /v1/partners/cdrsbyorg.
Interfejs API rekordów zwraca rekordy połączeń w formacie JSON, identycznym z formatem opisanym w interfejsie API Szczegółowa historia połączeń. Zwrócony ładunek zawiera identyczne pola co zwracany ładunek szczegółowy historii połączeń. Aby uzyskać więcej informacji na temat pól i ich wartości, zobacz Webex CallingSzczegółowy raport historii połączeń.
Interfejs API udostępnia rekordy połączeń, które zakończyły się 5 minut przed bieżącym czasem. Aby upewnić się, że wszystkie rekordy połączeń są dostępne, zalecamy zapytanie do interfejsu API godzinę po preferowanym oknie czasowym.
Adres URL punktu końcowego API rekordów używa następującego formatu:
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
Parametry API
-
orgId(wymagane, ciąg znaków) — identyfikator organizacji klienta, dla którego chcesz pobrać rekordy. Nazwa parametru jest rozróżniana wielkość liter. Identyfikatory organizacji można uzyskać z pola odpowiedzi interfejsu API uzgodnieniacdr_counts[].orgId. -
StartTime (wymagane, ciąg znaków) —Data i godzina rozpoczęcia (UTC) pierwszego rekordu, który chcesz zebrać. Upewnij się, że:
- Formatujesz czas jako
YYYY-MM-DDTHH:MM:SS.mmmZ. Na przykład,2025-08-15T06:00:00.000Z. - Data i godzina rozpoczęcia nie mogą być starsze niż 30 dni od bieżącego czasu UTC.
- Przerwa między
startTimei nieendTimemoże przekraczać 12 godzin w pojedynczym żądaniu API.
- Formatujesz czas jako
-
EndTime (wymagane, ciąg znaków) — data i godzina zakończenia (UTC) dla ostatniego rekordu, który chcesz zebrać. Rekordy są oparte na czasie raportu, czyli w momencie zakończenia połączenia. Upewnij się, że:
- Formatujesz czas jako
YYYY-MM-DDTHH:MM:SS.mmmZ. Na przykład,2025-08-15T18:00:00.000Z. - Data i godzina zakończenia muszą być co najmniej 5 minuty przed bieżącą godziną UTC i nie starsze niż 30 dni.
- Data i godzina zakończenia muszą być większe niż
startTime. - Przerwa między
startTimei nieendTimemoże przekraczać 12 godzin w pojedynczym żądaniu API.
- Formatujesz czas jako
-
max (opcjonalnie, liczba) — ogranicza maksymalną liczbę rekordów na stronę w odpowiedzi. Upewnij się, że:
- Zasięg wynosi od 500 do 5000. Wartość domyślna to 5000. Na przykład,
max=1000. - Jeśli interfejs API ma więcej rekordów do zwrócenia niż podana wartość maksymalna, odpowiedź jest stronicowana.
- Jeśli podana jest wartość poniżej 500, jest ona automatycznie dostosowywana do 500. Jeśli podana jest wartość powyżej 5000, jest ona dostosowywana do 5000.
- Zasięg wynosi od 500 do 5000. Wartość domyślna to 5000. Na przykład,
Paginacja
Aby określić, czy odpowiedzi API są stronicowane, sprawdź nagłówki odpowiedzi pod kątem nagłówka łącza. Jeśli łącze nextznajduje się w nagłówku Link, wyodrębnij je i użyj startTimeForNextFetchwartości, aby zażądać następnego zestawu rekordów. Jeśli nie ma następnego łącza, zbierane są wszystkie raporty dla wybranego zakresu czasowego.
Żądania API dla kolejnych stron mogą być wysyłane natychmiast, ale muszą być ograniczone do maksymalnie 10 żądań stronicowanych na minutę, na każdy zakres tokena.
Podczas pobierania rekordów używaj przetwarzania i usuwania duplikacji idempotent, w tym między stronicowanymi odpowiedziami lub oknami powtarzającego się uzgadniania. Użyj reportIdjako klucza podstawowego i reportTimedo określenia najnowszego przetworzonego rekordu.
Na przykład, jeśli początkowe żądanie API to:
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
wtedy nagłówek Link w odpowiedzi brzmi:
<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"
Paginacja używa tylko nagłówka rel="next"Link. Jeśli odpowiedź zawiera rel="next"link, użyj tego adresu URL, aby pobrać następną stronę rekordów. Jeśli odpowiedź nie zawiera łącza, rel="next"pobrano wszystkie dostępne rekordy dla wybranego zakresu czasowego.
Paginacja dla tego interfejsu API jest zgodna ze standardem RFC5988 (Web Links). Aby uzyskać więcej informacji, zobacz Podstawy interfejsu API REST.
Zrozumienie kodów odpowiedzi punktów końcowych API
Ta sekcja zawiera przegląd typowych kodów odpowiedzi, które mogą wystąpić podczas pracy z punktem końcowym interfejsu API uzgodnienia i punktem końco wym API rekordów. Te punkty końcowe odgrywają kluczową rolę w synchronizacji danych, walidacji i raportowaniu. Zrozumienie tych kodów odpowiedzi jest niezbędne do skutecznego rozwiązywania problemów i utrzymania niezawodnych, stabilnych integracji.
|
Kod odpowiedzi |
Opis kodu odpowiedzi |
|---|---|
|
200 |
OK |
|
400 |
Złe żądanie: Żądanie było nieważne lub nie można go doręczać w inny sposób. Towarzyszący komunikat o błędzie wyjaśni dalej. |
|
401 |
Nieautoryz owane: brakowało poświadczeń uwierzytelniania lub były nieprawidłowe. |
|
403 |
Zabronione: Żądanie jest zrozumiałe, ale zostało odrzucone lub dostęp jest niedozwolony. |
|
404 |
Nie znaleziono: żądany identyfikator URI jest nieprawidłowy lub żądany zasób, taki jak użytkownik, nie istnieje. Zwraca się również, gdy żądany format nie jest obsługiwany przez żądaną metodę. |
|
405 |
Metoda niedozwol ona: Żądanie zostało wysłane do zasobu przy użyciu metody żądania HTTP, która nie jest obsługiwana. |
|
409 |
Konflikt: Żądanie nie mogło zostać przetworzone, ponieważ jest sprzeczne z pewną ustaloną regułą systemu. Na przykład osoba nie może być dodawana do pokoju więcej niż raz. |
|
410 |
Przeminęło: Żądany zasób nie jest już dostępny. |
|
415 |
Nieobsługiwany typ noś nika: żądanie zostało wysłane do zasobu bez określania typu nośnika lub użyto typu nośnika, który nie jest obsługiwany. |
|
423 |
Zablokowany: żądany zasób jest tymczasowo niedostępny. Może być obecny nagłówek Retry-After, który określa, ile sekund należy poczekać przed ponowną próbą wykonania żądania. |
|
428 |
Wymagany warunek wstępny: Plików nie można przeskanować pod kątem złośliwego oprogramowania i należy je wymusić pobranie. |
|
429 |
Zbyt wiele żą dań: Zbyt wiele żądań zostało wysłanych w określonym czasie, a żądanie zostało ograniczone. Powinien być obecny nagłówek Retry-After, który określa, ile sekund należy poczekać, zanim będzie można złożyć pomyślne żądanie. |
|
451 |
Domyślnie żądania |
|
500 |
Wewnętrzny błąd serwera: Coś poszło nie tak na serwerze. Jeśli problem będzie się powtarzał, skontaktuj się z zespołem pomocy [Webex Developer Support] (/explore/support). |
|
502 |
Nieprawidłowa br ama: Serwer otrzymał nieprawidłową odpowiedź od serwera wyższego szczebla podczas przetwarzania żądania. Spróbuj ponownie później. |
|
503 |
Usługa niedostępna: Serwer jest przeciążony żądaniami. Spróbuj ponownie później. |
|
504 |
Limit czasu br amy: serwer upstream nie zareagował na czas. Jeśli zapytanie używa parametru max, spróbuj go zmniejszyć. |
API raportów/szablonów partnerów
Raporty dostępne w Centrum partnerów można generować i pobierać za pomocą interfejsów API Raportów partnerów. Aby uzyskać więcej informacji, zobacz ra port/ szablony partnera.
Partnerzy mogą również uzyskać dostęp do wielu raportów i pobierać je bezpośrednio z Centrum Partnerów. Aby uzyskać więcej informacji, zobacz raporty Centrum partnerów.
Historia wersji
Historia rewizji dokumentu
|
Data rewizji |
Wprowadziliśmy następujące zmiany w artykule |
|---|---|
|
13/08/26 |
|
|
2/04/2026 |
|