나는 SIP UAC를 작성했으며, UAS의 수신 메시지 반복을 감지하고 무시하는 몇 가지 방법을 시도했지만 시도한 모든 접근 방식으로 문제가 발생했다. 문제는 모든 메시지가 동일한 호출을하는 것과 동일한 서명이 있고 모든 메시지 텍스트를 비교하는 것이 너무 많아서 이러한 반복 메시지를 감지하려고 할 때 메시지를 작성하는 매개 변수가 무엇인지 궁금합니다.SIP 메시지 반복을 감지하는 가장 좋은 방법은 무엇입니까?
UPDATE :
는 내가 서버를 빈 확인 응답을 전송하여 취급 수신 옵션에 문제가 있었다. (업데이트 : 잠시 후 내가 알아 차린 테스트 중에는 여전히 옵션을 요청하고 몇 초마다 몇 번씩 옵션 요청이 나옵니다. 따라서 잘못된 요청으로 응답을 시도하고 이제는 옵션 요청을 한 두 번만받습니다. 모든 등록/재 등록)
현재 내가 SessionInPogress의 메시지를 반복하고 여기에서 바쁘거나 사용할 수없는 것과 같은 여러 가지 오류 메시지가 표시됩니다. 이러한 메시지가 너무 많아서 내 로그를 엉망으로 만들었습니다.
어떻게 그 아이디어를 얻을 수 있습니까?
UPDATE :
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;
}
감사 :
나는 아마이 그것을 잘 작동,
다음내가 사용하는 것입니다 내 문제를 해결할 다시 게시하기 전에 당신의 공예를 시도 할 것이다 , Adam.
어떤 종류의 메시지입니까? 임시 응답? 최종 응답? UDP를 사용하고 있습니까? RFC 2543 UAS 또는 RFC 3261 UAS와 통화하고 있습니까? –
응답 또는 요청 인 경우 실제로 중요합니까? 임시 또는 최종? 모든 메시지에 공통성이 낮아서 반복적 인 메시지를 식별 할 수 있습니까? – TacB0sS
글쎄, 그것은 질문에 대답하는 데 도움이 :) 요청/응답 retransmissions 다르게 처리됩니다. –