Доступ к учетной записи и проекту
Используйте активную учетную запись API и подключайтесь по HTTPS с разрешенного IP-адреса. Проект должен принадлежать этой учетной записи и не должен быть удален. Используйте уникальный идентификатор проекта из процесса оформления заказа на перенос, а не его числовой идентификатор в базе данных или номер телефона. При формировании запроса применяйте URL-кодирование к идентификатору проекта.
Запрос
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID/status"Эта конечная точка не считывает тело запроса, параметры разбиения на страницы или фильтр по дате.
Ответ
Вымышленный пример ответа.
{
"status": {
"code": 200,
"msg": "Project Status"
},
"response": {
"uniqueid": "PROJECT_EXAMPLE",
"status": 2,
"status_str": "Completed",
"counts": {
"total": 2,
"pending": 0,
"in_progress": 0,
"completed": 1,
"rejected": 1
}
}
}Поле внешнего уровня status.code сообщает результат вызова API. Отдельное поле response.status содержит вычисленный сводный статус переноса номеров в проекте. Не путайте эти два поля.
Сводный статус не отражает результат по каждому номеру
Для сводного статуса выбирается In Progress, если хотя бы один номер имеет этот статус; иначе выбирается Pending, затем Completed, затем Rejected. Если ни один из известных статусов не найден, по умолчанию используется Pending. Поэтому проект, в котором есть номера как с завершенным, так и с отклоненным переносом, возвращает Completed, хотя в нем по-прежнему есть номера с отклоненным переносом.
Прежде чем считать весь проект завершенным, всегда проверяйте счетчики и список отдельных номеров. counts.total учитывает каждую запись о номере в проекте; остальные счетчики учитывают только четыре известных значения статуса, и при наличии других значений их сумма может не совпадать с общим количеством. Для проекта без номеров возвращаются нулевые значения счетчиков и сводный статус Pending.
Как понимать статус переноса
| Значение | Название |
|---|---|
| 0 | Pending |
| 1 | In Progress |
| 2 | Completed |
| 9 | Rejected |
Сохраняйте числовое значение статуса и предусматривайте обработку неизвестных значений. Если название неизвестно, вместо него возвращается сохраненное значение; наличие нового названия не гарантируется. Сохраненный статус завершения или запланированная дата сами по себе не подтверждают проверку маршрутизации входящих вызовов или всех услуг на номере.
Ошибки и ограничения
Проверяйте как ответ HTTP, так и status.code/status.msg. Если проект отсутствует, удален или не принадлежит учетной записи, возвращается код API 404 с сообщением о том, что проект не найден. Также действуют требования аутентификации и ограничения по исходному IP-адресу. Примеры не выполняют реальный запрос, а успешный ответ не доказывает, что оператор принял заявку на перенос или завершил перенос.
Результаты выполнения
Эта конечная точка считывает сохраненные счетчики проекта. В проверенном обработчике она не отправляет заявку на перенос, не изменяет статус, не инициирует вызов и не списывает средства с учетной записи. Она не предоставляет опрос оператора в реальном времени или подписку на вебхуки.