java jain sip, как минимизировать время ожидания транзакции
Я создаю приложение Jain Sip, которое отправляет запрос и получает ответ. Если ответ не получен, мне нужно обработать его в моем коде, но задержка по умолчанию перед запуском функции processTimeout слишком велика (~32 сек), как я могу минимизировать ее?
ниже приведен фрагмент моего кода:
//Sending the request statfully:
sendRegisterStateful{
ClientTransaction transaction = this.sipProvider.getNewClientTransaction(request);
// Send the request statefully, through the client transaction.
transaction.sendRequest();
//Process timeout function:
public void processTimeou{
//Need to fire the timeout here after 7sec instead of ~32s
}
Спасибо салим
2 ответа
Не предпочтительный способ сделать вещи. Вам не нужно редактировать код. Установите базовый интервал таймера для вашей транзакции. Посмотрите API транзакций, чтобы увидеть, как это сделать.
Я решил свою проблему, отредактировав коэффициент таймера в классе SIPTransaction (Jain Sip Lib): исходное значение было 64, новое значение стало 14: Формула: время ожидания ms = timeout_factor*T1 //T1 - время повторной передачи по умолчанию: 500 мс; коэффициент времени ожидания по умолчанию: 64. Значение времени ожидания по умолчанию в миллисекундах = 500*64 = 32000 мс. Поэтому я минимизировал значение 64, чтобы минимизировать время ожидания по умолчанию 32000 мс -> 7000 мс.
class SIPTransaction{
......
protected static final int TIMER_B = 14;
protected static final int TIMER_J = 14;
protected static final int TIMER_F = 14;
protected static final int TIMER_H = 14;
.......
}