服务端开发指南

本文为您介绍服务端的操作步骤及说明。

  1. 调用 CreateAgent创建移动坐席账号。

    • 请求参数

      参数名称

      参数类型

      是否必选

      示例值

      描述

      InstanceId

      String

      agent_12345

      AICCS实例ID。可在智能联络中心控制台上获取。

      AccountName

      String

      1501234****

      账号名称,实例内唯一(可使用坐席手机号、邮箱)。

      DisplayName

      String

      测试账号

      账号显示名称。

      SkillGroupLists

      List<Long>

      123456,145678

      坐席所属的技能组列表。

    • 返回数据

      参数名称

      出参类型

      示例值

      描述

      RequestId

      String

      "563075BA-4E7A-4546-A8B4-14326822F39C"

      请求ID,用于跟踪错误原因。

      Success

      Boolean

      true

      接口调用是否成功。

      Data

      Long

      54325

      坐席ID。

      Code

      String

      xxxx

      错误编码。

      Message

      String

      xxxx

      错误描述。

    • 示例程序

      // 阿里云账号获取AccessKey ID,AccessKey Secret
      DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", AK, SK);
      IAcsClient client = new DefaultAcsClient(profile);
      
      CreateAgentRequest request = new CreateAgentRequest();
      request.setInstanceId("agent_88888");
      request.setAccountName("150293453****");
      request.setDisplayName("测试账号");
      try {
          CreateAgentResponse response = client.getAcsResponse(request);
          System.out.println(JSON.toJSONString(response));
      } catch (Exception e) {
          // TODO
      }
  2. 调用GetRtcToken获取token。

    • 请求参数

      参数名称

      参数类型

      是否必选

      示例值

      描述

      InstanceId

      String

      agent_12345

      AICCS实例ID。可在智能联络中心控制台上获取。

      AccountName

      String

      1501234****

      账号名称,实例内唯一(可使用坐席手机号、邮箱)。

    • 返回数据

      参数名称

      出参类型

      示例值

      描述

      RequestId

      String

      563075BA-4E7A-4546-A8B4-14326822F39C

      请求ID,用于跟踪错误原因。

      Success

      Boolean

      true

      接口调用是否成功。

      Data

      Object

      54325

      坐席ID。

      Data.Token

      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。

      Data.RtcId

      String

      2000000000000009

      移动端坐席号。

      Data.AccountName

      String

      1501234****

      坐席账号。

      Code

      String

      xxxx

      错误编码。

      Message

      String

      xxxx

      错误描述。

    • 示例程序

      // 阿里云账号获取AccessKey ID,AccessKey Secret
      DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", AK, SK);
      IAcsClient client = new DefaultAcsClient(profile);
      
      CommonRequest request = new CommonRequest();
      request.setSysDomain("aiccs.aliyuncs.com");
      request.setSysVersion("2019-10-15");
      request.setSysAction("GetRtcToken");
      request.setSysMethod(MethodType.GET);
      
      request.putQueryParameter("InstanceId", "agent_123234");
      request.putQueryParameter("AccountName", "1501912****");
      
      try {
          CommonResponse response = getClient().getCommonResponse(request);
          if (response != null && response.getHttpStatus() == 200 && StringUtils.isNotBlank(response.getData())) {
              JSONObject data = JSONObject.parseObject(response.getData());
              if (data.getBoolean("Success")) {
                  Object result = data.get("Data");
                  System.out.println(result);
              }
          }
      } catch (ServerException e) {
          log.error(e.getErrCode());
      } catch (Exception e) {
          log.error("");
      }
  3. 调用MakeDoubleCall发起呼叫。

    • 请求参数

      参数名称

      参数类型

      是否必选

      示例值

      描述

      InstanceId

      String

      agent_12345

      AICCS实例ID。可在智能联络中心控制台上获取。

      AccountName

      String

      1501234****

      账号名称,实例内唯一(可使用坐席手机号、邮箱)。

      ServicerPhone

      String

      150****1234

      坐席手机号(若填此参数,则呼叫时发起的是pstn的双呼)。

      MemberPhone

      String

      150****1234

      用户手机号。

      OutboundCallNumber

      String

      0571****1234

      外呼主叫号码。

      BizData

      String

      {"bizData": "2323"}

      扩展字段。

    • 返回数据

      参数名称

      出参类型

      示例值

      描述

      RequestId

      String

      563075BA-4E7A-4546-A8B4-14326822F39C

      请求ID,用于跟踪错误原因。

      Success

      Boolean

      true

      接口调用是否成功。

      Data

      JSONObject

      {"Acid": 68255155365620598}

      会话ID。

      Code

      String

      xxxx

      错误编码。

      Message

      String

      xxxx

      错误描述。

    • 示例程序

      // 阿里云账号获取AccessKey ID,AccessKey Secret
      DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", AK, SK);
      IAcsClient client = new DefaultAcsClient(profile);
      
      CommonRequest request = new CommonRequest();
      request.setSysDomain("aiccs.aliyuncs.com");
      request.setSysVersion("2019-10-15");
      request.setSysAction("MakeDoubleCall");
      request.setSysMethod(MethodType.POST);
      
      request.putBodyParameter("InstanceId", INSTANCE_ID);
      request.putBodyParameter("AccountName", "150****7032");
      request.putBodyParameter("ServicerPhone", "");
      request.putBodyParameter("MemberPhone", "10086");
      request.putBodyParameter("OutboundCallNumber", "0571****5980");
      
      try {
          CommonResponse response = getClient().getCommonResponse(request);
          if (response != null && response.getHttpStatus() == 200 && StringUtils.isNotBlank(response.getData())) {
              JSONObject data = JSONObject.parseObject(response.getData());
              if (data.getBoolean("Success")) {
                  Object result = data.get("Data");
                  System.out.println(result);
              }
          }
      } catch (ServerException e) {
          log.error(e.getErrCode());
      } catch (Exception e) {
          log.error("");
      }