融合通信服务端对接流程
步骤 1 在项目中引入对应的依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.2.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dyvmsapi</artifactId>
<version>1.2.0</version>
</dependency>
步骤 2 调用AddRtcAccount接口创建账号
调用AddRtcAccount会返回一个融合通信账号,这个融合通信账号会归属于您当前的阿里云账号,不会被其他开发者使用。每个开发者可以最多创建500万个融合通信账号,如果不能满足需求可以线下联系您的客户经理。
入参列表
参数名称 | 参数类型 | 必填与否 | 样例取值 | 参数说明 |
---|---|---|---|---|
deviceId | String | 必须 | abcdefg | 这个融合通信账号关联的设备ID,同一个设备ID只能创建一个融合通信账号 |
出参列表
出参名称 | 出参类型 | 样例取值 | 参数说明 |
---|---|---|---|
RequestId | String | 8906582E-6722 | 请求ID |
Code | String | OK | 状态码-返回OK代表请求成功,其他错误码详见错误码列表 |
Message | String | 请求成功 | 状态码的描述 |
Module | String | 2000000000000001 | 融合通信账号ID |
样例程序
//设置访问超时时间
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//融合通信服务产品名称(产品名固定,无需修改)
final String product = "Dyvmsapi";
//融合通信服务产品域名(接口地址固定,无需修改)
final String domain = "dyvmsapi.aliyuncs.com";
//需要替换成开发者的AK信息
//初始化acsClient暂时不支持多region
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
//组装请求对象-具体描述见控制台-文档部分内容
AddRtcAccountRequest request = new AddRtcAccountRequest();
request.setDeviceId(UUID.randomUUID().toString());
//hint 此处可能会抛出异常,注意catch
AddRtcAccountResponse addRtcAccountResponse = acsClient.getAcsResponse(request);
步骤 3 调用GetRtcToken获取token
客户端在使用云通信的融合通信服务时需要token等其他参数,这些参数可以通过GetRtcToken接口从云通信平台获取。在客户端的updateToken回调中,开发者需要实现从云通信平台获取token。为了系统安全,开发者不要直接从客户端调用云通信平台POP接口,建议通过开发者的服务端访问POP接口。
入参列表
参数名称 | 参数类型 | 必填与否 | 样例取值 | 参数说明 |
---|---|---|---|---|
UserId | String | 必须 | 200000000000001 | 用户ID,在有账号模式时就是融合通信账号,无账号模式时是用户的自定义账号 |
DeviceId | String | 必须 | abcdefg | 设备ID,建议使用设备的UUID,同个账号,去获取token时,如果设备ID不一样,较早登录的账号会被踢出,无法继续使用融合通信服务 |
IsCustomAccount | Boolean | 必须 | false | 是否是无账号模式 |
出参列表
出参名称 | 出参类型 | 样例取值 | 参数说明 |
---|---|---|---|
RequestId | String | 8906582E-6722 | 请求ID |
Code | String | OK | 状态码-返回OK代表请求成功,其他错误码详见错误码列表 |
Message | String | 请求成功 | 状态码的描述 |
Module | String | {“cleansession”:true,”clientId”:”GID_VOIP@@@ClientId_2000000000000009_100648480015”,”conferenceTopic”:”cs_alicom_voip_conference”,”host”:”mqtt-cn-4590mdhb901.mqtt.aliyuncs.com”,”meetingEventKeepAliveInterval”:0,”phoneTopic”:”alicom_voip_phone”,”port”:0,”reconnectTimeout”:2000,”registerTime”:0,”sdkClientPort”:8883,”serverId”:”GID_VOIP@@@MTEuMTMuMTM2LjExOA==”,”sgwServerTopic”:”alicom_voip_server_pre”,”tlsport”:443,”tokenData”:”abcdef”,”useTLS”:false} | token对象,整个json都需要返回给客户端并且传给融合通信SDK |
样例程序
//设置访问超时时间
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//融合通信服务产品名称(产品名固定,无需修改)
final String product = "Dyvmsapi";
//融合通信服务产品域名(接口地址固定,无需修改)
final String domain = "dyvmsapi.aliyuncs.com";
//需要替换成开发者的AK信息
//初始化acsClient暂时不支持多region
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
//组装请求对象-具体描述见控制台-文档部分内容
GetRtcTokenRequest request = new GetRtcTokenRequest();
request.setUserId("2000000000000009");
request.setDeviceId("abcdefg");
request.setIsCustomAccount(false);
//hint 此处可能会抛出异常,注意catch
GetRtcTokenResponse getRtcTokenResponse = acsClient.getAcsResponse(request);
错误码列表
Code | 描述 |
---|---|
OK | 请求成功 |
isp.RAM_PERMISSION_DENY | RAM权限DENY |
isv.OUT_OF_SERVICE | 业务停机 |
isv.PRODUCT_UNSUBSCRIBE | 产品未开通 |
isv.ACCOUNT_NOT_EXISTS | 账户不存在 |
isv.ACCOUNT_ABNORMAL | 账户异常 |
isv.INVALID_PARAMETERS | 参数异常 |
isp.SYSTEM_ERROR | 系统错误 |
名词解释
有账号模式:
在使用融合通信功能前需要调用AddRtcAccount创建融合通信账号,每个终端都需要一个唯一的融合通信账号,点对点功能只支持有账号模式。
无账号模式:
不需要提前创建融合通信账号,获取token时传入开发者自己的账号,在多方的情况可以使用,多方也可以使用有账号模式。无论采用有账号模式还是无账号模式,一个账号如果在不同设备上登录(获取token时传入的deviceID不一样),较早登录的账号会被踢出。
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/33394.html