Получение статуса телефона

Модератор: Administrator

Ответить
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Получение статуса телефона

Сообщение gpi65 »

Здравствуйте.
Подскажите, как в программе получить информацию, свободен телефон или занят, зная его номер?
Используется DMCC 6.3.3

Я в программировании по Avaya новичок. Программа пишется на Java
Serg_Y
Постоянный участник форума
Сообщения: 183
Зарегистрирован: Вт 06 фев 2018, 09:21

Re: Получение статуса телефона

Сообщение Serg_Y »

Инструментарий разработчика приложений вполне доступен на саппорте авайском.
Тут нет программистов, особенно на java
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Serg_Y писал(а):Инструментарий разработчика приложений вполне доступен на саппорте авайском.
Точнее, не на саппорте, а на девконнекте.
Serg_Y писал(а):Тут нет программистов, особенно на java
А вот за всех говорить не стоит...
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Насколько я понял, состояние занят/свободен можно определить по состоянию определенных кнопок/ламп.
Проблема в том, чтобы подключиться к телефону, зная его номер и IPAddress
Serg_Y
Постоянный участник форума
Сообщения: 183
Зарегистрирован: Вт 06 фев 2018, 09:21

Re: Получение статуса телефона

Сообщение Serg_Y »

Все не так просто, не подключитесь вы так просто к телефону...
Правильный путь такой, использовать собственно, тот путь, на который явно указывает авайя, а именно использовать AES сервер, другого пути именно с СМ нет...
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Serg_Y писал(а):Правильный путь такой, использовать собственно, тот путь, на который явно указывает авайя, а именно использовать AES сервер, другого пути именно с СМ нет...
Ну слово 'DMCC' произнесено было, вроде даже сопровождено относительно свежей версией. А вот насколько правильно применено сие заклинание - вопрос...
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Делаю следующее:

Код: Выделить всё

provider = ServiceProvider.getServiceProvider(properties);
devServ = (DeviceServices) provider.getService(com.avaya.csta.device.DeviceServices.class.getName());

GetDeviceId devRequest = new GetDeviceId();
devRequest.setSwitchIPInterface(callServerAddress);
devRequest.setExtension(extension);
GetDeviceIdResponse response = null;
DeviceID deviceID = null;
response = devServ.getDeviceID(devRequest);
if(response != null)
	deviceID = response.getDevice();
До этого места все работает.
Далее хочу получить список телефонов. Делаю следующее:

Код: Выделить всё

GetDeviceIdList request = new GetDeviceIdList();
request.setSessionID(provider.getSessionID());
GetDeviceIdListResponse resp = devServ.getDeviceIdList(request);
На последней строке ошибка ch.ecma.csta.errors.InvalidDeviceStateException
Подозреваю, что передаю не тот ИД.
Подскажите, как правильно получить список телефонов?
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Если вам надо мониторить состояние - не проще это через JTAPI делать?
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Мониторить состояние - это первое, что нужно сделать. Дальше будет и звонки, и конференции, и еще много чего.
DMCC я выбрал потому, что он показался мне проще, чем JTAPI.
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

А список каких телефонов вы хотите получить? Я до сего момента считал, что DMCC - он для работы с конкретным station
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

gosha писал(а):А список каких телефонов вы хотите получить? Я до сего момента считал, что DMCC - он для работы с конкретным station
Вот. Этого я не знал.
Список телефонов - пока хотя бы просто все зарегистрированные телефоны на станции. В дальнейшем у меня будет список номеров, которые надо мониторить.
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

gpi65 писал(а):
gosha писал(а):А список каких телефонов вы хотите получить? Я до сего момента считал, что DMCC - он для работы с конкретным station
Вот. Этого я не знал.
Список телефонов - пока хотя бы просто все зарегистрированные телефоны на станции. В дальнейшем у меня будет список номеров, которые надо мониторить.
Это вам тогда надо System Management Services пользовать. Но я бы советовал держать этот список статично (локально)
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Локальный список номеров у меня будет.
Вот только я никак не могу врубиться, как можно подключиться к определенному телефону, чтобы узнать его статус. Что, кроме номера, надо знать? И какие методы использовать для подключения?
Правильно ли я понял, что для мониторинга телефонов в цикле достаточно DMCC? Или надо влезать в JTAPI?
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Мониторинг - JTAPI. Конкретика с аппаратом - DMCC.
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Хорошо.
Какой должна быть последовательность моих действий?
Допустим, у меня есть телефон с номером 1111. Мне также известен его IP адрес, например 10.10.10.10.
Сначала я создаю провайдера

Код: Выделить всё

provider = ServiceProvider.getServiceProvider(properties); // в пропертях прописаны и ип адрес, и номер (extension)
devServ = (DeviceServices) provider.getService(com.avaya.csta.device.DeviceServices.class.getName());
Потом получаю DeviceID

Код: Выделить всё

GetDeviceId devRequest = new GetDeviceId();
devRequest.setSwitchIPInterface(callServerAddress);
devRequest.setExtension(extension);
GetDeviceIdResponse response = null;
DeviceID deviceID = null;
response = devServ.getDeviceID(devRequest);
if(response != null)
   deviceID = response.getDevice();
Насколько я понимаю, все, что я получил, относится к АТС. Или я не прав?
А как подключиться к телефону?
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Вы общаетесь не напрямую с телефоном, а с AES-сервером...
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

да, со станцией через AES. Но ведь я же могу на станции увидеть телефон?
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

gpi65 писал(а):да, со станцией через AES. Но ведь я же могу на станции увидеть телефон?
Какой? И с какой целью?
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

IP телефон Avaya, стоящий у меня на столе. Или на соседнем столе. Или вообще любой, включенный в данную станцию. Но для простоты примем, что это мой телефон, мне известен его номер и его IP. Какая еще требуется информация? Моей программе надо убедиться, что телефон готов к приему звонка. И направить на него этот самый звонок, но это уже следующий шаг.
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Ну, вот это уже что-то. Неправильная постановка задачи нарисовалась.
1. Не мешайте станции маршрутизировать вызовы. Поверьте, станция это умеет делать лучше вас.
2. Что значит "телефон готов к приему звонка"? Мы говорим о аппарате оператора ЦОВ или как?
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

В таком случае уточню задачу.
Есть Cool-центр, в нем за компьютерами, в которых программа имитирует телефон (Softphone) сидит много операторов.
Поступает входящий звонок. Задача приложения - перехватить звонок, определить номер, с которого звонят, вытащить из БД информацию о звонящем (если она там найдется по его номеру), выбрать свободного оператора, соединить с ним звонящего и передать информацию о звонящем
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Вы в очередной раз изобретаете велосипед, все уже давным давно сделано. One-X Agent умеет по приходу вызова вызывать внешнее приложение и в качестве параметра командной строки передавать номер вызывающего абонента. За Cool-центр отдельное спасибо.
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Изобретаю не я, таково пожелание заказчика. Возможно, упомянутый вами One-X Agent платный, и заказчик хочет сэкономить?
Поэтому и прошу помощи
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

gpi65 писал(а):Изобретаю не я, таково пожелание заказчика. Возможно, упомянутый вами One-X Agent платный, и заказчик хочет сэкономить?
Поэтому и прошу помощи
Ну тогда рассказывайте, что реализовано у заказчика. CC Elite есть и работает?
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Есть AES сервер версии 6.3.3, у меня установлен TSAPI клиент.
Еще у меня есть DMCC и JTAPI
Есть адрес callserver, есть extension (насколько я понял, мне это дано для примера, когда я звоню на свой телефон из Softphone, то extension показывается как номер вызывающего), есть логин/пароль, есть cmapi1.server_ip и cmapi1.server_port.
Буду очень признателен, если поможете разобраться, куда приспособить эту информацию для решения моей задачи.
Насколько я понял, CC Elite - это как раз Avaya call-center. Его нет, в настоящее время операторы сидят за телефонами. На всякий случай сейчас уточню.
Интерфейс для оператора реализуем мы. Моя же задача - серверная часть, взаимодействие между АТС и БД
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Для начала покажите первую страницу disp sys cust со станции
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

запросил страницу у компании-аутсорсера, обслуживающей станцию. Думаю, что ответят только завтра.
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Это что ж за аутсорсеры, которые таких вещей не знают?
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Они знают, но хотят денег за ответы на вопросы
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

gpi65 писал(а):Они знают, но хотят денег за ответы на вопросы
А вы думаете, что все на халяву?! Или вы просто не хотите читать документацию?
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

А без первой страницы станции можно как-то обойтись?
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

gpi65 писал(а):А без первой страницы станции можно как-то обойтись?
Ну как минимум вам надо знать extension и security code той station, к которой хотите прицепиться. Потом делаете в своей программе dependant registration. Это только то, что касается DMCC. Но без доступа к станции для траблшутинга вам точно не обойтись, либо процесс девелопмента растянется на годы...
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

И еще: эти аутсорсеры хоть открыли Insecure DMCC port на AES?
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

# The SwitchName (from OAM Switch Connections web page) of the call server,
# or the Gatekeeper IP address (e.g. CLAN/PE), that the AE Server should
# use to register the device (extension) to Avaya Communication Manager.
callserver=
extension=
password=
...
# IP address of the Application Enablement Server
cmapi1.server_ip=
# Credentials for connecting to the AE Server
cmapi1.username=
cmapi1.password=
# AE Server client connection port: 4721(non-SSL) or 4722(SSL)
cmapi1.server_port=4721
# Legal values for cmapi1.secure are true (for port 4722) and false (for port 4721).
cmapi1.secure=false

Это фрагмент properties файла, то, что я заполнял сам, получив информацию от аутсорсера. Как вы понимаете, здесь я просто удалил данные, на самом деле
callserver, extension, password, cmapi1.server_ip, cmapi1.username, cmapi1.password у меня заполнены. Этого достаточно для начала, или надо запросить еще что-то?
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

Для настроек DMCC - достаточно. Для регистрации надо еще extension и его security code
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

так ведь есть же extension. Или нужен еще какой-то другой?
А security code - это не password?
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

gpi65 писал(а):так ведь есть же extension. Или нужен еще какой-то другой?
А security code - это не password?
Все правильно, именно так. А вот дальше я бы смотрел на трассировку регистрации абонента на станции, но вам это, судя по всему, недоступно, что создает вам очень большие проблемы...
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Я запустил программу из примера, идущего с SDK. В консоль пришло много информации об изменении состояния ламп и о кнопках.
На своем телефоне набрал номер, который у меня указан как extension. В консоли появилась информация об изменении состояния лампы 263, и отобразилась информация о вызывающем, т.е. обо мне, в том числе и мой номер. Это как раз то, что мне нужно.
Но номер, который extension - это, насколько я понимаю, виртуальный телефон, который я могу увидеть, например, запустив приложение Softphone из тех же примеров.
Если же я указываю в качестве extension свой номер телефона, а в качестве callserver - ip своего телефона, пароль тот же, то получаю ошибку:

Registration failed for extension <тут мой номер>

Какие настройки нужны для подключения к реальному телефону?
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Посмотрел настройки в телефоне. Там callserver тот же, что и у тестового extension.
Изменил properties, extension - мой номер, остальное все как было.
Ошибка:
Registration failed for extension <мой номер> : reason Registration Reject reason: securityDenial Login Denied - Access Code invalid. diagnostic string= code= 63773

Получается что, для каждого номера свой пароль?
Или я что-то не так понимаю?
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

gpi65 писал(а):Посмотрел настройки в телефоне. Там callserver тот же, что и у тестового extension.
Изменил properties, extension - мой номер, остальное все как было.
Ошибка:
Registration failed for extension <мой номер> : reason Registration Reject reason: securityDenial Login Denied - Access Code invalid. diagnostic string= code= 63773

Получается что, для каждого номера свой пароль?
Или я что-то не так понимаю?
В теории - да, каждый номер (station extension) может иметь свой пароль (security code). Собственно, подобные косяки list trace ras и показывает
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Отличается ли по настройкам ( а может быть и не только по настройкам) подключение к обычному номеру, и к многоканальному?
Подключение с целью увидеть номер, с которого поступил входящий вызов.
gosha
Постоянный участник форума
Сообщения: 967
Зарегистрирован: Чт 18 сен 2008, 23:05

Re: Получение статуса телефона

Сообщение gosha »

gpi65 писал(а):Отличается ли по настройкам ( а может быть и не только по настройкам) подключение к обычному номеру, и к многоканальному?
Подключение с целью увидеть номер, с которого поступил входящий вызов.
Пофигу. Вы регистрируетесь параллельным подключением и все.
gpi65
Участник форума
Сообщения: 37
Зарегистрирован: Вт 13 ноя 2018, 16:05

Re: Получение статуса телефона

Сообщение gpi65 »

Спасибо за помощь!
Вроде я сдвинулся с мертвой точки, немного стал понимать терминологию.
Надеюсь, что дальше, с документацией и примерами из SDK, буду двигаться вперед.
Если будут неясности, тогда наверное заведу новую ветку в форуме.
Ответить