Користувальницькькі налаштування

Налаштування сайту


remoteapi

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
remoteapi [2023/06/15 17:27]
nightfly
remoteapi [2024/03/26 17:58] (поточний)
nightfly
Рядок 52: Рядок 52:
   * **whydoyoucall** - Отримує дані з Askozia PBX про пропущені дзвінки.   * **whydoyoucall** - Отримує дані з Askozia PBX про пропущені дзвінки.
   * **whydoyoucallstats** - Записує статистику пропущених дзвінків за день у БД.   * **whydoyoucallstats** - Записує статистику пропущених дзвінків за день у БД.
 +  * **nasmon** - здійснює опитування серверів NAS з довідника на тему їхньої живості.
 +  * **mtsigmonpoll** - проводить опитування Mikrotik, UBNT та інших бездротових пристроїв, для отримання рівнів сигналу.
 +  * **sormcast** - проводить вивантажування даних в ИС СОРМ Яхонт.
 +  * **askozianum + [param mobilenumber]** - повертає стан користувача за номером його мобільного номера: 0 - не знайдено, 1 - знайдено і з ним все добре, 2 - боржник, 3 - відморозок.
 +  * **freezedayscharge + [param debug2ublog]** - запускає процес обробки заморожених користувачів при увімкненому обмеженні кількості днів заморозки. Списує або нараховує доступні дні заморозки, а також відключає заморожування тим, хто вичерпав свої доступні дні заморозки. Необов'язковий параметр //debug2ublog// включає дебаг-режим та запис того, що відбувається в веблог. [[frozenchargedays|Докладніше]]
 +  * **mikrotikdnshaper + [param downshift]** - запускає обробку правил динамічного шейпера для [[mikrotikapi|Mikrotik NAS]]. Опціональний параметр **downshift** вказує обробникові повернути користувачам швидкості відповідно до їх тарифних планів. [[dnswitchmtik|Докладніше]]
 +  * **getagentdata + [param login]** - повертає JSON з даними про присвоєному користувачеві контрагента.
 +  * **districtscache** - оновлює кеш присвоєних користувачам районів.
 +  * **smszilla** + filterid + templateid + [translit]  - здійснює розсилку з заздалегідь заданими фільтрами з певним шаблоном та опціональним примусовим транслітом за допомогою [[smszilla|SMSZilla]].
 +  * **multigen** - проводить швидку регенерацію всіх сценаріїв та відпрацювання необхідних сервісів [[multigen|КупаГен]].
 +  * **multigentotal** - очищає всі сценарії, потім здійснює регенерацію всіх сценаріїв та виконує необхідні сервіси (не рекомендується використовувати просто так) 
 +  * **multigentraff** - агрегує статистику сесій з таблички акаунтингу та оновлює трафік користувачів stargazer-а.
 +  * **multigenpod + [param login]** - шле PoD на NAS користувача з логіном вказаним у параметрі param. Керується опцією MULTIGEN_POD_ON_MAC_CHANGE.
 +  * **onepunch + [param alias]** - запускает выполнение существующего [[onepunch|One-Punch]] скрипта.
 +  * **paycardsqueue** - обробляє чергу платіжних карток і позначає їх як повністю "використані".
 +  * **salarytelegram** - розсилає співробітникам [[salary|закриті]] на них роботи за день.
 +  * **warehousetelegram** - розсилає співробітникам [[warehouse|заброньовані]] на них ТМЦ.
 +  * **ddt** - викликає періодичну обробку тарифів судного дня.
 +  * **visorcharge** - здійснює нарахування коштів для камер у разі їх дефіциту, в останній день місяця з основного облікового запису.
 +  * **fdbarchive** - производит сохранение текущего кэша FDB для архива. При необходимости производит ротацию.
 +  * **remotedhcp** - повертає дані, необхідні для синхронізації [[remotedhcp|віддаленими DHCP серверами]].
 +  * **stgfeecharge2mysql** - створює кеш останніх списань коштів старгейзером з рахунку користувача для кожного логіну витягаючи це все з stargazer.log. Потрібно для коректної роботи функціонала, що включає опцію [[alteriniconf|alter.ini]] ONLINE_SHOW_LAST_FEECHARGE.
 +  * **smartup** - виклик призначений для забезпечення базової інтеграції з сервісом [[smartup|SmartUP]].
 +  * **envyarchive** - зберігає конфігурацію всіх активних заздрісних пристроїв у архіві.
 +  * **autocredit** - викликає [[autocredit|автоматичне кредитування]] особливих користувачів в останній день місяця. 
 +  * **sc** +[login,cr,end,fee,ct] - викликає процедуру встановлення кредиту користувача.
 +  * **pt** - викликає обробку [[pt|Могутніх тарифів]].
 +  * **usercash** -  Фінансові операції користувача. Приймає параметри login (логін), summ(сума грошей), ct(тип оплати), op (add/correct/set/mock), note(примітка). Приклад: usercash&login=sometestuser&summ=2&ct=1&op=correct&note=test
 +  * **ptvchargefee** - здійснює нарахування АП всім передплатникам [[prostotv|ProstoTV]].
 +  * **karmaguard** - намагається автоматично ремонтувати карму користувачам, у яких вона з якоїсь причини встигла зіпсуватися.
 +  * **callmeback + [param number]** - створює нову заявку для модуля [[callmeback|Передзвоніть мені будь ласка]].
 +  * **olltvchargefee** - здійснює тарифікацію послуг [[olltv|OllTV]].
 +  * **opayzsmsnotify** - запуск розсилки SMS сповіщень OpenPayz.
 +  * **cachedog** - стежить за інвалідацією кешу повних даних користувача. У момент виклику перевіряється стан всіх користувачів і якщо він, не відповідає закешованому в ключі USER_ALL_DATA - останній просто прибивається.
 +  * **telepony + number** - реагує на вхідний дзвінок [[telepony|TelePony]].
 +  * **fastping** - опитує пристрої з довідника комутаторів на живість за допомогою [[fastping|FastPing]].
 +  * **userbynum + number** - повертає [[userbynum|дані користувача за номером його стільникового]].
 +  * **feesharvester** - реплікує дані про нарахування АП з логу Stargazer до БД. З додатковим параметром full - сканує весь лог за весь час, з параметром today - тільки за поточну добу, без параметрів - за поточний місяць.
 +  * **btrxupd** - Пушить за наявності всі зміни в абонбазі для [[btrx24|CRM Bitrix24]]
 +  * **btrxpolls** - пушить дані про всі наявні опитування та їх результати до [[btrx24|CRM Bitrix24]]
 +  * **setculpa + [login,culpa]** - встановлює користувачу login кульпу вказану в culpa
 +  * **pseudocrm + [param]** - виконує відповідний виклик функцій вказахнив в param з [[pseudocrm|PseudoCRM]].
 +  * **stickynotify** - виконує розсилку в Telegram всім активним працівникам, з кількістю їх активних персональних нотаток та нагадувань "на сьогодні".
 +  * **taskmannotify** - виконує розсилку в Telegram всім активним працівникам, з кількістю запланованих на них задач планувальника задач "на сьогодні".
 +  * **ophanimtraff** - виконує синхронізацію локальної БД з даними джерел [[ophanimflow|OphanimFlow]].
 +  * **callshistusrupd** - виконує оновлення бази невідомих дзвінків, телепатично вгадуючи для них користувачів якщо вони з'явились вже після приходу дзвінка.
 +
 +
 +У разі неправильних викликів Remote API повертатиме наступні помилки:
 +
 +  * ERROR:GET_NO_ACTION - не вказано процедуру, яку слід викликати
 +  * ERROR:GET_WRONG_KEY - вказано невірний серійний номер Ubilling
 +  * ERROR:NO_UBSERIAL_EXISTS - не згенеровано серійний номер Ubilling (можна дізнатися у модулі "Стан системи")
 +  * ERROR:GET_NO_KEY - не вказано серійний номер Ubilling
 +  * ERROR:API_DISABLED - Remote API вимкнено за допомогою параметру REMOTEAPI_ENABLED=0 в alter.ini
 +  * ERROR:GET_NO_PARAM - не вказано обов'язковий параметр для виклику поточної процедури (наприклад, логін користувача)
 +
 +
 +Якщо потрібно звідкись ззовні викликати якісь процедури з API (а воно для цього і є), можна оформити це в такому вигляді:
 +
 +<code bash> 
 +/usr/local/bin/curl -o /dev/null "http://127.0.0.1/billing/?module=remoteapi&key=ваш_серійник&action=vserviceschargefee"
 +</code>
 +
 +або так
 +
 +<code bash> 
 +/usr/local/bin/curl -o /dev/null "http://127.0.0.1/billing/?module=remoteapi&key=ваш_серійник&action=swping"
 +</code>
 +
 +Думка сподіваємось зрозуміла\\
 +
 +====== Страшні виклики навколо Asterisk ======
 +
   * **asterisk + [param login]** - дозволяє отримати логін клієнта за номером телефону   * **asterisk + [param login]** - дозволяє отримати логін клієнта за номером телефону
   * **asterisk + [param realname]** - дозволяє отримати логін та ПІБ клієнта за номером телефону у вигляді **[login]-[ПІБ]**;   * **asterisk + [param realname]** - дозволяє отримати логін та ПІБ клієнта за номером телефону у вигляді **[login]-[ПІБ]**;
Рядок 59: Рядок 133:
     * //**&param=setcredit**// - **зобов'язує** використовувати додаткові параметри: **&login**=some_user_login, **&money**=123.45 и **&expiredays**=7.          * //**&param=setcredit**// - **зобов'язує** використовувати додаткові параметри: **&login**=some_user_login, **&money**=123.45 и **&expiredays**=7.     
     * //**&param=paycardpay**// - **зобов'язує** використовувати додаткові параметри: **&login**=some_user_login і **&paycardnum**=987654321. Параметр **&paycardcashtype**=24 - необов'язковий, має на увазі ID типу оплат і за замовчуванням рівний 1.     * //**&param=paycardpay**// - **зобов'язує** використовувати додаткові параметри: **&login**=some_user_login і **&paycardnum**=987654321. Параметр **&paycardcashtype**=24 - необов'язковий, має на увазі ID типу оплат і за замовчуванням рівний 1.
-    * //**&param=setpause**// - **обязывает** использовать дополнительный параметр: **&login**=some_user_login. +    * //**&param=setpause**// - **зобов'язує** використовувати додатковий параметр: **&login**=some_user_login. 
-    * //**&param=setunpause**// - **обязывает** использовать дополнительный параметр: **&login**=some_user_login. Настойчиво рекомендуем использовать данный функционал крайне осторожно, поскольку каких либо особых проверок состояния юзера перед разморозкой НЕ проводится. +    * //**&param=setunpause**// - **зобов'язує** використовувати додатковий параметр: **&login**=some_user_login. Наполегливо радимо використовувати цей функціонал дуже обережно, оскільки будь-яких спеціальних перевірок стану користувача перед розморожуванням не проводиться. 
-    * //**&param=getuserdatabylogin**// - **обязывает** использовать дополнительный параметр: **&login**=some_user_login. При использовании необязательного параметра **&userpass**=some_password будет произведена верификация пары "логин + пароль" перед возвратом данных юзера. +    * //**&param=getuserdatabylogin**// - **зобов'язує** використовувати додатковий параметр: **&login**=some_user_login. При використанні необов'язкового параметра **&userpass**=some_password буде проведена верифікація пари "логін + пароль" перед поверненням даних користувача. 
-    * //**&param=getuserdatabymobile|getcontractsbymobile**// - не подразумевают использования каких-либо дополнительных параметров, кроме **&number=[mobile_number]** и их действия/возвращаемые данные вполне себе соответствуют их наименованиям. +    * //**&param=getuserdatabymobile|getcontractsbymobile**// - не мають на увазі використання будь-яких додаткових параметрів, крім **&number=[mobile_number]** та їх дії/повертані дані цілком відповідають їх найменуванням. 
-    * //**&param=addusermobile**//помимо **&number=[mobile_number]** обязывает так же использовать параметр **&login**=some_user_login, что, как бы, логично. Необязательный параметр **&maxmobilesamnt**=4 указывает максимально возможное количество мобильных номеров на одного юзера. +    * //**&param=addusermobile**// - окрім **&number=[mobile_number]** зобов'язує також використовувати параметр **&login**=some_user_login, що, як би, логічно. Необов'язковий параметр **&maxmobilesamnt**=4 показує максимальну кількість мобільних номерів однією користувача. 
-    * //**getvservicescount**// - **подразумевает** возможность поиска юзера по номеру телефона **&number=[mobile_number]** или логину. Возвращает количество виртуальных сервисов, привязанных к определенному пользователю+    * //**getvservicescount**// - **має на увазі** можливість пошуку користувача за номером телефону **&number=[mobile_number]** або логіну. Повертає кількість віртуальних сервісів, прив'язаних до певного користувача
-    * //**getonlinedaysleft**// - **подразумевает** возможность поиска юзера по номеру телефона **&number=[mobile_number]** или логину **&login**=some_user_login. Вы также можете использовать параметр **includevsrvs=true**, чтобы включить стоимость виртуальных услуг в расчет "оставшихся дней в сети"Возвращает количество «оставшихся дней в сети» для определенного пользователя+    * //**getonlinedaysleft**// - **має на увазі можливість пошуку користувача за номером телефону **&number=[mobile_number]** або логіну **&login**=some_user_login. Ви також можете використовувати параметр **includevsrvs=true**, щоб включити вартість віртуальних послуг у розрахунок днів, що залишилися в мережіПовертає кількість днів, що «залишилися в мережі» для певного користувача
-    * //**getcontragentdata**// - **подразумевает** возможность поиска юзера по номеру телефона **&number=[mobile_number]** или логину **&login**=some_user_login. Возвращает данные связанного контрагента для определенного пользователя+    * //**getcontragentdata**// - **має на увазі можливість пошуку користувача за номером телефону **&number=[mobile_number]** або логіну **&login**=some_user_login. Повертає дані пов'язаного контрагента для певного користувача
-    * //**getuserspends**// - **подразумевает** возможность поиска юзера по номеру телефона **&number=[mobile_number]** или логину **&login**=some_user_login. Вы также можете использовать параметр **includevsrvs=true**для получения всех виртуальных услуг в дополнение к основному тарифу. Возвращает информацию о тарифе пользователя и его стоимости, а также, опционально, аналогичную информацию о виртуальных услугах пользователя в формате:+    * //**getuserspends**// - **має на увазі** можливість пошуку користувача за номером телефону **&number=[mobile_number]** або логіну **&login**=some_user_login. Ви також можете використовувати параметр **includevsrvs=true** для отримання всіх віртуальних послуг на додаток до основного тарифу. Повертає інформацію про тариф користувача та його вартість, а також, опціонально, аналогічну інформацію про віртуальні послуги користувача у форматі:
 <code php> <code php>
         array(TarrifName => array('price' => TariffCost, 'daysperiod' => TariffChargePeriod),         array(TarrifName => array('price' => TariffCost, 'daysperiod' => TariffChargePeriod),
Рядок 74: Рядок 148:
               VserviceN => array('price' => VserviceNCost, 'daysperiod' => VserviceChargePeriod)               VserviceN => array('price' => VserviceNCost, 'daysperiod' => VserviceChargePeriod)
              )              )
-        //Примечание: "TarrifName => TariffCost" - всегда первый элемент массива+        //Примітка: "TarrifName => TariffCost"завжди перший елемент масиву
 </code> </code>
   *   *
      * - ! -      * - ! -
-        * //* Стоит отметитьчто **getuserdatabylogin|getuserdatabymobile|getcontractsbymobile|getcontragentdata|getuserspends** возвращают данные в формате JSON.//\\ +        * //* Варто зазначити, що **getuserdatabylogin|getuserdatabymobile|getcontractsbymobile|getcontragentdata|getuserspends** повертають дані у форматі JSON.//\\ 
-        * //* Все значения дополнительных параметров, конечно жеуказаны как пример.//\\+        * //* Всі значення додаткових параметрів, звичайно, вказані як приклад.//\\
  
  
-  * **nasmon** - производит опрос серверов NAS из справочника на тему их живости. 
-  * **mtsigmonpoll** - производит опрос Mikrotik и UBNT устройств для получения уровней сигнала. 
-  * **sormcast** - производит выгрузку данных в [[sormyahont|ИС СОРМ Яхонт]]. 
-  * **askozianum + [param mobilenumber]** - возвращает состояние пользователя по номеру его мобильного номера: 0 - не найден, 1 - найден и с ним все хорошо, 2 - должник, 3 - отморозок. 
-  * **freezedayscharge + [param debug2ublog]** - запускает процесс обработки замороженных пользователей при включенном ограничении количества дней заморозки. Списывает или начисляет доступные дни заморозки, а так же отключает заморозку тем, кто исчерпал свои доступные дни заморозки. Необязательный параметр //debug2ublog// включает дебаг-режим и запись происходящего в веблог. [[frozenchargedays|Подробнее]] 
-  * **mikrotikdnshaper + [param downshift]** - запускает обработку правил динамического шейпера для [[mikrotikapi|Mikrotik NAS]]. Опциональный параметр **downshift** указывает обработчику вернуть пользователям скорости согласно их тарифных планов. [[dnswitchmtik|Подробнее]] 
-  * **getagentdata + [param login]** - возвращает JSON с данными о присвоенном пользователю контрагенте. 
-  * **districtscache** - обновляет кэш соответствия пользователей районам. 
-  * **smszilla** + filterid + templateid + [translit]  - производит рассылку по заранее заданным фильтрам с определенным шаблоном и опциональным принудительным транслитом при помощи [[smszilla|SMSZilla]]. 
-  * **multigen** - производит быструю регенерацию всех сценариев и отработку требуемых сервисов 
-  * **multigentotal** - очищает все сценарии, потом производит регенерацию всех сценариев и выполняет требуемые сервисы (не рекомендуется использовать просто так) 
-  * **multigentraff** - аггрегирует статистику сессий из таблички аккаунтинга и обновляет трафик пользователей stargazer-а. 
-  * **multigenpod + [param login]** - шлет PoD на NAS пользователя с логином указанным в параметре param. Управляется опцией MULTIGEN_POD_ON_MAC_CHANGE. 
-  * **onepunch + [param alias]** - запускает выполнение существующего [[onepunch|One-Punch]] скрипта. 
-  * **paycardsqueue** - обрабатывает очередь платежных карточек и помечает их как полностью "использованные". 
-  * **salarytelegram** - рассылает сотрудникам [[salary|закрытые]] на них работы за день. 
-  * **warehousetelegram** - рассылает сотрудникам [[warehouse|забронированные]] на них ТМЦ. 
-  * **ddt** - вызывает периодическую обработку тарифов судного дня. 
-  * **visorcharge** - производит начисление средств для камер в случае их дефицита, в последний день месяца с основного аккаунта. 
-  * **fdbarchive** - производит сохранение текущего кэша FDB для архива. При необходимости производит ротацию. 
-  * **remotedhcp** - возвращает данные необходимые для синхронизации [[remotedhcp|удаленными DHCP серверами]]. 
-  * **stgfeecharge2mysql** - создает кэш последних списаний денежных средств старгейзером со счета пользователя для каждого логина вытягивая это все из stargazer.log. Нужно для корректной работы функционала, включаемого опцией [[alteriniconf|alter.ini]] ONLINE_SHOW_LAST_FEECHARGE. 
-  * **smartup** - вызов предназначен для обеспечения базовой интеграция c сервисом [[smartup|SmartUP]]. 
-  * **envyarchive** - сохраняет конфигурацию всех завистливых устройств в архиве. 
-  * **autocredit** - вызывает [[autocredit|автоматическое кредитование]] особенных пользователей в последний день месяца. 
-  * **sc** +[login,cr,end,fee,ct] - вызывает процедуру установки кредита пользователя. 
-  * **pt** - вызывает обработку [[pt|Мощей тарифов]]. 
-  * **usercash** - денежные операции пользователя. Принимает параметры login (логин), summ(сумма денег), ct(тип оплат), op (add/correct/set/mock), note(примечание). Пример: usercash&login=sometestuser&summ=2&ct=1&op=correct&note=test 
-  * **ptvchargefee** - производит начисление АП всем подписчикам [[prostotv|ProstoTV]]. 
-  * **karmaguard** - пытается автоматически чинить карму пользователям, у которых она по какой-то причине успела испортиться. 
-  * **callmeback + [param number]** - создает новую заявку для модуля [[callmeback|Перезвоните мне пожалуйста]]. 
-  * **olltvchargefee** - производит тарификацию услуг [[olltv|OllTV]]. 
-  * **opayzsmsnotify** - запуск рассылки СМС уведомлений OpenPayz. 
-  * **cachedog** - следит за инвалидацией кэша полных пользовательских данных. В момент вызова проверяется состояние всех пользователей и в случае если оно не соответствует закэшированному в ключе USER_ALL_DATA - последний просто сбрасывается. 
-  * **telepony + number** - реагує на вхідний дзвінок [[telepony|TelePony]]. 
-  * **fastping** - опитує пристрої з довідника комутаторів на живість за допомогою [[fastping|FastPing]]. 
-  * **userbynum + number** - повертає [[userbynum|дані користувача за номером його стільникового]]. 
-  * **feesharvester** - реплікує дані про нарахування АП з логу Stargazer до БД. З додатковим параметром full - сканує весь лог за весь час, з параметром today - тільки за поточну добу, без параметрів - за поточний місяць. 
-  * **btrxupd** - Пушить за наявності всі зміни в абонбазі для [[btrx24|CRM Bitrix24]] 
- 
-При неверных вызовах Remote API будет возвращать следующие исключения: 
-  * ERROR:GET_NO_ACTION - не указана процедура которую следует вызвать 
-  * ERROR:GET_WRONG_KEY - указан неверный серийный номер Ubilling 
-  * ERROR:NO_UBSERIAL_EXISTS - не сгенерирован серийный номер Ubilling (можно узнать в модуле "Состояние системы") 
-  * ERROR:GET_NO_KEY - не указан серийный номер Ubilling 
-  * ERROR:API_DISABLED - Remote API отключена при помощи параметра REMOTEAPI_ENABLED=0 в alter.ini 
-  * ERROR:GET_NO_PARAM - не указан объязательный параметр для вызова текущей процедуры (например логин пользователя) 
- 
- 
-На данный момент вызовы reset и handlersrebuild используються для работы UHW. Пока что мы не хотим выносить слишком много излишнего функционала в это API в целях безопасности. Если вы хотите вызывать что-то из того что делает Ubilling в своих внешних приложениях - мы с удовольствием рассмотрим все предложения. 
- 
-Если требуется вызов каких-то процедур из API (а оно для этого и есть), можно оформить это в таком виде: 
- 
-<code bash>  
-/usr/local/bin/curl -o /dev/null "http://127.0.0.1/billing/?module=remoteapi&key=ваш_серийник&action=vserviceschargefee" 
-</code> 
-или так 
-<code bash>  
-/usr/local/bin/curl -o /dev/null "http://127.0.0.1/billing/?module=remoteapi&key=ваш_серийник&action=swping" 
-</code> 
  
-Мысль надеюсь понятна.\\ 
 ====== Обгортка ====== ====== Обгортка ======
  
Рядок 166: Рядок 179:
  
  
-Починаючи з релізу 0.8.0, одразу після установки, він вже лежить по потрібному шляху. Та в нього вже вписано серійник вашого Ubilling. Тобто просто можете користуватись.+Починаючи з релізу 0.8.0, одразу після встановлення, він вже лежить по потрібному шляху. Та в нього вже вписано серійник вашого Ubilling. Тобто просто можете користуватись.
  
 ====== А далі що? ====== ====== А далі що? ======
Рядок 194: Рядок 207:
 </code> </code>
  
-Це необхідний мінімум(!) для забезпечення мінімального робочого стану Ubilling.+Це необхідний мінімум(!) для забезпечення мінімально робочого стану Ubilling.
  
remoteapi.1686839275.txt.gz · Востаннє змінено: 2023/06/15 17:27 повз nightfly