Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія | Попередня ревізія Наступна ревізія По сторонах наступні версії | ||
remoteapi [2020/05/15 08:58] |
remoteapi [2023/06/15 17:33] nightfly [Страшні виклики про Asterisk] |
||
---|---|---|---|
Рядок 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** - производит выгрузку данных в [[sormyahont|ИС СОРМ Яхонт]]. | ||
+ | * **askozianum + [param mobilenumber]** - возвращает состояние пользователя по номеру его мобильного номера: | ||
+ | * **freezedayscharge + [param debug2ublog]** - запускает процесс обработки замороженных пользователей при включенном ограничении количества дней заморозки. Списывает или начисляет доступные дни заморозки, | ||
+ | * **mikrotikdnshaper + [param downshift]** - запускает обработку правил динамического шейпера для [[mikrotikapi|Mikrotik NAS]]. Опциональный параметр **downshift** указывает обработчику вернуть пользователям скорости согласно их тарифных планов. [[dnswitchmtik|Подробнее]] | ||
+ | * **getagentdata + [param login]** - возвращает JSON с данными о присвоенном пользователю контрагенте. | ||
+ | * **districtscache** - обновляет кэш соответствия пользователей районам. | ||
+ | * **smszilla** + filterid + templateid + [translit] | ||
+ | * **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** - вызов предназначен для обеспечения базовой интеграция c сервисом [[smartup|SmartUP]]. | ||
+ | * **envyarchive** - сохраняет конфигурацию всех завистливых устройств в архиве. | ||
+ | * **autocredit** - вызывает [[autocredit|автоматическое кредитование]] особенных пользователей в последний день месяца. | ||
+ | * **sc** +[login, | ||
+ | * **pt** - вызывает обработку [[pt|Мощей тарифов]]. | ||
+ | * **usercash** - денежные операции пользователя. Принимает параметры login (логин), | ||
+ | * **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: | ||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | * ERROR: | ||
+ | |||
+ | |||
+ | На данный момент вызовы reset и handlersrebuild используються для работы UHW. Пока что мы не хотим выносить слишком много излишнего функционала в это API в целях безопасности. Если вы хотите вызывать что-то из того что делает Ubilling в своих внешних приложениях - мы с удовольствием рассмотрим все предложения. | ||
+ | |||
+ | Если требуется вызов каких-то процедур из 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. | ||