Estado
O estado de sessão ou chamada indica o status atual de uma sessão, como "oferta" ou "conectado". O tratamento adequado das informações de estado é vital para o funcionamento adequado da maioria dos aplicativos TAPI. Por exemplo, a operação de resposta só pode ser executada em uma sessão oferecida, mas uma transferência falhará se a sessão estiver nesse estado.
O estado de uma sessão é alterado como resultado de eventos. Os eventos podem ser solicitados ou não solicitados. Os eventos solicitados são causados pelo aplicativo que controla a sessão, como quando invoca uma operação de sessão TAPI. Eventos não solicitados são causados pela opção, pela rede telefônica, pelo usuário pressionando botões no telefone local ou pelas ações da parte remota.
Sempre que um provedor de serviços detecta uma alteração de estado de sessão, ele relata a alteração para TAPI e TAPI emite uma notificação de evento para todos os aplicativos proprietário e monitor. O aplicativo deve reagir a essas notificações adequadamente. Consulte Notificação de Eventos em Inicialização TAPI para obter informações sobre como controlar quais eventos são relatados a um aplicativo.
Um aplicativo sempre deve processar notificações de evento de estado. Transições de estado válidas para uma configuração física podem ser inválidas para outra. Por exemplo, considere uma linha que termina fisicamente no computador e em um conjunto de telefones separado, criando uma configuração de linha de festa entre o computador e o conjunto de telefones. Um aplicativo em execução no computador pode não saber sobre as atividades do conjunto de telefones. Ou seja, a linha pode estar em uso sem que o provedor de serviços esteja ciente dela. Um aplicativo que tenta fazer uma chamada de saída terá êxito em alocar uma aparência de chamada do TAPI, mas isso resulta no compartilhamento da chamada ativa na linha. Enviar cegamente uma cadeia de caracteres de discagem DTMF sem primeiro verificar um tom de discagem pode não resultar em um comportamento pretendido (ou educado).
Um aplicativo não deve assumir uma progressão rígida de um estado para outro. Os eventos de estado chegam e são encaminhados de forma assíncrona e as notificações podem não ser recebidas em uma ordem previsível. Portanto, as notificações de estado de chamada devem ser exibidas como informando ao aplicativo o novo estado da chamada em vez de relatar as transições entre dois estados.
Todos os provedores de serviços de telefonia devem fornecer essas informações.
**TAPI 2.x: **lineGetCallStatus, lineGetCallInfo, mensagem LINE_CALLSTATE , constantes de LINECALLSTATE_
**TAPI 3.x: **ITCallInfo::get_CallInfoLong (membro CIL_CALLID de CALLINFO_LONG), notificação ITCallStateEventCALL_STATE enumerador