146 KiB
Документация Narayana Billing API.
Текущая версия — 2.2
Введение
Любые приложения (в т.ч. клиентские и серверные) и любое оборудование, работающее в Narayana, взаимодействует с биллинговой системой (далее — биллингом) посредством API.
Для разграничения доступа к API используется система секретных ключей — идентификаторов клиентского и/или серверного оборудования и/или программного обеспечения, так или иначе взаимодействующего с биллингом.
Ключ может быть клиентский (требует обязательной авторизации пользователя) и серверный с определенным уровнем доступа (не требует авторизации). Клиентский ключ может быть как привязан к определенному пользователю (ключ с статической авторизацией) и игнорировать параметры login и password, переданные в запросе, так и требовать авторизацию (ключ с динамической авторизацией)
У любого ключа могут быть установлены следущие параметры:
- Название ключа (клиента) API
- Способ авторизации ключа
- Разрешенные IP-адреса
- Уровень доступа
- Пользователь по-умолчанию
- Разрешенные методы
Название ключа
В случае, если клиентом API является дочерняя телефонная станция, название клиента используется для привязки пользователей к АТС (SIP realm).
В противном случае название клиента используется для внутреннего учета и не влияет ни на что.
Способ авторизации
Способ авторизации определяет, по какому признаку будет производиться поиск пользователя при его авторизации. Возможным параметром может быть, к примеру, username, для авторизации по имени пользователя, sip_extension, для авторизации по SIP-логину, id для авторизации по внутреннему идентификационному номеру пользователя в базе данных.
Обращаем внимание, что желательно использовать уникальный параметр способа авторизации (как, например, имя пользователя). Использование потенциально неуникального параметра (к примеру, CallerID) может привести к непредсказуемым последствиям.
Разрешенные IP-адреса
Список IP-адресов, перечисленных через запятую, с которых могут производиться запросы к API. Допустимо использование масок. Пример: 178.1.1.*,87.1.1.2
Уровень доступа
Используется для определения типа ключа, а так же присвоения ему определенного уровня доступа.
Уровень доступа 0 — клиентский ключ. Для данного типа ключа обязательна авторизация пользователя любым способом (динамичным с использованием пароля либо статичным), в противном случае исполнение не-анонимных методов будет недоступно.
Уровень доступа отличный от 0 — серверный ключ. Для данного ключа авторизация с использованием пароля не нужна, и признак пользователя, от имени которого исполняется запрос, передается параметром login. Однако следует помнить, что в случае, если владелец серверного ключа не является владельцем пользователя, найденного по переданному в запросе признаку login, система отклонит запрос (кроме случаев, когда ключ обладает исключительными правами.)
Пользователь по-умолчанию
Признак пользователя (к примеру, логин username или SIP-логин sip_extension, в зависимости от установленного способа авторизации), привязанный к ключу (статичная авторизация). Если данный параметр установлен, биллингом будут проигнорированы параметры login и password, переданные в запросе, и по-умолчанию будет авторизован пользователь, найденный по данному признаку.
Для того, чтобы произвести запрос от имени другого пользователя, принадлежащему владельцу ключа, следует передать параметр username.
Также, в некоторых случаях данный параметр используется для записи в память пользовательской переменной, необходимой для работы именно с этим ключом.
Для того, чтобы записать пользовательскую переменную в память, необходимо в переменную config.api_custom_identities конфигурационного файла добавить новый способ авторизации (к примеру, payment_method) и в параметрах ключа указать payment_method как <Способ авторизации>, и значение, указанное как Пользователь, будет доступно как request.payment_method
Разрешенные методы
Список методов, доступных к исполнению для данного ключа, перечисленный через запятую. Если данный параметр не заполнен, разрешаются к исполнению любые методы.
Пример: getInfo, getValue
Запрос и ответ
-
Инициализация запроса к API
URL запроса: https://rdx.narayana.im/billing/api/
{VERISON}/
{APIKEY}/${METHOD}Метод запроса: POST либо GET
-
Базовые параметры запроса
- login — признак пользователя.
- password — md5-хэш пароля пользователя (для динамической авторизации)
- username — имя пользователя, от чьего имени производятся запросы к API (если не указано — используется текущий авторизованный пользователь)
-
Ответ API
-
Обычный ответ в формате JSON.
Ответ на запрос представлен в виде JSON-массива с тремя переменными:
{'result'} — результат исполнения метода (boolean)
{'response'} — ответ либо код ошибки (string)
{'description'} — текствое описание причины ошибки (string)
Пример:
GET https://rdx.narayana.im/billing/api/2.2/key/getInfo?login=admin {"result":false,"response":"E_AUTH_ERROR"}
-
Текстовый ответ
Используется для типов авторизации sip_extension, id и прочих указанных в конфигурационном файле (опция config.api_plain_answer).
Содержит только текстовый ответ либо описание ошибки (response)
-
-
Ошибки
В результате некорректного запроса к API сервер может отдать следущие ошибки:
- HTTP 400 Invalid Request — некорректно сформирован запрос.
- HTTP 401 Unauthorized — некорректный ключ.
- HTTP 403 Forbidden — доступ с этого IP запрещен
NB! В случае запроса с некорректным и/или неактивным ключом, доступ с Вашего IP-адреса блокируется на неопределенный срок.
Коды ошибок
Ошибки инициализации запроса:
- E_INCORRECT_API_VERSION – Версия сервера и клиента не совпадают
- E_UNKNOWN_METHOD – Неизвестный метод
- E_UNDEFINED_INSTRUCTION – Невозможно выполнить метод
- E_INSUFFICIENT_ACCESS – Недостаточно прав для исполнения данного метода
- E_MISSING_ARGUMENT – Обязательный аргумент отсутствует
- E_INVALID_ARGUMENT – Аргумент неверного типа
- E_LUA_EXCEPTION – Критическая ошибка исполнения метода
- E_AUTH_FAILED – Неверная пара признак пользователя/пароль
- E_HAS_NO_ONE_TOLD_YOU_SHE_IS_NOT_BREATHING – Вход в вечный цикл. Вы никогда не должны видеть этой ошибки.
Ошибки исполнения запроса:
- E_USER_LOCKED – Пользователь заблокирован.
- E_SQL_ERROR – Ошибка SQL-запроса.
- E_NOT_EXIST – Запрошенный объект не существует в данном контексте.
- E_DOES_NOT_BELONG_TO_YOU – Запрошенный объект не принадлежит вам
- E_DATA_ABORT — Неверный ввод
- E_ASTERISK_QUERY_ERROR – Ошибка исполнения запроса к АТС.
- E_SIP_SERVER_NOT_EXIST – Указанный SIP-сервер не существует
- E_WRONG_EXTENSION – Недопустимый SIP логин
- E_TRANSACTIONS_LIMITED – Финансовые транзакции ограничены
- E_TRANSACTIONS_LOCKED – Финансовые транзакции заблокированы
- E_ACCOUNT_HAS_USERS – Невозможно удалить не пустой Лицевой счет
- E_CANT_CREATE_ACCOUNT – Невозможно создать Лицевой счет
- E_CARRIER_ERROR – Ошибка отправки SMS: канал вернул ошибку
- E_DID_ORDER_FAIL – Ошибка заказа DID-номера
- E_INITIATE_CALL_FAIL – Ошибка инициирования звонка
- E_INSUFFICIENT_MONEY – Недостаточно средств
- E_INVALID_SMS_FROM – Некорректное поле «Отправитель»
- E_INVALID_SMS_TO – Некорректное поле «Назначение»
- E_CODE_HAS_NO_BALANCE – На этом предоплаченном коде нет доступных средств
- E_INVITE_LIMIT_REACHED – Вы исчерпали лимит приглашений
- E_MAXIMUM_PAYMENT – Вы превысили максимальную сумму платежа
- E_MINIMAL_PAYMENT – Сумма платежа меньше минимальной
- E_MINIMAL_START_PAYMENT – Сумма первого платежа меньше минимальной
- E_TARGET_WHITELISTED – Данный IP-адрес находится в белом списке
- E_TRANSACTION_FAILED – Ошибка выполнения финансовой транзакции
- E_TTS_ERROR – Ошибка исполнения Text-to-Speech метода
- E_UNROUTABLE – Направление не обслуживается
- E_CANT_CREATE_EXTENSION — Невозможно создать учетную запись SIP
- E_CANT_DELETE_EXTENSION — Невозможно удалить учетную запись SIP
- E_ALREADY_ON_THIS_TARIFF — Вы уже обслуживаетесь на данном тарифном плане
- E_CONTACT_RESELLER – Данная операция недоступна пользователям реселлеров. Обратитесь к поставщику услуг.
Объект «Пользователь»
При работе с API биллинг-системы в основном используется объект user («Пользователь»).
В данном разделе описаны все атрибуты объекта и значения, которые они могут принимать.
Запросить значение какого-либо атрибута можно методами getInfo() (значения всех атрибутов), getValue() (значение конкретного атрибута)
Записать значения атрибутов можно соответствующими типу атрибута функциями:
- updateUser() — для данных пользователя
- updateAccount() — для данных лицевого счета
- updateExtension() — для данных учетной записи SIP.
Пояснения к типам:
- string — строковый тип;
- int — целочисленный тип;
- float — нецелое число;
Пользователь
- id(int) [read only] — внутренний идентификатор пользователя в системе.
- username(char[32]) [read only] — имя пользователя.
- password(char[32]) — зашифрованный пароль пользователя
- manager(char[32]) [read only] — владелец (менеджер) пользователя.
- accesslevel(int) — уровень доступа пользователя.
- 10 — новый пользователь (ограничения — минимальный первый депозит)
- 11 — пользователь
- 22 — корпоративный пользователь (имеет доступ к управлению пользователями и тарифами)
- 25 — партнер (имеет права корпоративного пользователя плюс доступ к основным маршрутам)
- 33 — администратор системы
- 44 — Мастер-администратор системы
- active(int) — состояние пользователя
- -1 — заблокирован
- 0 — деактивирован (например, из-за нехватки баланса)
- 1 — активен
- 2 — блокировка внешних вызовов
- 3 — блокировка всех вызовов
- 99 — защита от блокировки
- account(int) — номер лицевого счета пользователя
- currency(char[3]) — код валюты пользователя
- По-умолчанию — EUR
- Доступные валюты можно получить посредством вызова метода getCurrencies()
- language(char[20]) — язык интерфейса пользователя
- timezone(float) — смещение часового пояса относительно UTC
- allowed_rates(char[20]) — список разрешенных тарифов для пользователя, перечисленных через запятую
- allowed_call_len(int) — максимально разрешенная длительность вызова для пользователя
- notify_email(char[256]) — электронная почта для уведомлений
- notify_balance(int) — отправлять уведомления на почту при достижении минимального баланса
- 0 — не отправлять
- 1 — отправлять
- notify_balance_limit(float) — лимит баланса для уведомления (в системной валюте)
- notify_did(int) — за какое количество дней до окончания действия аренды номера отправлять уведомление на почту
- -1 — не уведомлять
- notify_ticket(int) — отправлять уведомления на почту при получении ответа на тикет
- 0 — не отправлять
- 1 — отправлять
- invites(int) — количество доступных приглашений
- comment(char[1024]) — заметка о пользователе (доступна только с уровнем доступа >= 33)
Учетная запись SIP & DISA
- disa_pin(int) — PIN-код для доступа к DISA
- disa_trusted_cli(char[32]) — доверенный телефон для упрощенного доступа к DISA
- sip_extension(char[32]) — учетная запись SIP (5 или 7 знаков)
- sip_password(char[32]) — пароль SIP в открытом виде
- sip_server(char[128]]) — адрес SIP-сервера
- sip_address(char[128]]) — адрес SIP-сервера (DNS)
- sip_callerid(char[32]) — текущий идентификатор звонящего (АОН)
- sip_language(char[20]) — язык внутренних телефонных команд
- sip_rates_id(int) — идентификатор тарифного плана для этого SIP-логина
- sip_rates_options(char[128]) — идентификатор тарифных опций для этого SIP-логина, перечисленных через запятую
- sip_srtp(int) — шифрование SRTP
- 0 — выключено
- 1 — включено принудительно
- sip_transport(char[20]) — доступные транспорты для подключения к SIP-серверу
- udp,tcp,tls — разрешить UDP / TCP / TLS
- udp,tcp — разрешить UDP / TCP
- tls — только TLS
- udp — только UDP
- tcp — только TCP
- sip_max_call_len(int) — максимальная длительность вызова для данного SIP-логина
- sip_reach(int) — доступность данного SIP-логина для звонка
- 0 — недоступен
- 2 — доступен
- sip_redirect(char[64]) — переадресовать входящие на SIP-логин звонки
- sip_force_callback(int) — принудительно обрывать вызов и создавать Callback на доверенный телефон
- sip_realm(char[16]) [read only] — название SIP-сервера
- sip_pitch_shift(int) — тон искажения голоса (-1 — выключено)
- sip_host(char[32]) — IP-адрес для авторизации по хосту (billing v2.3-rt)
- sip_options(char[128]) — дополнительные опции пира Asterisk (billing v2.3-rt)
Лицевой счет
- balance(float) — текущий баланс пользователя в системной валюте (EUR)
- Пожалуйста, используйте метод transferMoney() для добавления средств пользователю.
- overdraft(float) — текущий кредитный лимит пользователя в системной валюте (EUR)
- refill_allowed(int) — разрешить проведения финансовых транзакций
- 0 — финансовые операции запрещены
- 1 — разрешены анонмные способы пополнения счета
- 2 — разрешены все способы пополнения счета
- postpaid(int) — постоплатная система расчетов
- 0 — выключено (используется предоплата)
- 1 — включено (используется постоплата; раз в месяц выписывается счет)
- billing_name(char[100]) — полное имя (используется для выписывания счетов)
- billing_address(char[200]) — контактный адрес (используется для выписывания счетов)
- billing_email(char[100]) — электронная почта для пересылки счетов
- billing_bank_account(char[200]) — данные банковского счета для взаиморасчетов
Виртуальные атрибуты
Данные атрибуты пользователя, служащие для удобства обработки информации, доступны только для чтения, и не записаны в БД.
- actualbalance — актуальный баланс в системной валюте (EUR) с учетом овердрафта
- displaycurrency — название выбранной валюты (знак)
- displaybalance — текущий баланс в валюте пользователя
- displayoverdraft — кредитный лимит в валюте пользователя
- displaynotifybalancelimit — лимит баланса для уведомления в валюте пользователя
- unread_tickets — количество непрочитанных тикетов во внутренней тикет-системе
Функции API
Обязательные параметры выделены жирным цветом.
В случае, если необязательный параметр имеет значение по-умолчанию, оно указывается в [квадратных скобках]
Пояснения к типам:
- string — строковый тип;
- ustring — строковый тип со строгими значениями; допустимые значения указаны в {фигурных скобках};
- num — численный тип;
- bool — булевый тип (может принимать значения «true» или «false»);
В случае, если тип не указан — параметр может быть любого типа.
В (скобках) после названия метода указан необходимый уровень доступа для исполнения данного метода.
Методы с уровнем доступа 0 являются анонимными и могут быть исполнены без авторизации.
В примерах запросов к API используется версия API 2.2 и ключ «ffffffffff», а также опущены авторизационые данные.
Пожалуйста, убедитесь в том, что Вы используете актуальные данные перед исполнением запроса!
NB! За исключением раздела «Работа с пользователем» результаты в «Примерах запроса» будут указаны без
{result: true, response: "something"}
а будут содержать в себе лишь значение «response».
Если в поле «Возвращает» указано «true / false» — функция не имеет ответа, а имеет лишь результат исполнения «result» (true или false), но в то же время «response» может содержать код ошибки в случае неудачного исполнения.
Пользователь
getInfo(1) — Получение информации о пользователе.
Возвращает: JSON-массив с информацией о пользователе Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getInfo?login=admin
__________________________________________________
{"атрибут": "значение (см. раздел «Объект Пользователь»)",
"sip_extensions": [ {"атрибут_SIP_аккаунта": "значение (см. раздел «Объект Пользователь»)"}, ... ],
"did_numbers:" [ {"атрибут_DID_номера": "значение (см. функции «Прямые номера»"}, ... ],
"sim_cards:" [ {"атрибут_SIM_карты": "значение (см. функции «SIM-карты»"}, ...],
"broadcasts": [ {"атрибут_широковещательной_новости": "значение (см. функции «Новости и широковещательные сообщения»"}, ... ] }
getValue(1) — Получение конкретного параметра пользователя.
Возвращает: Значение запрашиваемого параметра Аргументы:- property(string) — запрашиваемый параметр
Пример запроса:
GET /billing/api/2.2/ffffffffff/getValue?property=balance
_______________________________________________________
1.00
updateUser(1) — Изменение данных пользователя.
Возвращает: _true_ / _false_ Аргументы:- web_password(string) — новый пароль пользователя (md5-хэш)
- accesslevel(num) — уровень доступа
- active(num) — состояние
- account(num) — номер Лицевого счета
- currency(string) — код валюты
- language(string) — язык интерфейса
- timezone(num) — смещение часового пояса относительно UTC
- allowed_rates(string) — список разрешенных тарифов (через запятую)
- allowed_call_len(num) — максимально разрешенная длительность вызова (сек.)
- notify_email(string) — адрес e-mail для уведомлений
- notify_balance(num) — уведомлять при достижении минимального баланса
- notify_did(num) — уведомлять при достижении %i дней до конца срока аренды прямого номера
- notify_ticket(num) — уведомлять при ответах на тикет
- notify_balance_limit(num) — минимальный баланс для уведомлений
- invites(num) — количество доступных приглашений
- comment(string) — примечание
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateUser?username=test&active=0
_______________________________________________________
true
Маршрутизация
getRoutes(22) — Получение списка доступных маршрутов.
Возвращает: JSON-массив со списком маршрутов и информацией о них. Аргументы:- update(bool) — обновить баланс запрашиваемых маршрутов [false]
- type(ustring{all,sip,sms,default}) — тип запрашиваемых маршрутов [all]
- all(bool) — запросить маршруты, принадлежащие корпоративным пользователям [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getRoutes?update=true
_______________________________________________________
[{"id": ID маршрута,
"prefix":"SIP-prefix маршрута",
"cli": тип АОН (1 — только RU, 2 — международный, 99 — без ограничений),
"route":"название маршрута",
"owner":"владелец",
"enabled": статус (0 или 1),
"type":"тип (default, sms, sip)",
"lastupdate":"дата последнего обновления баланса",
"clientlastupdate":"клиентская дата последнего обновления баланса",
"balance":"баланс"}]
getRouteInfo(22) — Получение информации о маршруте по его ID
Возвращает: Информация о маршруте (JSON) Аргументы:- id(num) — идентификатор маршрута
Пример запроса:
GET /billing/api/2.2/ffffffffff/getRouteInfo?id=1
_______________________________________________________
{"id": ID маршрута,
"prefix":"SIP-prefix маршрута",
"cli": тип АОН (1 — только RU, 2 — международный, 99 — без ограничений),
"route":"название маршрута",
"owner":"владелец",
"enabled": статус (0 или 1),
"type":"тип (default, sms, sip)",
"lastupdate":"дата последнего обновления баланса",
"clientlastupdate":"клиентская дата последнего обновления баланса",
"balance":"баланс"}
addRoute(22) — Добавление нового маршрута в маршрутизацию
Возвращает: _true_ / _false_ Аргументы:- route(string) — название маршрута
- type(ustring{sip,sms}) — тип маршрута
- sip_server(string) — SIP-сервер для добавления маршрута
- prefix(string) — SIP-префикс для добавления маршрута (outlineN/) либо название SMS-обработчика
- host(string) — адрес хоста (домен либо IP), если необходимо []
- user(string) — имя пользователя для авторизации []
- fromuser(bool) — использовать имя пользователя как fromuser в настройках peer'а [false]
- pass(string) — пароль для авторизации []
- callerid(num) — тип АОН (1 — только RU, 2 — международный, 99 — без ограничений) [2]
- balance_handler(string) — обработчик для проверки баланса []
- balance_username(string) — имя пользователя для обработчика баланса []
- balance_password(string) — пароль для обработчика баланса []
Пример запроса:
GET /billing/api/2.2/ffffffffff/addRoute?route=test&type=sms&sip_server=sip.serv.er&prefix=ourhandler
_______________________________________________________
true
updateRoute(22) — Обновление параметров маршрута
Возвращает: _true_ / _false_ Аргументы:- id(num) — идентификатор маршрута
- route(string) — название маршрута
- prefix(string) — SIP-prefix (outlineN/) либо название SMS-обработчика
- host(string) — адрес хоста (домен либо IP)
- user(string) — имя пользователя для авторизации
- pass(string) — пароль для авторизации
- callerid(num) — тип АОН (1 — только RU, 2 — международный, 99 — без ограничений)
- balance_handler(string) — обработчик для проверки баланса
- balance_username(string) — имя пользователя для обработчика баланса
- balance_password(string) — пароль для обработчика баланса
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateRoute?id=1&route=changedName
_______________________________________________________
true
updateRouteState(22) — Изменение состояния маршрута
Возвращает: _true_ / _false_ Аргументы:- id(num) — идентификатор маршрута
- state(bool) — состояние маршрута (true или false)
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateRouteState?id=1&state=false
_______________________________________________________
true
deleteRoute(22) — Удаление маршрута из маршрутизации
Возвращает: _true_ / _false_ Аргументы:- id(num) — идентификатор маршрута
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteRoute?id=1
_______________________________________________________
true
Направления и тарификация
resolveDirection(0) — Разрешить направление по номеру телефона
Возвращает: Выбранную информацию о направлении Аргументы:- number(string) — номер телефона
- select(ustring{id,code,direction}) — Поле для вывода (ID направления, код или название) [direction]
Пример запроса:
GET /billing/api/2.2/ffffffffff/resolveDirection?number=79271871234
_______________________________________________________
Russia Mobile - Megafon
getDirections(0) — Получение списка всех направлений
Возвращает: JSON-массив со списком всех направлений в системе Аргументы:- distinct(bool) — показывать только одно значение code для направления [true]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getDirections
_______________________________________________________
[{"code": код направления,
"id": ID направления,
"direction": "название направления",
"min_len": минимально допустимая длина номера,
"max_len": максимально допустимая длина номера}, ...]
getCurrentRates(0) — Получение текущей тарификации
Возвращает: JSON-массив в тарифами текущего пользователя Аргументы:- currency(string) — выбранная валюта [EUR]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getCurrentRates
_______________________________________________________
{"ID направления":
{"direction":"Название направления",
"routing":[
{"routename":"Название маршрута",
"route": ID маршрута,
"displaycost": Цена в валюте пользователя,
"priority": Приоритет,
"cost": Цена в системной валюте
}
]
}
...
}
getRatesList(1) — Получение списка тарифных планов
Возвращает: JSON-массив — список доступных тарифных планов Аргументы:- all(bool) — Показать ТП, принадлежащие корпоративным пользователям [false]
- is_public(bool) — Показать только публичные тариыф [false]
- is_option(bool) — Показать тарифные опции (true — только тарифные опции, false — только тарифы, не установлено — показать все)
Пример запроса:
GET /billing/api/2.2/ffffffffff/getRatesList
_______________________________________________________
[{"bill_type":"Тип тарификации",
"id":ID тарифа,
"is_public":Публичный ли тариф?,
"table_name":"Таблица в БД",
"owner":"Владелец тарифа",
"display_switch_price":Отображаемая цена подключения,
"name":"Название тарифа",
"switch_price":Цена подключение в системной валюте,
"did_multiplier":Множитель цен для DID-номеров,
"is_option":Тарифная опция?,
"multiplier":Множитель цен,
"description":"Описание тарифа"}, ...]
switchRates(1) — Смена тарифного плана, подключение и отключение тарифных опций
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID тарифа (опции)
- state(bool) — Состояние (только для тарифных опций)
- sip_extension(string) — Учетная запись SIP для изменения
Пример запроса:
GET /billing/api/2.2/ffffffffff/switchRates?id=1&sip_extension=1000001
_______________________________________________________
true
getRates(1) — Получение направлений в тарифе по ID тарифа (опции)
Возвращает: JSON-список направлений в тарифном плане Аргументы:- id(num) — ID тарифа (опции)
Пример запроса:
GET /billing/api/2.2/ffffffffff/getRates?id=1
_______________________________________________________
{"ID направления":
{"direction":"Название направления",
"routing":[
{"routename":"Название маршрута",
"route": ID маршрута,
"displaycost": Цена в валюте пользователя,
"priority": Приоритет,
"cost": Цена в системной валюте
}
]
}
...
}
getRatesInfo(22) — Получение параметров тарифного плана
Возвращает: Параметры тарифного плана (JSON) Аргументы:- id(num) — ID тарифа (опции)
Пример запроса:
GET /billing/api/2.2/ffffffffff/getRatesInfo?id=1
_______________________________________________________
{"bill_type":"Тип тарификации",
"id":ID тарифа,
"is_public":Публичный ли тариф?,
"table_name":"Таблица в БД",
"owner":"Владелец тарифа",
"display_switch_price":Отображаемая цена подключения,
"name":"Название тарифа",
"switch_price":Цена подключение в системной валюте,
"did_multiplier":Множитель цен для DID-номеров,
"is_option":Тарифная опция?,
"multiplier":Множитель цен,
"description":"Описание тарифа"}
addRates(22) — Добавление нового тарифного плана
Возвращает: _true_ / _false_ Аргументы:- table(string) — Название таблицы в БД
- name(string) — Название тарифного плана (опции)
- bill_type(string) — Тип тарификации [by_minute]
- is_option(bool) — Тарифная опция? [false]
- is_public(bool) — Публичный тариф? [false]
- switch_price(num) — Цена подключения [0.00]
- multiplier(num) — Множитель цен [1.00]
- did_multiplier(num) — Множитель цен прямых номеров [1.00]
- description(string) — Описание тарифа []
Пример запроса:
GET /billing/api/2.2/ffffffffff/addRates?table=test&name=test
_______________________________________________________
true
updateRates(22) — Обновление параметров тарифного плана
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID тарифа (опции)
- name(string) — Название тарифного плана (опции)
- bill_type(string) — Тип тарификации
- is_option(bool) — Тарифная опция?
- is_public(bool) — Публичный тариф?
- switch_price(num) — Цена подключения
- multiplier(num) — Множитель цен
- did_multiplier(num) — Множитель цен прямых номеров
- description(string) — Описание тарифа
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateRates?id=1&name=etst
_______________________________________________________
true
deleteRates(22) — Удаление тарифного плана
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID тарифа (опции)
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteRates?id=1
_______________________________________________________
true
addDirection(22) — Добавление направления в тарифный план
Возвращает: _true_ / _false_ Аргументы:- rates(num) — ID тарифного плана (опции)
- direction(num) — ID направления
- cost(num) — Цена за единицу тарификации
- route(num) — ID маршрута
- priority(num) — Приоритет [1]
Пример запроса:
GET /billing/api/2.2/ffffffffff/addDirection?rates=1&direction=600&route=10&cost=0.15
_______________________________________________________
true
updateDirection(22) — Обновление параметров направления в тарифном плане
Возвращает: _true_ / _false_ Аргументы:- rates(num) — ID изменяемого тарифного плана (опции)
- direction(num) — ID изменяемого направления
- prior(num) — Приоритет изменяемого направления [1]
- cost(num) — Цена за единицу тарификации
- route(num) — ID маршрута
- priority(num) — Приоритет
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateDirection?rates=1&direction=600&route=11&cost=0.18
_______________________________________________________
true
updateDirections(22) — Обновление параметров направлений в тарифном плане
Возвращает: _true_ / _false_ Аргументы:- rates(num) — ID изменяемого тарифного плана (опции)
- directions(string) — JSON-массив со списком изменяемых направлений (формат см. в функции updateDirection())
Пример запроса:
POST /billing/api/2.2/ffffffffff/updateDirections?rates=1
_______________________________________________________
true
deleteDirection(22) — Удаление направления из тарифного плана
Возвращает: _true_ / _false_ Аргументы:- rates(num) — ID изменяемого тарифного плана (опции)
- direction(num) — ID удаляемого направления
- prior(num) — Приоритет удаляемого направления [1]
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteDirection?rates=1&direction=600
_______________________________________________________
true
updateMarkup(22) — Автоматическая наценка в тарифном плане
Возвращает: _true_ / _false_ Аргументы:- rates(num) — ID изменяемого тарифного плана (опции)
- markup(num) — Множитель
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateMarkup?rates=1&markup=1.2
_______________________________________________________
true
copyDirections(22) — Копирование текущего тарифного плана пользователя в выбранный ТП
Возвращает: _true_ / _false_ Аргументы:- rates(num) — ID тарифного плана, куда будет скопирован текущий ТП
Пример запроса:
GET /billing/api/2.2/ffffffffff/copyDirections?rates=2
_______________________________________________________
true
getBillTypes(22) — Получение списка доступных типов тарификации
Возвращает: JSON-массив — список доступных типов тарификации Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getBillTypes
_______________________________________________________
[{"type":"Название типа",
"free_threshold": Нетарифицируемый порог,
"step":Шаг тарификации}, ...]
getBillType(33) — Получение информации о типе тарификации по его названию
Возвращает: Информация о типе тарификации (JSON) Аргументы:- bill_type(string) — Название типа тарификации
Пример запроса:
GET /billing/api/2.2/ffffffffff/getBillType?bill_type=by_second
_______________________________________________________
{"type":"Название типа",
"free_threshold": Нетарифицируемый порог,
"step":Шаг тарификации}
addBillType(33) — Добавление типа тарификации
Возвращает: _true_ / _false_ Аргументы:- bill_type(string) — Название типа тарификации
- free_threshold(num) — Нетарифицируемый порог
- step(num) — Шаг тарификации (сек.)
Пример запроса:
GET /billing/api/2.2/ffffffffff/addBillType?bill_type=custom_type&free_threshold=3&step=10
_______________________________________________________
true
updateBillType(33) — Обновление параметров типа тарификации
Возвращает: _true_ / _false_ Аргументы:- bill_type(string) — Название изменяемого типа тарификации
- free_threshold(num) — Нетарифицируемый порог
- step(num) — Шаг тарификации (сек.)
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateBillType?bill_type=custom&free_threshold=0
_______________________________________________________
true
deleteBillType(33) — Удаление типа тарификации
Возвращает: _true_ / _false_ Аргументы:- bill_type(string) — Название удаляемого типа тарификации
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteBillType?bill_type=custom
_______________________________________________________
true
Обработка звонков
resolveCallerid(0) — Получение текущего CallerID пользователя ! DEPRECATED: Используйте getValue?property=sip_callerid !
Возвращает: CallerID пользователя Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/resolveCallerid
_______________________________________________________
79010000001
createCallback(1) — Инициация Callback
Возвращает: _true_ / _false_ Аргументы:- callerid(string) — CallerID (в случае, если не указан — используем CallerID профиля)
- destination1(string) — Первое назначение
- destination2(string) — Второе назначение
- epitch(num) — Модификатор тона голоса (от 1 до 6)
Пример запроса:
GET /billing/api/2.2/ffffffffff/createCallback?destination1=79010000001&destination2=79020000002
_______________________________________________________
true
callPrepare(50) — Инициация звонка
Возвращает: Allowed/Declined MaxCallTime/ErrorCode Destination CallerID DirectionName RoutePrefix RouteName PitchRx PitchTx Аргументы:- callerid(string) — CallerID (в случае, если не указан — используем CallerID профиля)
- destination(string) — Назначение
- prior(num) — Приоритет [1]
- from_originate(string) — Если звонок был инициирован не напрямую, в параметре необходимо указать true, либо DID-номер, на который пришел звонок
- source(string) — IP-адрес АТС, инициирующей звонок
- originated_by(string) — Инициатор звонка (например: user, system, slave и пр.)
Пример запроса:
GET /billing/api/2.2/ffffffffff/callPrepare?login=10000&destination=79010000001
_______________________________________________________
Allowed 99999 79010000001 79020000002 RussiaMobile-Tele2 outline1/ route1-cli -1 -1
callFinish(50) — Завершение звонка
Возвращает: Saved DirectionName [CallerID/Destination] via [route] time cost CURRENCY SIPSTATUS Аргументы:- callerid(string) — CallerID (в случае, если не указан — используем CallerID профиля)
- destination(string) — Назначение
- prior(num) — Приоритет [1]
- length(num) — Длительность звонка в секундах
- status(string) — SIP-статус звонка
- is_did(string) — Если звонок был совершен на DID-номер, параметр принимает значение данного DID-номера
Пример запроса:
GET /billing/api/2.2/ffffffffff/callFinish?login=10000&destination=79020000002&length=0&status=0CANCEL
_______________________________________________________
Saved RussiaMobile-Tele2 [79010000001/79020000002] via [route1-cli] 0 0 EUR 0CANCEL
getTextBalance(50) — Получение баланса пользователя в текстовом виде
Возвращает: Баланс для проговаривания АТС Аргументы:- balance(num) — Баланс для преобразования в текст (если не указано, используется баланс пользователя)
- balance(string) — Валюта (если не указано, используется валюта пользователя)
Пример запроса:
GET /billing/api/2.2/ffffffffff/getTextBalance?login=10000
_______________________________________________________
ostatok&ноль&евро&ноль&центов&tadam3s
authorizeCall(50) — Авторизация пользователя в системе DISA
Возвращает: SIP extension авторизованного пользователя либо код ошибки (_Declined XXX_) Аргументы:- callerid(string) — CallerID, с которого поступил звонок на обработчик DISA
- auth(string) — Строка авторизации (обычно, это SIP extension + PIN-код)
Пример запроса:
GET /billing/api/2.2/ffffffffff/authorizeCall?callerid=79010000001&auth=100006666
_______________________________________________________
10000
authorizeRealm(50) — Проверка подлинности запроса дочерней АТС
Возвращает: _true_ / _false_ Аргументы:- source(string) — IP-адрес дочерней АТС
- auth(string) — MD5-хэш от строки "
{API-ключ}
{IP-адрес АТС}${Имя API-ключа}"
Пример запроса:
GET /billing/api/2.2/ffffffffff/authorizeRealm?params
_______________________________________________________
true
createTTS(50) — Преобразование текста в звуковой файл
Возвращает: аудиопоток в формате **wav** Аргументы:- text(string) — Текст
Пример запроса:
GET /billing/api/2.2/ffffffffff/createTTS?text=hello+world
_______________________________________________________
<binary data>
Прямые номера
getDisaDIDList(0) — Получение списка номеров DISA
Возвращает: JSON-массив — список доступных номеров DISA Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getDisaDIDList
_______________________________________________________
[{"did":"Номер доступа", "comment":"DISA\/Регион"}, ... ]
updateDIDState(1) — Изменение состояния прямого номера
Возвращает: _true_ / _ false_ Аргументы:- did(string) — Изменяемый DID-номер
- parameter(ustring{auto_renew, enabled}) — Изменяемый параметр [auto_renew]
- state(bool) — Состояние
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateDIDState?did=78005555550¶meter=enabled&state=false
_______________________________________________________
true
getDIDPool(1) — Получение пула прямых номеров (список стран, локаций либо DID-номеров)
Возвращает: Пул прямых номеров Аргументы:- country(string) — Страна
- area(string) — Регион
- search_pattern(string) — Поисковый запрос
Примеры запросов:
GET /billing/api/2.2/ffffffffff/getDIDPool
_______________________________________________________
[{"country": "Страна"}, ...]
GET /billing/api/2.2/ffffffffff/getDIDPool?country=Страна
_______________________________________________________
[{"area": "Регион"}, ...]
GET /billing/api/2.2/ffffffffff/getDIDPool?country=Страна&area=Регион&search_pattern=666
_______________________________________________________
[{"displaycost": Цена аренды в валюте пользователя,
"displayinstallcost": Цена подключения в валюте пользователя,
"cost": Цена аренды в системной валюте,
"installcost": Цена подключения в системной валюте,
"country":"Страна",
"area":"Регион",
"voice_support":"Поддержка голоса",
"sms_support":"Поддержка SMS",
"did":"DID-номер",
"pool_id": ID пула,
"arg1": "Первый параметр для подключения",
"arg2": "Второй параметр для подключения",
"arg3": "Третий параметр для подключения"}, ...]
orderDID(1) — Заказ прямого номера
Возвращает: _true_ / _false_ Аргументы:- pool_id(num) — ID пула
- did(string) — прямой номер
- arg1(string) — Первый параметр
- arg2(string) — Второй параметр
- arg3(string) — Третий параметр
Пример запроса:
GET /billing/api/2.2/ffffffffff/orderDID?pool_id=1&did=78005555550&arg1=something&arg2=somewhere
_______________________________________________________
true
getDIDList(1) — Получение списка прямых номеров
Возвращает: JSON-массив — список прямых номеров Аргументы:- sort_by(ustring{expiration, cost, did) — Сортировка по (истечение аренды, стоимость, номер) [expiration]
- own(bool) — Показывать только собственные прямые номера [true]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getDIDList
_______________________________________________________
[{"displaycost": Цена аренды в валюте пользователя,
"pool": ID пула,
"renew_notify": Отправлено уведомление о просрочке,
"expiration":"Дата истечения в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС",
"enabled": Включен ли DID?,
"did": Прямой номер,
"auto_renew": Включено ли автопродление?,
"comment":"Комментарий",
"owner":"Владелец",
"cost":Цена аренды в системной валюте}, ...]
addDID(22) — Добавление прямого номера
Возвращает: _true_ / _false_ Аргументы:- did(string) — Прямой номер
- owner(string) — Владелец прямого номера
- comment(string) — Комментарий []
- cost(num) — Цена аренды [0.00]
- expiration(string) — Дата истечения в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
Пример запроса:
GET /billing/api/2.2/ffffffffff/addDID?did=78005555550&owner=user&cost=100
_______________________________________________________
true
updateDID(22) — Обновление параметров прямого номера
Возвращает: _true_ / _false_ Аргументы:- did(string) — Изменяемый прямой номер
- owner(string) — Новый владелец
- comment(string) — Комментарий
- cost(num) — Цена аренды
- expiration(string) — Дата истечения в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateDID?did=78005555550&cost=101
_______________________________________________________
true
deleteDID(22) — Удаление прямого номера
Возвращает: _true_ / _false_ Аргументы:- did(string) — Удаляемый прямой номер
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteDID?did=78005555550
_______________________________________________________
true
getDIDInfo(22) — Получение информации о прямом номере
Возвращает: Информация о прямом номере (JSON) Аргументы:- did(string) — Прямой номер
Пример запроса:
GET /billing/api/2.2/ffffffffff/getDIDInfo?did=78005555550
_______________________________________________________
{"displaycost": Цена аренды в валюте пользователя,
"expiration":"Дата истечения в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС",
"owner":"Владелец",
"comment":"Комментарий",
"did": Прямой номер,
"auto_renew": Включено ли автопродление?,
"enabled": Включен ли прямой номер?,
"renew_notify": Отправлено уведомление о просрочке,
"cost": Цена аренды в системной валюте}
renewDID(22) — Продление прямого номера
Возвращает: _true_ / _false_ Аргументы:- did(string) — Продлеваемый DID-номер
Пример запроса:
GET /billing/api/2.2/ffffffffff/renewDID?did=78005555550
_______________________________________________________
true
addDIDPool(33) — Добавление пула прямых номеров
Возвращает: _true_ / _false_ Аргументы:- country(string) — Страна
- area(string) — Регион
- cost(num) — Цена аренды в месяц [0.00]
- installcost(num) — Цена подключения [0.00]
- provider(string) — Обработчик [local]
- user(string) — Пользователь (передается в обработчик) []
- pass(string) — Пароль (передается в обработчик) []
- param1(string) — Параметр 1 (передается в обработчик) []
- param2(string) — Параметр 2 (передается в обработчик) []
- param3(string) — Параметр 3 (передается в обработчик) []
- qty(num) — Количество отображаемых номеров [100]
Пример запроса:
GET /billing/api/2.2/ffffffffff/addDIDPool?country=Russia&area=Moscow&cost=50
_______________________________________________________
true
updateDIDPool(33) — Обновление параметров пула прямых номеров
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID изменяемого пула прямых номеров
- country(string) — Страна
- area(string) — Регион
- cost(num) — Цена аренды в месяц
- installcost(num) — Цена подключения
- provider(string) — Обработчик
- user(string) — Пользователь (передается в обработчик)
- pass(string) — Пароль (передается в обработчик)
- param1(string) — Параметр 1 (передается в обработчик)
- param2(string) — Параметр 2 (передается в обработчик)
- param3(string) — Параметр 3 (передется в обработчик)
- qty(num) — Количество отображаемых номеров
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateDIDPool?id=1&cost=100
_______________________________________________________
true
getDIDPools(33) — Получение списка пулов прямых номеров
Возвращает: Список пула прямых номеров (JSON) Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getDIDPools
_______________________________________________________
[{"id": ID пула,
"country":"Страна",
"area":"Зона"
"cost": Цена в месяц,
"installcost": Цена установки,
"displayinstallcost": Цена установки в валюте пользователя,
"displaycost": Цена в месяц в валюте пользователя,
"quantity": Количество номеров на странице,
"provider":"Провайдер (обработчик)"
"username":"Имя пользователя для обработчика",
"password":"Пароль для обработчика",
"param1":"Параметр №1 для обработчика",
"param2":"Параметр №2 для обработчика",
"param3":"Параметр №3 для обработчика"}, ...]
getDIDPoolInfo(33) — Получение информации о пуле прямых номеров
Возвращает: Информация о пуле прямых номеров (JSON) Аргументы:- id(num) — ID пула прямых номеров
Пример запроса:
GET /billing/api/2.2/ffffffffff/getDIDPoolInfo?id=1
_______________________________________________________
{"id": ID пула,
"country":"Страна",
"area":"Зона"
"cost": Цена в месяц,
"installcost": Цена установки,
"displayinstallcost": Цена установки в валюте пользователя,
"displaycost": Цена в месяц в валюте пользователя,
"quantity": Количество номеров на странице,
"provider":"Провайдер (обработчик)"
"username":"Имя пользователя для обработчика",
"password":"Пароль для обработчика",
"param1":"Параметр №1 для обработчика",
"param2":"Параметр №2 для обработчика",
"param3":"Параметр №3 для обработчика"}
deleteDIDPool(33) — Удаление пула прямых номеров
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID удаляемого пула прямых номеров
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteDIDPool?id=1
_______________________________________________________
true
getDIDCount(50) — Проверка существования прямого номера
Возвращает: Количество найденных DID-номеров Аргументы:- did(string) — Искомый DID-номер
Пример запроса:
GET /billing/api/2.2/ffffffffff/getDIDCount?did=78005555550
_______________________________________________________
1
Фильтры DIDTables
getDIDActions(1) — Получение списка возможных действий
Возвращает: Список возможных действий для DIDTables (JSON) Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getDIDActions
_______________________________________________________
{"voice":
{"Действие1":"Значение destination по-умолчанию"},
{"Действие2":"Значение destination по-умолчанию"},
...
},
"sms":{
{"Действие1 (SMS)":"Значение destination по-умолчанию"},
{"Действие2 (SMS)":"Значение destination по-умолчанию"},
...
}
getFilters(1) — Получение списка возможных фильтров
Возвращает: Список возможных источников/паттернов для DIDTables (JSON) Аргументы:- resolver(string) — Получение списка доступных паттернов по конкретному обработчику
- sources(bool) — Получить только источники [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getFilters
_______________________________________________________
{"Источник1":{ "Паттерн1", "Паттерн2" },...}
addDIDRule(1) — Создание нового правила DIDTables
Возвращает: _true_ / _false_ Аргументы:- did(string) — Прямой номер
- source(string) — Используемый фильтр
- pattern(string) — Паттерн
- policy(ustring{ACCEPT,REJECT}) — Политика (принять/отклонить)
- sms_action(string) — Действие для обработки SMS-сообщения
- sms_destination(string) — Назначение (SMS)
- action(string) — Действие для обработки входящего звонка
- server(string) — Сервер, на котором выполняется правило
- destination(string) — Назначение
- callerid(string) — Передаваемый АОН (строка TRANSIT будет заменена на номер звонящего)
- timeout(num) — Таймаут (сек.)
- condition(string) — Условие (SUCCESS — успешный вызов, UNSUCCESS — неудачный вызов, BUSY — занят, NOANSWER — нет ответа, UNAVAIL — недоступен)
- input(string) — Ввод (если «условие» выбрано «Совпадение ввода»)
- position(ustring{start,end}) — Добавить правило в начало [start] или в конец [end]
Пример запроса:
GET /billing/api/2.2/ffffffffff/addDIDRule?did=78005555550&source=number&pattern=*&policy=ACCEPT&destination=10000
_______________________________________________________
true
updateDIDRule(1) — Обновление правила DIDTables
Возвращает: _true_ / _false_ Аргументы:- did(string) — Прямой номер
- rule(num) — Номер изменяемого правила
- pos(num) — Новая позиция
- source(string) — Используемый фильтр
- pattern(string) — Паттерн
- policy(ustring{ACCEPT,REJECT}) — Политика (принять/отклонить)
- sms_action(string) — Действие для обработки SMS-сообщения
- sms_destination(string) — Назначение (SMS)
- action(string) — Действие для обработки входящего звонка
- server(string) — Сервер, на котором выполняется правило
- destination(string) — Назначение
- callerid(string) — Передаваемый АОН (строка TRANSIT будет заменена на номер звонящего)
- timeout(num) — Таймаут (сек.)
- condition(string) — Условие,
- input(string) — Ввод (если «условие» выбрано «Совпадение ввода»)
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateDIDRule?did=78005555550&rule=1&pos=2
_______________________________________________________
true
deleteDIDRule(1) — Удаление правила DIDTables
Возвращает: _true_ / _false_ Аргументы:- did(string) — Прямой номер
- rule(num) — Номер удаляемого правила
- pattern(string) — Паттерн (для удаления по паттерну — указать rule как -1 )
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteDIDRule?did=78005555550&rule=-1&pattern=74955555550
_______________________________________________________
true
getDIDRules(1) — Получение списка правил для прямого номера
Возвращает: Список правил для прямого номера (JSON) Аргументы:- did(string) — Прямой номер
- rule(num) — Номер правила (если не указано — возвращает все правила)
Пример запроса:
GET /billing/api/2.2/ffffffffff/getDIDRules?did=78005555550
_______________________________________________________
[{"timeout": Таймаут (с.),
"server":"Сервер, на котором выполняется правило",
"did": Прямой номер,
"policy":"Политика (принять/отклонить)",
"condition":"Условие","sms_action":"internal","source":"number","action":"playfile","pattern":"*","destination":"beep","rule":1,"callerid":"TRANSIT"},{"timeout":30,"server":"ptr-aa.narayana.im","did":78124099441,"policy":"ACCEPT","condition":"ALWAYS","sms_action":"internal","source":"number","action":"inputstr","pattern":"*","destination":"XXX beep 1","rule":2,"callerid":"TRANSIT"},{"timeout":30,"server":"ptr-aa.narayana.im","did":78124099441,"policy":"ACCEPT","condition":"ALWAYS","sms_action":"internal","source":"number","action":"tts","pattern":"*","destination":"Вы ввели ${input}","rule":3,"callerid":"TRANSIT"}]
resolveDIDRule(50) — Получение правил обработки правила DIDTables
Возвращает: OK ACCEPT/REJECT Владелец(extension) Действие(action) Сервер(sip_server) Назначение(destination) АОН(callerid) Таймаут(timeout) ДействиеSMS(sms_action) НазначениеSMS(sms_destination) — для выполнения правила Возвращает: SKIP НомерПравила — для перехода на следущее доступное к выполнению правило Возвращает: FIN — в случае, если правила закончились Аргументы:- did(string) — Прямой номер
- rule(num) — ID правила [1]
- callerid(string) — CallerID
- status(string) — SIP-статус
- input(string) — Ввод (SIP-статус должен быть передан как 99INPUT)
Пример запроса:
GET /billing/api/2.2/ffffffffff/resolveDIDRule?params
_______________________________________________________
OK ACCEPT 10000 call rdx.narayana.im 10000 TRANSIT 30 internal 10000
Персональный план набора (алиасы)
getAliases(1) — Получение списка алиасов
Возвращает: Список алиасов (JSON) Аргументы:- all(bool) — Показать все алиасы (иначе — только свои алиасы)
Пример запроса:
GET /billing/api/2.2/ffffffffff/getAliases
_______________________________________________________
[{"global": Глобальный алиас (0/1),
"id": ID алиаса,
"owner":"Владелец алиаса",
"alias": Алиас,
"destination": Назначение}, ...]
getAliase(1) — Получение информации о алиасе
Возвращает: Информация о алиасе (JSON) Аргументы:- id(num) — ID алиаса
Пример запроса:
GET /billing/api/2.2/ffffffffff/getAlias?id=11
_______________________________________________________
{"global": Глобальный алиас (0/1),
"id": ID алиаса,
"owner":"Владелец алиаса",
"alias": Алиас,
"destination": Назначение}
addAlias(1) — Добавление нового алиаса
Возвращает: _true_ / _false_ Аргументы:- alias(string) — Алиас
- destination(string) — Назначение
- sip_extension(string) — SIP-логин, для которого устанавливается алиас
- global(bool) — Является ли алиас глобальным
Пример запроса:
GET /billing/api/2.2/ffffffffff/addAlias?alias=111&destination=79010000001
_______________________________________________________
true
updateAlias(1) — Обновление параметров алиаса
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID алиаса
- destination(string) — Назначение
- sip_extension(string) — SIP-логин, для которого устанавливается алиас
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateAlias?alias=111&destination=79010000002
_______________________________________________________
true
deleteAlias(1) — Удаление алиаса
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID алиаса
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteAlias?id=11
_______________________________________________________
true
Безопасность
getBans(22) — Получение списка блокировок iptables
Возвращает: Список блокировок (JSON) Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getBans
_______________________________________________________
[{"reason":Причина блокировки,
"source":"Источник (хост) блокировки либо whitelist",
"id":ID блокировки,
"target":"Цель (хост) блокировки",
"date":"Дата блокировки",
"clientdate":"Дата блокировки в часовом поясе пользователя",
"permanent": Является ли бан постоянным}, ...]
flushBans(22) — Сброс блокировок на SIP-сервере пользователя
Возвращает: _true_ / _false_ Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/flushBans
_______________________________________________________
true
banIP(33) — Блокировка IP-адреса
Возвращает: _true_ / _false_ Аргументы:- source(string) — Источник (хост) блокировки либо whitelist
- target(string) — Цель (хост) блокировки
- reason(string) — Причина блокировки []
Пример запроса:
GET /billing/api/2.2/ffffffffff/banIP?source=whitelist&target=127.0.0.1&reason=ya+je+localhost
_______________________________________________________
true
unbanIP(33) — Разблокировка IP-адреса
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID блокировки
Пример запроса:
GET /billing/api/2.2/ffffffffff/unbanIP?id=1
_______________________________________________________
true
updateBanPermanent(33) — Обновление статуса блокировки
Возвращает: _true_ / _false_ Аргументы:- id(num) — ID блокировки
- state(bool) — Статус блокировки (true — постоянная, false — временная)
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateBanPermanent?id=1&state=true
_______________________________________________________
true
flushAllBans(33) — Сброс всех блокировок на всех серверах Narayana
Возвращает: _true_ / _false_ Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/flushAllBans
_______________________________________________________
true
closeChannels(50) — Закрыть все активные каналы пользователя
Возвращает: _true_ / _false_ Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/closeChannels?login=10000
_______________________________________________________
true
Предоплаченные коды (коды приглашения). Регистрация новых пользователей.
registerRequest(0) — Запрос на регистрацию нового пользователя / Генерация кода приглашения
Возвращает: Сгенерированный код приглашения Аргументы:- signature(string) — Уникальная подпись клиента (генерируется Web-сервером)
Пример запроса:
GET /billing/api/2.2/ffffffffff/registerRequest?signature=test
_______________________________________________________
0000000000000000
registerByCode(0) — Регистрация нового пользователя по коду приглашения
Возвращает: _true_ / _false_ Аргументы:- code(string) — Инвайт-код (код предоплаченной карты)
- register(bool) — Произвести регистрацию (в противном случае — симуляция регистрации) [false]
- user(string) — Имя пользователя
- web_password(string) — MD5-хэш от пароля пользователя для входа в Web-интерфейс
- language(string) — Язык Web-интерфейса
Пример запроса:
GET /billing/api/2.2/ffffffffff/registerByCode?code=0000000000000000®ister=true&user=test&web_password=098f6bcd4621d373cade4e832627b4f6&language=nenglish
_______________________________________________________
true
activatePrepaidCode(1) — Активация кода приглашения (кода предоплаченной карты) на счет пользователя
Возвращает: _true_ / _false_ Аргументы:- code(string) — Код приглашения
- amount(num) — Сумма к зачислению (в случае, если указано 0 — зачисляем весь доступный остаток)
Пример запроса:
GET /billing/api/2.2/ffffffffff/activatePrepaidCode?code=0000000000000000&amount=0
_______________________________________________________
true
getPrepaidCodes(1) — Получение списка сгенерированных кодов приглашений (кодов предоплаченных карт)
Возвращает: Список сгенерированных кодов приглашения (JSON) Аргументы:- active(bool) — Показывать только неактивированные коды [false]
- all(bool) — Показать все коды (иначе — только коды, созданные лично вами) [false]
- count(bool) — Показать только количество кодов [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getPrepaidCodes
_______________________________________________________
[{"created":"Дата создания",
"clientcreated": "Дата создания в часовом поясе пользователя",
"balance": Баланс,
"displaybalance": Баланс в валюте пользователя,
"code":"Код",
"accesslevel": Уровень доступа,
"owner":"Создатель кода",
"activated_to":"Кем активирован",
"activated_date":"Дата активации"
"client_activated_date":"Дата активации в часовом поясе пользователя"}, ...]
createPrepaidCode(1) — Генерация нового кода приглашения (предоплаченного кода)
Возвращает: Сгенерированный код приглашения Аргументы:- accesslevel(num) — Уровень доступа [10]
- balance(num) — Баланс [0.00]
- target(string) — Пользователь либо SIM-карта, который может активировать данный код (если не указано — без ограничений)_ []
Пример запроса:
GET /billing/api/2.2/ffffffffff/createPrepaidCode?balance=10.00
_______________________________________________________
true
deletePrepaidCode(1) — Удаление неактивированного кода приглашения (кода предоплаченной карты)
Возвращает: _true_ / _false_ Аргументы:- code(string) — Код приглашения
Пример запроса:
GET /billing/api/2.2/ffffffffff/deletePrepaidCode?code=0000000000000000
_______________________________________________________
true
Сообщения
receiveSMS(0) — Получение нового сообщения от внешнего источника
Возвращает: _true_ / _false_ Аргументы:- msg_handler(string) — Идентификатор обработчика (обычно привязывается к API-ключу, поэтому, указывать не обязательно)
Пример запроса:
GET /billing/api/2.2/ffffffffff/receiveSMS?from=18005555550&to=78005555550&text=Hello+world
_______________________________________________________
true
receiveDeliveryReport(0) — Получение отчета о доставке от внешнего источника
Возвращает: _true_ / _false_ Аргументы: * **msg\_handler**(string) — Идентификатор обработчика (обычно привязывается к API-ключу, поэтому, указывать не обязательно) Пример запроса: GET /billing/api/2.2/ffffffffff/receiveDeliveryReport?id=AAAAAAAAAAAAAAAAAA&status=DELIVERED
_______________________________________________________
true
msgCallback(0) — Инициация обратного вызова с помощью SMS от внешнего источника
Возвращает: _true_ / _false_ Аргументы:- msisdn(string) — Номер телефона, с которого пришел запрос на инициацию
- text(string) — Текст запроса в формате "SIPEXTEN PIN [CALLERID] DESTINATION1 [DESTINATION2]" (в квадратных скобках указаны необязательные параметры)
- to(string) — Номер телефона, на который пришел запрос на инициацию
Пример запроса:
GET /billing/api/2.2/ffffffffff/msgCallback?msisdn=78005555550&to=18005555550&text=40000+1111+74999999999+79111111111
_______________________________________________________
true
readSMS(1) — Отметить SMS-сообщения как прочитанные
Возвращает: _true_ / _false_ Аргументы:- status(num) — Отмечать только сообщения с данным статусом
- did(string) — Отмечать сообщения только для данного прямого номера
Пример запроса:
GET /billing/api/2.2/ffffffffff/readSMS?status=0&did=18005555550
_______________________________________________________
true
sendSMS(1) — Отправить SMS-сообщение
Возвращает: Уникальный идентификатор сообщения Аргументы:- callerid(string) — Отображаемый номер (если не указан — берется из профиля пользователя)
- to(string) — Номер телефона назначения
- text(string) — Текст сообщения (urlencoded)
Пример запроса:
GET /billing/api/2.2/ffffffffff/sendSMS?to=18005555550&text=Hello+World!
_______________________________________________________
uniqueid
sendHLR(1) — Отправить HLR-запрос
Возвращает: Результат HLR-запроса OK,IMSI,MCC,MNC,LAC Аргументы: —- to(string) — Номер телефона для HLR-запроса
Пример запроса:
GET /billing/api/2.2/ffffffffff/sendHLR?to=18005555550
_______________________________________________________
OK,999881111111111,999,888,000000
sendVoiceMessage(1) — Отправить голосовое сообщение
Возвращает: Уникальный идентификатор сообщения Аргументы:- callerid(string) — Отображаемый номер (если не указан — берется из профиля пользователя)
- to(string) — Номер телефона назначения
- text(string) — Текст сообщения (urlencoded) либо ссылка на аудиофайл
Пример запроса:
GET /billing/api/2.2/ffffffffff/sendVoiceMessage?callerid=18005555550&to=780055555550&text=hello,+world
_______________________________________________________
uniqueid
sendSIPMessage(1) — Отправить SIP-сообщение абоненту сервиса
Возвращает: _true_ / _false_ Аргументы:- callerid(string) — Отображаемый номер (если не указан — берется из профиля пользователя)
- to(string) — Номер телефона назначения
- text(string) — Текст сообщения (urlencoded)
Пример запроса:
GET /billing/api/2.2/ffffffffff/sendVoiceMessage?to=40000&text=hello+world
_______________________________________________________
true
deliveryReport(1) — Получить отчет о доставке уникальному ID сообщения
Возвращает: SMS Sent (отправлено) / SMS Deliv (доставлено) / SMS Undeliv (не доставлено) Аргументы:- string(num) — ID записи в журнале вызовов
Пример запроса:
GET /billing/api/2.2/ffffffffff/deliveryReport?id=uniqueid
_______________________________________________________
SMS Deliv
setDeliveryReport(95) — Установить отчет о доставке для SMS-сообщения
Возвращает: _true_ / _false_ Аргументы:- id(num) — Идентификатор сообщения
- status(num) — Статус
Пример запроса:
GET /billing/api/2.2/ffffffffff/setDeliveryReport?id=1&status=0
_______________________________________________________
true
getSMS(95) — Получение списка всех сообщений ! DEPRECATED: Используйте readSMS() !
Возвращает: Список SMS-сообщений (JSON) Аргументы:-
status(num) — Статус для получения сообщений Пример запроса:
GET /billing/api/2.2/ffffffffff/getSMS?status=0 _______________________________________________________ [{"id": идентификатор сообщения (для setDeliveryReport), "date": "дата получения сообщения (server time)", "src": "отправитель", "dest": "назначение", "msg": "сообщение", "status": статус (0 — непрочитано, 1 — прочитано), "type": "тип (in — входящее, out — исходящее)"}, ...]}
Управление пользователями
getUsers(22) — Показать список пользователей
Возвращает: Список пользователей (JSON) Аргументы:- all(bool) — показать пользователей, принадлежащих корпоративным пользователям [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getUsers
_______________________________________________________
[{"атрибут": "значение"}, ...]
Список аттрибутов см. в описании функции _getInfo()
registerUser(22) — Создать нового пользователя
Возвращает: _true_ / _false_ Аргументы:- user(string) — имя пользователя
- web_password(string) — md5-хэш от пароля пользователя
- accesslevel(num) — уровень доступа
- sip_server(string) — SIP-сервер
- sip_extension(string) — SIP-логин получается методом getAvailExtension
- sip_password(string) — SIP-пароль
- balance(num) — Начальный баланс в валюте регистрирующего пользователя [0.00]
- language(string) — Язык интерфейса пользователя [config.default_language]
- currency(string) — Валюта пользователя [EUR]
- sip_srtp(bool) — Использовать шифрование SRTP [false]
- account(string) — Номер лицевого счета (или auto для автоматического создания) [auto]
! NB: даже в случае, если указана валюта регистрируемого пользователя, в качестве начального баланса будет использована валюта регистрирующего пользователя.
Пример запроса:
GET /billing/api/2.2/ffffffffff/registerUser?user=newuser&web_password=5f4dcc3b5aa765d61d8327deb882cf99&accesslevel=11&sip_server=sip.server.com&sip_extension=40000&sip_password=verysecretpassword&balance=10.00
_______________________________________________________
true
updateUser(1) — Обновление параметров пользователя
Возвращает: _true_ / _false_ Аргументы:- user(string) — Логин пользователя
- web_password(string) — Новый пароль для авторизации (md5-хэш)
- accesslevel(num) — Уровень доступа
- active(num) — Состояние (1 — активен, 0 — неактивен, -1 — заблокирован)
- account(num) — Номер лицевого счета
- currency(string) — Валюта пользователя
- language(string) — Язык интерфейса пользователя
- timezone(num) — Часовой пояс (смещение от UTC)
- rates(num) — Идентификатор тарифного плана
- allowed_rates(string) — Разрешенные к подключению тарифный план
- allowed_call_len(num) — Максимальная длительность вызова
- notify_email(string) — E-Mail для уведомлений
- notify_balance(num) — Получать уведомления при снижении баланса до мин. порога
- notify_did(num) — Количество дней до отключения DID-номера для уведомлений
- notify_ticket(num) — Получать уведомления при ответе на тикеты
- notify_balance_limit(num) — Минимальный порог баланса для уведомлений
- invites(num) — Количество приглашений
- comment(string) — Комментарий
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateUser?user=newuser&active=-1
_______________________________________________________
true
deleteUser(22) — Удалние пользователя
Возвращает: _true_ / _false_ Аргументы:- user(string) — Логин пользователя
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteUser?user=newuser
_______________________________________________________
true
Учетные записи SIP
getExtensions(1) — Получение списка SIP-аккаунтов пользователя
Возвращает: Список SIP-аккаунтов пользователя (JSON) Аргументы:- own(bool) — Получить только свои SIP-аккаунты [true]
- all(bool) — Получить список всех SIP-аккаунтов [false]
- owner(string) — Получить список SIP-аккаунтов указанного пользователя
Пример запроса:
GET /billing/api/2.2/ffffffffff/getExtensions?own=true
_______________________________________________________
[{"sip_transport":"Транспорт SIP (udp,tcp,tls/udp/tcp/tls/udp,tcp)",
"disa_pin": PIN-код,
"sip_callerid": "Идентификатор звонящего (АОН)",
"owner":"Владелец SIP-аккаунта",
"sip_password":"SIP-пароль",
"sip_host":"Хост для авторизации по IP",
"sip_srtp": Шифрование SRTP (0/1),
"sip_language":"Язык SIP-аккаунта (Язык внутренних телефонных команд)",
"sip_reach": Доступность абонента для вызова (2 — доступен, 0 — недоступен),
"sip_redirect": Переадресовать входящие звонки сюда,
"sip_extension": SIP-логин,
"sip_realm":"Краткое название SIP-сервера",
"disa_trusted_cli": "Доверенный CallerID",
"rates_name":"название тарифного плана",
"sip_max_call_len": Максимальная длительность вызова,
"sip_address":"Адрес SIP-сервера" (new in v2.3),
"sip_rates_id": идентификатор тарифного плана,
"sip_rates_options": тарифные опции, перечисленные через запятую,
"sip_server":"IP-адрес SIP-сервера",
"lastupdated":"Последнее обновление статуса" (для realtime),
"sip_force_callback": Принудительный Callback (0/1),
"sip_pitch_shift": Искажение голоса (-1 — выключено)}, ...]
getExtensionInfo(1) — Получение информации о SIP-аккаунте
Возвращает: Информация о SIP-аккаунте (JSON) либо значение запрошенного параметра Аргументы:- sip_extension(string) — SIP-аккаунт для получения информации
- property(string) — запрашиваемый параметр для получения значения конкретного параметра
Пример запроса:
GET /billing/api/2.2/ffffffffff/getExtensionInfo?sip_extension=40000
_______________________________________________________
{"sip_transport":"Транспорт SIP (udp,tcp,tls/udp/tcp/tls/udp,tcp)",
"disa_pin": PIN-код,
"sip_callerid": "Идентификатор звонящего (АОН)",
"owner":"Владелец SIP-аккаунта",
"sip_password":"SIP-пароль",
"sip_host":"Хост для авторизации по IP",
"sip_srtp": Шифрование SRTP (0/1),
"sip_language":"Язык SIP-аккаунта (Язык внутренних телефонных команд)",
"sip_reach": Доступность абонента для вызова (2 — доступен, 0 — недоступен),
"sip_redirect": Переадресовать входящие звонки сюда,
"sip_extension": SIP-логин,
"sip_realm":"Краткое название SIP-сервера",
"disa_trusted_cli": "Доверенный CallerID",
"rates_name":"название тарифного плана",
"sip_max_call_len": Максимальная длительность вызова,
"sip_address":"Адрес SIP-сервера" (new in v2.3),
"sip_rates_id": идентификатор тарифного плана,
"sip_rates_options": тарифные опции, перечисленные через запятую,
"sip_server":"IP-адрес SIP-сервера",
"lastupdated":"Последнее обновление статуса" (для realtime),
"sip_force_callback": Принудительный Callback (0/1),
"sip_pitch_shift": Искажение голоса (-1 — выключено)}
getAvailExtension(1) — Получение ближайшего доступного для регистрации SIP-аккаунта
Возвращает: Доступный SIP аккаунт для регистрации Аргументы:- own(bool) — Вернуть следущий доступный дополнительный (пользовательский) SIP аккаунт для регистрации (XXXXXyy) [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getAvailExtension?own=true
_______________________________________________________
4000001
createExtension(1) — Создание учетной записи SIP
Возвращает: _true_ / _false_ Аргументы:- owner(string) — Владелец SIP-аккаунта
- sip_extension(string) — SIP-аккаунт
- sip_password(string) — Пароль SIP
- sip_server(string) — Адрес SIP сервера
- sip_callerid(string) — Определяемый номер (АОН) по-умолчанию
- sip_language(string) — Язык SIP-аккаунта по-умолчанию
- sip_srtp(bool) — Использовать шифрование SRTP [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/createExtension?sip_extension=4000001&sip_password=password
_______________________________________________________
true
updateExtension(1) — Изменение SIP-аккаунта
Возвращает: _true_ / _false_ Аргументы:- sip_extension(string) — SIP-аккаунт для изменения
- extension(string) — Новое название (номер) SIP-аккаунта
- sip_password(string) — Новый пароль SIP
- sip_server(string) — Новый SIP сервер
- sip_srtp(num) — Использовать шифрование SRTP (0/1)
- sip_transport(ustring) — Разрешенный SIP транспорт (udp,tcp,tls/udp/tcp/tls/udp,tcp)
- sip_callerid(string) — Определяемый номер (АОН)
- sip_max_call_len(num) — Максимальная длительность вызова
- sip_reach(num) — Доступность абонента для вызова (2 — доступен, 0 — недоступен)
- sip_redirect(string) — Куда переадресовывать входящие звонки на данный SIP-логин
- sip_force_callback(num) — Принудительный Callback на доверенный номер (disa_trusted_cli) (0/1)
- sip_language(string) — Язык внутренних телефонных команд
- sip_rates_id(num) — Идентификатор тарифного плана
- disa_pin(num) — PIN-код
- disa_trusted_cli(string) — Доверенный телефон
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateExtension?sip_extension=40000&sip_srtp=1&sip_reach=2
_______________________________________________________
true
deleteExtension(1) — Удаление учетной записи SIP
Возвращает: _true_ / _false_ Аргументы:- sip_extension(string) — SIP-аккаунт для удаления
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteExtension?sip_extension=40000
_______________________________________________________
true
Журнал событий
getLogs(1) — Получение журнала событий
Возвращает: Журнал событий (JSON) Аргументы:- limit(num) — Получить последние N записей [100]
- only_completed(bool) — Показать только успешные вызовы [false]
- resolve_info(bool) — Показать дополнительную информацию о вызываемом абоненте [false]
- user(string) — пользователь для получения журнала вызовов
Пример запроса:
GET /billing/api/2.2/ffffffffff/getLogs?resolve_info=true
_______________________________________________________
[{"direction":"Направление",
"route":"Маршрут",
"cost": Цена,
"date":"Дата записи",
"displaycost": Цена в валюте пользователя,
"id": ID записи,
"username":"Имя пользователя",
"displaycurrency":"Валюта пользователя",
"status":"Статус",
"clientdate":"Дата с часовым поясом пользователя",
"destination":"Назначение",
"time":"Длительность вызова",
"callerid":"АОН",
"sip_extension": "SIP-логин",
"info": "Дополнительная информация о вызываемом абоненте",
"debug": "Отладочная информация о звонке"}, ...]
deleteLogs(1) — Удаление журнала событий
Возвращает: _true_ / _false_ Аргументы:- user(string) — Имя пользователя для удаления журнала (если не указан — удаляем собственный журнал)
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteLogs
_______________________________________________________
true
Функции интерфейса
getCourse(0) — Получение внутреннего курса валют и прочих данных
Возвращает: Курс валют (JSON) Аргументы:- currency(string) — Валюта для получения инфо
Пример запроса:
GET /billing/api/2.2/ffffffffff/getCourse?currency=EUR
_______________________________________________________
{"eur_course": Курс к Евро,"currency":"Код валюты","displayname":"€","transfer_fee":Стомость перевода между ЛС,"referral_reward":Вознаграждение за приглашение}
getCurrencies(0) — Получение списка валют
Возвращает: Список валют (JSON) Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getCurrencies
_______________________________________________________
[{"eur_course":1,"currency":"EUR","displayname":"€"},{"eur_course":68.917,"currency":"RUB","displayname":"руб. "}]
Новости и широковещательные сообщения
getNews(0) — Получение новостей
Возвращает: Список новостей или конкретная новость (JSON) Аргументы:- id(string) — Идентификатор новости для получения
- all(bool) — Показать все новости
- broadcast(bool) — Показать только новости с широковещательным сообщением
Пример запроса:
GET /billing/api/2.2/ffffffffff/getNews
_______________________________________________________
[{"is_broadcast": широковещательное? (0/1),
"id":"идентификатор новости",
"author":"автор новости",
"message":"Тестовое содержание",
"access": минимальный уровень доступа для просмотра,
"language":"язык для просмотра",
"lastupdated":"посленее обновление (часовой пояс сервера)",
"clientlastupdated":"последнее обновление (часовой пояс пользователя)",
"broadcast":"Широковещательное сообщение",
"date":"дата (часовой пояс сервера)",
"clientdate":"дата (часовой пояс клиента)",
"header":"Тестовое сообщение",
"lastupdated_by":"автор последнего обновления",
"typ":"тип (влияет только на отображение; warning/error/success/info)"}, ... ]
addNews(33) — Добавление новости
Возвращает: _true_ / _false_ Аргументы:- id(string) — Идентификатор новости
- is_broadcast(bool) — Широковещательная новость? [false]
- user(string) — Кто может читать эту новость (если не указана — все могут читать новость)
- access(num) — Минимальный уровень доступа (если 0 — даже неавторизованные пользователи) [0]
- language(string) — Язык пользователей, которые могут читать новость (если не указан — могут читать пользователи с любым языком)
- typ(ustring{info,warning,error,success}) — Тип (используется для отображение в web-интерфейсе) [info]
- broadcast(string) — Широковещательное сообщение
- header(string) — Заголовок новости
- message(string) — Текст новости
Пример запроса:
GET /billing/api/2.2/ffffffffff/addNews?id=testnews&header=test&message=hello+world
_______________________________________________________
true
updateNews(33) — Изменение новости
Возвращает: _true_ / _false_ Аргументы:- id(string) — Идентификатор новости
- is_broadcast(bool) — Широковещательная новость? [false]
- user(string) — Кто может читать эту новость (если не указана — все могут читать новость)
- access(num) — Минимальный уровень доступа (если 0 — даже неавторизованные пользователи) [0]
- language(string) — Язык пользователей, которые могут читать новость (если не указан — могут читать пользователи с любым языком)
- typ(ustring{info,warning,error,success}) — Тип (используется для отображение в web-интерфейсе) [info]
- broadcast(string) — Широковещательное сообщение
- header(string) — Заголовок новости
- message(string) — Текст новости
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateNews?id=testnews&message=hello+earth
_______________________________________________________
true
deleteNews(33) — Удаление новости
Возвращает: _true_ / _false_ Аргументы:- id(string) — Идентификатор новости
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteNews?id=testnews
_______________________________________________________
true
Тикет-система
getUnreadTickets(1) — Получение количества непрочитанных сообщений ! DEPRECATED: функция больше не используется !
Возвращает: Количество непрочитанных тикетов Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getUnreadTickets
_______________________________________________________
1
createTicket(1) — Создать тикет или ответить в существующий
Возвращает: Номер созданного / существующего тикета Аргументы:- destination(string) — Логин получателя
- subject(string) — Тема
- message(string) — Сообщение
- comment(string) — Комментарий (только для администраторов)
- ticket(num) — Номер тикета для ответа в него
Пример запроса:
GET /billing/api/2.2/ffffffffff/createTicket?destination=support&subject=Help&message=Phone+is+not+ringing!
_______________________________________________________
5162
getTickets(1) — Получение списка тикетов
Возвращает: Список тикетов (JSON) Аргументы:- limit(num) — Получить N последних тикетов [800]
- all(bool) — Получить все тикеты [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getTickets
_______________________________________________________
[{"status": статус тикета (1 — непрочитан, 0 — прочитан, -1 — закрыт),
"unread": непрочитан (true/false),
"subject":"тема",
"sender":"отправитель",
"recipient":"Dahog",
"ticket": номер тикета,
"msgid": номер сообщения,
"date":"дата в часовом поясе сервера",
"clientdate":"дата в часовом поясе сервера"}, ... ]
getTicket(1) — Получение тикета
Возвращает: Сообщения тикета (JSON) Аргументы:- ticket(num) — Номер тикета
Пример запроса:
GET /billing/api/2.2/ffffffffff/getTicket?params
_______________________________________________________
[{"type":"тип сообщения (in/out)",
"ticket": номер тикета,
"reply":"пользователь для ответа",
"message":"сообщение",
"status":статус (0 — прочитано, 1 — непрочитано, -1 — закрыто),
"subject":"тема",
"sender":"отправитель",
"username":"логин отправителя (для тех случаев, если sender == support)",
"date":"дата (часовой пояс сервера)",
"clientdate":"дата (часовой пояс клиента)",
"recipient":"получатель",
"msgid": идентификатор сообщения}, ... ]
updateTicket(1) — Обновление статуса тикета
Возвращает: _true_ / _false_ Аргументы:- ticket(num) — Номер тикета
- action(ustring{close,open,mark_unread,assign_to) — Действие (close — закрыть, open — открыть, mark_unread — сделать непрочитаннм) [open]
- assign_to(string) — Список пользователей (перечисленных через запятую), кому назначить данный тикет
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateTicket?ticket=5162&action=mark_unread
_______________________________________________________
true
deleteTicket(33) — Удаление тикета
Возвращает: _true_ / _false_ Аргументы:- ticket(num) — Номер тикета
- username(string) — Пользователь (для удаления всех его тикетов)
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteTicket?ticket=5162
_______________________________________________________
true
deleteMessage(33) — Удаление конкретного сообщения
Возвращает: _true_ / _false_ Аргументы:- id(num) — Идентификатор сообщения
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteMessage?id=10000
_______________________________________________________
true
Финансы и статистика
getPaymentMethods(0) — Получение списка доступных методов оплаты
Возвращает: Список доступных методов оплаты (JSON) Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getPaymentMethods
_______________________________________________________
{"private": {"метод оплаты для верифицированных пользователей":"Название Метода"},
"public":{"метод оплаты для всех пользователей":"Название метода"},
"default": "метод оплаты по-умолчанию"}
finishInvoice(0) — Запрос от обработчика на завершение оплаты
Возвращает: _зависит от обработчика_ Аргументы: _зависит от обработчика_Пример запроса:
POST /billing/api/2.2/ffffffffff/finishInvoice
_______________________________________________________
ok
getStats(1) — Получение статистики
Возвращает: Статистика (JSON) Аргументы: —- financials(bool) — Получение финансовой информации [false]
- statistic(bool) — Получение статистики [false]
- date1(string) — Дата (от)
- date2(string) — Дата (до)
Пример запроса:
GET /billing/api/2.2/ffffffffff/getStats
_______________________________________________________
{"forecast": {
"forecast": на сколько дней пользователю хватит денежных средств,
"recommmend": рекомендуемый платеж в системной валюте (EUR),
"display_recommend": рекомендуемый платеж в валюте пользователя},
"financials": {
"gsm_cost": роуминговые расходы в системной валюте (EUR),
"display_gsm_cost": роуминговые расходы в валюте пользователя,
"call_cost": расходы на звонки в системной валюте (EUR),
"display_call_cost": расходы на звонки в валюте пользователя,
"sms_cost": расходы на SMS в системной валюте (EUR),
"display_sms_cost": расходы на SMS в валюте пользователя,
"gprs_cost": расходы на мобильный интернет в системной валюте (EUR),
"display_gprs_cost": расходы на мобильный интернет в валюте пользователя,
"other_cost": прочие расходы (в т.ч. переводы) в системной валюте (EUR)
"display_other_cost": прочие расходы (в т.ч. переводы) в валюте пользователя,
"total_cost": общие расходы в системной валюте (EUR),
"display_total_cost": общие расходы в валюте пользователя},
"stat":{
"total_calls": всего звонков,
"success_calls": успешных звонков,
"success_calls_percent": процент успешных звонков,
"calls_duration": общая длительность вызовов,
"total_sms": всего SMS-сообщений,
"success_sms": успешных SMS-сообщений,
"success_sms_percent": процент доставленных SMS-сообщений,
"total_gsm_calls": всего GSM-вызовов¸
"success_gsm_calls": успешных GSM-вызовов,
"success_gsm_calls_percent": процент успешных GSM-вызовов,
"gsm_calls_duration": длительность GSM-вызовов,
"gprs_traffic": получено/передано трафика (моб.интернет) КбайтЪ}
}
transferMoney(1) — Перевод средств на счет другого пользователя
Возвращает: _true_ / _false_ Аргументы:- destination(string) — Получатель (логин или номер лицевого счета)
- amount(num) — Сумма в валюте запрашивающего пользователя
- comment(string) — Комментарий
Пример запроса:
GET /billing/api/2.2/ffffffffff/transferMoney?destination=100000000&amount=100&comment=Enjoy
_______________________________________________________
true
createInvoice(1) — Создать счет для оплаты
Возвращает: Информация для оплата счета (JSON) Аргументы: —- payment_method(string) — Обработчик оплаты
- payment_type(string) — Способ оплаты
- payment_amount(num) — Сумма в валюте запрашивающего пользователя
Пример запроса:
GET /billing/api/2.2/ffffffffff/createInvoice?payment_method=pscb&payment_type=qiwi
_______________________________________________________
{"comission": комиссия (процент),
"transaction": номер транзакции (инвойса),
"msg": "произвольное сообщение о особенностях оплаты",
"method": "метод запроса в URL (GET/POST)",
"url": "URL, по которому нужно перейти для оплаты инвойса",
-- Внимание: последущие параметры нужно передать в указанный URL указанным в «method» способом! --
"параметр1": "значение1",
"параметр2": "значнение2"
generateInvoice(1) — Генерация PDF-инвойса по указанным данным ! DEPRECATED: Используйте viewInvoice(invoice) !
Возвращает: PDF-инвойс Аргументы:- invoice(num) — Номер инвойса
- date(string) — Дата выставления
- deadline(string) — Дата
- services(string) — Услуги в формате Услуга@Единиц тарифицировано@Название единицы@Стоимость единицы,Услуга2@Единиц@Название единицы@Стоимость,..
Пример запроса:
GET /billing/api/2.2/ffffffffff/generateInvoice?invoice=1&date=2017-06-24 00:00:00&deadline=2017-06-25 00:00:00&services=Service@1@Unit@100
_______________________________________________________
%PDF-1.4\n1 0 obj\n<< BINARY PDF FILE
monthlyInvoice(1) — Генерация счета (инвойса) за один месяц
Возвращает: PDF-инвойс Аргументы:- month(num) — Номер месяца для генерации инвойса (используется прошлый, если не указано)
- email(bool) — Прислать инвойс на электронную почту [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/monthlyInvoice
_______________________________________________________
%PDF-1.4\n1 0 obj\n<< BINARY PDF FILE
getInvoices(1) — Получить список инвойсов
Возвращает: Список инвойсов (JSON) Аргументы:- own(bool) — Показать только свои инвойсы [true]
- bank(bool) — Показать только банковские переводы [false]
- done(bool) — Показать только завершенные инвойсы
Пример запроса:
GET /billing/api/2.2/ffffffffff/getInvoices?params
_______________________________________________________
[{"id": номер инвойса,
"owner":"владелец инвойса (кому выставлен)",
"comission": комиссия,
"vat": НДС,
"amount": сумма в системной валюте (EUR),
"displayamount": сумма в валюте пользователя,
"status": статус,
"msg":"Произвольное сообщение о особенностях оплаты",
"method":"метод оплаты",
"handler": "обработчик (системная информация)",
"billing_data":"ФИО, адрес пользователя",
"txdata": "системная информация о транзакции (см. функцию _createInvoice()_)",
"date":"дата выставления инвойса (время сервера)",
"clientdate":"дата выставления инвойса (время с часовым поясом клиента)",
"validthru":"инвойс валиден до (время сервера)",
"clientvalidthru": "инвойс валиден до (время с часовым поясом клиента)}, ... ]
getInvoiceInfo(1) — Получение информации о инвойсе
Возвращает: Информация о инвойсе (JSON) Аргументы:- invoice(num) — Номер инвойса
Пример запроса:
GET /billing/api/2.2/ffffffffff/getInvoiceInfo?id=1
_______________________________________________________
{"id": номер инвойса,
"owner":"владелец инвойса (кому выставлен)",
"comission": комиссия,
"vat": НДС,
"amount": сумма в системной валюте (EUR),
"displayamount": сумма в валюте пользователя,
"status": статус,
"msg":"Произвольное сообщение о особенностях оплаты",
"method":"метод оплаты",
"handler": "обработчик (системная информация)",
"billing_data":"ФИО, адрес пользователя",
"txdata": "системная информация о транзакции (см. функцию _createInvoice()_)",
"date":"дата выставления инвойса (время сервера)",
"clientdate":"дата выставления инвойса (время с часовым поясом клиента)",
"validthru":"инвойс валиден до (время сервера)",
"clientvalidthru": "инвойс валиден до (время с часовым поясом клиента)}
viewInvoice(1) — Загрузить PDF-инвойс
Возвращает: Бинарный PDF-файл Аргументы:- invoice(num) — Номер инвойса
Пример запроса:
GET /billing/api/2.2/ffffffffff/viewInvoice?params
_______________________________________________________
%PDF-1.4\n1 0 obj\n<< BINARY PDF FILE
deleteInvoice(33) — Удаление инвойса
Возвращает: _true_ / _false_ Аргументы:- invoice(num) — Номер инвойса
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteInvoice?invoice=1
_______________________________________________________
true
Лицевые счета
updateAccount(1) — Изменение параметров лицевого счета
Возвращает: _true_ / _false_ Аргументы:- account(num) — Номер лицевого счета
- balance(num) — Баланс в валюте запрашивающего пользователя
- overdraft(num) — Кредитный лимит в валюте запрашивающего пользователя
- refill_allowed(num) — Финансовые операции разрешены (0 — запрещены, 1 — разрешены, 2 — верифицирован)
- billing_name(string) — ФИО для выставления счетов
- billing_address(string) — Адрес для выставления счетов
- billing_email(string) — Электронный адрес для выставления счетов
- billing_bank_account(string) — Номер банковского счета для получения и выставления счетов
- postpaid(num) — Постоплатный аккаунт (присылать счет в конце месяца) (0/1)
! NB: пользователи с уровнем доступа выше 33 (администраторы) не могут менять баланс пользователей! Используйте функцию transferMoney()
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateAccount?account=100000000&postpaid=1
_______________________________________________________
true
getAccounts(22) — Получение списка лицевых счетов пользователей
Возвращает: Списо лицевых счетов и информация по ним (JSON) Аргументы:- all(bool) — Показать лицевые счета клиентов реселлеров [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getAccounts
_______________________________________________________
[ {"account": номер лицевого счета,
"users":["список", "пользователей", "на лицевом счете"],
"balance": баланс в системной валюте (EUR),
"displaybalance": баланс в валюте запрашивающего пользователя,
"overdraft": кредитный лимит в системной валюте,
"displayoverdraft": кредитный лимит в валюте запрашивающего пользователя,
"displaycurrency":"€ ($/руб./и т.д.)",
"refill_allowed": финансовые операции разрешены (0 — запрещены, 1 — разрешены, 2 — верифицирован),
"postpaid": Постоплатный аккаунт (присылать ли счета в конце месяца) }, ... ]
getAccountInfo(22) — Получение информации о лицевом счете
Возвращает: Информация о лицевом счете (JSON) Аргументы:- account(num) — Номер лицевого счета
Пример запроса:
GET /billing/api/2.2/ffffffffff/getAccountInfo?account=100000000
_______________________________________________________
{"account": номер лицевого счета,
"users":["список", "пользователей", "на лицевом счете"],
"balance": баланс в системной валюте (EUR),
"displaybalance": баланс в валюте запрашивающего пользователя,
"overdraft": кредитный лимит в системной валюте,
"displayoverdraft": кредитный лимит в валюте запрашивающего пользователя,
"displaycurrency":"€ ($/руб./и т.д.)",
"refill_allowed": финансовые операции разрешены (0 — запрещены, 1 — разрешены, 2 — верифицирован),
"postpaid": postpaid-аккаунт (присылать ли счета в конце месяца) }
deleteAccount(22) — Удаление лицевого счета
Возвращает: _true_ / _false_ Аргументы:- account(num) — Номер лицевого счета
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteAccount?account=100000000
_______________________________________________________
true
Доступ к API
getKey(33) — Получение данных API-ключа
Возвращает: Информацию о API-ключе (JSON) Аргументы:- name(string) — Идентфикатор API-ключа
Пример запроса:
GET /billing/api/2.2/ffffffffff/getKey?name=TESTKEY1
_______________________________________________________
{"maintenance":"Дата последнего тех.обслуживания (для системных целей)",
"auth_by":"Авторизация по",
"dnsname":"DNS-имя (для SIP-серверов)",
"source":"IP-адрес или маска (*.*.*.*)",
"name":"Идентификатор ключа",
"secure_only": Только HTTPS (0/1),
"enabled": Активен (0/1),
"accesslevel": Уровень доступа,
"key":"API-ключ"}
getKeys(33) — Получение списка
Возвращает: Список API-ключей (JSON) Аргументы: — Пример запроса: GET /billing/api/2.2/ffffffffff/getKeys
_______________________________________________________
[{"maintenance":"Дата последнего тех.обслуживания (для системных целей)",
"auth_by":"Авторизация по",
"dnsname":"DNS-имя (для SIP-серверов)",
"source":"IP-адрес или маска (*.*.*.*)",
"name":"Идентификатор ключа",
"secure_only": Только HTTPS (0/1),
"enabled": Активен (0/1),
"accesslevel": Уровень доступа,
"key":"API-ключ"}, ...]
addKey(33) — Создание нового API-ключа
Возвращает: _true_ / _false_ Аргументы:- name(string) — Идентификатор API-клиента
- auth_by(string) — Авторизация по (id,username,sip_extension,msisdn,iccid...)
- source(string) — IP-адрес (или маска)
- apikey(string) — API ключ
- accesslevel(num) — Уровень доступа (0 для клиентских ключей)
- default_user(string) — Привязанный пользователь
- allowed_methods(string) — Разрешенные к исполнению методы
- secure_only(num) — Запросы только по https://
Пример запроса:
GET /billing/api/2.2/ffffffffff/addKey?params
_______________________________________________________
answer example
updateKey(33) — Изменение данных API-ключа
Возвращает: _true_ / _false_ Аргументы:- name(string) — Идентификатор API-клиента
- auth_by(string) — Авторизация по (id,username,sip_extension,msisdn,iccid...)
- source(string) — IP-адрес (или маска)
- apikey(string) — API ключ
- accesslevel(num) — Уровень доступа (0 для клиентских ключей)
- default_user(string) — Привязанный пользователь
- allowed_methods(string) — Разрешенные к исполнению методы
- secure_only(num) — Запросы только по https://
- enabled(num) — Статус (1 — активен, 0 — выключен)
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateKey?name=TESTKEY1&secure_only=1
_______________________________________________________
revokeKey(33) — Отзыв API-ключа
Возвращает: _true_ / _false_ Аргументы:- name(string) — Идентификатор API-клиента
Пример запроса:
GET /billing/api/2.2/ffffffffff/revokeKey?name=TESTKEY1
_______________________________________________________
true
GSM
gsmRequest(0) — Запрос к GSM-обработчику
Возвращает: _зависит от обработчика_ Аргументы:- provider(string) — Имя обработчика (размещенного в директории inc/gsm/)
- action(string) — Название субпрограммы для вызова (в ином случае — вызывается Default)
Пример запроса:
POST /billing/api/2.2/ffffffffff/gsmRequest
_______________________________________________________
ok
SIM-карты
getSIMList(1) — Получение списка SIM-карт
Возвращает: Список SIM-карт (JSON) Аргументы:- all(bool) — Показать все доступные SIM-карты (в том числе, неактивные) [true]
- own(bool) — Показать только SIM-карты, принадлежащие текущему пользователю [false]
Пример запроса:
GET /billing/api/2.2/ffffffffff/getSIMList
_______________________________________________________
[{"allow_direct_sms": Разрешить прямые SMS в обход сети Narayana,
"msisdn": MSISDN (номер абонента),
"owner":"Владелец SIM-карты",
"lastnetworkdate":"Дата последней регистрации в сети",
"iccid":"ICCID SIM-карты",
"puk1":PUK1-код,
"puk2":PUK2-код,
"callback_cid":CallerID для Callback,
"sip_extension":SIP-профиль,
"provider":"Провайдер (обработчик)",
"enabled": Состояние SIM-карты (1/0),
"lastnetwork":MCCMNC сети}, ...]
getSIMInfo(1) — Получение информации о SIM-карте
Возвращает: Информация о SIM-карте (JSON) Аргументы:- iccid(string) — ICCID SIM-карты
Пример запроса:
GET /billing/api/2.2/ffffffffff/getSIMInfo?iccid=89372
_______________________________________________________
{"allow_direct_sms": Разрешить прямые SMS в обход сети Narayana,
"msisdn": MSISDN (номер абонента),
"owner":"Владелец SIM-карты",
"lastnetworkdate":"Дата последней регистрации в сети",
"iccid":"ICCID SIM-карты",
"puk1":PUK1-код,
"puk2":PUK2-код,
"callback_cid":CallerID для Callback,
"sip_extension":SIP-профиль,
"provider":"Провайдер (обработчик)",
"enabled": Состояние SIM-карты (1/0),
"lastnetwork":MCCMNC сети}
bindSIM(1) — Инициация процесса привязки SIM-карты
Возвращает: _true_ / _false_ Аргументы:- iccid(string) — ICCID SIM-карты
- puk1(string) — PUK1-код
- puk2(string) — PUK2-код
Пример запроса:
GET /billing/api/2.2/ffffffffff/bindSIM?iccid=89372&puk1=1111&puk2=2222
_______________________________________________________
true
unbindSIM(1) — Инициация процесса отвязки SIM-карты
Возвращает: _true_ / _false_ Аргументы:- iccid(string) — ICCID SIM-карты
Пример запроса:
GET /billing/api/2.2/ffffffffff/unbindSIM?iccid=89372
_______________________________________________________
true
updateSIM(1) — Обновление параметров SIM-карты
Возвращает: _true_ / _false_ Аргументы:- iccid(string) — ICCID SIM-карты
- owner(string) — Владелец SIM-карты
- puk1(string) — PUK1-код
- puk2(string) — PUK2-код
- sip_extension(string) — Используемый SIP-профиль
- callback_cid(string) — CallerID для Callback
- directsms(num) — Разрешить прямые SMS в обход сети Narayana (0 — нет, 1 — да)
- enabled(num) — Активация SIM-карты (0 — выключена, 1 — включена)
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateSIM?iccid=89372&sip_extension=12345
_______________________________________________________
true
addSIM(33) — Добавление SIM-карты
Возвращает: _true_ / _false_ Аргументы:- provider(string) — Провайдер (обработчик)
- msisdn(string) — MSISDN (абонентский номер)
- iccid(string) — ICCID/IMSI (уникальный номер SIM-карты)
- puk1(string) — PUK1-код (необходим для активации)
- puk2(string) — PUK2-код (необходим для активации)
Пример запроса:
GET /billing/api/2.2/ffffffffff/addSIM?provider=test&msisdn=111&iccid=89372&puk1=0000&puk2=0000
_______________________________________________________
true
deleteSIM(33) — Удаление SIM-карты
Возвращает: _true_ / _false_ Аргументы:- iccid(string) — ICCID SIM-карты
Пример запроса:
GET /billing/api/2.2/ffffffffff/deleteSIM?iccid=89372
_______________________________________________________
true
notifySIM(50) — Отправка SMS-сообщения на SIM-карту
Возвращает: _true_ / _false_ Аргументы:- sim(string) — ICCID SIM-карты
- from(string) — Номер отправителя
- text(string) — Текст сообщения
Пример запроса:
GET /billing/api/2.2/ffffffffff/notifySIM?sim=89372&from=111&text=hello+world
_______________________________________________________
true
Техническое обслуживание
asteriskRequest(22) — Запрос к АТС
Возвращает: Ответ АТС Аргументы:- asterisk(string) — IP-адрес АТС
- destination(string) — Назначение запроса (к примеру, interface)
- process(string) — Первый аргумент (обычно, название метода)
- params(string) — Параметры запроса
Пример запроса:
GET /billing/api/2.2/ffffffffff/asteriskRequest?asterisk=127.0.0.1&destination=sipreload&process=sipreload
_______________________________________________________
ok
updateDialplan(33) — Обновление версии диалплана
Возвращает: OK <версия dialplan> Аргументы:- asterisk(string) — IP-адрес АТС
- url(string) — URL файла dialplan, где слэш / заменен тильдой ~
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateDialplan?asterisk=127.0.0.1&url=localhost~dialplan
_______________________________________________________
OK 0082R20170626_205
restoreDialplan(33) — Откат версии диалплана к предыдущей
Возвращает: OK <версия dialplan> Аргументы:- asterisk(string) — IP-адрес АТС
Пример запроса:
GET /billing/api/2.2/ffffffffff/restoreDialplan
_______________________________________________________
OK 0082R20170626_205
updateInterface(33) — Обновление файла interface
Возвращает: _true_ / _false_ Аргументы:- asterisk(string) — IP-адрес АТС
- url(string) — URL файла interface, где слэш / заменен тильдой ~
Пример запроса:
GET /billing/api/2.2/ffffffffff/updateInterface?asterisk=127.0.0.1&url=localhost~interface
_______________________________________________________
OK 0.12.4
doMaintenance(90) — Провести регулярные процедуры в БД (курсы валют, инвойсы, DID-номера и пр.)
Возвращает: _true_ / _false_ Аргументы: Пример запроса: GET /billing/api/2.2/ffffffffff/doMaintenance
_______________________________________________________
true