개요
VoIP 푸시 알림은 Apple에서 표준 푸시 알림과 다르게 처리됩니다. 이러한 플랫폼 제약으로 인해 OneSignal은 VoIP 알림 전송을 지원하지만 VoIP 토큰 등록은 관리하지 않습니다. 다음을 수행해야 합니다:- Apple PushKit을 사용하여 직접 VoIP 토큰 등록
- VoIP 전용 APNs 인증서 업로드
- OneSignal API를 사용하여 토큰 등록 및 알림 전송
플랫폼 차이점 한눈에 보기
| 플랫폼 | VoIP 푸시 지원 여부 | 작동 방식 |
|---|---|---|
| iOS | ✅ 예 | Apple PushKit 및 VoIP APNs 인증서 사용 |
| Android | ❌ 아니오 | 통화 스타일 동작을 시뮬레이션하기 위해 데이터 전용 푸시 사용 |
크로스 플랫폼 통화 앱을 구축하는 경우 플랫폼별로 다른 접근 방식을 사용하게 됩니다.
Android: VoIP 스타일 동작 시뮬레이션 (진정한 VoIP 아님)
Android는 VoIP 푸시 알림을 지원하지 않습니다. Apple PushKit과 동등한 기능이 없습니다. 대신 Android 통화 앱은 다음을 사용하여 VoIP 동작을 시뮬레이션합니다:- 데이터 전용 푸시 알림
- 포그라운드 서비스
- 맞춤형 통화 스타일 UI
- 데이터 전용 알림 전송
- 앱에서 다음과 같이 처리:
- 포그라운드 서비스 시작
- 통화 UI 액티비티 실행
- 맞춤형 수신 통화 알림 표시
Android 설정은 OneSignal 전용이 아닙니다. OneSignal은 푸시 페이로드만 전달하며 앱이 통화 동작을 처리합니다.
iOS: 진정한 VoIP 푸시 알림 전송
iOS에서 VoIP 알림은 Apple PushKit을 사용하며 표준 푸시 알림과 다른 특수 전달 규칙이 있습니다. OneSignal에서 iOS VoIP가 작동하는 방식: iOS VoIP 알림의 경우:- 앱이 PushKit을 사용하여 VoIP 토큰을 등록합니다
- OneSignal에 VoIP Services APNs 인증서를 업로드합니다
- API를 사용하여 OneSignal에 VoIP 토큰을 등록합니다
- apns_push_type_override: “voip”를 사용하여 VoIP 푸시를 전송합니다
1. PushKit을 사용하여 VoIP 토큰 등록
Apple PushKit 프레임워크를 사용하여 VoIP 알림을 등록하고 VoIP 토큰을 받습니다.- 앱에서 PushKit 구현
- Apple이 교체할 때 VoIP 토큰 저장 및 갱신
- Apple의 VoIP 정책을 면밀히 준수
2. VoIP 사용자를 위한 새 OneSignal 앱 생성
두 개의 별도 OneSignal 앱을 유지해야 합니다:- 기본 푸시 앱: 표준 푸시 알림용
- VoIP 앱: VoIP 전용 알림용
- 동일한 iOS 번들 ID 사용
- 동일한 네이티브 iOS 앱과 연결되어야 함
3. VoIP Services Certificate 업로드
VoIP OneSignal 앱에서:- VoIP Services Certificate(.p12) 업로드
- 표준 APNs 인증서를 재사용하지 마세요

Keychain Access의 VoIP 인증서

OneSignal 대시보드에 업로드된 VoIP 인증서
4. OneSignal에 VoIP 토큰 등록
Create User API를 사용하여 VoIP OneSignal 앱에 VoIP 토큰을 등록합니다.5. VoIP 알림 전송
Create Notification API를 사용하고 다음 매개변수를 포함합니다:"apns_push_type_override": "voip"- VoIP 앱의
app_id - 등록한 VoIP 토큰의
subscription_id
6. VoIP 설정 확인
다음 경우 iOS VoIP 통합이 작동하는 것입니다:- VoIP 앱에서 VoIP 토큰이 iOS 푸시 구독으로 표시됩니다
- VoIP 푸시가
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)를 트리거합니다 - 앱이 종료되거나 백그라운드 상태일 때도 깨어납니다