SDK使用说明

本文为您介绍了在iOS开发时,SDK的使用说明及示例。

创建实例

  1. 引入头文件。

    #import <AlicomRTCSDK/AlicomRTCSDK.h>
  2. 创建AlicomRTC实例。

    [[AlicomRTC shareInstance] initWithRtcId:rtcid];
  3. 设置自动接听的号码列表,如果不设置,默认内置号码为703358879

    /**
     需要自动接听的电话号码列表
     */
    - (void)autoAnswerCallerNumbers:(NSArray *)numbers;
    说明
    • rtcid:账号ID由GetRtcToken接口获取,这里需要App端调用服务端接口进行获取app > appserver > aliServer

    • 初始化之前不需要自己主动获取Token,Token的获取会在初始化完成之后,通过回调告知何时需要获取,只要实现updateToken給SDK设置Token即可。

  4. 设置相关代理。

    [ACToken shareInstance].delegate = self;
    [AlicomRTC shareInstance].delegate = self;
  5. ACTokenDelegate代理回调。

    通知用户更新token。

    //刷新token使用
    - (void)updateToken:(void(^)(ACToken *token))tokenHandler
    说明

    用户在实现该接口的时候可以向服务端获取Token,通过服务端的GetRtcToken接口实现Token获取再返给客户端。

  6. AlicomRTCServiceDelegate代理回调。

    @required
    /**
     初始化成功,服务可用
     */
    -(void)onServiceAvailable;
    /**
     初始化失败,服务不可用
     @param errCode 错误码
     @param errMsg 错误信息
     */
    -(void)onServiceUnavailableWithErrorCode:(NSInteger)errCode errorMsg:(NSString *)errMsg;
    @optional
    /**
     自定义消息接受回调
     @param sequence 消息序列号
     @param content 消息内容
     @param sourceRtcId 消息来源
     @param timestamp 时间戳
     */
    -(void)onCustomMessageReceivedWithSequence:(long long)sequence sourceRtcId:(NSString *)sourceRtcId content:(NSString *)content timestamp:(long long)timestamp;
    /**
     自定义消息发送回调
     @param sequence 消息序列号
     @param isSuccess 发送消息是否成功
     @param errCode 失败的话,有错误码,否则为0
     @param errMsg 失败的话,错误信息。否则为nil
     */
    -(void)onCustomMessageSendedWithSequence:(long long)sequence isSuccess:(BOOL)isSuccess errorCode:(NSInteger)errCode errorMsg:(NSString *)errMsg;
    说明

    其中onServiceAvailableonServiceUnavailableWithErrorCode:errorMsg:是必须实现的接口。

  7. 初始化通话实例。

    /**
     voip2pstn通话
     @param calleePhoneNumber 被叫电话号码
     @param calleeShowNumber  被叫显示来电号码
     @param customLine  自有线路名称,无则传入nil
     @param extendString  拓展字段(非必要参数)
     @return Call的对象(需判断返回是否为空值)
     */
    - (Call *)createPstnCall:(NSString *)calleePhoneNumber andCalleeShowNumber:(NSString *)calleeShowNumber customLine:(NSString *)customLine withExtendString:(NSString *)extendString;
  8. 在创建完成通话实例之后需要进行通话状态管理,调用方法如下:

    -(void)start;
  9. 停止呼叫。

    -(void)stop;
  10. 可选:通话状态管理,需要实现CallDelegate。

    /**
     被叫来电,振铃彩铃
     @param call Call对象
     */
    -(NSData *)ringtoneWithCallee:(Call*)call;
    /**
     主叫呼叫中,振铃彩铃
     @param call Call对象
     */
    -(NSData *)ringtoneWithCaller:(Call*)call;
    /**
     音频电话来电,被叫振铃,并返回振铃数据
     @param call Call对象
     */
    -(void)onReceivingAudioCall:(Call*)call;
    /**
     视频电话来电,被叫振铃,并返回振铃数据
     @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;
    
    /**
     通话结束
     @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数据
     @param call call对象
     @param dtmf 数据内容,timestamp 时间戳
     */
    -(void)onDtmfData:(Call*)call withDtmf:(NSString *)dtmf withTimestamp:(long long)timestamp;
    /**
     通话中的网络质量
     @param call Call对象,quality,网络质量,0-好,1-中,2-差
     */
    -(void)onNetworkQuality:(Call*)call withQuality:(int)quality;
    /**
     通话中的指标统计
     @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;
  • 呼叫默认超时时间设置,默认45s,可设置时间区间30s~90s。

    -(void)setCallTimeout:(int) time;
  • 发送dtmf,仅在点对点通话中对端为PSTN且通话中才能发送,且只支持0-9、*、#输入。

    -(BOOL)sendDtmfData:(NSString *)dtmf;
  • 切换音频播放路由。

    -(void)audioSpeakerIsOn:(BOOL)isOn; //isOn,音频播放路由:YES-扬声器播放,NO-听筒播放
    说明

    调用该方法前需要确保通话已经建立。