• 1 Q:天翼RTC能力产品的定位是什么?与QQ通话、Skype等VOIP应用有什么区别?
    A:天翼RTC能力产品不是一个VOIP应用,而是一个云平台+端SDK的PaaS云通信能力服务,为各种智能终端平台的App提供应用内的实时语音和视频通信服务,类似互联网定位、支付等能力为应用服务。第三方开发者可以基于天翼RTC能力开发VOIP应用或者为其自身应用根据业务场景需求增加实时语音、视频沟通功能。

    2 Q:天翼RTC能力的语音、视频质量采用了哪些编码技术?音视频质量如何?
    A:天翼RTC的语音支持opus\ilbc\isac三种编码、视频支持vp8\h.264编码,可以由业务应用层通过接口设置具体的编码。RTC的语音、视频质量通过研发优化和现网检验,已经达到业内一流水准,满足众多应用通过互联网实时沟通的需求,并且作为电信运营商的互联网通信能力产品,后续将结合自身的智能管道提供网络带宽保障,提供更高品质的音视频质量,打造Telco-OTT融合服务。

    3 Q:天翼RTC能力产品的商业模式和部署模式是怎么样的?
    A:天翼RTC能力采用互联网云通信产品商业模式,实时语音和视频能力本身不按时长、流量计费,而是按第三方应用的用户规模和服务项提供免费或者收费服务。天翼RTC能力的部署包括公有云共享、公有云私有、混合云、私有云等多种部署模式,其中公有云已部署在中国电信的商用云资源池,并且多点部署互联,为三家运营商的移动和宽带用户提供最佳的通信路由。

    4 Q:天翼RTC能力的平台并发性、可靠性和安全性如何?
    A:天翼RTC能力公有云平台支持超过10万的点对点语音/视频并发呼叫,上万的多点语音和视频并发呼叫,并且可以根据业务量提供动态弹性的水平扩展服务,采用了电信级的大容量平台基础框架,满足互联网应用海量用户的高并发实时通信,同时采用了平台负载均衡、动态调度、热备份等系列技术保障服务的高可用和高可靠。在安全性方面天翼RTC的API接口、信令与媒体流均采用了安全加密技术,为第三方应用提供安全、放心的通信服务。

    5 Q:天翼RTC的语音和视频能力的流量消耗情况是怎么样的?是否可以免流量?
    A:天翼RTC的语音是动态码率,并且不同编解码不同音质的语音流量不同,一般来说在5-10KB/S。对于视频,不同分辨率、帧率也是不同的流量,应用层可以设置不同分辨率和帧率,RTC根据网络、终端设备处理能力自适应处理,视频流量从几十KB至几百KB不等。天翼RTC是基于IP的互联网通信,如果通过运营商的3G/4G网络,流量费用会正常收取,而天翼RTC为第三方提供了可选用的流量包产品,第三方应用可以根据自身需求为应用用户产生的流量买单。

    6 Q:天翼RTC是否只能给中国电信用户使用?用户帐号体系是否只支持手机号码?
    A:天翼RTC作为一种能力,可以嵌入任何应用,无自身的用户帐号体系,而是支持各应用自身的用户帐号体系,包括手机号、邮箱号、应用自身帐号等,也就不限于只为中国电信用户提供RTC能力服务,而是面向全体互联网用户。

    7 Q:天翼RTC的集成开发难度如何?
    A:天翼RTC为第三方应用提供了简单易用的SDK和API接口,并提供开发文档、源码示例、培训手册、在线应答等开发支持服务,一般1-2名中等水平的开发者一周内就可以实现RTC能力的集成,其主要的开发工作仍然是集成能力后的业务应用自身逻辑处理功能的开发。对于RTC能力非标准化需要定制开发新能力接口的需求,将根据RTC能力的发展演进计划以及客户需求,尽量满足第三方的定制化开发需求。

    8 Q:天翼RTC demo体验测试时出现的回音问题如何解决?
    A:天翼RTC的手机demo体验应用使用时,如果两部进行通话测试的手机如果靠的比较近并且打开了手机扬声器进行声音播放,那么会产生回音干扰,因此建议点击通话界面的静音图标关机两个手机的声音。如需要测试声音效果,建议通话双方相隔3米之外。一般情况下,远方通话是不会产生回音的,RTC能力SDK内置了优秀的软件回声消除功能,会进行回声抑制。

    9 Q:天翼RTC是否支持高清语音和高清视频?
    A:天翼RTC支持采样频率超过8K的宽带高清编码,支持高清立体声的语音通话效果;在智能手机、平板、机顶盒等实现硬编解码,在网络条件较好的情况下,支持720P的互联网高清视频通信。

    10 Q:iOS SDK 的使用说明?
    A:iOS SDK的使用说明主要从准备,使用时的主要流程以及常见的问题三个方面阐述。

    • iOS SDK-准备

      1. RTC平台(已有)
      2. 第三方应用服务器(待开发)
      3. 客户端(sdk已有,业务界面待开发)

      ios

      第三方应用服务器

      1. 必要工作:帮助客户端从rtc平台获取到token
      2. 可选工作:对客户端增加认证流程实现权限控制、除音视频通信之外的实时呈现在线状态、文本聊天、文件传输、统计、搜索、定位等

      客户端——sdk导入

      1. 第一步:将sdk 文件夹合并到本地工程文件下。
      2. 第二步:在Xcode中右键点击工程根目录,选择Add Files to,导入头文件夹inc。
      3. 第三步:在Build Phases中选择Link Binary With Libraries,添加libtyrtcsdk.a库文件。

      ios

      客户端——工程配置

      1. 在Build Phases中配置动态库和框架。

      ios

      2. 在Build Settings中配置指令集和预编译宏。

      ios

      3. 配置plist文件,开启后台模式。

      ios

      4. 调试时请使用真机运行,可在ipad、iphone4s及更新的设备上运行,支持ios5.0及以上系统。

      ios

      客户端——sdk log配置(可选)

      1. 在工程中创建名为configure的文本文件,若不配置则默认如下:3####0####300####cwlog.txt (含义为CinLogType=3,CinLogLevel=0,文件最大500KB,文件名为cwlog.txt)。
      2. 应用启动时调用initCWDebugLog()进行日志初始化,sdk初始化后,日志会打印到cwlog.txt中
      3. 通过iFunBox软件进行日志查看,日志路径为:应用文件夹->tmp->cwlog.txt

      ios
    • iOS SDK-使用时的主要流程

      流程

      1. 首先要初始化,初始化里面会自动获取到rtc平台的一些服务器地址
      2. 初始化成功后,开始认证,获取token
      3. 获取token成功后,就可以登录rtc平台了
      4. 登录成功后,可以进行呼叫和接听
      5. 退出时销毁
      6. 需要实例化的对象有:sdk对象SDKObj、账号对象AccObj、通话对象CallObj
      7. 请注意释放对象

      初始化sdk

      ios

      准备登录

      1. 根据用户名获取token
      ① 自定义协议先从应用服务器完成认证,应用服务器在需要时从rtc平台获取新token或者将缓存的token返回给终端,当前从rtc平台获取token的接口如下图
      ② url格式:https://{serverRoot}/{APIversion}/ApplicationID/{InApplicationID}/CapabilityToken,对应的值如下,带括号的表示需要填充对应的值,字体颜色与以下值互相对应。http://219.141.189.117:8090/RTC/ws/0.1/ApplicationID/123/CapabilityToken

      登录

      ios

      用户状态监听

      ios

      认证登录中的错误处理

      1. 整个登陆流程某一步出现问题时,提示出错,同时停止继续走下面的流程
      2. 首先要处理第三方在自己平台认证的错误。
      3. 获取服务器信息错误
      4. 获取token失败
      5. rtc平台认证失败
      6. 以上每一步都有可能由网络原因造成,如请求超时,应提示用户网络不稳定

      常用呼叫接口

      1. CallObj方法:
      ① 发起呼叫:-(int)doMakeCall:(NSDictionary*)param;
      ② 接听呼叫:-(int)doAcceptCall: (NSNumber*)CallType;
      ③ 拒绝来电:-(int)doRejectCall;

      呼叫状态监听

      ios

      后台长连接保持

      1. 在网络变化或应用进入后台后,需要调用以下接口进行长连接保持:
      2. 方法名:-(void)onAppEnterBackground;

      ios
      ios
      ios

      通话中的错误处理

      1. 408:请求服务器超时或被呼叫方网络异常
      2. 480:对方未登陆,或异常断开一段时间,主叫或被叫NAT超时
      3. 403:密码失效
      4. 503:网络断开或服务器错误
      5. 404:用户不存在
      6. 603:对方正忙或拒接
      7. 通话相关错误除403之外只要给出用户语音或界面提示即可,用户可继续下一次呼叫

    • iOS SDK-常见问题及注意事项

      常见问题及注意事项

      1. 用户状态监听接口或呼叫状态监听接口,在发生异常时会携带响应码,常见响应码如403,表示登陆密码错误需要更改密码重新登陆(即重新认证获取新的token),其他常见状态码请查阅开发说明文档4.9章节。
      2. 用户状态监听接口会收到网络状态变化通知,要及时通知用户
      3. 与uim卡来电冲突建议关闭当前会话
      4. 其他注意事项请查阅开发说明文档5.3章节

      构建完整应用需要做哪些

      1. Ui界面包括呼叫界面、来电界面、通话界面,需要显示号码、时长、网络状态、语音提示如呼叫超时对方正忙等
      2. 联系人、通话记录?视频质量选择?

    11 Q:Android SDK的使用说明?
    A:Android SDK的使用说明主要从准备,使用时的主要流程以及常见的问题三个方面阐述。

    • Andoid SDK-准备

      1. RTC平台(已有,中国电信提供)
      2. 第三方应用服务器(待开发)
      3. 客户端(sdk已有,业务界面待开发)

      android

      第三方应用服务器

      1. 必要工作:帮助客户端从RTC平台获取到能力token
      2. 可选工作:对客户端增加认证流程实现权限控制、除音视频通信之外的应用自身的相关功能,如实时呈现在线状态、文本聊天、文件传输、统计、搜索、定位等

      客户端

      1. 初始化sdk并从应用服务器获取rtc平台提供的token,登录到rtc平台
      2. 调用sdk接口直接与rtc平台交互实现点对点及多人的音视频通信,通过sdk监听接口实时显示通信状态
      3. 导入jar包,放置.so文件后,需要添加apk的权限和服务

      android
    • Andoid SDK-使用RTC SDK的主要流程

      1. 首先要初始化,初始化里面会自动获取到rtc平台的一些服务器地址
      2. 初始化成功后,开始认证,获取token
      3. 获取token成功后,就可以登录rtc平台了
      4. 登录成功后,可以进行呼叫和接听
      5. 退出时销毁

      初始化sdk及销毁

      android

      准备登录

      1. 初始化异常处理
      ① RtcClient.initialize时第二个参数是对应的监听接口,当onInit的参数为0时表示成功可以继续下一步登录注册,否则要提示用户初始化失败,常见错误如ERROR_HTTP_EXCEPTION表示网络错误导致http请求失败。
      2. 根据用户名获取token
      ① 自定义协议先从应用服务器完成认证,应用服务器在需要时从rtc平台获取新token或者将缓存的token返回给终端,当前从rtc平台获取token的接口如下图
      ② url格式:https://{serverRoot}/{APIversion}/ApplicationID/{InApplicationID}/CapabilityToken,对应的值如下,带括号的表示需要填充对应的值,字体颜色与以下值互相对应。http://rest.chinartc.com:8090/RTC/ws/1.0/ApplicationID/123/CapabilityToken

      android

      3. Post请求的消息体是json格式,上图的消息体解析如下图,说明如下页

      android
      android

      4. 收到响应后的消息体如下图,可以看出拿到了token,下页的图表进行了说明

      android
      android

      登录

      android

      用户状态监听

      android

      呼叫

      android

      呼叫状态监听

      android

      其他常用呼叫接口

      1. Connection mCall; mCall值的获取有两种情况,一个是作为主叫,就是创建呼叫后的返回值;另一个是作为被叫,就是用户状态监听接口中来电时携带的参数
      2. 来电接听:mCall.accept(RtcConst.CallType_Audio); 参数RtcConst.CallType_Audio表示只支持音频的接听,来电号码可由mCall.info()信息中解析出来
      3. 来电拒接:mCall.reject();
      4. 挂断呼叫:mCall.disconnect();包括呼叫中取消、通话中挂断
      5. 需要注意mCall的赋值,有新呼叫时赋值,呼叫结束后置为null

      认证登录中的错误处理

      1. 整个登录流程某一步出现问题时,提示出错,同时停止继续走下面的流程
      2. 首先要处理第三方在自己平台认证的错误。
      3. 获取服务器信息错误
      4. 获取token失败
      5. rtc平台认证失败
      6. 以上每一步都有可能由网络原因造成,如请求超时,应提示用户网络不稳定

      通话中的常见错误处理

      1. 408:请求服务器超时或被呼叫方网络异常
      2. 480:对方未登录,或异常断开一段时间,主叫或被叫NAT超时
      3. 403:认证失效
      4. 503:网络断开或服务器错误
      5. 404:用户不存在
      6. 603:对方正忙或拒接
      7. 通话相关错误除403之外只要给出用户语音或界面提示即可,用户可继续下一次呼叫

    • Andoid SDK-常见问题及注意事项

      1. 用户状态监听接口或呼叫状态监听接口,在发生异常时会携带响应码,常见响应码如403,表示登录认证错误 (即重新认证获取新的token),其他常见状态码请查阅开发说明文档4.11章节
      2. 用户状态监听接口会收到网络状态变化通知,要及时通知用户
      3. 与uim卡来电冲突建议关闭当前会话
      4. 其他注意事项请查阅开发说明文档5.3章节

      构建完整应用还需要做哪些

      1. Ui界面包括呼叫界面、来电界面、通话界面,需要显示号码、时长、网络状态、语音提示如呼叫超时对方正忙等
      2. 对于高级应用,还可以选择音视频编解码格式、视频质量等

      小米手机在通话时注意

      需要更改通话降噪的设定:
      双麦克降噪 -> 单麦克降噪
      否则通话背景噪声较大

      android