VoIP 기반 흐름 정리

전화 흐름 정의

(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 (필수)

 

반응형

댓글

Designed by JB FACTORY