Discagem

As operações de discagem permitem que um aplicativo envie dígitos adicionais em uma sessão criada anteriormente. Um exemplo de uso de discagem parcial é discar uma extensão. Às vezes, a discagem parcial é conhecida como discagem incremental ou discagem atrasada.

Quando o endereço fornecido estiver incompleto, discar alguns dos dígitos poderá ser atrasado colocando um ponto e vírgula (;) no final do número. Em seguida, uma operação de discagem é usada para enviar dados de endereço adicionais na sessão existente, como discar o endereço de uma parte para a qual a chamada será transferida.

Cada provedor de serviços deve rejeitar uma cadeia de caracteres de discagem que contenha o caractere ? e permitir que o aplicativo lide com ele conforme apropriado. Por exemplo, o aplicativo pode usar a discagem parcial para discar a cadeia de caracteres, até, mas não incluindo o caractere ? e, em seguida, exibir uma caixa de diálogo para permitir que o usuário sinalize quando o restante da cadeia de caracteres de discagem deve ser discada.

Um motivo adicional para um aplicativo usar a discagem parcial é se o provedor de serviços não dá suporte a um ou mais caracteres de controle de detecção de progresso da chamada. Esses caracteres, que podem ocorrer em um endereço discável, são W (aguarde o tom de discagem); @ (aguarde a resposta silenciosa); e $ (aguarde o tom de prompt cartão chamada). Esses e todos os outros caracteres usados em cadeias de caracteres de endereço são discutidos com mais detalhes em Endereços Discáveis.

O provedor indica quais modificadores de cadeia de caracteres de discagem "aguarde". Um aplicativo TAPI 2 localiza esses dados no membro dwDevCapFlags da estrutura LINEDEVCAPS retornada por lineGetDevCaps. Um aplicativo TAPI 3 chama ITAddressCapabilities::get_AddressCapability com AddressCap definido como o AC_DEVCAPFLAGS membro do ADDRESS_CAPABILITY.

O aplicativo pode optar por pré-selecionar cadeias de caracteres discáveis para caracteres sem suporte ou pode passar a cadeia de caracteres "bruta" como parte do início de uma sessão. Se a cadeia de caracteres contiver um modificador sem suporte ou um "?", o provedor retornará um erro indicando qual modificador ofensivo ocorreu primeiro dentro da cadeia de caracteres:

  • LINEERR_DIALBILLING
  • LINEERR_DIALQUIET
  • LINEERR_DIALDIALTONE
  • LINEERR_DIALPROMPT

Em seguida, o aplicativo pode localizar o modificador ofensivo na cadeia de caracteres, levar os dígitos à esquerda do modificador, acrescentar um ponto e vírgula e iniciar uma sessão usando o endereço parcial. O restante da cadeia de caracteres pode ser enviado usando a operação de discagem.

Nem todos os provedores de serviços dão suporte ao uso dessa operação.

TAPI 2.x: Consulte lineDial.

TAPI 3.x: Consulte ITBasicCallControl::D ial.