VoIP 기반 흐름 정리
- 업무/전화
- 2025. 7. 22.
전화 흐름 정의
(1) A가 앱에서 B에게 전화 요청
↓
(2) 서버가 B에게 FCM 알림 전송: "수신 전화 있음"
↓
(3) B가 앱 실행 → 응답 화면 표시
↓
(4) 앱 또는 서버가 SIP로 세션 연결 요청 (INVITE)
↓
(5) 통화 연결 중 → RTC로 오디오/비디오 전송
↓
(6) CSTA가 전화 상태 이벤트 전달 (Delivered, Established 등)
↓
(7) 통화 종료 → SIP BYE + CSTA Cleared 이벤트
FCM, SIP, CSTA, RTC 각 기술 용도 정의
기술 | 주요 역할 | 언제 사용되나? | 비유 |
---|---|---|---|
FCM (Firebase Cloud Messaging) | 푸시 알림 전달 (앱이 꺼져 있어도) | 백그라운드 앱에게 "전화 왔다" 알림 | 초인종 |
SIP (Session Initiation Protocol) | 통화 연결/해제/세션 협상 (전화 신호) | 실제 전화 연결을 설정할 때 | 전화선 연결 요청서 |
CSTA (Computer-Supported Telecommunications Applications) | 전화 상태 제어 및 이벤트 수신 | 상담원 앱에서 통화 제어, 팝업 띄우기 등 | 전화기를 조작하는 손과 눈 |
RTC (WebRTC 등) | 음성/영상 데이터 실시간 전송 | 전화 연결 후 실제 통화할 때 | 실제 음성/영상이 흐르는 선 |
FCM
- 앱이 꺼져 있어도 전화 수신을 사용자에게 알려줌
- 시스템 푸시 알림 채널을 통해 전달
- 예: WhatsApp, KakaoTalk 전화 수신 알림
언제 필요?
앱이 백그라운드에 있을 때도 알림을 보내야 할 때
SIP
- 전화 연결의 시작/종료/협상 담당
- INVITE, 200 OK, ACK, BYE 등 메시지 사용
- 보통 PBX/SIP 서버에서 처리
언제 필요?
전화기/앱 간 통화를 연결하고 제어할 때
CSTA
- 전화 상태 감지 및 명령 전송
- 예: MakeCall, AnswerCall, HoldCall, ClearConnection
- 상담원 UI에서 상태 모니터링/팝업/전화 제어
언제 필요?
전화 상태 추적이나 상담사용 UI 제어가 필요할 때
RTC
- 통화 연결 이후 음성/영상 데이터를 실시간 전송
- WebRTC 사용 시 STUN/TURN 등 포함 가능
언제 필요?
전화 연결 후 실제 음성/영상 통신이 필요할 때
FCM, SIP, CSTA, RTC 각 기술 기술 사용 예시
기능 | FCM | SIP | CSTA | RTC |
---|---|---|---|---|
전화 수신 알림 | ✅ | ❌ | ❌ | ❌ |
전화 연결 | ❌ | ✅ | ❌ | ❌ |
통화 제어 (앱에서 받기, 끊기 등) | ❌ | 일부 가능 | ✅ | ❌ |
전화 상태 이벤트 수신 | ❌ | 간접 가능 | ✅ | ❌ |
음성/영상 전송 | ❌ | ❌ (RTP 필요) | ❌ | ✅ |
기술별 사용 조합 예시
필요 기능 | 조합 |
---|---|
앱 기반 전화 + 수신 알림 | FCM + RTC + 커스텀 signaling |
전화번호 기반 통화 + PSTN 연동 | SIP + RTP or SIP + WebRTC |
상담사용 전화 제어 UI | CSTA + SIP + FCM |
전화 상태 추적 및 기록 | SIP + CSTA |
고품질 영상통화 | WebRTC (필수) |
반응형