SDK使用說明
本文為您介紹了在iOS開發(fā)時,SDK的使用說明及示例。
創(chuàng)建實例
引入頭文件。
#import <AlicomRTCSDK/AlicomRTCSDK.h>
創(chuàng)建AlicomRTC實例。
[[AlicomRTC shareInstance] initWithRtcId:rtcid];
設(shè)置自動接聽的號碼列表,如果不設(shè)置,默認內(nèi)置號碼為
703358879
。/** 需要自動接聽的電話號碼列表 */ - (void)autoAnswerCallerNumbers:(NSArray *)numbers;
說明rtcid:賬號ID由GetRtcToken接口獲取,這里需要App端調(diào)用服務(wù)端接口進行獲取 。
初始化之前不需要自己主動獲取Token,Token的獲取會在初始化完成之后,通過回調(diào)告知何時需要獲取,只要實現(xiàn)updateToken給SDK設(shè)置Token即可。
設(shè)置相關(guān)代理。
[ACToken shareInstance].delegate = self; [AlicomRTC shareInstance].delegate = self;
ACTokenDelegate代理回調(diào)。
通知用戶更新token。
//刷新token使用 - (void)updateToken:(void(^)(ACToken *token))tokenHandler
說明用戶在實現(xiàn)該接口的時候可以向服務(wù)端獲取Token,通過服務(wù)端的GetRtcToken接口實現(xiàn)Token獲取再返給客戶端。
AlicomRTCServiceDelegate代理回調(diào)。
@required /** 初始化成功,服務(wù)可用 */ -(void)onServiceAvailable; /** 初始化失敗,服務(wù)不可用 @param errCode 錯誤碼 @param errMsg 錯誤信息 */ -(void)onServiceUnavailableWithErrorCode:(NSInteger)errCode errorMsg:(NSString *)errMsg; @optional /** 自定義消息接受回調(diào) @param sequence 消息序列號 @param content 消息內(nèi)容 @param sourceRtcId 消息來源 @param timestamp 時間戳 */ -(void)onCustomMessageReceivedWithSequence:(long long)sequence sourceRtcId:(NSString *)sourceRtcId content:(NSString *)content timestamp:(long long)timestamp; /** 自定義消息發(fā)送回調(diào) @param sequence 消息序列號 @param isSuccess 發(fā)送消息是否成功 @param errCode 失敗的話,有錯誤碼,否則為0 @param errMsg 失敗的話,錯誤信息。否則為nil */ -(void)onCustomMessageSendedWithSequence:(long long)sequence isSuccess:(BOOL)isSuccess errorCode:(NSInteger)errCode errorMsg:(NSString *)errMsg;
說明其中
onServiceAvailable
和onServiceUnavailableWithErrorCode:errorMsg:
是必須實現(xiàn)的接口。初始化通話實例。
/** voip2pstn通話 @param calleePhoneNumber 被叫電話號碼 @param calleeShowNumber 被叫顯示來電號碼 @param customLine 自有線路名稱,無則傳入nil @param extendString 拓展字段(非必要參數(shù)) @return Call的對象(需判斷返回是否為空值) */ - (Call *)createPstnCall:(NSString *)calleePhoneNumber andCalleeShowNumber:(NSString *)calleeShowNumber customLine:(NSString *)customLine withExtendString:(NSString *)extendString;
在創(chuàng)建完成通話實例之后需要進行通話狀態(tài)管理,調(diào)用方法如下:
-(void)start;
停止呼叫。
-(void)stop;
可選:通話狀態(tài)管理,需要實現(xiàn)CallDelegate。
/** 被叫來電,振鈴彩鈴 @param call Call對象 */ -(NSData *)ringtoneWithCallee:(Call*)call; /** 主叫呼叫中,振鈴彩鈴 @param call Call對象 */ -(NSData *)ringtoneWithCaller:(Call*)call; /** 音頻電話來電,被叫振鈴,并返回振鈴數(shù)據(jù) @param call Call對象 */ -(void)onReceivingAudioCall:(Call*)call; /** 視頻電話來電,被叫振鈴,并返回振鈴數(shù)據(jù) @param call VideoCall對象 */ -(void)onReceivingVideoCall:(Call*)call; /** 媒體連接成功了 @param call Call對象 */ -(void)onCallConnected:(Call*)call; /** 接通對方了,主叫振鈴 @param call Call對象 */ -(void)onCallRinging:(Call*)call; /** 被叫接聽了,主叫停止振鈴 @param call Call對象 */ -(void)onCallAnswered:(Call*)call; /** 自動接聽了 @param call Call對象 */ - (void)onAutoAnswered:(Call *)call; /** 通話結(jié)束 @param call Call對象 @param code code @param msg msg */ -(void)onCallStopped:(Call *)call withCode:(NSInteger)code andMsg:(NSString *)msg; /** 音頻輸出模式變更 @param call call對象 @param mode 輸出mode */ -(void)onPlayModeChanged:(Call*)call withMode:(Audio_Session_Mode)mode; /** 音頻接收dtmf數(shù)據(jù) @param call call對象 @param dtmf 數(shù)據(jù)內(nèi)容,timestamp 時間戳 */ -(void)onDtmfData:(Call*)call withDtmf:(NSString *)dtmf withTimestamp:(long long)timestamp; /** 通話中的網(wǎng)絡(luò)質(zhì)量 @param call Call對象,quality,網(wǎng)絡(luò)質(zhì)量,0-好,1-中,2-差 */ -(void)onNetworkQuality:(Call*)call withQuality:(int)quality; /** 通話中的指標(biāo)統(tǒng)計 @param call Call對象,model StatisticModel 對象 */ -(void)onMediaStatistics:(Call*)call withModel:(StatisticModel *)model; /** 音視頻模式變更 @param call call對象 @param mode 輸出mode,0-視頻,1-音頻 */ -(void)onMediaModeChanged:(Call*)call withMode:(int )mode;
功能使用
本地靜音。
-(void)mute;
取消本地靜音。
-(void)unmute;
呼叫默認超時時間設(shè)置,默認45s,可設(shè)置時間區(qū)間30s~90s。
-(void)setCallTimeout:(int) time;
發(fā)送dtmf,僅在點對點通話中對端為PSTN且通話中才能發(fā)送,且只支持
0-9、*、#
輸入。-(BOOL)sendDtmfData:(NSString *)dtmf;
切換音頻播放路由。
-(void)audioSpeakerIsOn:(BOOL)isOn; //isOn,音頻播放路由:YES-揚聲器播放,NO-聽筒播放
說明調(diào)用該方法前需要確保通話已經(jīng)建立。