2011-08-02 4 views
2

SIP 전화를 만들고 여러 등록을 지원하는 기능을 개발해야합니다. 전화에 대한 기본 레지스트라 서버가 다운되면 기본 레지스트라가 활성화되어있을 때 전화가 자동으로 보조 레지스트라에 등록되고 다시 기본으로 돌아갑니다. 제 질문은 기본 레지스트라가 다시 활성화되었는지 확인하는 것입니다. 내 전화에서 내 기본 등록 서버로 OPTIONS 방법을 전송할 수 있습니까? 등록 기관이 다른 프록시 서버와 마찬가지로 응답을 보내겠습니까? 응답이 없으면 기본 레지스트라가 아직 작동하지 않는다고 가정하고 보조 레지스트리를 계속 사용해야합니다.등록자 서버가 SIP OPTIONS 방법에 응답합니까?

SIP RFC 3261에서 "SIP 방법 OPTIONS를 사용하면 UA가 다른 UA 또는 프록시 서버에 기능을 쿼리 할 수 ​​있습니다."
"OPTIONS 메서드에 대한 응답을받지 못하면 트랜잭션 계층이 시간 초과 오류를 반환 할 수 있습니다.이 경우 대상에 연결할 수 없어 사용할 수 없음을 나타낼 수 있습니다."

올바른 구현 방법은 무엇입니까?

답변

3

OPTIONS 요청은 다른 SIP 소프트웨어에서 NAT 연결 유지 메커니즘으로 널리 사용됩니다. OPTIONS 요청으로 인해 SIP 서버에서 상당한 양의 처리가 발생할 수 있으므로 불행한 상황입니다. 이와 같이 SIP Proxy는 종종 불필요한 처리를 피하는 수단으로 RFC 3261에 따라 처리하지 않고 Ok 응답으로 응답합니다.

경우에 따라 트랜잭션 시간 초과 기간 (기본적으로 32 초) 내에 응답을받지 않은 REGISTER 요청을 보낸 경우 장애 조치에 대해서만 걱정하면 충분할 것입니다. 등록 만료 간격이 다가 오면 항상 기본 레지스트라를 시도하도록 SIP 전화를 구성 할 수 있습니다. 이는 기본 서버가 항상 사용 가능함을 의미합니다.

실제로 서버는 매우 자주 실패하지 않으므로 클라이언트가 실패를 확인하는 데 너무 적극적으로 수행하면 다시 불필요한 많은로드가 생성됩니다. 서버 장애가 자주 발생할 염려가있는 경우 등록 만료 기간을 기본 3600에서 600 또는 300s로 줄일 수 있습니다.

+0

두 명의 등록자에서 짧은 간격의 병렬 등록 또는 짧은 등록 간격으로 기본으로 다시 전환하는 동안 어느 쪽이 더 허용 할 수 있는지를 결정해야합니다. 처음에는 어떻게 상처를 받을지 모르겠고, 두 번째는 거부 된 전화를 일으킬 수 있습니다. 따라서 보조 프로그램에 등록되어있는 동안 계속해서 기본 프로그램에 등록하려고 시도하고 성공하면 보조 프로그램에서 등록을 취소 할 수 있습니다. – Szocske

+0

@Szocske : 클라이언트에 해를 끼치 지 않지만 갑자기 서버 인프라가 두 배나 많은 REGISTER 요청에 대처해야한다면 아마도 불행 할 것입니다. :) – sipwiz

+0

그가 2 차에서 1 차로 전환해야 할 경우 등록자와 등록부가 필요합니다. 저는 그가 1 차적으로 등록하려고 시도하고 2 차적으로 등록을 취소해야한다고 말하고 있습니다. – Szocske

0

대신 다른 사람들이 어떻게 처리했는지 확인해야합니다. 예를 들어 엔드 포인트의 Broadsoft 준수 테스트를 참조하십시오. 서버 폴백을 처리하는 방법에 대한 몇 가지 테스트가 있습니다. (이 또한 DNS SRV와 상호 작용하는 방법도 있습니다.)