## 獲取外呼數據
>[info] **功能說明**
> 座席登錄成功后,系統檢測到有空閑座席,則會向甲方的API接口請求外呼的數據,獲取到數據后,系統自動撥打電話,當被叫(客戶)接聽后,系統自動給接聽的座席彈屏顯示被叫(客戶)信息。
>[warning] **提示**
> 1:API接口次返回一條外呼信息。
> 2:系統請求外呼數據的速度很快,比如有5個空閑座席,而接通率為10%,系統通過計算需要獲取50個座席才能滿足座席全員接聽電話,系統則會連續獲取50條外呼數據,所以API接口需要具備高并發。
>3:CTI系統獲取外呼數據后,并不會緩存,會立刻呼叫,如果客戶接聽并轉接給座席后,座席會彈屏,而彈屏頁面是甲方的系統頁面,所以甲方是知道那些電話是接通了的。而外呼基本上在60秒客戶不接聽,運營商則會放棄撥打(如語音提示:您撥打的電話暫時無人接聽),所以甲方可以根據從獲取數據的時間開始計算,如果180秒還沒有彈屏,那么這個電話外呼失敗了。甲方根據外呼的結果做一些外呼策略,如在催收場景中,同一個案件有50個電話,第一個為本人號碼,其他依次為關系人號碼,API可以優先返回本人號碼,如果本人號碼外呼失敗,再按規則返回其他關系人的號碼。
> 4:API還需要有一些其他邏輯,如上班時間返回數據,下班時間不要返回數據,防止在下班時間系統還繼續外呼(系統只有有座席在線并且處于空閑狀態才會請求外呼數據,但是座席有可能會在下班后忘記關閉電腦并且忘記簽出系統)。
* **請求地址**
```
甲方提供獲取數據的API接口
```
* **請求參數**
| 參數 | 是否必選 | 類型 | 描述 |
| --- | --- | --- | --- |
| groupNum | 是 | string | 座席的隊列編號或者隊列名稱,即在“座席登錄”接口中返回groupNum參數的值(“座席登錄”API可能會返回一個座席屬于多個組,但這里只請求其中一個) |
* **響應參數**
| 參數 | 是否必選 | 類型 | 描述 |
| --- | --- | --- | --- |
| code | 是 | int | 200/非200。 |
| status | 是 | string | success/failed,如果有外呼的數據嗎,返回success,如果沒有可用的外呼數據,返回failed。 |
| data | 是 | json | 本條數據信息 |
| data.phone | 是 | string | 被叫號碼。 |
| data.trunkName | 否 | string | 出局中繼名稱,也就是使用哪條外線路撥打電話,如果沒有該參數,則會從后臺配置規則中選擇中繼線路。 |
| data.hide | 否 | string | 是否對座席隱藏被叫號碼,y隱藏,n不隱藏,默認為n。 |
| data.callbackDomain | 否 | string | 回調地址,http或https開頭的完整url地址,通話結束后,系統會將本次通話結果,包括data數據,以post的方式提交到該地址,注意,只有外呼失敗才會回調,外呼成功座席會彈屏,座席彈屏則可以作為外呼成功的回調。 |
| data.data | 否 | string | json字符串格式,本次通話的客戶數據,如客戶ID,案件ID等等,在通話完畢回調時會原樣回調,自動外呼建議帶上該參數,因為在給座席彈屏的時候,彈屏的url中會帶上data中的數據,業務系統可以根據如客戶ID,案件ID等信息彈屏。 |
| logFileName | 否 | string | 話單日志文件名,通話結束后,服務器可以將話單記錄為日志文件,開發人員可以去消費日志進行統計分析。 |
* **響應示例**
```
{
"status": "success",
"phone": "13590688803",
"msg": "",
"callbackDomain": "http://www.baidu.com",
"data": {
"CID": "260997",
"UID": "153769"
......
......
}
}
```