HiperusLib wersja 1.0 PHP 1/26
Spis treści Wstęp...3 Wymagania...3 Instalacja...3 HiperusLib w działaniu...4 HiperusActions...9 Wstęp...9 Metody...12 CreateCustomer...12 CreatePSTNNumber...13 CreateSIPTerminal...15 GetCustomerData...16 GetCustomerDataExtID...17 ChangeCustomerData...18 ChangeTerminalData...19 ChangePSTNNumberData...19 GetCustomerList...20 GetTerminalList...20 GetPSTNNumberList...21 GetPricelistList...22 GetSubscriptionList...23 GetEndUserList...23 GetBillingFile...24 GetBilling...24 DelTerminal...25 DelPSTNNumber...25 DelCustomer...26 2/26
Wstęp Biblioteka HiperusLib ma na celu ułatwienie integracji istniejących systemów z platformą Hiperus C5. Biblioteka została napisana w języku PHP i jest udostępniana na licencji LGPL. Stroną domowa projektu znajduje się pod adresem:. Na stronie domowej będą publikowane nowe wersje, informację dodatkowe oraz aktualizacje dokumentacji. Wymagania System operacyjny Linux, BSD, wsparcie dla MS Windows jest eksperymentalne i nie zalecamy używania tego systemu operacyjnego do celów produkcyjnych. PHP w wersji >= 5.2.3 PHP z obsługą SOAP (./configure enable-soap lub adekwatny pakiet dystrybucji np. phpsoap) Instalacja 1. Pobierz bibliotekę ze strony / 2. Rozpakuj archiwum, pliki umieść w miejscu z którego chcesz używać biblioteki. 3. Stwórz katalog w którym będą przechowywane pliki z danymi dostępu do platformy Hiperus C5 oraz informacje o sesji (domyślnie: /var/lib/hiperus/) 4. Stwórz plik zawierający dane dostępu. (domyslnie: hiperus1.pwd). W pierwszej linii pliku umieść przyznaną nazwę użytkownika, w drugiej linii pliku umieść ustanowione hasło w trzeciej linii pliku umieść domene do której chcesz się zalogować. Przykład zawartości pliku: OperatorAdmin<\n> OperatorAdminPassword123<\n> DOMENAOPERATOR<\n> gdzie <\n> oznacza znak konca linii. Dane te są analogiczne do informacji podawanych podczas logowania do interfejsu platformy Hiperus C5. 5. Nadaj odpowiednie prawa odczytu i zapisu do utworzonego katalogu i pliku. HiperusLIB będzie zapisywać w nim dane dotyczące aktualnie otwartej sesji. Użytkownik z którego będzie działać Twoje oprogramowanie musi mieć prawa odczytu i zapisu do stworzonego katalogu. Pamiętaj, że jest to miejsce w którym są przechowywane Twoje hasła, nikt inny nie powinien mieć możliwości ich odczytania. Jeżeli Twoja instalacja Web Serwera jest dedykowana do uruchamiania tylko systemu z którym ma nastąpić integracja dobrym 3/26
pomysłem jest zmiana właściciela katalogu na użytkownika jako który działa Web Serwer (np.: apache, httpd) i nadanie odpowiednich praw tylko dla właściciela. 6. Jeżeli chcesz zmienić domyślne miejsca przechowywania danych autoryzacyjnych wedytuj plik HiperusLib.class.php i w sekcji konfiguracyjnej zmień wartości stałych H_PWD_FILE dla pliku z hasłami oraz H_SESSION_FILE dla pliku z sesją. HiperusLib w działaniu HiperusLib służy wywoływania akcji udostępnianych przez HiperusAPI. Opis akcji udostępnianych przez HiperusAPI dostępny jest w odpowiedniej dokumentacji do pobrania ze strony / Ułatwieniem dla deweloperów jest klasa HiperusActions, rozpowszechniana razem z HiperusLib, która zawiera zbiór statycznych metod, które obsługują najczęściej wykonywane przypadki użycia na platformie Hiperus C5. Opis klasy HiperusActions znajduje się poniżej w tym dokumencie. Pliki z przykładami znajdują się w archiwum biblioteki. Przykład 1 Sprawdzenie statusu zalogowania (example1.php) require_once('hiperuslib.class.php'); // dołączamy bibliotekę HiperusLib try { $hlib = new HiperusLib(); // inicjujemy biblioteke HiperusLib catch(exception $ex) { print "BŁĄD! Nie mozna zainicjowac biblioteki HIPERUS\n"; print $ex->getmessage()."\n"; print_r($ex); die(); $r = new stdclass(); // obiekt reprezentujący parametry żądania try { $response = $hlib->sendrequest("checklogin",$r); // wysyłamy żądanie i odbieramy odpowiedź catch(exception $ex) { print "BŁĄD! Nie mozna zainicjowac biblioteki HIPERUS\n"; print $ex->getmessage()."\n"; print_r($ex); die(); print_r($response); // wypisujemy caly pakiet odpowiedzi if(is_array($response->result_set)) { if($response->result_set[0]['logged']) { print "Użytkownik jest zalogowany\n"; else { 4/26
print "Użytkownik nie jest zalogowany\n"; Wykonanie powyższy kodu dla poprawnie skonfigurowanej biblioteki HiperusLib da następujący wyjście: stdclass Object ( [success] => 1 [error_message] => [error_code] => [total_results] => 1 [result_set] => Array ( [0] => Array ( [uid] => 40 [rid] => 1 [username] => OperatorAdmin [domain] => DOMENAOPERATOR [logged] => 1 [voip_services] => 1 [wlr_services] => 1 [change_password] => ) ) ) [sessid] => rd1gsk58cvkcgrok0q2eiptbk2 Użytkownik jest zalogowany Przykład 2 zmiana danych teleadresowych klienta (example2.php) require_once('hiperuslib.class.php'); // dołączamy bibliotekę HiperusLib try { $hlib = new HiperusLib(); // inicjujemy biblioteke HiperusLib catch(exception $ex) { die("błąd KRYTYCZNY! Nie można zainicjować biblioteki Hiperus\n".$ex- >getmessage()."\n".print_r($ex,true)); 5/26
/* pobranie identyfikatora klienta w Hiperus C5 mając identyfikator klienta z systemu zewnętrznego np. LMS */ $r = new stdclass(); $r->ext_billing_id = 2; // ustawienie żądania z identyfikatorem systemu zewnętrznego try { $response = $hlib->sendrequest("getcustomeridbyextbillingid",$r); catch(exception $ex) { die("błąd KRYTYCZNY!\n".$ex->getMessage()."\n".print_r($ex,true)); if(!$response->success) { // obsluga błędu zwróconego przez platformę Hiperus die("nie można pobrać danych klienta bazując na identyfikatorze z systemu zewnętrznego.\n". $response->error_message); if(is_array($response->result_set)) { $id_customer = $response->result_set[0]['id']; // ustawienie identyfikatora klienta if(!$id_customer) die("nie znaleziono klienta o podanym External Billing ID"); /* Pobranie danych klienta */ $r = new stdclass(); $r->id_customer = $id_customer; try { $response = $hlib->sendrequest("getcustomerdata",$r); catch(exception $ex) { die("błąd KRYTYCZNY!\n".$ex->getMessage()."\n".print_r($ex,true)); if(!$response->success) { // obsluga błędu zwróconego przez platformę Hiperus die("nie można pobrać danych klienta.\n".$response->error_message); if(is_array($response->result_set)) { $c_data = $response->result_set[0]; print "Dane przed zmiana\n\n"; print_r($c_data); // wyświetlamy dane przed zmiana print "-------------------------\n\n"; /* zmiana danych */ $r = new stdclass(); $r->id_customer = $id_customer; 6/26
foreach($c_data as $c_key=>$c_val) { $r->$c_key = $c_val; $r->name = 'Telekomunikacja Bliżej Sp. z o.o Warszawa'; // zmiana nazwy klienta $r->address = 'Janka Muzykanta'; // zmiana ulicy $r->street_number = '60'; // zmiana numeru ulicy try { $response = $hlib->sendrequest("savecustomerdata",$r); catch(exception $ex) { die("błąd krytyczny podczas zmiany danych klienta.\n".$ex->getmessage()); if(!$response->success) { // obsluga błędu zwróconego przez platformę Hiperus die("nie można zmienić danych klienta.\n".$response->error_message); if($response->success) print "Dane zostały zmienione!\n\n"; /* Pobranie i wyświetlenie aktualnych danych klienta */ $r = new stdclass(); $r->id_customer = $id_customer; try { $response = $hlib->sendrequest("getcustomerdata",$r); catch(exception $ex) { die("błąd KRYTYCZNY!\n".$ex->getMessage()."\n".print_r($ex,true)); if(!$response->success) { // obsluga błędu zwróconego przez platformę Hiperus die("nie można pobrać danych klienta.\n".$response->error_message); if(is_array($response->result_set)) { $c_data = $response->result_set[0]; print "Dane po zmianie\n\n"; print_r($c_data); // wyświetlamy dane po dokonaniu zmiany print "-------------------------\n\n"; Wykonanie powyższego kodu da następujący efekt: Dane przed zmiana Array ( 7/26
[id] => 1 [name] => Telekomunikacja Bliżej Sp. z o.o. [id_reseller] => 1 [email] => test@test.pl [address] => Bielawska [street_number] => 6 [apartment_number] => 19 [postcode] => 02-511 [city] => Warszawa [country] => Polska [b_name] => Telekomunikacja Bliżej Sp. z o.o. [b_address] => Bielawska [b_street_number] => 6 [b_apartment_number] => 19 [b_postcode] => 02-511 [b_city] => Warszawa [b_country] => Polska [b_nip] => [b_regon] => [ext_billing_id] => 2 [issue_invoice] => t [id_default_pricelist] => 80 [payment_type] => postpaid [id_default_balance] => [active] => t [is_wlr] => f [consent_data_processing] => f [create_date] => 2009-11-27 19:08:56.711414 [platform_user_add_stamp] => [open_registration] => f [is_removed] => f ) ------------------------- Dane zostały zmienione! Dane po zmianie Array ( [id] => 1 [name] => Telekomunikacja Bliżej Sp. z o.o Warszawa [id_reseller] => 1 [email] => test@test.pl 8/26
[address] => Janka Muzykanta [street_number] => 60 [apartment_number] => 19 [postcode] => 02-511 [city] => Warszawa [country] => Polska [b_name] => Telekomunikacja Bliżej Sp. z o.o. [b_address] => Bielawska [b_street_number] => 6 [b_apartment_number] => 19 [b_postcode] => 02-511 [b_city] => Warszawa [b_country] => Polska [b_nip] => [b_regon] => [ext_billing_id] => 2 [issue_invoice] => t [id_default_pricelist] => 80 [payment_type] => postpaid [id_default_balance] => [active] => t [is_wlr] => f [consent_data_processing] => f [create_date] => 2009-11-27 19:08:56.711414 [platform_user_add_stamp] => [open_registration] => f [is_removed] => f ) ------------------------- HiperusActions Wstęp Klasa HiperusActions jest zbiorem statycznych metod, ułatwiających prace z HiperusLib co w rezultacie daje przyspieszenie procesu budowania systemów współpracujących z Hiperus C5. Przykład 3 pokazuje wykonanie tych samych kroków co w przykładzie 2 ale wykonanych za pomocą HiperusActions. Przykład 3 zmiana danych teleadresowych klienta (example3.php) require_once('hiperuslib.class.php'); // dołączamy bibliotekę HiperusLib require_once('hiperusactions.class.php'); // dołączamy HiperusActions 9/26
/* pobranie danych klienta bazując na identyfikatorze z systemu zewnętrznego */ try { $c_data = HiperusActions::GetCustomerDataExtID(2); catch(exception $ex) { die("nie można pobrać danych klienta!\n".$ex->getmessage()."\n".print_r($ex,true)); print "Dane przed zmiana\n\n"; print_r($c_data); // wyświetlamy dane przed zmiana print "-------------------------\n\n"; /* zmiana danych */ $c_data['b_name'] = 'Telekomunikacja Bliżej Sp. z o.o Warszawa'; // zmiana nazwy klienta dla adresu billingowego (na fakturze) $c_data['b_address'] = 'Janka Muzykanta'; // zmiana ulicy dla adresu billingowego (na fakturze) $c_data['b_street_number'] = '60'; // zmiana numeru ulicy dla adresu billingowego (na fakturze) try { if(hiperusactions::changecustomerdata($c_data)) else print "Dane zostały zmienione!\n\n"; die("błąd krytyczny podczas zmiany danych klienta!"); catch(exception $ex) { die("błąd krytyczny podczas zmiany danych klienta!\n".$ex->getmessage()."\n".print_r($ex,true)); /* Pobranie i wyświetlenie aktualnych danych klienta */ try { $c_data = HiperusActions::GetCustomerDataExtID(2); catch(exception $ex) { die("nie można pobrać danych klienta!\n".$ex->getmessage()."\n".print_r($ex,true)); print "Dane po zmianie\n\n"; print_r($c_data); // wyświetlamy dane po dokonaniu zmian print "-------------------------\n\n"; Wynik: Dane przed zmiana Array ( [id] => 1 [name] => Telekomunikacja Bliżej Sp. z o.o Warszawa [id_reseller] => 1 [email] => test@test.pl 10/26
[address] => Janka Muzykanta [street_number] => 60 [apartment_number] => 19 [postcode] => 02-511 [city] => Warszawa [country] => Polska [b_name] => Telekontakt24 Warszawaa [b_address] => Bielawska [b_street_number] => 6 [b_apartment_number] => 19 [b_postcode] => 02-511 [b_city] => Warszawa [b_country] => Polska [b_nip] => [b_regon] => [ext_billing_id] => 2 [issue_invoice] => t [id_default_pricelist] => 80 [payment_type] => postpaid [id_default_balance] => [active] => t [is_wlr] => f [consent_data_processing] => f [create_date] => 2009-11-27 19:08:56.711414 [platform_user_add_stamp] => [open_registration] => f [is_removed] => f ) ------------------------- Dane zostały zmienione! Dane po zmianie Array ( [id] => 1 [name] => Telekomunikacja Bliżej Sp. z o.o Warszawa [id_reseller] => 1 [email] => test@test.pl [address] => Janka Muzykanta [street_number] => 60 [apartment_number] => 19 [postcode] => 02-511 11/26
[city] => Warszawa [country] => Polska [b_name] => Telekomunikacja Bliżej Sp. z o.o Warszawa [b_address] => Janka Muzykanta [b_street_number] => 60 [b_apartment_number] => 19 [b_postcode] => 02-511 [b_city] => Warszawa [b_country] => Polska [b_nip] => [b_regon] => [ext_billing_id] => 2 [issue_invoice] => t [id_default_pricelist] => 80 [payment_type] => postpaid [id_default_balance] => [active] => t [is_wlr] => f [consent_data_processing] => f [create_date] => 2009-11-27 19:08:56.711414 [platform_user_add_stamp] => [open_registration] => f [is_removed] => f ) ------------------------- Jak widać ilość kodu do napisania została skrócona ponad dwukrotnie zachowując tą samą funkcjonalność. Metody CreateCustomer Dodaje rekord klienta na platformie Hiperuc C5. Rekord klienta zawiera jego nazwę, dane teleadresowe, dane do billingu oraz szereg dodatkowych opcji. String CreateCustomer(array $c_data) Parametry c_data tablica zawierająca dane klienta, elementy tablicy to: name nazwa klienta, pole wymagane email adres email klienta address pierwsza linia adresu (nazwa ulicy) 12/26
street_number numer ulicy flat_number numer mieszkania postcode kod pocztowy city - miasto country - kraj b_name nazwa klienta do celow billingowych, widoczna na fakturze b_address - pierwsza linia adresu (nazwa ulicy), widoczna na fakturze b_street_number numer ulicy, widoczny na fakturze b_flat_number numer mieszkania, widoczny na fakturze b_postcode kod pocztowy, widoczna na fakturze b_city - miasto, widoczne na fakturze b_country kraj, widoczny na fakturze b_nip numer NIP b_regon numer REGON ext_billing_id identyfikator zewnętrznego systemu, również billingowego issue_invoice czy platforma ma wystawiać faktury dla tego klienta po pełnym okresie rozliczeniowym payment_type typ klienta {prepaid, postpaid is_wlr czy klient jest klientem WLR (opcja aktywna tylko dla partnerów z odpowiednia umową) consent_data_processing czy klient wyraził zgode na przetwarzanie danych Funkcja zwraca identyfikator utworzonego klienta CreatePSTNNumber Tworzy numer PSTN dla zadanego klienta. W zależności od podanych parametrów tworzy również terminal SIP który ma obsługiwać numer PSTN, użytkownika panelu końcowego klienta oraz konfiguruje abonament. array CreatePSTNNumber(integer $id_customer [,array $number_data [, array $terminal_data [, array $user_data [, array $subscription_data]]]]) Parametry id_customer parametr wymagany, identyfikator klienta na platformie Hiperus C5 dla którego ma zostać dodany numer PSTN 13/26
number_data parametr opcjonalny, tablica. Informacje o numerze jaki ma zostać dodany. Jeżeli ten parametr nie zostanie podany, platforma Hiperus pobierze pierwszy wolny numer z przypisanego planu numeracyjnego. Number_data jest tablicą zawierającą następujące elementy: number opcja, string. Numer telefonu który ma zostać dodany w formacie krajowmy tzn. bez kodu kraju. np. 222553030 country_code opcja, string. Kod kraju dla dodawanego numeru, jeżeli nie podany wartość domyślną jest '48' (Polska) sn opcja, string. Strefa numeracyjna. Jeżeli nie zostanie podany numer, a zostanie podana strefa numeracyjna, wówczas platforma Hiperus pobierze pierwszy wolny numer z przydzielonego planu numeracyjnego z wybranej strefy. Wartość dla strefy numeracyjne to np.: 22, 12, 32, 81, 52 is_main opcja, bool. Czy tworzony numer ma być numerem głównym. Domyślnie: true clir opcja, bool. Czy numer ma mieć CLIR. Domyślnie: false virtual_fax opcja, bool. Czy na tworzonym numerze ma być uruchomiony wirtualny fax. Domyślnie: false terminal_data parametr opcjonalny, tablica. Informację o terminalu który ma obsługiwać tworzony numer PSTN. Jeżeli parametr nie zostanie podany platforma Hiperus stworzy terminal SIP automatycznie na bazie danych dodawanego numeru PSTN. Informacje do autoryzacji zostaną zwrócone jako wynik funkcji CreatePSTNNumber. Elementami tablicy są: id_terminal opcja, integer. Identyfikator terminala który ma obsługiwać tworzony numer id_pricelist opcja, integer. Identyfikator cennika za pomocą którego mają być naliczane koszty połączeń wykonywane z tego terminala. Stosowane wymiennie z elementem pricelist_name. pricelist_name opcja. String. Nazwa cennika za pomocą którego mają być naliczane koszty połączeń wykonywane z tego terminala. Stosowane wymiennie z elementem id_pricelist. Jeżeli zostanie podany tylko parametr id_pricelist lub pricelist_name wówczas zostanie automatycznie utworzony terminal z żądanym cennikiem. user_data parametr opcjonalny, tablica. Dane użytkownika panelu końcowego klienta, jeżeli dane nie zostaną podane tworzony numer nie będzie powiązany z żadnym użytkownikiem panelu końcowego klienta. Elementy tablicy: id_auth opcja, integer. Identyfikator użytkownika panelu useremail opcja, string. Email użytkownika panelu (nazwa użytkownika) userpassword opcja, string. Hasło użytkownika. 14/26
Jeżeli nie zostanie podany parametry id_auth, a zostaną podane parametry usermail i userpassword, zostanie automatycznie utworzony użytkownik panelu końcowego klienta dowiązany do tworzonego numery PSTN. subscription_data parametr opcjonalny, tablica. Zawiera informacje o abonamentach dla tworzonego terminala SIP obsługującego tworzony numer PSTN. id_subscription opcja, integer. Identyfikator abonamentu. Stosowany wymiennie z subscription_name subscription_name opcja, string. Nazwa abonamentu. Stosowany wymiennie z id_subscription Funkcja zwraca tablice zawierającą informację dotyczącą utworzonego numeru. Elementami tablicy są: id identyfikator utworzonego numeru PSTN number utworzony numer PSTN country_code kod kraju utworzonego numeru PSTN is_main czy jest numerem głównym disa_enabled czy DISA włączona clir czy CLIR włączony virtual_fax czy na numerze uruchomiony jest wirtualny fax. id_auth identyfikator użytkownika panelu końcowego klienta przypisanego do numeru create_date data i czas utworzenia numeru username nazwa terminala SIP (nazwa użytkownika) do którego został przypisany stworzony numer password hasło dla terminala SIP, który domain domena SIP voicemail_enabled czy poczta głosowa aktywna CreateSIPTerminal Tworzy terminal SIP. W niektórych przypadkach potrzebne jest stworzenie samego terminala SIP bez przypisywania do niego numeru telefonu. Np. Klienci prepaid którzy mają mieć możliwość tylko rozpoczynania połączeń. integer CreateSIPTerminal(string $username, string $password [, string $customer_name [, integer $customer_id [, string $pricelist_name [, integer $pricelist_id]]]]) Parametry 15/26
username parametr wymagany, string. Nazwa dla tworzonego terminala SIP password parametr wymagany, string. Hasło dla tworzonoego terminala SIP customer_name parametr opcjonalny, string. Nazwa klienta dla którego ma zostać stworzony terminal SIP. Stosowany wymiennie z parametrem customer_id. customer_id parametr opcjonalny, integer. Identyfikator klienta na platformie Hiperus C5 dla którego ma zostać utworzony terminal SIP. Stosowany wymiennie z parametrem customer_name. pricelist_name parametr opcjonalny, string. Nazwa cennika za pomocą którego mają być naliczane połączenia realizowane za pomocą tworzonego terminala SIP. Parametr stosowany wymiennie z pricelist_id. pricelist_id parametr opcjonalny, integer. Identyfikator cennika za pomocą którego mają być naliczane połączenia realizowane za pomocą tworzonego terminala SIP. Parametr stosowany wymiennie z pricelist_name. Funkcja zwraca identyfikator utworzonego terminala SIP. GetCustomerData Pobiera dane klienta z platformy Hiperus C5. array GetCustomerData(integer $id_customer) Parametry id_customer identyfikator klienta z platformy Hiperus C5 Funkcja zwraca tablice z danymi klienta zawierającą następujące elementy: id identyfikator klienta name nazwa klienta id_reseller identyfikator resellera email email klienta address adres linia1 nazwa ulicy / miejscowość street_number numer ulicy / miejscowości apartment_number numer mieszkania postcode kod pocztowy city miasto country kraj b_name dane billingowe (faktura) nazwa klienta 16/26
b_address dane billingowe (faktura) - adres linia1 nazwa ulicy / miejscowość b_street_number dane billingowe (faktura) numer ulicy / miejscowości b_apartment_number dane billingowe (faktura) - numer mieszkania b_postcode dane billingowe (faktura) kod pocztowy b_city dane billingowe (faktura) miasto b_country dane billingowe (faktura) kraj b_nip dane billingowe (faktura) numer NIP b_regon dane billingowe (faktura) numer REGON ext_billing_id identyfkator klienta z zewnętrznego systemu billingowego issue_invoice czy wystawiane faktury id_default_pricelist identyfikator domyślnego cennika payment_type typ płatności {prepaid, postpaid id_default_balance identyfikator domyślnego limitu dla konta prepaid active czy klient aktywny is_wlr czy klient WLR consent_data_processing czy zgoda na przetwarzanie danych create_date data i czas utworzenia rekordu klienta platform_user_add_stamp użytkownik który utworzył klienta open_registration czy utworzony poprzez otwartą rejestracje is_removed czy usunięty (w tym przypadku zawsze wartość false) GetCustomerDataExtID Pobiera dane klienta z platformy Hiperus C5 na podstawie identyfikatora z zewnętrznego systemu array GetCustomerDataExtID(integer $ext_billing_id) Parametry ext_billing_id identyfikator klienta z systemu zewnętrznego. Rekord kliencki na platformie Hiperus musi mieć ustawioną odpowiednią wartość podczas dodawania klienta lub podczas modyfikacji jego danych są takie same jak dla funkcji GetCustomerData 17/26
ChangeCustomerData Zmiana danych klienta na platformie Hiperus C5. boolean ChangeCustomerData(array $c_data) Parametry c_data parametr wymagany, array. Tablica zawierająca elementy z danymi które mają zostać zmienione oraz parametr identyfikujący klienta dla którego maja zostać zmienione dane: id_customer identyfikator klienta na platformie Hiperus dla którego nastąpi aktualizacja rekordu name nazwa klienta email email klienta address adres linia1 nazwa ulicy / miejscowość street_number numer ulicy / miejscowości apartment_number numer mieszkania postcode kod pocztowy city miasto country kraj b_name dane billingowe (faktura) nazwa klienta b_address dane billingowe (faktura) - adres linia1 nazwa ulicy / miejscowość b_street_number dane billingowe (faktura) numer ulicy / miejscowości b_apartment_number dane billingowe (faktura) - numer mieszkania b_postcode dane billingowe (faktura) kod pocztowy b_city dane billingowe (faktura) miasto b_country dane billingowe (faktura) kraj b_nip dane billingowe (faktura) numer NIP b_regon dane billingowe (faktura) numer REGON ext_billing_id identyfkator klienta z zewnętrznego systemu billingowego issue_invoice czy wystawiane faktury id_default_pricelist identyfikator domyślnego cennika payment_type typ płatności {prepaid, postpaid id_default_balance identyfikator domyślnego limitu dla konta prepaid 18/26
active czy klient aktywny consent_data_processing czy zgoda na przetwarzanie danych Funkcja zwraca wartość true jeżeli aktualizacja zakończy się sukcesem lub podniesie wyjątek z odpowiednim błędem w przeciwnym wypadku. ChangeTerminalData Zmiana danych terminala SIP boolean ChangeCustomerData(array $t_data) Parametry t_data parametr wymagany, array. Tablica zawierająca elementy z danymi które mają zostać zmienione oraz parametr identyfikujący terminal SIP dla którego maja zostać zmienione dane: id_terminal parametr wymagany, integer. Identyfikator terminala SIP na platformie Hiperus dla którego nastąpi aktualizacja rekordu username parametr wymagany, string. Nazwa terminala SIP, jego nazwa użytkownika. password parametr wymagany, string. Hasło terminala SIP screen_numbers parametr opcjonalny, bool. Screening numerów t38_fax parametr opcjonalny, bool. Czy uruchamiać T.38 dla terminala. id_terminal_location parametr opcjonalny, integer. Identyfikator lokalizacji terminala dla połączeń alarmowych. Lista lokalizacji dołączona w pliku lokalizacje_terminali.pdf id_pricelist parametr opcjonalny, integer. Identyfikator cennika za pomocą którego będą naliczane połączenia wykonywane przez terminal SIP. Jeżeli nie zostanie podany cennik nie ulega zmianie. Funkcja zwraca wartość true jeżeli aktualizacja zakończy się sukcesem lub podniesie wyjątek z odpowiednim błędem w przeciwnym wypadku. ChangePSTNNumberData Zmiana danych numeru PSTN boolean ChangePSTNNumberData(array $e_data) Parametry e_data parametr wymagany, array. Tablica zawierająca elementy z danymi które mają zostać zmienione oraz parametr identyfikujący numer PSTN dla którego maja zostać 19/26
zmienione dane: id_extension parametr wymagany, integer. Identyfikator numeru PSTN na platformie Hiperus dla którego nastąpi aktualizacja rekordu number parametr wymagany, string. Numer telefonu country_code parametr wymagany, string. Numer kierunkowy kraju is_main parametr opcjonalny, bool. Czy numer główny clir parametr opcjonalny, bool. Czy numer z usługą CLIR. virtual_fax parametr opcjonalny, bool. Czy na numerze uruchomiona usługa wirtualnego FAXu. voicemail_enabled parametr opcjonalny, bool. Czy dla numeru jest włączona poczta głosowa id_auth - parametr opcjonalny, integer. Identyfikator użytkownika panelu końcowego klienta który jest przypisany do tego numeru (zob. Również przypisanie użytkownika do terminala SIP) Funkcja zwraca wartość true jeżeli aktualizacja zakończy się sukcesem lub podniesie wyjątek z odpowiednim błędem w przeciwnym wypadku. GetCustomerList Zwraca listę klientów utworzonych na platformie Hiperus C5. array[][] GetCustomerList([integer $offset [, integer $limit [, string $query]]]) Parametry wywołania offset opcjonalny, integer. Od którego rekordu pobrać dane. limit opcjonalny, integer. Jak dużo danych pobrać. query opcjonalny, string. Pobrać tylko klientów których nazwa rozpoczyna sie od wartości query. Wielkość znaków nie ma znaczenia. Zwraca tablicę której każdy element jest tablicą z elementami takimi jak dla wartości zwracanej przez funkcję GetCustomerData. GetTerminalList Zwraca listę terminali SIP dla zadanego klienta. array[][] GetTerminalList(integer $id_customer [, integer $offset [, integer $limit]]) Parametry wywołania 20/26
id_customer parametr wymagany, integer. Identyfikator klienta na platformie Hiperus dla którego zostanie zwrócona lista przypisanych terminali SIP offset parametr opcjonalny, integer. Od którego rekordu pobrać dane. limit parametr opcjonalny, integer. Jak dużo danych pobrać. Funkcja zwraca tablicę której każdy element jest tablicą z następującymi elementami: id identyfikator terminala SIP username nazw terminala password hasło terminala screen_numbers czy dokonywać sprawdzenia przysyłanych numerów ak. screening t38_fax czy wykonywać t38 gatewaying customer_name nazwa klienta do którego terminal jest przypisany id_pricelist identyfikator cennika za pomocą którego są naliczane połączenia obsługiwane przez terminal pricelist_name nazwa cennika za pomocą którego są naliczane połączenia obsługiwane przez terminal balance_value wartość pozostałych środków na koncie, dla terminala typu prepaid id_auth identyfikato użytkownika panelu końcowego klienta id_subscription identyfikator abonamentu subscription_from data od której abonament jest aktywny subscription_to data do której abonament jest aktywny value_left wartość, która pozostała w abonamencie id_terminal_location identyfikator lokalizacji terminala SIP area_code strefa numeracyjna w której terminal SIP jest używany borough gmina dla połączeń alarmowych county powiat dla połączeń alarmowych province - wojewódźtwo sip_proxy sip proxy GetPSTNNumberList Zwraca listę numerów PSTN dla zadanego klienta array[][] GetPSTNNumberList(integer $id_customer [, integer 21/26
$offset [, integer $limit]]) Parametry wywołania id_customer parametr wymagany, integer. Identyfikator klienta na platformie Hiperus dla którego zostanie zwrócona lista przypisanych numerów PSTN offset parametr opcjonalny, integer. Od którego rekordu pobrać dane. limit parametr opcjonalny, integer. Jak dużo danych pobrać. Funkcja zwraca tablicę której każdy element jest tablicą z następującymi elementami: id identyfikator terminala SIP extension numer PSTN, format międzynarodowy bez znaku '+' country_code kod kraju number numer PSTN format krajowy is_main czy jest to numer główny disa_enabled czy DISA aktywna clir czy CLIR aktywny virtual_fax czy virtualny faks aktywny terminal_name nazwa terminala SIP obsługującego numer id_auth identyfikato użytkownika panelu końcowego klienta create_date data i czas utworzenia numeru voicemail_enabled czy poczta głosowa aktywna GetPricelistList Pobiera listę cenników dla klientów końcowych. array[][] GetPricelistList([integer $offset [, integer $limit]]) Parametry wywołania offset parametr opcjonalny, integer. Od którego rekordu pobrać dane. limit parametr opcjonalny, integer. Jak dużo danych pobrać. Funkcja zwraca tablicę której każdy element jest tablicą z następującymi elementami: id identyfikator cennika name nazwa cennika charge_internal_call czy naliczać połączenia wewnątrz platformy resellera 22/26
GetSubscriptionList Pobiera listę abonamentów zdefiniowanych przez resellera array[][] GetSubscriptionList(void) Parametry wywołania Brak Funkcja zwraca tablicę której elementy są tablicą o następujących elementach: id identyfikator abonamentu name nazwa abonamentu value wartość w abonamencie id_reseller identyfikator resellera invoice_value wartość na fakturę abonamentu GetEndUserList Pobiera listę użytkowników panelu końcowego klienta array[][] GetEndUserList(integer $id_customer [, $offset [, integer $limit]]) Parametry wywołania id_customer parametr wymagany integer, identyfikator klienta dla którego funkcja ma zwrócić liste użytkowników offset parametr opcjonalny, integer. Od którego rekordu pobrać dane. limit parametr opcjonalny, integer. Jak dużo danych pobrać. Funkcja zwraca tablicę której elementy są tablicami o poniższej specyfikacji: id identyfikator użytkownika panelu końcowego klienta password hasło użytkownika email email użytkownika (nazwa użytkownika) admin czy jest administratorem vm_count ilość wiadomości w skrzynce głosowej fax_count ilość faksów w skrzynce faksowej exten_count ilość numerów PSTN przypisanych do użytkownika vexten_count ilość numerów VPBX przypisanych do użytkownika 23/26