Я написал UAC SIP, и я пробовал несколько способов обнаружить и проигнорировать повторение входящих сообщений из UAS, но при каждом подходе, который я пытался, что-то пошло не так, моя проблема в том, что все сообщения, которые делать с одним и тем же вызовом имеет одну и ту же подпись, и сравнивать весь текст сообщения слишком много, поэтому мне было интересно, какой параметр, который составляет сообщение, следует искать при попытке обнаружить эти повторяющиеся сообщения.Какая была бы лучшая реализация для обнаружения повторяющегося сообщения SIP?
UPDATE:
У меня была проблема с входящим Параметры, которые я обрабатываются с отправкой серверу пустой ответ ОК. (Обновление: через какое-то время тестирования я заметил, что я все равно получаю каждый раз, а затем получаю еще один запрос по параметру, несколько раз в несколько секунд, поэтому я пытаюсь ответить с плохим запросом, и теперь я получаю запрос «Параметры» один раз/два раза каждая регистрация/перерегистрация)
В настоящее время я повторяю сообщения SessionInPogress и различные сообщения об ошибках, такие как занятый здесь, и недоступный, я получаю так много из них, и это беспорядок мой журнал, я бы хотел их отфильтровать.
любая идея, как достичь этого?
UPDATE:
Попробую свой Technics, прежде чем отправлять обратно, возможно, это будет решать мои проблемы
Вот что я использовал, он хорошо работает:
private boolean compare(SIPMessage message1, SIPMessage message2) {
if (message1.getClass() != message2.getClass())
return false;
if (message1.getCSeq().getSeqNumber() != message2.getCSeq().getSeqNumber())
return false;
if (!message1.getCSeq().getMethod().equals(message2.getCSeq().getMethod()))
return false;
if (!message1.getCallId().equals(message2.getCallId()))
return false;
if (message1.getClass()==SIPResponse.class)
if(((SIPResponse)message1).getStatusCode()!=((SIPResponse)message2).getStatusCode())
return false;
return true;
}
Спасибо , Адам.
Какие сообщения? Предварительные ответы? Окончательные ответы? Вы используете UDP? Вы говорите с RFC 2543 UAS или RFC 3261 UAS? –
Действительно ли это ответ или запрос? предварительный или окончательный? нет ли более низкой общности для всех сообщений, чтобы я мог идентифицировать повторяющиеся сообщения? – TacB0sS
Ну, это помогает ответить на вопрос :) Повторные передачи запроса/ответа обрабатываются по-разному. –