개요
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 인증서를 재사용하지 마세요


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:)를 트리거합니다 - 앱이 종료되거나 백그라운드 상태일 때도 깨어납니다