API REST v2.0

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (34)

просмотр истории страницы

h3. Как удобно выполнить большой запрос из консоли?
Подробно выполнение sql запроа в скрпитах описано в [статье|Конструктор отчетов#Выполнение запроса для использования в скриптах].
# Создайте *bash* скрипт
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id": "1360"}&method2=restore&arg2={}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -
{code}
# h5. Задать абоненту с id 101 токен 123456 для отправки PUSH уведомления
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":"101"}&method2=set&arg2={"push_token":"123456"}&method3=save&arg3={}'' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -
{code}
# h5. Перерасчитать абонента начиная с выбранного периода (обязательно указывать первое число месяца\!)
Перерасчет абонента с ID 1392 с июня 2019 года
{code}curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -d 'method1=objects.get&arg1={"id":"1392"}&method2=set&arg2={"need_recalc":"2019-06-01"}&method3=save&arg3={}'{code}
Перерасчет абонента с ID 1368 с февраля 2026 года
{code}
curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -d 'method1=objects.get&arg1={"id":"1368"}&method2=recalc_service&arg2={"start_date":"2026-02-01","clear_blocks": true}'
{code}
# h5. Перерасчитать абонентов на тарифе с id 1405, начиная с выбранного периода (обязательно указывать первое число месяца\!)
{code}sqlexec "set list on; select id from abonents where tarif_id=1405" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"need_recalc":"2019-06-01"}&method3=save&arg3={}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done{code}
# h5. Перерасчитать абонента с удалением истории блокировок
Для перерасчёта с удалением истории блоировок необходимо отдельно удалить историю блокировок по абоненту, и далее запустить перерасчёт. Например, по абоненту с id *6034* за *сентябрь 2024*.
#* Удалите историю блокировок
{code}
sqlexec -l "select ID from abonents_block_history where abonent_id=6034 and B_DATE between '2024-09-01 00:00:00' and '2024-09-30 23:59:59'" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST "http://169.254.80.82:8082/rest_api/v2/AbonentsBlockHistory/" -d "method1=objects.get&arg1={\"id\":$line}&method2=delete&arg2={}" -D -; done
sqlexec "set list on; select id from abonents where tarif_id=1405" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=recalc_service&arg2={"start_date":"2019-06-01"}' 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -D -; done
{code}
#* Запустите перерсчёт
# h5. Перерасчитать абонента с удалением истории блокировок. Например, по абоненту с id *6034* за *сентябрь 2024*.
{code}
curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/Abonents/' -d 'method1=objects.get&arg1={"id":"6034"}&method2=set&arg2={"need_recalc":"2024-09-01"}&method3=save&arg3={}' 'method1=objects.get&arg1={"id":"6034"}&method2=recalc_service&arg2={"start_date":"2024-09-01","clear_blocks": true}'
{code}
# h5. Получение данных об операторе, обслуживающем абонента
# h5. Установить всем учетным записям абонентов из папки 1358 nas c id 1115.
{code}
sqlexec "set list on; select id from users where abonent_id in (SELECT abonent_id FROM GLN_RECURSIVE_ABONENTS_GET(1358))" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"nas_id":"1115"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Users/ -D -; done
sqlexec "set list on; SELECT u.id FROM GLN_RECURSIVE_ABONENTS_GET(1358) a JOIN users u on u.abonent_id=a.abonent_id" | grep -oP '\d+' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"nas_id":"1115"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Users/ -D -; done
{code}
# h5. Установить всем абонентам из папки id 1386 пул ip-адресов с id 1003 и выдать новый ip-адрес из пула
# h5. Установить опцию "Привязать пользователей к этому NAS" для учетных записей абонентов, находящихся в папке с id 1358
{code}
sqlexec "set list on; select id from users where abonent_id in (SELECT abonent_id FROM GLN_RECURSIVE_ABONENTS_GET(1358))" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"nas_ip_lock":"1"}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Users/ -D -; done
sqlexec "set list on; SELECT u.id FROM GLN_RECURSIVE_ABONENTS_GET(1358) a JOIN users u on u.abonent_id=a.abonent_id" | grep -oP '\d+' | while read line; do curl -XPOST -d 'method1=objects.get&arg1={"id":'$line'}&method2=set&arg2={"nas_ip_lock": 1}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Users/ -D -; done
{code}
# h5. Отправить на оборудование актуальные состояния учетных записей:
curl -XPOST --url 'http://169.254.80.82:8082/rest_api/v2/Users/' --data 'method1=objects.all&arg1={}&method2=update&arg2={"modified":4}
{code}
# h5. Сброс сессии у учётной записи 1234:
{code}
curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/EventsStackCompact/' -d 'method1=objects.create&arg1={"user_id": '1234',"cmd":"user_disconnect"}'
{code}
В скрипте управления session должна быть описана функция user_disconnect . В ней обычно уже есть CoA запрос.
h3. Блокировки абонента

# h5. Список абонентов блокировкой negbal, выводим логин и IP адерес.
{code}
{code}curl curl -XPOST -d 'method1=objects.filter&arg1={"abonent__deleted": 0, "abonent__abonent_id_abonentsblock__b_negbal": 1 }&method2=distinct&fields=["login", "ip"]' "http://169.254.80.82:8082/rest_api/v2/Users/" -D -{code}
# h5. Работа с блокировками абонентов и их историей
Получить ID текущих блокировок по балансу абонента с ID 1392
{code}curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AbonentsBlock/' -d 'method1=objects.filter&arg1={"abonent_id":1392,"b_negbal":1}&fields=["id"]'{code}
{code}
curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AbonentsBlock/' -d 'method1=objects.filter&arg1={"abonent_id":1392,"b_negbal":1}&fields=["id"]'
{code}
Снять блокировку с ID 243068
{code}curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AbonentsBlock/' -d 'method1=objects.get&arg1={"id":243068}&method2=delete'{code}
{code}
curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AbonentsBlock/' -d 'method1=objects.get&arg1={"id":243068}&method2=delete'
{code}
Получить ID блокировок абонента ID 1392 измененных с 1 по 30 июня 2019 года
{code}
{code}curl curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AbonentsBlockHistory/' -d 'method1=objects.filter&arg1={"abonent_id":1392,"b_negbal":1,"time_changed__range":["2019-06-01", "2019-06-30"]}&fields=["id"]'{code}
{code}
Получить ID блокировок абонента ID 1392 снятых с 1 по 30 июня 2019 года
{code}
{code}curl curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AbonentsBlockHistory/' -d 'method1=objects.filter&arg1={"abonent_id":1392,"b_negbal":1,"time_del__range":["2019-06-01", "2019-06-30"]}&fields=["id"]'{code}
{code}
Изменить запись в истории блокировок ID 118, установить время изменения и снятия на 1 июня 2019 года
{code}curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AbonentsBlockHistory/' -d 'method1=objects.get&arg1={"id":118}&method2=set&arg2={"time_changed":"2019-06-01 00:00:00","time_del":"2019-06-01 00:00:00"}&method3=save'{code}
{code}
curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/AbonentsBlockHistory/' -d 'method1=objects.get&arg1={"id":118}&method2=set&arg2={"time_changed":"2019-06-01 00:00:00","time_del":"2019-06-01 00:00:00"}&method3=save'
{code}
# h5. Удалить историю блокировок
{code}
sqlexec -l "select ID from abonents_block_history where abonent_id=6034 and B_DATE between '2024-09-01 00:00:00' and '2024-09-30 23:59:59'" | awk ' {print $2} ' | sed '/^$/d' | while read line; do curl -XPOST "http://169.254.80.82:8082/rest_api/v2/AbonentsBlockHistory/" -d "method1=objects.get&arg1={\"id\":$line}&method2=delete&arg2={}" -D -; done
{code}

h3. Лицевой счёт
done
{code}
# h5. Настроить в услуге для [межоператорских расчетов|Взаиморасчеты между операторами, агентская схема телефонии и транзит] транк-группу
{code}curl -ss 'http://169.254.80.82:8082/rest_api/v2/UsersUsluga/' -d 'method1=objects.get&arg1={"pk":1610}&method2=set&arg2={"voip_operator_match_format":"Beeline"}'{code}
# h5. Изменить дату окончания работы услуги.
h3. Отчёты

# h5. Выполнение [отчёта|Конструктор отчетов] 1003 с параметром phone="+79222222222"
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":1003}&method2=get_data&arg2={"phone":"+79222222222"}' http://169.254.80.82:8082/rest_api/v2/AdminCustomReports/ -D -
{code}
# h5. Выполнение [отчёта|Конструктор отчетов] 250081 с параметрами даты за январь 2022 года
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":250081}&method2=get_data&arg2={"start":"2022-01-01 00:00:00.0000", "end":"2022-01-31 23:59:59.0000"} ' http://169.254.80.82:8082/rest_api/v2/AdminCustomReports/ -D -
{code}
* В отчёте [переменные|Конструктор отчетов#Фильтры данных (параметры полей формы)] должны быть объявлены на латинице.
* [Переменные|Конструктор отчетов#Фильтры данных (параметры полей формы)] должны быть произвольного типа.
{code}
':start$'