WSDL (любой из ниже перечисленных):
2.1 Входные параметры
Для межъязыковой совместимости все наборы входных параметров обернуты классами.
Далее по тексту:
- Если не указаны входные параметры, значит, метод не имеет их
2.2 Возвращаемые данные
Методы делятся на два типа:
- не возвращают никаких данных — данные методы используются для сигнализации
- возвращают структурированные данные
Базовый класс для всех возвращаемых данных содержит:
errorCode — целое знаковое число
errorDescription — строка описания
Принято следующее соглашение, верное для всех методов:
- Если errorCode = 0 значит операция выполнилась успешно и, в зависимости от метода, производный класс может содержать дополнительную информацию
- Если вызов метода завершился ошибкой, то errorCode отлично от 0, и в поле errorDescription хранится описание ошибки, и, в зависимости от метода, производный класс может содержать дополнительную информацию
Далее по тексту:
- Если не указано возвращаемое значение, значит, метод возвращает базовый класс
- Сигнальные методы указываются отдельно
3.1 Управление сессией
3.1.1 logon
Начало логической сессии работы с системой.
Если на текущий момент сессия уже была начата, то она закрывается и производится попытка начать новую сессию (которая может не увенчаться успехом)
Входные параметры:
- userName — логин пользователя
- password — пароль пользователя
3.1.2 logoff (сигнальный)
Вызов данного сигнального метода сообщает системе о прекращении работы с ней
3.1.3 getSessionState
Метод проверки текущего состояния сессии
Возвращаемые значения:
- boolResult — состояние сессии
- strResult — если состояние сессии активно, то возвращается имя пользователя, который начал сессию
Пользователю доступно управление только публичными группами контактов
3.2.1 addPhoneGroup
Добавление группы
Входные параметры:
- name — название группы
- code — код группы (данный код не требуется для работы по средствам SOAP протокола, но может быть использован в других протоколах, например HTTP)
Возвращаемое значение:
- intResult — идентификатор группы
3.2.2 removePhoneGroup
Удаление группы по её идентификатору
Входные параметры:
- id — идентификатор группы
3.2.3 modifyPhoneGroup
Изменение настроек группы
Входные параметры:
- id — идентификатор группы
- newName — новое название группы, если параметр передан пустым, то данное поле меняться не будет
- newCode — новый код группы, если параметр передан пустым, то данное поле меняться не будет
3.2.4 clearPhoneGroup
Удаляет всех контактов из группы.
Не физическое удаление контактов, а удаление связи Контакт — Группа (все контакты, не входящие ни в одну группу, автоматически удаляются в течение дня)
Входные параметры:
- id — идентификатор группы
Возвращаемое значение:
- intResult — количество удаленных контактов
3.2.5 getPhoneGroupList
Получение списка групп контрагента
Возвращаемое значение:
- listIntResult — список идентификаторов групп
3.2.6 getPhoneGroupInfo
Получение информации о группе по её идентификатору
Входные параметры:
- id — идентификатор группы
Возвращаемые значения:
- strResult — название группы
- str2Result — код группы
3.3.1 addPhone
Добавление контакта
Входные параметры:
phone — телефон
name — название контакта для отображения
desc — описание контакта
eMail — почтовый ящик
gender — пол (возможны варианты f либо m)
fName — имя
mName — отчество
lName — фамилия
position — занимаемая должность
iCQ — номер ICQ
custom1 — произвольное текстовое поле
custom2 — произвольное текстовое поле
allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
groupId — список идентификаторов групп, в которые добавить контакт
Возвращаемое значение:
- intResult — идентификатор контакта
Если список групп пустой, то контакт будет добавлен без вхождения в группы, но будет автоматически удален системой при следующей чистке.
3.3.2 modifyPhone
Изменения данных контакта
Входные параметры:
- id — идентификатор телефона
- phone — новый номер телефона, если пустое, то значение поля не меняется
- name — новое название контакта для отображения, если пустое, то значение поля не меняется
- desc — новое описание контакта, если пустое, то значение поля не меняется
- eMail — новый почтовый ящик, если пустое, то значение поля не меняется
- gender — новый пол (возможны варианты f либо m), если пустое, то значение поля не меняется
- fName — новое имя, если пустое, то значение поля не меняется
- mName — новое отчество, если пустое, то значение поля не меняется
- lName — новое фамилия, если пустое, то значение поля не меняется
- position — новая занимаемая должность, если пустое, то значение поля не меняется
- iCQ — новый номер ICQ, если пустое, то значение поля не меняется
- custom1 — новое значение произвольного текстового поля, если пустое, то значение поля не меняется
- custom2 — новое значение произвольного текстового поля, если пустое, то значение поля не меняется
- allowSince — новое время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399), если пустое, то значение поля не меняется
- allowTill — новое время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399), если пустое, то значение поля не меняется
3.3.3 addPhoneToGroup
Добавление контакта в группу
Входные параметры:
- phoneId — идентификатор контакта
- groupId — идентификатор группы
3.3.4 removePhoneFromGroup
Удаление контакта из группы
Входные параметры:
- <phoneId — идентификатор контакта
- <groupId — идентификатор группы
3.3.5 getPhoneListInGroup
Получение списка контактов в группе
Входные параметры:
- id — идентификатор группы
Возвращаемое значение:
- listIntResult — список идентификаторов контактов
3.3.6 getGroupListByPhoneId
Получение списка групп, в которые входит контакт
Входные параметры:
- id — идентификатор контакта
Возвращаемое значение:
- listIntResult — список идентификаторов групп
3.3.7 searchPhone
Поиск по контактам (по части вхождения в телефоне, или имени, или фамилии, или отчестве, или названии)
Входные параметры:
- searchString — часть строки для поиска (не допускается пустое, при поиске обрезается до 32 символов)
Возвращаемое значение:
- listIntResult — список идентификаторов контактов
3.3.8 getPhoneInfo
Получение информации о контакте
Входные параметры:
- id — идентификатор контакта
Возвращаемое значение:
- phone — телефон
- name — название контакта для отображения
- desc — описание контакта
- eMail — почтовый ящик
- gender — пол (возможны варианты f либо m)
- fName — имя
- mName — отчество
- lName — фамилия
- position — занимаемая должность
- iCQ — номер ICQ
- custom1 — произвольное текстовое поле
- custom2 — произвольное текстовое поле
- allowSince — время раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
3.3.9 setBirthdayToPhone
Установка дня рождения контакта либо обновление ранее установленной даты
Входные параметры:
- id — идентификатор контакта
- specialDate — дата дня рождения
3.3.10 removeBirthdayFromPhone
Удаление дня рождения контакта
Входные параметры:
- id — идентификатор контакта
3.3.11 getPhoneBirthday
Получение дня рождения контакта
Входные параметры:
- id — идентификатор контакта
Возвращаемое значение:
- dTResult — дата рождения контакта
3.4.1 getAccountList
Получение списка счетов контрагента
Возвращаемое значение:
- listIntResult — список типов счетов контрагента
3.4.2 getAccountInfo
Получение информации о счете по его типу
Входные параметры:
- id — идентификатор группы
Возвращаемые значения:
- name — название
- actualBalance — фактический остаток
- overDraft — размер овердрафта
- active — признак активности
- suspended — признак заморозки счета
3.5.1 sendSimpleSms
Простая отправка SMS сообщения
Входные параметры:
- sender — имя отправителя
- phone — номер получателя
- text — текст (без возможности использовать подстановки)
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
Возвращаемое значение:
- strResult— идентификатор сообщения
3.5.2 sendSimpleFlashSms
Простая отправка flash SMS сообщения
Входные параметры:
- sender — имя отправителя
- phone — номер получателя
- text — текст (без возможности использовать подстановки)
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
Возвращаемое значение:
- strResult — идентификатор сообщения
3.5.3 sendSimpleWapPushSms
Простая отправка WAP push SMS сообщения
Входные параметры:
- sender — имя отправителя
- phone — номер получателя
- text — текст (без возможности использовать подстановки)
- uRL — url
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
- expiredTime — время истечения действия ссылки
Возвращаемое значение:
- strResult— идентификатор сообщения
3.6.1 sendSms
Отправка СМС сообщения контакту
Входные параметры:
- id — идентификатор получателя
- sender — имя отправителя
- text — текст (с возможностью использования подстановок)
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
Возвращаемое значение:
- strResult— идентификатор сообщения
3.6.2 sendFlashSms
Отправка flash СМС сообщения контакту
Входные параметры:
- id — номер получателя
- sender — имя отправителя
- text — текст (с возможностью использования подстановок)
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
Возвращаемое значение:
- strResult— идентификатор сообщения
3.6.3 sendWapPushSms
Отправка WAP push сообщения контакту
Входные параметры:
- id — номер получателя
- sender — имя отправителя
- text — текст (с возможностью использования подстановок)
- uRL — url
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
- expiredTime — время истечения действия ссылки
Возвращаемое значение:
- strResult— идентификатор сообщения
3.7.1 sendSmsToGroup
Отправка СМС сообщения группе
Входные параметры:
- id — идентификатор группы
- sender — имя отправителя
- text — текст (с возможностью использования подстановок)
- gender — пол получателя для фильтрации контактов в группе, если пол не указан, то сообщение отправляется всей группе
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
Возвращаемое значение:
- id — идентификатор группы рассылки
- sentCount — количество контактов, которым было отправлено сообщение
- notSentCount — количество контактов, которым НЕ было отправлено сообщение
INFO Если группа содержит более 1000 контактов, вызов метода вернет ошибку, и сообщения отправлены не будут
3.7.2 sendFlashSmsToGroup
Отправка flash СМС сообщения группе
Входные параметры:
- id — идентификатор группы
- sender — имя отправителя
- text — текст (с возможностью использования подстановок)
- gender — пол получателя для фильтрации контактов в группе, если пол не указан, то сообщение отправляется всей группе
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
Возвращаемое значение:
- id — идентификатор группы рассылки
- sentCount — количество контактов, которым было отправлено сообщение
- notSentCount — количество контактов, которым НЕ было отправлено сообщение
INFO Если группа содержит более 1000 контактов, вызов метода вернет ошибку, и сообщения отправлены не будут
3.7.3 sendWapPushSmsToGroup
Отправка WAP push сообщения группе
Входные параметры:
- id — идентификатор группы
- sender — имя отправителя
- text — текст (с возможностью использования подстановок)
- gender — пол получателя для фильтрации контактов в группе, если пол не указан, то отправляется всей группе
- uRL — url
- allowSince — время, раньше которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- allowTill — время, после которого нельзя посылать сообщения (в секундах от начала дня — значения между 0 и 86399)
- usePhoneTime — признак, указывающий, что ограничение по времени определяется по времени абонента
- expiredTime — время истечения действия ссылки
Возвращаемое значение:
- id — идентификатор группы рассылки
- sentCount — количество контактов, которым было отправлено сообщение
- notSentCount — количество контактов, которым НЕ было отправлено сообщение
INFO Если группа содержит более 1000 контактов, вызов метода вернет ошибку, и сообщения отправлены не будут
3.8.1 getSingleStatus
Запрос статуса одиночного сообщения
Входные параметры:
- id — идентификатор сообщения
Возвращаемое значение:
- status — состояние сообщения
- count — количество частей сообщений для тарификации
- closeTime — время получения финального статуса (время может быть возращено в формате UTC)
Статусы могут быть следующие:
SMS_STATUS_SCHEDULED = 0 — сообщение в очереди отправки
SMS_STATUS_ENROUTE = 1 — сообщение передано оператору
SMS_STATUS_DELIVERED = 2 — сообщение доставлено абоненту (финальный статус)
SMS_STATUS_EXPIRED = 3 — сообщение было передано оператору, но не доставлено абоненту в отведенный период времени (финальный статус)
SMS_STATUS_DELETED = 4 — сообщение удалено (финальный статус)
SMS_STATUS_UNDELIVERABLE = 5 — сообщение не доставлено (финальный статус)
SMS_STATUS_ACCEPTED = 6 — сообщение принято
SMS_STATUS_UNKNOWN = 7 — состояние сообщения не известно (финальный статус)
SMS_STATUS_REJECTED = 8 — сообщение отклонено оператором (финальный статус)
SMS_STATUS_ABORTED = 20 — сообщение отменено (финальный статус)
SMS_STATUS_ERROR = 21 — сообщение не было отправлено из-за ошибки (финальный статус)
SMS_STATUS_TIMEOUT = 22 — сообщение не было передано оператору, и истек период отправки данного сообщения (финальный статус)
3.8.2 getGroupStatus
Запрос статуса сообщений по идентификатору группы рассылки
Входные параметры:
- id — идентификатор рассылки по группе (не путать с идентификатором группы)
Возвращаемое значение:
- list — список статусов, который содержит следующие поля:
- id — идентификатор сообщения
- status — статус сообщения
- count — количество частей в сообщение
- closeTime — время закрытия сообщения (время может быть возращено в формате UTC)
Статусы могут быть следующие:
SMS_STATUS_SCHEDULED = 0 — сообщение в очереди отправки
SMS_STATUS_ENROUTE = 1 — сообщение передано оператору
SMS_STATUS_DELIVERED = 2 — сообщение доставлено абоненту (финальный статус)
SMS_STATUS_EXPIRED = 3 — сообщение было передано оператору, но не доставлено абоненту в отведенный период времени (финальный статус)
SMS_STATUS_DELETED = 4 — сообщение удалено (финальный статус)
SMS_STATUS_UNDELIVERABLE = 5 — сообщение не доставлено (финальный статус)
SMS_STATUS_ACCEPTED = 6 — сообщение принято
SMS_STATUS_UNKNOWN = 7 — состояние сообщения не известно (финальный статус)
SMS_STATUS_REJECTED = 8 — сообщение отклонено оператором (финальный статус)
SMS_STATUS_ABORTED = 20 — сообщение отменено (финальный статус)
SMS_STATUS_ERROR = 21 — сообщение не было отправлено из-за ошибки (финальный статус)
SMS_STATUS_TIMEOUT = 22 — сообщение не было передано оператору, и истек период отправки данного сообщения (финальный статус)
3.9.1 getInboxList
Получение списка идентификаторов входящих ящиков
Возвращаемое значение:
- listIntResult — список идентификаторов входящих ящиков
3.9.2 getInboxInfo
Получение информации по входящему ящику
Входные параметры:
- id — идентификатор ящика
Возвращаемое значение:
- number — входящий номер
- prefix — результирующий префикс
- active — состояние активности
- desc — описание
- confirmed — состояние подтверждения
3.9.3 getInSms
Получение списка входящих сообщений
Входные параметры:
- text — фильтр текста (будут выведены только сообщения, содержащие данный текст) (может быть пустым, если пусто, то сообщения не фильтруются по данному признаку)
- status — фильтр статуса (может быть пустым, если пусто, то сообщения не фильтруются по данному признаку)
- since — нижняя граница периода (может быть пустым, если пусто, то сообщения не фильтруются по данному признаку)
- till — верхняя граница периода (может быть пустым, если пусто, то сообщения не фильтруются по данному признаку)
- id — идентификатор ящика (список идентификаторов можно получить с помощью функции getInboxList)
Возвращаемое значение:
- list — список входящих сообщений, которые содержат следующие поля:
- id — идентификатор сообщения
- status — статус
- sender — номер отправителя
- target — номер получателя
- text — текст сообщения
- created — дата поступления сообщения
Статусы сообщений:
N — New — новый, автоматически после получения помечается на R
R — Read — прочитанный
A — Reply — на это сообщение ответили через WEB интерфейс
F — Forward — данное сообщение было переправлено по протоколу пользователю
M — Forward and Reply — на данное сообщение ответили WEB интерфейс, и также оно было переправлено по протоколу пользователю
4. Ознакомьтесь с примерами использования:
4.1 C#
4.2 PHP
4.3 Java (axis2)
4.1 C#
Для начала необходимо из WSDL, расположенном на сервере, получить все классы для работы, для этого необходимо воспользоваться утилитой wsdl, входящей в состав Microsoft SDKs:
«C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\wsdl» /l:cs /protocol:SOAP /out:»C:\SOAPTelAccess.cs» http://api.sigmasms.ru/public/soap/index.php?wsdl
— создается файл, который содержит основной класс TelAccess, предоставляющий все выше описанные методы, и дополнительные вспомогательные классы, необходимые для работы.
Работа по данному протоколу разделена на два уровня — физическая и логическая сессия, обеспечением физической сессии занимаются системные компоненты. Для поддержания единой физической сессии первым делом необходимо создание cookie:
CookieContainer cookie = new CookieContainer();
— данный cookie необходимо будет указывать для всех объектов класс TelAccess:
TelAccess soapclient = new TelAccess(); soapclient.CookieContainer = cookie;
— если не использовать cookie, сервер будет считать для разных объектов класса TelAccess различные физической сессии
Начало логической сессии происходит по средствам авторизация методом logon:
InputLogon Param = new InputLogon(); Param.userName = «10234.3»; Param.password = «123»; ReturnValueBase rv = soapclient.logon(Param);
— если авторизация прошла успешно, то в rv.errorCode возвращается 0, в противном случае код ошибки, а в rv.errorDescription текстовое описание ошибки.
Если в течение 1 минуты не было вызвано ни одного метода, логическая сессия будет закрыта автоматически. Также логическую сессию можно закрыть сигнальным методом logoff.
Узнать состояние логической сессии можно, вызвав метод getSessionState
ReturnValueBooleanString rv = TA.getSessionState().@return;
— если метод выполнился успешно, то логическая переменная rv.boolResult говорит о том, активна ли сейчас логическая сессия, а rv.strResult о том, какой пользователь инициировал данную логическую сессию.
INFO При первом вызове любого метода происходит инициализация всех необходимых объектов и компонентов в C#, это может занять до 10-15 секунд, дальнейшие вызовы методов происходят без задержек.
Пример 1
Отправка простого сообщения:
TelAccess soapclient = new TelAccess();soapclient.CookieContainer = cookie;// Init session
InputLogon Param1 = new InputLogon();
Param1.userName = «11234.5»;
Param1.password = «123»;
ReturnValueBase rv1 = soapclient.logon(Param1);if (rv1.errorCode != 0)
throw new Exception(rv1.errorDescription);// Send simple sms
InputSendSimpleSms Param2 = new InputSendSimpleSms();
Param2.sender = «test-sms»;
Param2.phone = «79876543210»;
Param2.text = «Тестовое сообщение»;
Param2.allowSince = 3600;
Param2.allowSinceSpecified = true;
Param2.allowTill = 72000;
Param2.allowTillSpecified = true;
Param2.usePhoneTime = checkBoxUsePhoneTime.Checked;
Param2.usePhoneTimeSpecified = true;
ReturnValueString rv2 = soapclient.sendSimpleSms(Param2);
if (rv2.errorCode != 0)
throw new Exception(rv2.errorDescription);
else
MessageBox.Show(«Message id: » + rv2.strResult);
// Close session
soapclient.logoff();
Пример 2
Добавление группы
TelAccess soapclient = new TelAccess();soapclient.CookieContainer = cookie;// Logon
InputLogon Param1 = new InputLogon();
PParam1.userName = «11234.5»;
Param1.password = «123»;
ReturnValueBase rv1 = soapclient.logon(Param1);if (rv1.errorCode != 0)
throw new Exception(rv1.errorDescription);// Add phone group
InputAddPhoneGroup Param2 = new InputAddPhoneGroup();
Param2.name = «Test group»;
ReturnValueInt rv2 = soapclient.addPhoneGroup(Param2);
if (rv2.errorCode != 0)
throw new Exception(rv2.errorDescription);
else
MessageBox.Show(«Group id: » + rv2.intResult);
Пример 3
Добавление контакта (опционально помещение данного контакта в 4 некоторые группы контактов)
TelAccess soapclient = new TelAccess();soapclient.CookieContainer = cookie;// Logon
InputLogon Param1 = new InputLogon();
PParam1.userName = «11234.5»;
Param1.password = «123»;
ReturnValueBase rv1 = soapclient.logon(Param1);if (rv1.errorCode != 0)
throw new Exception(rv1.errorDescription);// Add phone group
InputAddPhoneGroup Param2 = new InputAddPhoneGroup();
Param2.name = «Test group»;
ReturnValueInt rv2 = soapclient.addPhoneGroup(Param2);
if (rv2.errorCode != 0)
throw new Exception(rv2.errorDescription);
else
MessageBox.Show(«Group id: » + rv2.intResult);
Для работы по протоколу SOAP в PHP необходимо подключить модуль php_soap в php.ini
Для Windows надо добавить следующие строчки в php.ini
[PHP_SOAP] extension=php_soap.dll
Для Linux надо добавить следующие строчки в php.ini
[PHP_SOAP] extension=soap.so
Пример 1
Отправка простого сообщения:
<?php
$objClient = new SoapClient(«http://api.sigmasms.ru/public/soap/«, array(‘trace’ => true));
$params = array(‘param’ => array(‘userName’ => «XXXXX.X», ‘password’ => «your_password»));
$objData = $objClient->logon($params);
if ($objData->return->errorCode == 0)
{
$params = array(‘param’ => array(‘sender’ => «test-sms», ‘phone’ => «79991234567», ‘text’ => «SOAP test»));
$objData = $objClient->sendSimpleSms($params);
print «Message send. ID «.$objData->return->strResult;
$objClient->logoff();
}
else
{
echo «Error: «.$objData->return->errorDescription;
}
?>
Для создания всех необходимых классов можно воспользоваться утилитой, входящей в состав axis2
wsdl2java -uri http://api.sigmasms.ru/public/soap/index.php
Пример 1
Отправка простого сообщения
import org.apache.axis2.AxisFault;
import org.apache.axis2.client.Options;
import telecom.srv.sms.*;
import telecom.srv.sms.TelAccessStub.*;public class Test
{
public static void main(String args[])
{
try
{
TelAccessStub soalclient = new TelAccessStub();Options options = soalclient._getServiceClient().getOptions();
options.setManageSession(true);
soalclient._getServiceClient().setOptions(options);InputLogon inparam1 = new InputLogon();
inparam1.setUserName(«11234.5»);
inparam1.setPassword(«123»);
Logon param1 = new Logon();
param1.setParam(inparam1);
ReturnValueBase rv1 = soalclient.logon(param1).get_return();
if (rv1.getErrorCode() != 0)
throw new Exception(rv1.getErrorDescription());
InputSendSimpleSms inparam2 = new InputSendSimpleSms();
inparam2.setSender(«Test»);
inparam2.setPhone(«79876543210»);
inparam2.setText(«Java test message»);
SendSimpleSms param2 = new SendSimpleSms();
param2.setParam(inparam2);
ReturnValueString rv2 = soalclient.sendSimpleSms(param2).get_return();
if (rv2.getErrorCode() != 0)
throw new Exception(rv2.getErrorDescription());
System.out.println(«Message id:» + rv2.getStrResult());
soalclient.logoff();
}
catch (AxisFault e)
{
e.printStackTrace();
}
catch (RemoteException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
import org.apache.axis2.AxisFault;
import org.apache.axis2.client.Options;
import telecom.srv.sms.*;
import telecom.srv.sms.TelAccessStub.*;public class Test
{
public static void main(String args[])
{
try
{
TelAccessStub soalclient = new TelAccessStub();Options options = soalclient._getServiceClient().getOptions();
options.setManageSession(true);
soalclient._getServiceClient().setOptions(options);InputLogon inparam1 = new InputLogon();
inparam1.setUserName(«11234.5»);
inparam1.setPassword(«123»);
Logon param1 = new Logon();
param1.setParam(inparam1);
ReturnValueBase rv1 = soalclient.logon(param1).get_return();
if (rv1.getErrorCode() != 0)
throw new Exception(rv1.getErrorDescription());
InputAddPhoneGroup inparam2 = new InputAddPhoneGroup();
inparam2.setName(«Java test group»);
AddPhoneGroup param2 = new AddPhoneGroup();
param2.setParam(inparam2);
ReturnValueInt rv2 = soalclient.addPhoneGroup(param2).get_return();
if (rv2.getErrorCode() != 0)
throw new Exception(rv2.getErrorDescription());
System.out.println(«Group id:» + rv2.getIntResult());
soalclient.logoff();
}
catch (AxisFault e)
{
e.printStackTrace();
}
catch (RemoteException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Пример 3
Добавление контакта (опционально помещение данного контакта в 4 некоторые группы контактов)
import org.apache.axis2.AxisFault;
import org.apache.axis2.client.Options;
import telecom.srv.sms.*;
import telecom.srv.sms.TelAccessStub.*;public class Test
{
public static void main(String args[])
{
try
{
TelAccessStub soalclient = new TelAccessStub();Options options = soalclient._getServiceClient().getOptions();
options.setManageSession(true);
soalclient._getServiceClient().setOptions(options);InputLogon inparam1 = new InputLogon();
inparam1.setUserName(«11234.5»);
inparam1.setPassword(«123»);
Logon param1 = new Logon();
param1.setParam(inparam1);
ReturnValueBase rv1 = soalclient.logon(param1).get_return();
if (rv1.getErrorCode() != 0)
throw new Exception(rv1.getErrorDescription());
InputAddPhone inparam2 = new InputAddPhone();
inparam2.setPhone(«79876543210»);
inparam2.setFname(«Test»);
inparam2.setLname(«Testov»);
inparam2.setCustom1(«Очень тестовый клиент»);
inparam2.setIcq(«111222333»);
int [] groupid = new int[2];
groupid[0] = 2770;
groupid[1] = 2771;
inparam2.setGroupId(groupid);
AddPhone param2 = new AddPhone();
param2.setParam(inparam2);
ReturnValueInt rv2 = soalclient.addPhone(param2).get_return();
if (rv2.getErrorCode() != 0)
throw new Exception(rv2.getErrorDescription());
System.out.println(«Phone id:» + rv2.getIntResult());
soalclient.logoff();
}
catch (AxisFault e)
{
e.printStackTrace();
}
catch (RemoteException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}