预约使用
即接即用,玖云平台为您提供稳定的通信能力
开发者账户使用使用指南
开放接口使用指南
平台审核标准
平台服务标准
Rest API接口介绍
取消通话接口
通话记录查询接口
录音及下载接口
专线语音接口
专号通接口
专号通号码申请接口
专号通号码查询接口
专号通号码释放接口
应用映射号码查询接口
语音通知下发接口
取消预约语音通知接口
语音通知记录查询接口
语音验证码接口
智能语音验证接口
订单小号绑定接口
订单小号解绑接口
订单小号查询接口
订单小号话单查询接口
虚拟小号绑定接口
虚拟小号解绑接口
虚拟小号查询接口
虚拟小号在线呼叫接口
虚拟小号话单查询接口
工作号被叫绑定接口
云呼小号在线呼叫接口
批量上传号码接口
手机专号通绑定接口
手机专号通解绑接口
手机专号通更新接口
手机专号通查询接口
手机专号通双呼接口
云话机回拨接口
SDK产品简介
SDK集成指南
来电推送配置指南
Web
Android
Ios
更多
常见问题
专线语音回调通知接口
专号通回调通知接口
语音通知状态回调接口
语音验证码回调接口
智能语音验证回调接口
订单小号状态回调接口
虚拟小号状态回调接口
云呼小号状态回调
AI智能语音回调接口
语音回呼回调接口
手机专号通回调接口
云双呼回调接口
云呼AXB回调接口
云话机回调通知接口
全局错误码表
大众语音SDK提供拨号呼叫、来电接听等常规VOIP的通话功能,通过网关接入固话运营商网络,可实现拨打PSTN固话、手机号、Sip话机、Sip移动客户端等终端号码的通话操作。针对来电的场景,考虑到应用在手机中被停止运行的情况,引入远程离线推送的机制,使手机应用在非运行状态下也能够实时的接收呼叫方的来电。
从远程离线推送的设计场景出发,推送是使大众语音SDK能接听特殊情况的来电而引入的功能。若应用主要用于主动发起呼叫,或应用本身能配置为可长时间运行于后台,则理论上不需要专门开启离线推送功能。大众语音SDK的离线推送整合了华为、小米、iOS等厂商推送通道,安卓应用中对非华为小米的其它设备整合了极光推送的第三方推送方式。
各大推送平台主要使用appid、appsecret、包名,以及每个应用运行时获取的Token等信息来进行远程离线推送的实现。为保证应用的前后一致性,建议应用统一使用单独的签名文件对生成的应用包进行签名。
特别提示:如果能保证应用长期运行在Android的后台(示例代码中有预设的规则可启用),则安卓应用的推送平台可以不配置。iOS由于切换到后台之后,应用即停止运行,建议要配置推送平台信息。
3.1手机端设备
1)Android设备
Android设备远程推送依赖项明细依赖项名称 | 依赖内容(示例) |
应用包名 | com.ade.sipphone |
大众玖云平台 | 用途:分配Sip账号,根据Sip账号获取服务器地址 |
MASS_ACCOUNTSID | e600d6dff3d046aca1a6c0a6a0a9554f |
MASS_AUTHTOKEN | a5c1fbbdb4bb43ca9eb37b749dfd4065 |
MASS_SOFTVERS | 2016-01-01 |
极光推送平台 | 用途: |
JPUSH_PKGNAME | 应用包名 |
JPUSH_APPKEY | 6d1c2ca68729462f3b76b7e3 |
JPUSH_CHANNEL | default_developer |
小米推送平台 | |
XMPUSH_APPID | 2882303761518801720 |
XMPUSH_APPKEY | 5151880148720 |
华为推送平台 | |
agconnect-services.json | 需签名文件SHA256证书指纹从华为官网下载 |
maven路径 | maven { url 'https://developer.huawei.com/repo/' } |
dependencies依赖 | implementation 'com.huawei.hms:push:4.0.3.301' |
Android应用程序工程的各依赖项的配置内容
2)iOS设备
iOS的APNs推送相关功能,由于已高度集成到Apple的开发者账号中,项目中勾选“自动管理签名证书”后,只需“Bundle Identifier”对应的包名已在开发者账号中配置了推送证书即可。Xcode将自动下载和同步对应的信息,用于后续在项目代码中获取远程推送Token。
应用运行并获取Token之后,平台服务器中可使用此Token+开发者账号对应证书,将远程消息,推送到运行此应用的唯一特定iOS设备中,即实现远程离线推送功能。
iOS应用程序工程的各依赖项的配置内容
3.2大众玖云平台
玖云平台中,针对呼叫来电时,对应账号的手机应用不在线的场合,启用远程离线推送功能。从各个消息推送平台的角度来看,玖云平台发送来电提醒消息到各个移动终端设备的信令走的是消息推送平台的下行通道。
下述表2中的内容为各推送平台针对某个应用包名,而设置的下行推送依赖信息。若应用不需要实现来电离线提醒,或者不需要支持某个平台的设备,则可以不进行注册和申请。
此部分信息,在各个推送平台注册后,将表格内的信息同步给大众玖云平台,用于后续大众语音SDK的离线消息提醒。各依赖信息的获取方式参考下述第4章节的描述。
依赖项名称 | 依赖内容(示例) |
包名 | com.ade.sipphone -- iOS称为 Bundle Identifier |
极光推送平台 | |
极光--AppKey | 6d1c2ca68729462f3b76b7e3 |
极光--Master Secret | 5923fde20e66192926e4da12 |
小米推送平台 | |
小米--AppID | 2882303761518801720 |
小米--AppKey | 5151880148720 |
小米--AppSecret | mSBJHBInuRIrlb3C7ECLQA== |
华为推送平台 | |
华为--APP ID | 103184883 |
华为--API key | CgB6e3x9CA80NMKlc2Qls15s7G31g/7lXCTQ8RFwq7RWDPWeqlD0gcRrmCvN3qKa/SqvGgiLJQ32+o0nXROIvZmt |
华为--APP SECRET | 445a3be04873df4bbc64f2934ff7e75c87e2d00f5428b221ebe70d867376b0bc |
iOS推送平台 | |
合并后的推送证书 | 证书文件:E:\iphone\push_cert\ck.pem 注:此证书的生成步骤参看《大众语音SDK-离线来电推送流程.doc》中第4.4章节 |
3.3大众玖云平台实现原理
特别提示:此部分内容为大众语音SDK内置实现部分,此处仅为展示推送原理和过程,以利于问题排查。外部集成应用无需实现此功能。
玖云平台中,针对呼叫来电时,对应账号的手机应用不在线的场合,启用远程离线推送功能。从各个消息推送平台的角度来看,玖云平台发送来电提醒消息到各个移动终端设备的信令走的是消息推送平台的下行通道。
推送平台 | 下行信令--描述文档 |
极光推送 | http://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/ |
小米推送 | https://dev.mi.com/console/doc/detail?pId=1278#_2_0 |
华为推送 | https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References-V5/https-send-api-0000001050986197-V5 |
Apple推送 | 请自行搜索对应语言的APNs推送SSL通道 或参考以下路径 https://blog.csdn.net/mylizh/article/details/51996543 |
推送平台 | 下行信令--内容(示例) |
极光推送 | {"notification":{"android":{"alert":"来电提醒","sound":"callring","big_text":"来电号码 13691724110 ,点击接听","extras":{"callid":"fe0332d2-aa5d-1239-67b7-180373f5faa4","callno":"13691724110","tick":"2020-11-26.15.45.41.015"},"style":1,"title":"收到一个未接来电","priority":1,"channel_id":"com.ade.rtclib.C1"}},"audience":{"registration_id":["13065ffa4eb69995e46"]},"options":{"apns_production":true,"time_to_live":86400},"platform":["android"]} |
小米推送 | {"description":"来电号码 13691724110 ,点击接听","extra":{"callno":"13691724110","callid":"fe0332d2-aa5d-1239-67b7-180373f5faa4","tick":"2020-11-26.15.45.41.015", "sound_uri":"android.resource://com.ade.sipphone/raw/callring"},"notifyId":1053,"passThrough":0, "payload":"来电提醒","restrictedPackageName":"com.ade.sipphone","title":"收到一个未接来电"} |
华为推送 | {"android":{"notification":{"auto_cancel":true,"channel_id":"com.ade.rtclib.C1","click_action":{"intent":"intent://com.huawei.push/data?callno=13691724110&callid=fe0332d2-aa5d-1239-67b7-180373f5faa4&tick=2020-11-26.15.45.41.015#Intent;scheme=pushscheme;end","type":1}, "default_sound":false,"foreground_show":true,"icon":"/raw/ic_logo","importance":"HIGH","notify_id":1053, "sound":"/raw/callring","use_default_light":true,"use_default_vibrate":true,"visibility":"PUBLIC"}, "urgency":"HIGH"},"notification":{"body":"来电号码 13691724110 ,点击接听","title":"收到一个未接来电"},"token":["IQAAAACy0bVhAAAApHIxevH7g3rooJmtQYmkbaVV0HPUguiaj8pMB-udAPIG1Iinr8RzTtIRK_gmacM41Pk2afQvzQm_-Q8QDb8G1jBz4PTb5DCtUA"]} |
Apple推送 | {"callid":"fe0332d2-aa5d-1239-67b7-180373f5faa4","aps":{"sound":"","content-available":1},"callno":"13691724110","tick":"2020-11-26.15.45.41.015"} |
本章着重阐述第3章节中,列举的各推送平台依赖项等信息的获取方式。不同的推送平台需要获取的具体信息各不相同。
一般情况下,推送平台使用“应用包名”和id--key--secret来标识某个应用;使用“应用包名”和手机设备运行时的Token来标识具体设备内运行的应用实例。消息推送时,将在推送平台中,找到注册的应用,并推送到某个定点设备中。
4.1极光第三方推送平台
极光平台的推送注册步骤,请参考文档《大众语音SDK-推送平台注册-极光.doc》。注册完毕后,将获取到以下信息:极光平台需求项 | 极光平台获取值 |
应用包名 | com.ade.sipphone |
AppKey | 1d39b9e2e105037b62584e30 |
Master Secret | 5ff083221a6786dfda9f75d6 |
4.2小米推送平台
小米平台的推送注册步骤,请参考文档《大众语音SDK-推送平台注册-小米.doc》。注册完毕后,将获取到以下信息:小米平台需求项 | 小米平台获取值 |
主包名 | com.ade.sipphone |
AppID | 2882303761518801720 |
AppKey | 5151880148720 |
AppSecret | mSBJHBInuRIrlb3C7ECLQA== |
4.3华为推送平台
华为平台的推送注册步骤,请参考文档《大众语音SDK-推送平台注册-华为.doc》。注册完毕后,将获取到以下信息:华为平台需求项 | 华为平台获取值 |
应用包名 | com.ade.sipphone |
APP ID | 103184883 |
API key | CgB6e3x9CA80NMKlc2Qls15s7G31g/7lXCTQ8RFwq7RWDPWeqlD0gcRrmCvN3qKa/SqvGgiLJQ32+o0nXROIvZmt |
APP SECRET | 445a3be04873df4bbc64f2934ff7e75c87e2d00f5428b221ebe70d867376b0bc |
4.4Apple远程APNs推送平台
详情参考网络文档《手把手教你配置苹果APNS推送服务》网址:https://blog.csdn.net/u011303663/article/details/51105672
证书制作步骤按照其1--5的步骤完成后,将公钥和许可两个.pem文件合并为ck.pem,将此ck.pem和对应的包名(Bundle ID)上传到大众玖云平台即可。
iOS平台需求项 | iOS平台获取值 |
Bundle Identifier | com.ade.sipphone |
合并后的推送证书 | 证书文件:E:\iphone\push_cert\ck.pem |
OS开发时,xcode11.0及以前版本的开发环境可自行配置证书,此时使用上述步骤中制作的证书即可正常编译和打包。Xcode12.0及以上版本必须使用开发者账号来自动从Apple开发者平台下载证书,不能够手动操作选择证书。因此开发环境和iPhone手机客户端不需要依赖生成的证书文件。
推送Token为应用在设备中运行后,获取到的、用于标注该设备的序号,Token的生成规则依不同的推送平台的生成策略而有所不同。但正常来说不卸载应用,每次运行时的Token基本上会保持不变。
5.1Android获取Token方式
安卓的Token分为厂商推送Token和极光第三方Token两个部分,大众语音SDK获取这两个Token后,集中上传到大众玖云平台中,供后续来电时进行判断和分发推送。
此部分内容由于已整合到大众语音SDK中,此处略过。
5.2iOS获取Token方式
iOS需要应用的项目配置如3.1章节方式配置之外,需在应用的AppDelegate.m中,启动函数内
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}
判断iOS7、iOS8.0、iOS10.0分别实现不同的注册内容获取办法。由于iPhone手机存在强制升级的特性(目前主流iOS手机大部分版本均为iOS14.2、iOS14.3),一般情况下实现iOS10.0以上的通知代理的注册即可。代理注册成功后,在以下函数中
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {}
即可在应用运行时正常的获取远程推送Token。
详情可参考iOS的示例应用程序代码。
1 简介
2 呼叫来电流程
3 推送平台配置依赖
4 推送注册步骤
5 设备Token获取