會話或呼叫狀態表示會話的目前狀態,例如「供應專案」或「已連線」。正確處理狀態資訊對於大部分 TAPI 應用程式正常運作至關重要。 例如,回應作業只能在提供的會話上執行,但如果會話處於該狀態,則傳輸將會失敗。
會話的狀態會隨著事件而變更。 事件可以請求或未經請求。 請求的事件 是由控制會話的應用程式所造成,例如叫用TAPI會話作業時。 未經請求的事件 是由交換器、電話網路、使用者按下本機電話上的按鈕或遠端方的行動所造成。
每當服務提供者偵測到會話狀態變更時,就會向所有擁有者和監視應用程式報告TAPI的變更,並發出事件通知。 應用程式必須適當地回應這些通知。 如需控制向應用程式回報哪些事件的資訊,請參閱TAPI初始化 底下的事件通知。
應用程式應該一律處理狀態事件通知。 一個實體組態的有效狀態轉換可能對另一個實體組態無效。 例如,假設在計算機和個別的手機集上實際終止一行,在計算機與手機集之間建立合作物件行組態。 在電腦上執行的應用程式可能不知道手機集活動。 也就是說,該行可能正在使用中,而不需要服務提供者知道。 嘗試進行傳出呼叫的應用程式會成功配置TAPI的通話外觀,但這會導致在線路上共用使用中的通話。 盲目傳送 DTMF 撥號字串而不先檢查撥號音,可能會導致預定的行為(或禮貌的) 行為。
應用程式不應該假設從某個狀態到另一個狀態的固定進展。 狀態事件會以異步方式送達並轉送,而且可能不會以可預測的順序接收通知。 因此,呼叫狀態通知應該被視為告訴應用程式呼叫的新狀態,而不是報告兩個狀態之間的轉換。
所有電話語音服務提供者都必須提供這項資訊。
**TAPI 2.x: **lineGetCallStatus, lineGetCallInfo, LINE_CALLSTATE message, LINECALLSTATE_ Constants
**TAPI 3.x: **ITCallInfo::get_CallInfoLong (CALLINFO_LONG的CIL_CALLID 成員),ITCallStateEvent 通知,CALL_STATE 列舉值