- RevueSDK
- FriendCallError
Enumeration
FriendCallError
撥號 / 接聽 / 拒接 / 取消邀請的錯誤(FriendManager 撥號四方法 throw)
enum FriendCallError錯誤碼對照(revuekit-c 0.17.0)
| C 常數 | 值 | case |
|---|---|---|
REVUEKIT_ERR_INVALID_ARGUMENT | -2 | FriendCallError.invalidArgument |
REVUEKIT_ERR_NOT_INITIALIZED | -4 | FriendCallError.notInitialized |
REVUEKIT_ERR_CALL_FAILED | -11 | FriendCallError.callFailed |
REVUEKIT_ERR_INVALID_STATE | -13 | FriendCallError.invalidState |
REVUEKIT_ERR_FRIEND_NOT_REACHABLE | -20 | FriendCallError.friendNotReachable |
REVUEKIT_ERR_NO_DIRECT_PATH | -26 | FriendCallError.noDirectPath |
REVUEKIT_ERR_ALREADY_IN_CALL | -28 | FriendCallError.alreadyInCall |
REVUEKIT_ERR_MESSAGE_TOO_LONG | -30 | FriendCallError.messageTooLong |
表外 / REVUEKIT_ERR_UNKNOWN(-99) | * | FriendCallError.unknown(code:) |
為什麼不再需要「來源函式」
0.16 以前 av_call / av_answer / av_hangup 各自透傳三個不同的 toxav enum, 同一個負數在三個函式語意完全不同(例:-4 在 av_call 是「好友通話中」、 在 av_answer 是「codec 初始化失敗」),故當時需要 Origin 參數分派。
revuekit-c 0.17.0 (issue #86) 已將 AV 路徑改為全域唯一的 REVUEKIT_ERR_*, 並保證同一情形在三個 API 回同一個碼(由其單元測試 test_same_code_means_same_thing_across_av_apis 鎖住)。故 Origin 已移除, 本型別回歸單一對照表。
Note
部分情形在 C 層被刻意合併、無法再細分:
-11涵蓋「記憶體配置失敗 / codec 初始化失敗 / 其他 toxav 錯誤」;-2涵蓋「好友不存在 / friend_id 格式錯誤」。 上層若需更貼切的文案,可依自身呼叫情境(撥號 / 接聽 / 掛斷)自行判斷 —— 呼叫端本就知道自己在做哪件事,不需由本型別攜帶。
Topics
Enumeration Cases
case alreadyInCall對方已有一通進行中(或尚未清除)的通話(C -28)
case callFailed通話失敗(C -11)
case friendNotReachable對方目前無法連線(C -20)—— 無任何可用 path
case invalidArgument參數無效(C -2)—— 好友不存在,或 friend_id 格式錯誤(C 層已合併兩者)
case invalidState目前狀態不允許此操作(C -13)
case messageTooLong撥號附帶訊息超過 256 bytes(C -30)
case noDirectPathSwitch B 寬限期內尚無直連路徑(C -26)
case notInitializedSDK / ToxAV 尚未初始化(C -4)
case unknown(code: Int32)未知錯誤,帶原始 C 碼供 debug(表外碼,含
REVUEKIT_ERR_UNKNOWN-99)