hooks 在通話的某個時刻做事,最多 10 條規則:on: "silence"(Agent 說完後來電者 seconds 秒都沒說話,3–600;再次開口前只觸發一次)、on: "time_elapsed"(通話進行到第 seconds 秒,10–3600)或 on: "call_ending"。每條規則最多 do 3 個動作:{type: "say", text}、{type: "transfer", destination?}、{type: "end_call", text?} 和 {type: "tool", name, args?};通話結束時的規則只執行函式。被規則結束的通話,ended_reason 是 rule_ended。
電話通話中,來電者按的鍵會作為回答傳給 Agent:以 # 或停頓兩秒結束輸入。外撥時,Agent 也能按鍵通過企業的語音選單。
transfer_number 是 Agent 把來電者轉給真人的主要號碼,也是工作區點數用完時撥打的號碼。transfer_destinations 可加上具名號碼,各附一句什麼時候用(「帳務:發票和退款問題」),由 Agent 選擇。開啟 transfer_briefing 時,Agent 轉接時會寫一段簡短摘要,接聽的人在來電者接進來之前,會先以 EvaSay 聲音、用 Agent 的摘要語言聽到它。這時通話的 ended_reason 是 transferred。
設定 handoffs 後,Agent 可以把通話交給工作區裡另一個已發布的 Agent,例如櫃檯把預約交給預約 Agent。Agent 依 when 選擇。另一個 Agent 會帶著目前為止的完整對話接手同一通電話,用自己的指令、聲音、知識庫、工具和交接設定說話。通話仍列在第一個 Agent 名下、由它分析和計費;逐字稿會標出每次交接。
透過你自己的電信商撥打和接聽的電話裡,Agent 可以把網頁通話中會發成卡片的內容用簡訊傳給對方:一則簡訊最多 3 項(標題、一行說明、連結),從這通電話的號碼發出。發送前會先徵得對方同意。用 send_to_caller 裡的 sms 開啟;允許的網站和預設內容與卡片共用。簡訊費由你的電信商收取。
"send_to_caller": {
"enabled": true,
"allowed_hosts": ["shop.example.com"],
"sms": { "enabled": true, "signature": "Acme Salon", "countries": ["CA"] }
}
signature 是每則簡訊開頭的署名(不填時用 Agent 名稱)。簡訊只發到和你的號碼同一國家的號碼,以及你加在 countries 裡的國家。call.message_sent 通知你(channel 為 sms,帶 status),結果以 call.message_status 通知(delivered、帶 reason 的 failed 或 unconfirmed)。GET /calls/{id} 回傳這通電話的 texts。