
# 接口调用流程
在本部分中，我们将介绍用户与座席进行文字交谈时的接口调用过程。通过详细的步骤描述和接口说明，开发人员可以了解如何利用 AICC 提供的接口，实现用户与座席之间的无缝文字交流。下面是多媒体交谈的整个过程。
图1多媒体信息交谈   
![](https://support.huaweicloud.com/api-ccfs-cec/figure/zh-cn_image_0000001969400382.png "点击放大")
图2多媒体交谈结束   
![](https://support.huaweicloud.com/api-ccfs-cec/figure/zh-cn_image_0000002005925597.png "点击放大")
1. 调用第三方请求鉴权接口applyToken，生成客户端访问的Token信息。该token对应其他接口请求头中ccmessaging-token字段。
2. 获取接口请求鉴权token后，可以选择是否展示该用户对应的历史消息。若需要展示，则调用queryHistoryChatMessage接口查询历史消息。
3. 与AICC的座席进行多媒体交谈时，首选需要与座席建立连接，调用send接口或者sendAsync接口，发送消息类型为CONNECT的消息（即消息请求体中controlType字段为CONNECT），请求与座席或机器人建连。
![](https://support.huaweicloud.com/api-ccfs-cec/public_sys-resources/note_3.0-zh-cn.png)
send接口是同步接口，sendAsync为异步接口，两者实现的功能完全相同，使用异步消息处理可以降低请求耗时。
4. 若建立连接失败，用户可以给座席留言，通过doLeaveMessage接口将留言内容发送给AICC进行处理。提交留言后，本次会话流程结束。
5. 若建立连接成功，需要主动轮询poll接口获取座席侧发送过来的消息。在会话期间，若不调用该接口，超过CCUCS配置的默认会话时间，会话会被自动释放。
![](https://support.huaweicloud.com/api-ccfs-cec/public_sys-resources/note_3.0-zh-cn.png)
接口调用链：**apifabric** https://域名/apiaccess/ccmessaging/poll -\> **aicc-ccmessaging** https://域名/rest/ccmessaging/v1/messages/poll。
接口处理逻辑： 设定时间段内如果有下行消息，立即响应；如在该时间段内一直无消息，在超过时长后返回成功响应，消息列表为空，该时间段长度为可配置项，位于aicc-ccmessaging容器内的"/home/ccmessaging/webapps/dds-app/WEB-INF/classes/conf/ccmessaging.conf.properties"配置文件，配置项名称"ccmessaging.longpolling.timeout"""，单位为毫秒，如果缺省，取默认值"5000"毫秒。
6. 轮询poll接口获取座席侧发送的消息，如果是多媒体类型的消息（图片、音频、视频等消息），则需要调用downloadFileStream接口获取多媒体资源。
7. 与座席建连成功后，需要调用queryQueueInfo检查当前用户是否处于排队状态，若处于排队状态则用户需要进行等待。并持续调用queryQueueInfo接口检查当前是否处于排队状态。
8. 若处于非排队状态，用户可以与座席或者机器人进行交谈。
9. 发送消息时可以调用queryPhraseByKeyword接口，根据客户输入的内容查询联想常用语。该步骤非必选。
10.若用户发送的消息是多媒体类型的消息，则需要调用uploadFileStream接口将对应的多媒体文件上传到文件服务器上。
11.无论是多媒体消息还是文字消息，均需要调用send/sendAsync接口，将消息发送给座席。
12.用户与座席交谈结束后，调用getSatisfactionSurveyMode接口查询配置的满意度调查信息。
13.若当前渠道未配置满意度调查，则调用send/sendAsync接口发送断连消息（请求体中controlType字段为IDSCONNECT），本次会话结束。
14.若配置了渠道满意度调查，且当前接入为座席，则调用saveSatisfaction接口提交对座席的满意度，并发送断连消息。
15.若配置了渠道满意度调查，且当前接入为机器人，则调用feedbacksatisfaction提交对机器人满意度评价，并发送断连消息。
