通話
建立通話beta
目前功能處於內測階段,可聯絡技術支援申請開通工作區資格。
目前僅支援 WhatsApp 一對一語音和視訊通話。 準備保密的一次性 join_url。開啟連結並點擊 Start call 後才向對方撥號。
https://api.unifyport.ai/v1/calls支援渠道
呼叫前準備
在伺服器端使用資源所屬工作區的 X-Api-Key,執行範例前替換所有預留位置。
確認工作區已取得內測資格。建立通話前完成 WhatsApp 授權,並檢查 runtime_status=running。目標使用目前帳號下私人對話的 conversation_id。
在瀏覽器發起通話時須允許麥克風,攝影機權限可選。
請求參數
請求標頭
X-Api-Key工作區 API Key,工作區會由此標頭解析得到。
Content-Type傳送 JSON 請求內容時請使用 application/json。
請求內容
account_id目前工作區的帳號 ID。
pattern: ^acc_[A-Za-z0-9][A-Za-z0-9_-]*$
toobject必填一對一通話對象。
to一對一通話對象。
id填入目前帳號下目標會話的 conversation_id,使用介面傳回的原始值。
minLength: 1
type目前僅支援 user;group/channel 會傳回不支援錯誤。
enum: user, group, channel
media_typevoice 為語音,video 為支援視訊的通話。
enum: voice, video
如何理解結果
201 且 state=preparing 表示通話已準備,尚未撥號。儲存 call_id,在回傳的 expires_at 前開啟保密的 join_url 並點擊 Start call;透過通話狀態或 call.answered 確認接通。
備註
準備 WhatsApp 單聊語音或視訊通話(media_type 為 voice/video)。to.id 使用 conversation_id,to.type 為 user;不接受電話號碼字串,暫不支援群組通話。準備期自建立起預設 2 分鐘,實際截止時間以傳回的 expires_at 為準;到期前開啟 join_url 並點擊 Start call 才撥號,不限制已接通的通話時長。必須允許麥克風,攝影機可選;請勿公開一次性連結。
回應 201 · 201
{
"request_id": "req_example",
"data": {
"call_id": "call_example",
"direction": "outbound",
"media_type": "video",
"state": "preparing",
"join_url": "https://calls.example.com/call/call_example#ticket=example-only",
"expires_at": "2026-09-07T12:02:00Z"
}
}
回應內容
call_id通話識別碼,掛斷時使用。
direction通話方向。
enum: outbound
media_typevoice 為語音,video 為支援視訊的通話。
enum: voice, video
state目前通話狀態。
enum: preparing
join_url短期一次性 HTTPS 連結,請勿記錄或公開。
format: uri
expires_at準備階段到期時間,RFC3339 格式。
format: date-time
回應
201201 · 201
請求成功,回應內容範例如上。
400請求錯誤
請求內容、路徑或參數無效。
401未授權
X-Api-Key 請求標頭缺少或無效。
403禁止存取
請求已識別,但不允許執行此操作。
404找不到資源
找不到請求的資源;請結合 error.code 和目前操作核對。
409衝突
目前操作與既有的渠道帳號或資源衝突。
500伺服器錯誤
服務遇到了未預期的錯誤。
501渠道尚未實作
所選渠道尚未實作此操作。
502上游閘道錯誤
渠道轉接器或上游渠道未能完成此操作。
503服務無法使用
所需的後端服務暫時無法使用。
失敗後如何處理
檢查 HTTP 狀態和 error.code/numeric_code,保留 request_id。核對內測資格、帳號與 call_id;建立衝突時先查詢目前通話。重試建立或掛斷前確認目前通話狀態。 錯誤碼參考
- invalid_request · 10000 · 400
- 檢查必填欄位、格式與渠道條件,修正請求後再呼叫。
- missing_api_key · 11000 · 401
- 檢查 X-Api-Key 與工作區是否有效。
- invalid_api_key · 11001 · 401
- 檢查 X-Api-Key 與工作區是否有效。
- account_not_found · 20020 · 404
- 核對 account_id,並使用帳號所屬工作區的 X-Api-Key。此工作區下未找到的帳號無法使用目前 Key 存取。
- unsupported_by_provider · 30003 · 501
- 查看管道能力指南,選擇支援該動作的管道或操作;重複請求不會增加支援範圍。
- beta_feature_not_enabled · 41002 · 403
- 聯絡技術支援申請工作區內測資格。重複請求或在請求中修改 is_beta 都不會取得權限。
- call_already_active · 38000 · 409
- 先查詢目前通話取得 call_id,等待結束或掛斷後再建立新通話。