Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія | Попередня ревізія Наступна ревізія По сторонах наступні версії | ||
remoteapi [2020/05/15 08:58] |
remoteapi [2023/11/22 11:40] nightfly |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
+ | ====== API віддаленого виклику процедур ====== | ||
+ | |||
+ | У Ubilling починаючи з релізу 0.3.1 підтримується виклик зовнішніми програмами певних внутрішніх процедур білінгу. \\ | ||
+ | |||
+ | Для цього потрібна опція | ||
+ | <code ini> | ||
+ | REMOTEAPI_ENABLED=1 | ||
+ | </ | ||
+ | |||
+ | в конфігураційному файлі | ||
+ | |||
+ | Формат викликів за допомогою HTTP GET запитів: | ||
+ | |||
+ | < | ||
+ | http:// | ||
+ | </ | ||
+ | | ||
+ | На даний момент підтримуються наступні action:\\ | ||
+ | * **reset + param [login]** - ресет користувача, | ||
+ | * **handlersrebuild** - перебудова всіх мережних хендлерів та перезапуск dhcpd для відповідних підмереж | ||
+ | * **vserviceschargefee + param [nofrozen]** - зняття АП віртуальних сервісів. Необов' | ||
+ | * // | ||
+ | * **discountprocessing** - обробка знижок | ||
+ | * **backupdb** - резервування БД | ||
+ | * **autocleandb** - зачистка БД від старих логів та детальної статистики | ||
+ | * **swpoll** - опитування всіх пристроїв з довідника " | ||
+ | * **swping** - опитування всіх пристроїв з довідника " | ||
+ | * **fullhostscan + param [traffdiff] + nn** - опитування всіх клієнтів з підмереж вказаних у довіднику " | ||
+ | * **rebuilduserdatacache** - перебудовується кеш даних користувача в exports: cache_address, | ||
+ | * **autofreeze + param [nocredit]** - запускає процедуру автозаморозки користувачів з балансом нижче alter.ini: | ||
+ | * **autofreezemonth + param [nocredit]** - запускає процедуру автозаморозки користувачів з балансом нижче або рівним alter.ini: | ||
+ | * **watchdog** - нацьковує собаку-спостерігаку на виконання її завдань | ||
+ | * **senddog** - [[senddog|собака-посилака]] пробігається по всіх чергах для відправлення та здійснює відправлення всіх повідомлень. | ||
+ | * **senddog + [param chkmsgstatuses]** - необхідно лише за включеної історії СМС повідомлень. Зобов' | ||
+ | * **ukvfeeprocessing** - зняття АП користувачів [[ukv|УКВ]] | ||
+ | * **switchescoverage | ||
+ | * **rebuildglscache** - примусово перебудовується кеш глобального пошуку. | ||
+ | * **uhwbrutecleanup** - очищує реєстр спроб перебору паролів UHW | ||
+ | * **cudiscounts** - запускає механізм обробки [[cumulativediscounts|накопичувальних знижок]]. | ||
+ | * **crimeandpunishment** - запускає механізм [[crimeandpunishment|обробки злочинів та кари]]. | ||
+ | * **oltpoll** - запускає опит усіх OLT пристроїв. | ||
+ | * **reminder + [param force]** | ||
+ | * **friendshipdaily** - здійснює внесення відсотків за всіма дружніми платежами, | ||
+ | * **freezemonth + [param debug2ublog]** - здійснює списання коштів у заморожених користувачів рівним alter.ini: | ||
+ | * **writevlanmachistory** - робить опитування по влан термінаторам і заносить маки абонентів до таблиці, | ||
+ | * **dealwithit** - виконує для користувачів завдання, | ||
+ | * **mgqueue** - Здійснює заплановані відписки від тарифів Megogo | ||
+ | * **mgprocessing** - Здійснює нарахування АП за тарифами Megogo | ||
+ | * **mgfreecleanup** - Здійснює ліквідацію тестових підписок Megogo із простроченим періодом. | ||
+ | * **exhorse + [& | ||
+ | * **policedog** - Запускає швидке сканування собакою-поліціякою. Раз на півгодини-годину буде цілком нормально. | ||
+ | * **whydoyoucall** - Отримує дані з Askozia PBX про пропущені дзвінки. | ||
+ | * **whydoyoucallstats** - Записує статистику пропущених дзвінків за день у БД. | ||
+ | * **nasmon** - здійснює опитування серверів NAS з довідника на тему їхньої живості. | ||
+ | * **mtsigmonpoll** - проводить опитування Mikrotik, UBNT та інших бездротових пристроїв, | ||
+ | * **sormcast** - проводить вивантажування даних в ИС СОРМ Яхонт. | ||
+ | * **askozianum + [param mobilenumber]** - повертає стан користувача за номером його мобільного номера: | ||
+ | * **freezedayscharge + [param debug2ublog]** - запускає процес обробки заморожених користувачів при увімкненому обмеженні кількості днів заморозки. Списує або нараховує доступні дні заморозки, | ||
+ | * **mikrotikdnshaper + [param downshift]** - запускає обробку правил динамічного шейпера для [[mikrotikapi|Mikrotik NAS]]. Опціональний параметр **downshift** вказує обробникові повернути користувачам швидкості відповідно до їх тарифних планів. [[dnswitchmtik|Докладніше]] | ||
+ | * **getagentdata + [param login]** - повертає JSON з даними про присвоєному користувачеві контрагента. | ||
+ | * **districtscache** - оновлює кеш присвоєних користувачам районів. | ||
+ | * **smszilla** + filterid + templateid + [translit] | ||
+ | * **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. Потрібно для коректної роботи функціонала, | ||
+ | * **smartup** - виклик призначений для забезпечення базової інтеграції з сервісом [[smartup|SmartUP]]. | ||
+ | * **envyarchive** - зберігає конфігурацію всіх активних заздрісних пристроїв у архіві. | ||
+ | * **autocredit** - викликає [[autocredit|автоматичне кредитування]] особливих користувачів в останній день місяця. | ||
+ | * **sc** +[login, | ||
+ | * **pt** - викликає обробку [[pt|Могутніх тарифів]]. | ||
+ | * **usercash** - Фінансові операції користувача. Приймає параметри login (логін), | ||
+ | * **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, | ||
+ | * **pseudocrm + [param]** - виконує відповідний виклик функцій вказахнив в param з [[pseudocrm|PseudoCRM]]. | ||
+ | |||
+ | |||
+ | У разі неправильних викликів Remote API повертатиме наступні помилки: | ||
+ | |||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | |||
+ | |||
+ | Якщо потрібно звідкись ззовні викликати якісь процедури з API (а воно для цього і є), можна оформити це в такому вигляді: | ||
+ | |||
+ | <code bash> | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | або так | ||
+ | |||
+ | <code bash> | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Думка сподіваємось зрозуміла\\ | ||
+ | |||
+ | ====== Страшні виклики навколо Asterisk ====== | ||
+ | |||
+ | * **asterisk + [param login]** - дозволяє отримати логін клієнта за номером телефону | ||
+ | * **asterisk + [param realname]** - дозволяє отримати логін та ПІБ клієнта за номером телефону у вигляді **[login]-[ПІБ]**; | ||
+ | * **asterisk + [param swstatus]** - дозволяє отримати стан обладнання, | ||
+ | * **asterisk** - можливий наступний запит: **/? | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | <code php> | ||
+ | array(TarrifName => array(' | ||
+ | Vservice1 => array(' | ||
+ | Vservice2 => array(' | ||
+ | VserviceN => array(' | ||
+ | ) | ||
+ | // | ||
+ | </ | ||
+ | * | ||
+ | * - ! - | ||
+ | * //* Варто зазначити, | ||
+ | * //* Всі значення додаткових параметрів, | ||
+ | |||
+ | |||
+ | |||
+ | ====== Обгортка ====== | ||
+ | |||
+ | Для зручності та красивості, | ||
+ | |||
+ | <file bash ubapi> | ||
+ | #!/bin/sh | ||
+ | |||
+ | #= Change this to your real Ubilling serial == | ||
+ | UBSERIAL=UB000000000000000000000000000000000 | ||
+ | # | ||
+ | if [ $# -ne 1 ] | ||
+ | then | ||
+ | echo " | ||
+ | echo " | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | ACTION=$1 | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | |||
+ | Починаючи з релізу 0.8.0, одразу після встановлення, | ||
+ | |||
+ | ====== А далі що? ====== | ||
+ | |||
+ | І як тепер виглядатиме crontab -e у мінімальному джентльменському наборі? | ||
+ | |||
+ | <code bash> | ||
+ | 40 1 1 * * /bin/ubapi " | ||
+ | */20 * * * * /bin/ubapi " | ||
+ | */10 * * * * /bin/ubapi " | ||
+ | 5 * * * * / | ||
+ | 0 */1 * * * / | ||
+ | */10 * * * * /bin/ubapi " | ||
+ | */5 * * * * / | ||
+ | 1 1 * * * / | ||
+ | 3 * * * * / | ||
+ | 10 2 * * * /bin/ubapi " | ||
+ | 50 23 * * * / | ||
+ | */10 * * * * /bin/ubapi " | ||
+ | */30 * * * * /bin/ubapi " | ||
+ | 10 10 1 * * / | ||
+ | 10 */1 * * * /bin/ubapi " | ||
+ | */10 * * * * /bin/ubapi " | ||
+ | */20 * * * * /bin/ubapi " | ||
+ | */2 * * * * / | ||
+ | 10 0 * * * /bin/ubapi " | ||
+ | </ | ||
+ | |||
+ | Це необхідний мінімум(!) для забезпечення мінімально робочого стану Ubilling. | ||