
# 轮询方式获取单座席事件
#### 前置条件
- 座席已签入成功，如果座席已签出，则停止调用该接口
- 针对获取在某个CC-gateway上已登录的座席的相关事件。采用HTTPS方式进行长轮询获取
- 此方式能够提供单座席短连接的事件获取
- 座席签入时不携带serviceToken或callBackUri
 
#### 场景描述
轮询方式获取单座席事件。
![](https://support.huaweicloud.com/api-ccfs-cec/public_sys-resources/note_3.0-zh-cn.png)
座席没有事件时，这个接口需要10s才会有返回，如果有事件，则立即返回。请参考配置agentgateway/WEB-INF/config/basic.properties。
AGENT_POLL_WAIT_FLAG = ON //是否等待事件，ON表示启动，没有事件时，10s后，服务端返回响应
AGENT_POLL_WAIT_TIMES = 100 // 没有事件时，最大等待100次
AGENT_POLL_WAIT_INTERVAL = 100 //每次等待时间，单位毫秒
注：业务在调用该接口时，等待请求响应后，间隔200ms\~500ms，再次调用该接口获取事件。
当发生容灾切换时，等待次数与等待时间相乘应大于容灾切换完成时间，否则轮询接口无法调用，guid会过期。
#### 接口方法
设置成"GET"。该接口仅支持GET方法，不支持PUT、POST和DELETE等方法。
#### 接口URI
https://ip:port/agentgateway/resource/agentevent/{agentid}?calldata=XXX
![](https://support.huaweicloud.com/api-ccfs-cec/public_sys-resources/note_3.0-zh-cn.png)
如果CC-Gateway单机部署，IP地址为CC-Gateway服务器地址，port为CC-Gateway服务器的HTTPS端口号，默认值为8043；如果CC-Gateway采用集群模式部署，IP请配置为NSLB地址， Port请配置为默认值8043。
NSLB上的CC-Gateway端口号，请以nslb用户登录任意一个NSLB节点，执行./nslbctl l查询，查询结果中，如下端口表示CC-Gateway通过NSLB面向第三方系统开放的端口。
![](https://support.huaweicloud.com/api-ccfs-cec/figure/zh-cn_image_0000002204207349.png)
SaaS场景下请咨询运维人员获取IP和Port。
| 序号 | 名称       | 参数类型   | 是否必选  | 说明               |
|:---|:---|:---|:---|:---|
| 1  | agentid  | string | True  | 签入的座席工号。         |
| 2  | calldata | string | False | 呼叫数据，接续条刷新场景下使用。 |
   
#### 日志中的方法名
getAgentEvent
#### 请求说明
- 消息头
  表1请求头参数说明 
  | 序号 | 名称           | 参数类型   | 是否必选 | 说明                                                             |
  |:---|:---|:---|:---|:---|
  | 1  | Content-Type | string | True | 消息主体编码方式，缺省值：application/json;charset=UTF-8                    |
  | 2  | Guid         | string | True | 静态鉴权（AUTHMODE = 1）签入接口返回的Guid；动态鉴权（AUTHMODE = 2）轮询事件接口返回的Guid。 |
     
  

- 消息体 无
  
 
#### 响应说明
表2消息体参数说明 
| 序号 | 名称      | 参数类型   | 说明                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| 1  | message | string | 描述                                                                                                                                                                                                                                  |
| 2  | retcode | string | 错误码。取值如下： 0：成功 非0：失败        |
| 3  | event   | object | 座席事件对象 该对象的参数说明请参见[表3]。 |
   
 表3event对象参数说明 
| 序号  | 名称           | 参数类型   | 说明                                                                                                      |
|:---|:---|:---|:---|
| 3.1 | eventType    | string | 事件类型，参考[事件](https://support.huaweicloud.com/api-ccfs-cec/cec_07_0488.html#ZH-CN_TOPIC_0000002481273686) |
| 3.2 | workNo       | string | 座席工号                                                                                                    |
| 3.3 | eventGenTime | long   | 事件生成时间戳（毫秒）                                                                                             |
| 3.4 | content      | object | 事件内容对象，根据不同的事件，其相关的定义也不同                                                                                |
   
#### 触发事件
- 无
 
#### 错误结果码
- 000-001
- 000-003
- 100-006
![](https://support.huaweicloud.com/api-ccfs-cec/public_sys-resources/note_3.0-zh-cn.png)
注：出现如上的失败原因码，需要将座席签出(或设置为签出态)，停止轮询事件获取；直到再进行签入。
另外，在HTTPS的响应说明中，如果Status Code出现非"200 OK"的原因码，则轮询时间间隔需要间隔1秒以上，避免死循环出现，对中间网络设备产生影响，或是被拦截。
#### 报文样例
- 消息头
  ```
  Content-Type:application/json;charset=UTF-8
  Guid：xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.AgentGateway1
  ```
  
- 请求参数 无
  
- 响应参数
  ```
  {
      "message": "",
      "retcode": "0",
      "event": {
          "eventType": "AgentOther_InService",
          "workNo": "291",
          "eventGenTime": 1784529722590,
          "content": null
      }
  }
  ```
  
 
