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.