Call
  • Web
    • Overview
      • Product Introduction
      • Activate the Service
      • 가격
        • 무료시간
        • 오디오/비디오 통화 Call 월정액 패키지
        • 구독 패키지 기간 과금 설명
    • Get Started
      • Run Sample Code
      • Integration (React)
      • Integration (Vue3)
      • Secure authentication with userSig
    • Basic Features
      • UI Customization
      • Configuring Nickname and Avatar
      • GroupCall
      • 플로팅 윈도우
      • 사용자 정의 벨소리
      • 해상도 및 채우기 모드 설정
      • 통화 상태 모니터링
    • Advanced Features
      • 가상 배경
      • AI 노이즈 캔슬링
      • 클라우드 녹화
    • 인터페이스 문서
      • UIKit APIs
        • API Overview
        • TUICallKit
      • Engine APIs
        • TUICallEngine
        • TUICallEvent
    • 서버 API
      • 통화 상태 콜백
        • 통화 상태 콜백
        • 통화 이벤트 콜백
        • 콜백 구성
          • 콜백 구성 인터페이스 목록
          • 콜백 구성 생성
          • 콜백 구성 조회
          • 콜백 구성 업데이트
          • 콜백 구성 삭제
      • REST 인터페이스
        • REST 인터페이스 소개
        • callId를 통한 기록 획득
        • 조건에 따른 기록 획득
    • FAQs
      • All Platfroms
      • Web
      • ErrorCode
      • 배포 설명
  • Android
    • Overview
      • Product Introduction
      • Activate the Service
      • Pricing
        • Free Minutes
        • Call Monthly Packages
        • Billing Explanation for Subscription Package Duration
    • Get Started
      • Demo 실행
      • 통합
      • Secure authentication with userSig
    • Basic Features
      • UI 맞춤화
      • 오프라인 통화 푸시
      • Configuring Nicknames and Avatars
      • 그룹 통화
      • 플로팅 윈도우
      • 사용자 정의 벨소리
      • 통화 상태 모니터링
    • 더 많은 기능
      • 가상 배경
      • AI 노이즈 캔슬링
      • 클라우드 녹화
    • 인터페이스 문서
      • UIKit APIs
        • 인터페이스 개요
        • TUICallKit
        • TUICallObserver
        • 유형 정의
      • Engine APIs
        • TUICallEngine
    • 서버 API
      • 통화 상태 콜백
        • 통화 상태 콜백
        • 통화 이벤트 콜백
        • 콜백 구성
          • 콜백 구성 인터페이스 목록
          • 콜백 구성 생성
          • 콜백 구성 조회
          • 콜백 구성 업데이트
          • 콜백 구성 삭제
      • REST 인터페이스
        • REST 인터페이스 소개
        • callId를 통한 기록 획득
        • 조건에 따른 기록 획득
    • FAQs
      • All Platforms
      • Android
      • ErrorCode
      • 배포 설명
  • iOS
    • Overview
      • Product Introduction
      • Activate the Service
      • Pricing
        • Free Minutes
        • Call Monthly Packages
        • Billing Explanation for Subscription Package Duration
    • Get Started
      • Demo 실행
      • 통합
      • Secure authentication with userSig
    • Basic Features
      • UI 맞춤화
      • 오프라인 통화 푸시
        • VoIP
        • APN
      • 닉네임 및 아바타 설정
      • 그룹 통화
      • 플로팅 윈도우
      • 사용자 정의 벨소리
      • 통화 상태 모니터링
    • 더 많은 기능
      • 가상 배경
      • AI 노이즈 캔슬링
      • 클라우드 녹화
    • 인터페이스 문서
      • UIKit APIs
        • 인터페이스 개요
        • TUICallKit
        • TUICallObserver
        • 유형 정의
      • Engine APIs
        • TUICallEngine
    • 서버 API
      • 통화 상태 콜백
        • 통화 상태 콜백
        • 통화 이벤트 콜백
        • 콜백 구성
          • 콜백 구성 인터페이스 목록
          • 콜백 구성 생성
          • 콜백 구성 조회
          • 콜백 구성 업데이트
          • 콜백 구성 삭제
      • REST 인터페이스
        • REST 인터페이스 소개
        • callId를 통한 기록 획득
        • 조건에 따른 기록 획득
    • FQAs
      • All Platform
      • iOS
      • ErrorCode
      • 배포 설명
  • Flutter
    • Overview
      • 개요
      • 서비스 활성화
      • Pricing
        • Free Minutes
        • Call Monthly Packages
        • Billing Explanation for Subscription Package Duration
    • Get Started
      • Demo 실행
      • 통합
      • Secure authentication with userSig
    • Basic Features
      • UI 맞춤화
      • 오프라인 통화 푸시
        • 알림
        • VoIP(옵션)
      • 닉네임 및 아바타 설정
      • 그룹 통화
      • 플로팅 윈도우
      • 사용자 정의 벨소리
      • 통화 상태 모니터링
    • 더 많은 기능
      • 가상 배경
      • AI 노이즈 캔슬링
      • 클라우드 녹화
      • 뷰티 특수효과
    • 인터페이스 문서
      • 인터페이스 개요
      • TUICallKit
      • TUICallEngine
      • TUICallObserver
      • 유형 정의
    • 서버 API
      • 통화 상태 콜백
        • 통화 상태 콜백
        • 통화 이벤트 콜백
        • 콜백 구성
          • 콜백 구성 인터페이스 목록
          • 콜백 구성 생성
          • 콜백 구성 조회
          • 콜백 구성 업데이트
          • 콜백 구성 삭제
      • REST 인터페이스
        • REST 인터페이스 소개
        • callId를 통한 기록 획득
        • 조건에 따른 기록 획득
    • FQAs
      • All Platform
      • Flutter
      • ErrorCode
      • 업그레이드
      • 배포 설명
Call
이 페이지는 현재 영어로만 제공되며 한국어 버전은 곧 제공될 예정입니다. 기다려 주셔서 감사드립니다.

사용자 정의 벨소리

This article explains how to replace the incoming call ringtone for TUICallKit, which includes application ringtone and offline push ringtone.

Setting application Ringtone

There are two ways to set the application ringtone: replace the ringtone audio, and call the Setting ringtone interface.

1. Replace Audio File

If you integrate the TUICallKit component via source code dependency, you can achieve the goal of replacing the ringtone by swapping out the three audio files under the Resources\AudioFile folder:
File Name
Use
phone_dialing.mp3
Ringtone when initiating a call
phone_hangup.mp3
Ringtone when the call is disconnected
phone_ringing.mp3
Ringtone when receiving a call

2. Set Ringtone Interface

You can also set the incoming call ringtone via the setCallingBell interface.
Swift
Objective-C
import TUICallKit_Swift

TUICallKit.createInstance().setCallingBell(filePath: "")
#import <TUICallKit_Swift/TUICallKit_Swift-Swift.h>

[[TUICallKit createInstance] setCallingBellWithFilePath:@""];

3. Setting Mute Mode

If you do not require a ringtone, you can set the mute mode via enableMuteMode.
Swift
Objective-C
import TUICallKit_Swift

TUICallKit.createInstance().enableMuteMode(enable: true)
#import <TUICallKit_Swift/TUICallKit_Swift-Swift.h>

[[TUICallKit createInstance] enableMuteModeWithEnable:YES];

Setting Offline Push Ringtone

VoIP push does not support custom push ringtones. APNs push can be set by specifying the iOSSound field in the offlinePushInfo params when making a call via the Call Interface. iOSSound should be passed the audio file name.
Note:
Offline push sound settings (only effective for iOS), to customize iOSSound, you first need to link the audio file into the Xcode project, then set the audio file name (with extension) to iOSSound.
Ringtone duration should be less than 30s.
Swift
Objective-C
import TUICallKit_Swift
import TUICallEngine

let pushInfo: TUIOfflinePushInfo = TUIOfflinePushInfo()
pushInfo.title = ""
pushInfo.desc = "You have a new call"
pushInfo.iOSPushType = .apns
pushInfo.ignoreIOSBadge = false
pushInfo.iOSSound = "phone_ringing.mp3"
pushInfo.androidSound = "phone_ringing"
// OPPO must set a ChannelID to receive push messages. This channelID needs to be the same as the console.
pushInfo.androidOPPOChannelID = "tuikit"
// FCM channel ID, you need change PrivateConstants.java and set "fcmPushChannelId"
pushInfo.androidFCMChannelID = "fcm_push_channel"
// VIVO message type: 0-push message, 1-System message(have a higher delivery rate)
pushInfo.androidVIVOClassification = 1
// HuaWei message type: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/message-classification-0000001149358835
pushInfo.androidHuaWeiCategory = "IM"

let params = TUICallParams()
params.userData = "User Data"
params.timeout = 30
params.offlinePushInfo = pushInfo

TUICallKit.createInstance().call(userId: "123456", callMediaType: .audio, params: params) {

} fail: { code, message in

}
#import <TUICallKit_Swift/TUICallKit_Swift-Swift.h>
#import <TUICallEngine/TUICallEngine.h>

- (TUICallParams *)getCallParams {
TUIOfflinePushInfo *offlinePushInfo = [self createOfflinePushInfo];
TUICallParams *callParams = [TUICallParams new];
callParams.offlinePushInfo = offlinePushInfo;
callParams.timeout = 30;
return callParams;
}

- (TUIOfflinePushInfo *)createOfflinePushInfo {
TUIOfflinePushInfo *pushInfo = [TUIOfflinePushInfo new];
pushInfo.title = @"";
pushInfo.desc = @"You have a new call";
pushInfo.iOSPushType = TUICallIOSOfflinePushTypeAPNs;
pushInfo.ignoreIOSBadge = NO;
pushInfo.iOSSound = @"phone_ringing.mp3";
pushInfo.AndroidSound = @"phone_ringing";
// OPPO must set a ChannelID to receive push messages. This channelID needs to be the same as the console.
pushInfo.AndroidOPPOChannelID = @"tuikit";
// FCM channel ID, you need change PrivateConstants.java and set "fcmPushChannelId"
pushInfo.AndroidFCMChannelID = @"fcm_push_channel";
// VIVO message type: 0-push message, 1-System message(have a higher delivery rate)
pushInfo.AndroidVIVOClassification = 1;
// HuaWei message type: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/message-classification-0000001149358835
pushInfo.AndroidHuaWeiCategory = @"IM";
return pushInfo;
}

[[TUICallKit createInstance] callWithUserId:@"123456"
callMediaType:TUICallMediaTypeAudio
params:[self getCallParams] succ:^{

} fail:^(int code, NSString * _Nullable errMsg) {

}];C