Адрес jtapi не работает
Я новичок в JTAPI. Я устанавливаю клиент Cisco и тестирую его. и все было в порядке. Затем я решил написать код для вызова телефона через JTAPI, и я получил следующее исключение:
"Адрес не работает"
Я не могу понять, где проблема
Вот код:
public static final void main(String args[]) {
String providerName = "192.168.10.60";
String login = "sajjad";
String passwd = "sajjad";
String providerString = providerName + ";login=" + login + ";passwd=" + passwd;
/*
* Create a provider by first obtaining the default implementation of
* JTAPI and then the default provider of that implementation.
*/
Provider myprovider = null;
try {
JtapiPeer peer = JtapiPeerFactory.getJtapiPeer(null);
myprovider = peer.getProvider(providerString);
} catch (Exception excp) {
System.out.println("Can't get Provider: " + excp.toString());
System.exit(0);
}
System.out.println("Provider: " + myprovider.toString());
Address origaddr = null;
Terminal origterm = null;
try {
origaddr = myprovider.getAddress("101");
System.out.println(origaddr.getName());
/* Just get some Terminal on this Address */
Terminal[] terminals = origaddr.getTerminals();
if (terminals == null) {
System.out.println("No Terminals on Address.");
System.exit(0);
}
origterm = terminals[0];
System.out.println("terminal " + java.util.Arrays.toString(terminals));
} catch (Exception excp) {
System.out.println("No Terminals " + excp.toString());
}
/*
* Create the telephone call object and add an observer.
*/
Call mycall = null;
try {
mycall = myprovider.createCall();
System.out.println("my call " + mycall);
mycall.addObserver(new MyOutCallObserver());
} catch (Exception excp) {
System.out.println("No call " + excp.toString());
}
try {
//here is the exception
Connection c[] = mycall.connect(origterm, origaddr, "105");
} catch (Exception excp) {
System.out.println("No calling " + excp.toString());
}
И вывод:
Provider: (P1-sajjad)
101
terminal [SEP001A2F49026D]
my call (P1-sajjad) GCID=(1,2106)->IDLE
No calling com.cisco.jtapi.InvalidStateExceptionImpl: Address is out of service
Любая помощь будет оценена
2 ответа
Чтобы продолжить предыдущий ответ, я недавно работал над приложением JTAPI и столкнулся с этой проблемой.
Оказывается, вам также необходимо зарегистрировать наблюдателя вызовов, прежде чем вы сможете создать вызов.
Пример:
origterm.addCallObserver(this)
Это также потребует добавления в класс переопределяющего callChangedEvent:
@Override
public void callChangedEvent(CallEv[] callEvents) {
for (CallEv callev : callEvents) {
switch(callev.getID()) {
case ConnConnectedEv.ID:
System.out.println("Call Connected");
}
}
};
Если вы еще не разобрались, убедитесь, что телефон с адресом 101 в сети находится в режиме онлайн и правильно подключен к диспетчеру вызовов Cisco. Также убедитесь, что ваш пользователь приложения имеет доступ к телефону (поместите его в контролируемые устройства в конфигурации пользователя)