- Apple PushKit을 사용하여 앱에서 VoIP 토큰 등록
- VoIP Services Certificate로 별도의 OneSignal 앱 생성
- OneSignal REST API를 통해 토큰 등록 및 푸시 전송
플랫폼 차이점
| 플랫폼 | VoIP 푸시 지원 여부 | 작동 방식 |
|---|---|---|
| iOS | Yes | Apple PushKit 및 VoIP APNs 인증서 사용 |
| Android | No | 통화 스타일 동작을 시뮬레이션하기 위해 데이터 전용 푸시 사용 |
iOS: VoIP 푸시 알림 전송
iOS에서 VoIP 알림은 Apple PushKit을 사용하며 표준 푸시 알림과 다른 특수 전달 규칙을 따릅니다. Apple이 VoIP 푸시를 다르게 처리하므로 OneSignal은 VoIP를 위한 별도의 앱 구성을 필요로 합니다.PushKit을 사용하여 VoIP 토큰 등록
Apple의 PushKit 프레임워크를 사용하여 VoIP 알림을 등록하고 VoIP 토큰을 받습니다.
Apple 리소스:
- 앱에서 PushKit 구현
- Apple이 교체할 때 VoIP 토큰 저장 및 갱신
- Apple의 VoIP 정책을 면밀히 준수
예시: PushKit 델리게이트 구현
예시: PushKit 델리게이트 구현
이것은 표준 Apple PushKit 코드입니다. OneSignal은 PushKit SDK를 제공하지 않습니다 — 토큰을 직접 등록하고 4단계에서 OneSignal에 전달합니다.
VoIP용 별도 OneSignal 앱 생성
Apple VoIP 푸시는 표준 푸시 알림과 다른 인증서 유형을 필요로 합니다. 하나의 OneSignal 앱은 하나의 인증서 유형만 사용할 수 있으므로 두 개의 별도 OneSignal 앱을 생성해야 합니다:
- 기본 푸시 앱: 표준 푸시 알림에 APNs 인증서 사용
- VoIP 푸시 앱: VoIP 전용 알림에 VoIP Services Certificate 사용
번들 ID(예:
com.yourcompany.appname)는 Xcode에서 타겟의 General 탭에서 확인할 수 있습니다.VoIP Services Certificate 업로드
VoIP OneSignal 앱에서 **VoIP Services Certificate(.p12)**를 업로드합니다. 이것은 일반 알림에 사용하는 표준 APNs 푸시 인증서와 다른 인증서 유형입니다.생성 방법:

- Apple Developer Portal로 이동합니다
- VoIP Services Certificate를 선택합니다
- 안내에 따라 인증서를 생성하고 다운로드합니다
- Keychain Access에서 열고
.p12파일로 내보냅니다 - VoIP OneSignal 앱의 iOS 설정에
.p12파일을 업로드합니다


OneSignal에 VoIP 토큰 등록
Create User API를 사용하여 VoIP OneSignal 앱에 VoIP 토큰을 등록합니다.나중에 토큰을 업데이트하려면 Update Subscription API를 사용하세요.
유효한 VoIP 토큰은 64자의 소문자 16진수 문자열입니다(예:
a1b2c3d4e5f6...). PushKit은 iOS 시뮬레이터에서 작동하지 않으므로 유효한 토큰을 얻으려면 실제 기기를 사용해야 합니다.VoIP 알림 전송
Create Notification API를 다음 매개변수와 함께 사용합니다:
"apns_push_type_override": "voip"— Apple에 이것이 VoIP 푸시임을 알립니다app_id— VoIP 앱 IDinclude_subscription_ids— 등록한 VoIP 구독 IDcontents또는content_available중 하나가 필요합니다
VoIP 설정 확인
다음 경우 iOS VoIP 통합이 올바르게 작동하는 것입니다:
- VoIP 토큰이 VoIP 앱에서 iOS 푸시 구독으로 표시됩니다
- VoIP 푸시가 앱에서
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)를 트리거합니다 - 앱이 종료되거나 백그라운드 상태일 때도 깨어납니다
Android: VoIP 스타일 동작 시뮬레이션
Android는 VoIP 푸시 알림을 지원하지 않습니다. Apple PushKit과 동등한 기능이 없습니다. 대신 Android 통화 앱은 다음을 사용하여 VoIP 동작을 시뮬레이션합니다:- 데이터 전용 푸시 알림
- 포그라운드 서비스
- 맞춤형 통화 스타일 UI
- 데이터 전용 알림 전송
- 앱에서 다음과 같이 처리:
- 포그라운드 서비스 시작
- 통화 UI 액티비티 실행
- 맞춤형 수신 통화 알림 표시
Android 설정은 OneSignal 전용이 아닙니다. OneSignal은 푸시 페이로드만 전달하며 앱이 통화 동작을 처리합니다.
자주 묻는 질문
확인된 배달이 VoIP에서 작동하나요?
아니요. 확인된 배달은 VoIP 푸시에 대해 추적되지 않습니다. 확인된 배달은 Notification Service Extension에 의존하는데, 이는 VoIP 알림에 대해 트리거되지 않습니다. 대신 네이티브 iOS PushKit 이벤트를 통해 수신을 추적하세요:OneSignal 대시보드에서 VoIP 알림을 전송할 수 있나요?
아니요. VoIP 알림은"apns_push_type_override": "voip"와 함께 Create Notification API를 통해서만 전송해야 합니다. 대시보드는 이 매개변수를 지원하지 않습니다.
VoIP 푸시가 자동으로 실패하는 이유는 무엇인가요?
VoIP 푸시는 OneSignal API에서 아무런 오류 없이 실패할 수 있습니다. 다음 체크리스트를 확인하세요:- 샌드박스/개발 빌드를 사용하고 있나요? Create User API를 통해 토큰을 등록할 때 반드시
"test_type": 1을 포함해야 합니다. 이를 생략하면 토큰이 프로덕션으로 등록되고, Apple이 푸시를 거부하여 자동으로 실패합니다. - 올바른 인증서를 업로드했나요? VoIP OneSignal 앱은 표준 APNs 푸시 인증서가 아닌 **VoIP Services Certificate(.p12)**를 사용해야 합니다. Keychain Access에서 두 인증서가 유사하게 보일 수 있으므로 인증서 이름이 “VoIP Services”로 시작하는지 확인하세요.
- 올바른 OneSignal 앱으로 전송하고 있나요? 전송 요청의
app_id는 기본 푸시 앱이 아닌 VoIP 앱이어야 합니다.REST API Key도 VoIP 앱에서 가져와야 합니다. - VoIP 토큰이 유효한가요? 앱이 재설치되거나 기기가 복원될 때 토큰이 만료됩니다. 토큰이 64자의 소문자 16진수 문자열이고 최근에 등록되었는지 확인하세요.
- 앱이
reportNewIncomingVoIPPushPayload를 호출하나요? iOS 13부터 Apple은 VoIP 푸시를 수신했지만 CallKit에 통화를 보고하지 않는 앱을 종료합니다. 이것은 Apple의 요구 사항이며 OneSignal의 제한이 아닙니다.
관련 페이지
메시지 생성 API
REST API를 사용하여 프로그래밍 방식으로 푸시 알림을 전송합니다.
확인된 배달
지원되는 플랫폼에서 푸시 알림 전달 확인을 추적합니다.
서비스 확장
Notification Service Extension으로 알림 처리를 맞춤화합니다.
사용자 생성 API
OneSignal API로 사용자와 구독을 등록합니다.