SIP 서버의 이중화 메커니즘은 SIP 서비스의 신뢰성과 연속성을 보장합니다. 서버 주/백업 구성은 그중 하나의 이중화 방식입니다. 주 서버와 백업 서버는 사용자 계정, 서버 이중화 구현 방식에 따라 달라지는 Dialog 정보, Registration 정보 및 기타 서비스 데이터를 공유합니다. 정상 상태에서는 모든 SIP 요청과 응답을 주 서버가 처리합니다. 주 서버에 장애가 발생하거나 유지보수 중이거나 도달할 수 없는 경우, SIP 단말은 자동으로 백업 서버로 전환하여 서비스를 요청하고 사용자 서비스의 연속성을 보장합니다. 주 서버가 복구되면 SIP 단말은 자동으로 주 서버로 다시 전환하여 서비스를 요청할 수 있습니다.
그림 1 SIP Server 주/백업
Failover: 주 서버를 사용할 수 없을 때 백업 서버가 주 서버를 대신해 모든 업무를 담당하며 고객 사용에 영향을 주지 않는 메커니즘입니다.
Failback: 백업 서버가 동작 중일 때 장비가 주 서버의 복구 여부를 탐지하여 주 서버로 빠르게 다시 전환하는 메커니즘입니다.
Server Unavailable: 클라이언트가 등록을 요청했을 때 Server가 500/503으로 응답하거나, UDP가 대상 주소 도달 불가 ICMP를 수신하거나, TCP 연결이 시간 초과되는 경우입니다.
Register Failback: 주 서버를 사용할 수 없어 전화기가 백업 서버에 등록된 상태에서, 전화기가 새로운 Register Dialog를 생성하여 주 서버 복구 여부를 탐지하는 메커니즘입니다. 이 기능은 독립적이고 설정 가능한 탐지 주기를 가집니다.
이 문서는 Dial plan 기능이 어떻게 개선되는지 이해하려는 사내 연구개발 또는 테스트 인력을 대상으로 합니다.
전화기의 SIP 회선에 두 개의 Server 정보를 설정합니다. SIP Server1은 주 서버이고 SIP Server2는 백업 서버입니다.
전화기가 Failover를 지원하는 시그널링은 Register, Invite, Bye입니다. 기타 시그널링은 아직 지원되지 않습니다.
2.2.1 Register Failover
트리거 조건: 수동 등록 / 등록 시간 초과 / Option 또는 Cancel 요청 시간 초과
1) 전화기가 Register 시그널링을 주 서버로 전송합니다.
2) 전화기는 V3 제품에서는 지정 횟수, V2 제품에서는 특정 시간 동안 주 서버로 Register 전송을 시도합니다.
3) 주 서버가 Unavailable 상태이면 전화기는 Register 시그널링을 백업 서버로 전송합니다.
4) 백업 서버가 200 OK로 응답하고 전화기 등록이 성공합니다.
2.2.2 Invite Failover
트리거 조건: 사용자가 전화를 거는 경우
1) 전화기 A가 전화기 B를 호출합니다.
2) 전화기 A가 Invite 요청을 주 서버로 전송합니다.
3) 전화기 A는 V3 제품에서는 지정 횟수, V2 제품에서는 특정 시간 동안 주 서버로 Invite 전송을 시도합니다.
4) 주 서버가 Unavailable 상태이면 전화기는 Register를 백업 서버로 전송합니다.
5) 백업 서버가 전화기에 200 OK로 응답하고 전화기가 백업 서버 등록에 성공합니다.
6) 전화기가 Invite 요청을 백업 서버로 전송합니다.
7) 백업 서버가 200 OK로 응답하고 전화기 A와 B가 통화를 수립합니다.
2.2.3 Bye Failover
트리거 조건: 전화기가 주 서버를 통해 통화를 수립한 후 전화를 끊는 경우
1) 전화기 A가 주 서버를 통해 전화기 B와 통화를 수립합니다.
2) 전화기 A가 전화를 끊습니다.
3) 전화기 A가 Bye 요청을 주 서버로 전송합니다.
4) 전화기 A는 V3 제품에서는 지정 횟수, V2 제품에서는 특정 시간 동안 주 서버로 Bye 전송을 시도합니다.
5) 주 서버가 Unavailable 상태이면 전화기는 Register를 백업 서버로 전송합니다.
6) 백업 서버가 전화기에 200 OK로 응답하고 전화기가 백업 서버 등록에 성공합니다.
7) 전화기가 Bye 메시지를 백업 서버로 전송합니다.
8) 백업 서버가 200 OK로 응답하고 전화기 B의 통화가 종료됩니다.
2.2.4 Failover 실패
모든 서버를 사용할 수 없는 경우, 전화기는 주/백업 서버 우선순위에 따라 각 서버를 순차적으로 시도합니다. V3 제품에서는 지정 횟수, V2 제품에서는 특정 시간 동안 시도합니다. 마지막 서버는 예외이며 RFC3261 규격에 따라 SIP는 64*T1, 즉 32초 동안 시도합니다. 이후 현재 SIP 시그널링 요청은 실패하고 결과가 사용자에게 전달됩니다.
전화기는 독립적인 Register Failback을 지원합니다. 전화기가 백업 서버 등록에 성공한 후, 주 서버가 복구되었는지 탐지하기 위해 주기적으로 독립 Register를 주 서버로 전송합니다.
트리거 조건: Register Failback 타이머 시간 초과.
1) 전화기가 백업 서버 등록에 성공합니다.
2) Register Failback 시간이 초과되면 전화기가 독립 Register를 주 서버로 전송합니다.
3) 주 서버가 200 OK로 응답하면 전화기가 주 서버로 전환됩니다.
주 서버가 여전히 사용할 수 없는 상태이면, 전화기가 보낸 Register는 RFC3261에 따라 64*T1, 즉 32초 시간 초과까지 재전송됩니다. 시간 초과 후 타이머가 다시 시작되어 주기적으로 주 서버를 탐지합니다.
| 설정 항목명 | 설명 | 값 | |
| SIPN | Register Addr: | 주 서버 주소. | IP/도메인 이름 기본값: 비어 있음 |
| SIPN | Register Port: | 주 서버 서비스 포트. | 숫자형 기본값: 5060 |
| SIPN | Register TTL: | 주 서버 등록 주기. | 숫자형 기본값: 3600 단위: 초 |
| SIPN | Transport: | 주 서버 전송 프로토콜: UDP, TCP, TLS. | 0: UDP 1: TCP 3: TLS 기본값: 0 |
| SIPN | Backup Addr: | 백업 서버 주소. | IP/도메인 이름 기본값: 비어 있음 |
| SIPN | Backup Port: | 백업 서버 서비스 포트. | 숫자형 기본값: 5060 |
| SIPN | Backup TTL: | 백업 서버 등록 주기. | 숫자형 기본값: 3600 단위: 초 |
| SIPN | Backup Transport: | 백업 서버 전송 프로토콜: UDP, TCP, TLS. | 0: UDP 1: TCP 3: TLS 기본값: 0 |
| SIPN | Enable Failback: | 회선에서 Register Failback 기능을 활성화할지 제어합니다. | 0/1 기본값: 1 |
| SIPN Failback Interval: | 백업 서버/Proxy에 등록한 후 주 서버/Proxy가 복구되었는지 탐지하는 시간 간격. | 숫자형 기본값: 1800 단위: 초 | |
| SIPN Signal Retry Counts: | 서버/Proxy를 사용할 수 없을 때 SIP Request 재전송 횟수입니다. 마지막 서버/Proxy는 제외되며 32초 시간 초과가 적용됩니다. | 숫자형 기본값: 3 | |
사용자는 전화기의 Web 서버에 로그인하여 주/백업 서버를 설정할 수 있습니다.
1) "회선" 탭을 클릭하고 SIP 하위 탭을 선택합니다. 기본적으로 이 페이지입니다.
2) 페이지 내부의 "회선" 드롭다운 목록에서 설정할 회선을 선택합니다.
3) 회선 등록 정보를 설정합니다.
4) SIP Server1, 즉 주 서버와 SIP Server2, 즉 백업 서버 정보를 설정합니다. 그림 2와 같습니다.
5) 현재 페이지의 "기본 설정"을 클릭하여 주/백업 Failback 관련 설정 항목을 설정합니다. 그림 3과 같습니다.
6) 페이지 하단의 "제출" 버튼을 클릭하여 설정을 적용합니다.
그림 2 SIP Server 주/백업 설정
그림 3 SIP 주/백업 Failback 설정