Личный кабинет SIPNET использует для своей работы именно этот API.
По понятным причинам, мы не можем его опубликовать полностью. Если Вы считаете, что использование этого инструментария Вам необходимо, обратитесь в тех.поддержку.
Весь обмен информацией осуществляется по протоколу HTTP/1.1 SSL (порт 443). Передача и получение информации осуществляется методом POST. Запрос и ответ формируются в виде XML-документа (xml version="1.0").
Все запросы осуществляются на URL https://adminc.sipnet.ru/cgi-bin/Exchange.dll/Api.
Схема запроса и получения ответа:
HTTP POST Request >>-------->> XML Data >>----------->> SSL HTTP Server (443 порт)
HTTP Response <<------------<< XML Data <<-----------<< SSL HTTP Server
Каждый запрос имеет следующий формат данных:
<?xml version="1.0"?>
<method name="метод">
<engine>Cabinet 2.0</engine>
<owner>Me</owner>
<key>My Key</key>
<language>ru</language>
<domain>customer.sipnet.ru</domain>
<user>имя пользователя</user>
<password>пароль</password>
<ip>ip-адрес</ip>
<payload>полезные данные</payload>
</method>
Если в тэге <method> присутствует поле remote, то данные в запросе необходимо отправлять на URL, указанный в этом поле.
Пример:
<?xml version="1.0"?>
<method name="init">
<engine>Cabinet 2.0</engine>
<owner>Me</owner>
<key>My Key</key>
<language>ru</language>
<domain>customer.sipnet.ru</domain>
<user>sippoint</user>
<password>******</password>
<ip>25.25.66.35</ip>
<payload></payload>
</method>
Каждый ответ от сервера имеет следующий формат данных:
<?xml version="1.0" ?>
<method name="метод">
<version>1.0</version>
<status>success</status>
<UserInfo>
<UserName>имя пользователя</UserName>
<RealName>Реально имя пользователя</RealName>
<Plan>Тарифный план</Plan>
<SipID>SIPID</SipID>
<EmailAttached>Включён ли почтовый ящик</EmailAttached>
<PhoneNotebook>Включена ли телефонная книга</PhoneNotebook>
<AdminAccount>Включён ли доступ администратора</AdminAccount>
<UserMoneyLimit>Остаток на счёте</UserMoneyLimit>
<AccountStatus>Статус аккаунта</AccountStatus>
<ParentCard>Дочерние карты</ParentCard>
<ParentAccessible>No</ParentAccessible>
<Entity>person</Entity>
<alert>No</alert>
<Routing>Variable</Routing>
</UserInfo>
...другие данные
</method>
Пример:
<?xml version="1.0" ?>
<method name="init">
<version>1.0</version>
<status>success</status>
<UserInfo>
<UserName>sippoint</UserName>
<RealName>SIPPoint</RealName>
<Plan>Спецсвязь Плюс</Plan>
<SipID>1799534</SipID>
<EmailAttached>Yes</EmailAttached>
<PhoneNotebook>Yes</PhoneNotebook>
<AdminAccount>Yes</AdminAccount>
<UserMoneyLimit>29.14585</UserMoneyLimit>
<AccountStatus>Full</AccountStatus>
<ParentCard>No</ParentCard>
<ParentAccessible>No</ParentAccessible>
<Entity>person</Entity>
<alert>No</alert>
<Routing>Variable</Routing>
</UserInfo>
</method>
Ответ от сервера представляет собой XML документ с набором тегов для дальнейшего удобного формирования отчёта:
Все данные подразделяются на блоки с тегом <block>, где задаётся имя блока и его тип. Например: <block name="info_block" type="table">
Внутри блока может находиться следующая информация:
< caption > - название блока
< records > - количество записей (строки)
< range > - период из общего количества записей (строки)
< columns > - число столбцов
< headers > - шапка таблицы
< rows > - строки таблицы (внутри этого тега формируется таблица с информцией на основании вышеуказанных xml-тегов с использованием html-тегов)
< buttons > - кнопки в форме для формирования запроса и отправки данных (как правило с блока)
Метод 'init' предназначен для инициализации и авторизации имени пользователя и пароля клиента и получения основных сведений. Является основным методом при осуществлении авторизации и входит в состав всех остальных методов.
Пример XML документа и описание полей можно увидеть в пунктах 2 и 3. Метод не включает
Метод 'do_info' предназначен для получения информации о личных данных и истории платежей.
Запрос: формируется стандартный с методом do_info.
Пример:
<?xml version="1.0"?>
<method name="do_info">
<engine>Cabinet 2.0</engine>
<owner>Me</owner>
<key>My Key</key>
<language>ru</language>
<domain>customer.sipnet.ru</domain>
<user>sippoint</user>
<password>***</password>
<ip>25.25.66.35</ip>
<payload></payload>
</method>
Ответ: формируется ответ с блоками данных в стандартном формате XML ответа сервера.
Пример:
<?xml version="1.0" ?>
<method name="do_info">
<version>1.1</version>
<status>success</status>
<UserInfo>
<UserName>sippoint</UserName>
<RealName>SIPPoint</RealName>
<Plan>Спецсвязь Плюс</Plan>
<SipID>1799534</SipID>
<EmailAttached>Yes</EmailAttached>
<PhoneNotebook>Yes</PhoneNotebook>
<AdminAccount>Yes</AdminAccount>
<UserMoneyLimit>29.14585</UserMoneyLimit>
<AccountStatus>Full</AccountStatus>
<ParentCard>No</ParentCard>
<ParentAccessible>No</ParentAccessible>
<Entity>person</Entity>
<alert>No</alert>
<Routing>Variable</Routing>
</UserInfo>
<block name="info_block" type="table">
<caption>Информация о клиенте</caption>
<records>12</records>
<range>1-12</range>
<columns>2</columns>
<headers>
<tr><th colspan="2">Информация о клиенте</th></tr>
</headers>
<rows>
<tr><td>Имя пользователя</td><td align="right">sippoint</td></tr>
<tr><td>SIP ID</td><td align="right">1799534</td></tr>
<tr><td>Тарифный план</td><td align="right">Спецсвязь Плюс</td></tr>
<tr><td>Баланс</td><td align="right">29.14585</td></tr>
<tr><td>Начислено</td><td align="right">61.00000</td></tr>
<tr><td>Длительность звонков</td><td align="right">9227:00</td></tr>
<tr><td>Фамилия Имя Отчество</td><td align="right">SIPPoint</td></tr>
<tr><td>Страна</td><td align="right">Russia</td></tr>
<tr><td>Город</td><td align="right"></td></tr>
<tr><td>Организация</td><td align="right"></td></tr>
<tr><td>Телефон для связи</td><td align="right"></td></tr>
<tr><td>E-Mail для восстановления пароля</td><td align="right">xxx@xxx.ru</td></tr>
<tr><td>Часовой пояс</td><td align="right">(GMT) Гринвич, Лондон</option></td></tr>
</rows>
</block>
<block name="info_add_money" type="table">
<caption>Пополнения счёта</caption>
<records>2</records>
<range>1-2</range>
<columns>3</columns>
<headers>
<tr><th>Сумма</th><th>Дата</th><th>Способ оплаты</th></tr>
</headers>
<rows>
<tr><td>50.00</td><td>04/05/2007</td><td align="right">Cash</td></tr><tr><td>10.00</td><td>06/06/2006</td><td align="right">Cash</td></tr>
</rows>
</block>
<block name="info_cg_registration" type="table">
<caption>CG регистрация</caption>
<records>1</records>
<range>1-1</range>
<columns>2</columns>
<headers>
<tr><th>Адрес</th><th>Оборудование</th></tr>
</headers>
<rows>
<tr><td colspan="2">Активных регистраций нет.</td></tr>
</rows>
</block>
</method>