Przejdź do głównej zawartości

API Ringostat. Zapytanie API do połączenia dwóch numerów (Callback metody)

Napisane przez Valeriia Zaptalova
Zaktualizowano w tym tygodniu

Zapytanie API do połączenia 2 numerów (prosty Callback)

Aby przyspieszyć obsługę zgłoszeń od klientów, mogą Państwo skonfigurować automatyczne oddzwanianie do klienta, który przesłał wypełniony formularz rejestracji lub zamówienia na Państwa stronie.

Analogicznie można inicjować połączenie z karty klienta w Państwa systemie CRM.

Proszę zwrócić uwagę, że tej metody nie można używać na Front End. Ze względów bezpieczeństwa oraz ochrony danych osobowych korzystanie z tego zapytania na Front End nie jest dostępne.

Ważny warunek działania metody

Wartością parametru extension może być wyłącznie numer telefonu z projektu (numer musi być podłączony do projektu jako „wejściowy” w sekcji „Wirtualna centrala” → „Podłączenie numerów”).

Opis parametrów zapytania

  • Metoda — POST;

  • Auth-key — klucz dostępu do projektu w Ringostat;

  • Extension — numer telefonu, z którego wykonywane jest połączenie
    (musi być podłączony jako numer przychodzący w sekcji „Wirtualna centrala” → „Podłączenie numerów”);

  • Destination — numer telefonu lub login konta SIP, na który wykonywane jest połączenie;

  • Content-Type: application/x-www-form-urlencoded

Przykład dla Node.js:

const https = require('https);
const config = {
host: 'api.ringostat.net',
path: '/callback/outward_call',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Auth-key': 'unique_auth_key_string'
}
};
const callback = response => {
let result = Buffer.alloc(0);
response.on('data', chunk => {
result = Buffer.concat([ result, chunk ]);
});
response.on('end', () => {
//handler response
});
};
const request = https.request(config, callback);
const body = `extension=380441112233&destination=380671112233`;
request.write(body);
request.end();

Zapytanie API do połączenia 2 numerów (rozszerzony Callback)

Rozszerzona metoda pozwala na wykonanie połączenia między dowolnymi dwoma stronami — nawet takimi, które nie istnieją w Ringostat (np. dowolny numer telefonu lub konto SIP menedżera oraz numer klienta). Źródła takiego połączenia będą widoczne w statystykach tak samo jak przy standardowym Callback z widgetu.

Metoda ta sprawdzi się przy inicjowaniu połączeń z CRM, obsłudze zgłoszeń z formularzy na stronie lub w serwisach ogłoszeniowych.

Opis parametrów zapytania

  • Metoda — POST;

  • Auth-key — klucz dostępu do projektu;

  • clientIP — rzeczywisty lub losowy adres IP;

  • caller — numer lub konto SIP, na które należy oddzwonić;

  • callee — numer lub konto SIP, które odbierze połączenie;

  • projectId — ID projektu Ringostat.

Headers zapytania

Nazwa parametru

Opis

content-type

application/json

Auth-key

"unique_auth_key_string"

Body zapytania

Nazwa parametru

Opis

jsonrpc

Wersja protokołu (2.0)

id

Dowolna liczba do powiązania zapytania z odpowiedzią

method

Metoda serwera Ringostat: Api\V2\Callback.external


Parametry dla połączeń wychodzących

Nazwa parametru

Opis

callee_type

Typ kierunku: default – numer telefonu, scheme – schemat przekierowania

caller

Numer telefonu klienta

callee

Numer telefonu lub konto SIP pracownika

direction

Typ połączenia: out – jako wychodzące (typ danych string)

manager_dst

Określa pierwszy kierunek:

0 – najpierw caller, potem callee

1 – najpierw callee, potem caller

clientIp

Adres IP użytkownika

utmSource

Źródło

utmMedium

Kanał

utmCampaign

Kampania

utmTerm

Słowo kluczowe

utmContent

Treść

clientId

Client ID Google Analytics

clientUserAgent

User Agent klienta

Parametry dla połączeń przychodzących

Nazwa parametru

Opis

callee_type

Typ kierunku

caller

Numer klienta

callee

Numer lub SIP pracownika

direction

Typ połączenia: in – jako przychodzące

manager_dst

Kolejność połączenia

clientIp

IP użytkownika

utmSource

Źródło

utmMedium

Kanał

utmCampaign

Kampania

utmTerm

Słowo kluczowe

utmContent

Treść

clientId

Client ID Google Analytics

clientUserAgent

User Agent

Aby przekazać dane o sesji użytkownika, należy je zbierać samodzielnie i dodać do zapytania.

Na przykład:

  • parametry UTM można pobrać z pliku cookie rngst2 (jeśli zainstalowano skrypt podmiany),

  • ClientID Google Analytics z pliku cookie _ga.

Przykład dla Node.js:

const https = require('https');
const config = {
host: 'api.ringostat.net',
path: '/a/v2',
method: 'POST',
headers: {
'Auth-key': 'unique_auth_key_string'
}
};
const callback = response => {
let result = Buffer.alloc(0);
response.on('data', chunk => {
result = Buffer.concat([ result, chunk ]);
});
response.on('end', () => {
//handler response
});
};
const request = https.request(config, callback);
const body = `{
"jsonrpc": "2.0",
"id": 777,
"method": "Api\\V2\\Callback.external",
"params": {
"callee_type": "default",
"caller_type": "default",
"caller": "380671112233",
"callee": "380632223344",
"manager_dst": 1,
"direction": "out",
"projectId": "11111",
"clientIp": "10.10.10.10",
"utmSource": "ringostat",
"utmMedium": "referral",
"utmCampaign": "extended_callback",
"utmTerm": "test_api_request",
"utmContent": "content",
"clientId": "111111111.2222222222",
"clientUserAgent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
}
}`;
request.write(body);
request.end();

Możliwe błędy zapytania

  • 400 Bad Request — brak jednego z parametrów / nieprawidłowy caller lub callee / brak konwersji do JSON

  • 401 Unauthorized — brak lub nieprawidłowy Auth-Key

  • 403 Forbidden — brak dostępu (nieprawidłowy Auth-Key)


Przykłady użycia

Przykład z kontem SIP (caller)

Sytuacja:

Caller — konto SIP,

Callee — numer telefonu

Połączenie do klienta zostanie wykonane z numeru ustawionego w domyślnych ustawieniach połączeń wychodzących.


Przykład z numerem klienta (caller)

Sytuacja:

Caller — numer klienta,

Callee — konto SIP

Połączenie zostanie wykonane zgodnie z regułami ustawień połączeń wychodzących.

Rekomendujemy korzystanie z tej konfiguracji dla poprawnego działania reguł i prezentacji numerów.

Przykład:

Klient zamówił połączenie na numer w formacie +380XXXXXXXXX przez formularz na stronie.

Klient zobaczy połączenie przychodzące z numeru przypisanego do kierunku +380.

Drugi klient zamówił połączenie na numer +48XXXXXXXXX.

Klient zobaczy połączenie przychodzące z numeru przypisanego do kierunku +48.


Przykład ze schematem przekierowania (callee)

Sytuacja:

Caller — numer klienta,

Callee — schemat przekierowania

Przykład:

Klient zamówił połączenie na swój numer w formacie +380XXXXXXXXX za pomocą formularza na stronie (z wykorzystaniem rozszerzonej metody API Callback).

Połączenie należy przekierować na schemat przekierowania projektu.

Przykład zapytania:

"callee_type": "scheme",
"caller_type": "default",
"callee": "XXXXX",*
"caller": "380ХХХХХХХХХ"**

* callee — ID schematu przekierowania, na który zostanie skierowane połączenie

** caller — numer klienta

Aby sprawdzić, jaki ID został przypisany do wybranego schematu przekierowania, prosimy przejść w menu nawigacyjnym do sekcji:

Wirtualna centrala → Przekierowanie polaczeń

Następnie przy wybranym schemacie należy kliknąć przycisk „Edytuj schemat”.


Dziennik połączeń (direction in)

  • Kto dzwonił — wartość parametru caller (numer telefonu lub login konta SIP, na który zostało wykonane połączenie);

  • Dokąd dzwoniono — wartość parametru callee (numer lub konto SIP, z którego zostało wykonane połączenie);

  • Z kim połączono — wartość parametru caller (numer telefonu lub login konta SIP, na który zostało wykonane połączenie).


Dziennik połączeń (direction out)

Ustawiono parametr direction o wartości out — w dzienniku połączeń wywołanie jest zapisywane jako wychodzące w następujący sposób:

  • Kto dzwonił — wartość parametru callee (numer lub konto SIP, z którego zostało wykonane połączenie);

  • Dokąd wykonano połączenie — wartość parametru caller (numer telefonu lub login konta SIP, na który zostało wykonane połączenie);

  • Z kim połączono — wartość parametru caller (numer telefonu lub login konta SIP, na który zostało wykonane połączenie).


Test zapytania

Mogą Państwo sprawdzić zapytanie na stronie:
https://ringostat.readme.io/reference/post_callback-outward-call

  1. Zapytanie API (prosty Callback)

  2. Zapytanie API (rozszerzony Callback)

Można tam również wskazać parametry (1), Auth-key (2) oraz wysłać zapytanie testowe (3):

Czy to odpowiedziało na twoje pytanie?