Este documento aborda informações sobre o channel da Khomp como um todo, desde opções disponíveis de configuração, os applications disponibilizados, os possíveis comando de CLI, entre outros.
Para procedimentos sobre a instalação, favor consultar o README do channel.
Configurar o channel da Khomp é uma tarefa que consiste de três etapas:
Estas etapas são descritas mais detalhadamente abaixo.
A partir do Channel 4.0 esta etapa é realizada no KWebPortal.
Em versões anteriores ao 4.0, esta etapa é realizada através do programa khompwizard, um assistente que configura os parâmetros básicos das placas do sistema. Esse assistente inicializa os arquivos de configuração através de informações obtidas do usuário, quando estas forem necessárias, inicializando as configurações menos utilizadas com os valores padrão. Normalmente, este programa é executado automaticamente após a instalação do sistema. Entretanto, pode ser necessário executá-lo manualmente caso uma atualização esteja sendo realizada, ou se novas placas foram adicionadas no sistema após a instalação dos drivers da placa. Caso seja necessária a configuração de parâmetros avançados da placa e/ou da sinalização em versões anteriores ao Channel 4.0, o programa k3lconfig permite acessar todas as configurações disponíveis de cada placa instalada.
Para maiores informações consulte as documentações dessas ferramentas. Para soluções de problemas de sincronismo, consulte a seção Solução de problemas.
A configuração padrão do sistema costuma atender à maior parte das necessidades. Entretanto, a configuração do channel da Khomp pode ser modificada através do arquivo de configuração '/etc/asterisk/khomp.conf'.
A lista de opções é a seguinte:
Define as opções globais do channel.
Define configurações aplicáveis aos canais da Khomp:
Disponível a partir da versão: 3.0.
Permite definir configurações específicas por agrupamentos de canais, onde <string> segue o mesmo formato das strings utilizadas no application Dial.
Exemplos:
[channels-Gpstn] echo-canceller = no auto-fax-adjustment = no
[channels-b0l0+b1l0] echo-canceller = no auto-fax-adjustment = yes
As opções disponíveis nestas seções estão descritas na seção [channels].
Define os grupos para serem usados na alocação de canal.
Neste caso, as opções são usadas para definir nomes para strings de alocação de canais. O formato segue o padrão <nome grupo> = <string alocação>, onde as strings de alocação de canais são as mesmas utilizadas no application Dial, e nome do grupo é um nome arbitrário escolhido pelo usuário.
Por exemplo, para definir o grupo pstn como os canais 0 e 5 do dispositivo 0, deveria-se utilizar a linha:
pstn = b0c0 + b0c5
Este grupo, por sua vez, poderia ser usado no application Dial como Dial(Khomp/Gpstn/...).
Pode-se também associar um determinado contexto de entrada a um grupo de canais, bastando especificar um nome de contexto após a string de alocação, separado por ':' da mesma.
Por exemplo, para definir o mesmo grupo pstn acima como os canais 0 até 20 do dispositivo 0, com contexto de entrada from-pstn, poderia-se utilizar a linha:
pstn = b0c0-20:from-pstn
Este grupo, por sua vez, poderia ser usado no application Dial como Dial(Khomp/Gpstn/...), e todas as ligações vindas destes canais seriam tratadas no contexto from-pstn.
Define configurações de cadências para o channel.
Neste caso, as opções são nomes de cadências e um ou dois pares de números, que definem os intervalos de tom e silêncio a ser utilizado nas cadências. Para maiores detalhes, favor consultar o arquivo de configuração.
Define números de origem para o dispositivo KFXS.
Neste caso, as opções são sequências de prefixos de ramais e números seriais dos dispositivos, que definem os números base dos endereços de origem, e a ordem numérica dos dispositivos. O formato das opções é:
prefixo = serial1, serial2, ....
Por exemplo, para definir que os dispositivos K0374 e K2352 devem ser numerados sequencialmente, partido do ramal 200, basta escrever:
200 = 374, 2352
Para maiores detalhes, favor consultar o arquivo de configuração.
Define hotlines para o dispositivo KFXS.
Neste caso, as opções são sequências de ramais e números de destino, definindo os ramais listados nesta seção para serem tratados como "hotlines". Para cada ramal listado, o número de destino especificado será discado quando o ramal for retirado do gancho. Exemplo:
100 = 1234 200 = 4321
No primeiro exemplo, o ramal de número 100 irá telefonar para número 1234 ao ser retirado do gancho; no segundo, o ramal de número 200 irá telefonar para o número 4321 ao ser retirado do gancho.
Permite definir configurações específicas por ramal FXS.
Neste caso, as configurações são números de ramais (baseado nos definidos na seção [fxs-branches]), e as opções e seus valores. As opções disponíveis são:
Cada opção é separada uma da outra por um pipe "|" ou uma barra "/" e definidas após dois pontos ":". Para maiores informações sobre a sintaxe e exemplos, favor consultar o arquivo de configuração.
Para maiores informações, consultar o arquivo de configuração 'khomp.conf'.
Quando as ligações são recebidas nos dispositivos Khomp, estas são encaminhadas pelo channel da Khomp para contextos específicos dentro do plano de discagem do Asterisk®. Estes contextos podem ser alterados através do arquivo de configurações khomp.conf, disponível no diretório de configuração do Asterisk (por padrão, "/etc/asterisk").
Para maiores detalhes sobre os contextos específicos, consultar a seção de Configuração do channel.
Abaixo, encontram-se informações de como configurar os contextos de entrada de chamadas:
Para dispositivos E1, as ligações de entrada por padrão chegam em um contexto pré-definido conforme a opção context-digital:
context-digital = khomp-DD-LL
Este contexto padrão define que as ligações serão redirecionadas de acordo com o número do dispositivo e número do link: DD é o número do dispositivo (com dois dígitos), e LL é o número do link (também com dois dígitos).
Entretanto, é possível configurar outros contextos de entrada, com formatos diferenciados. Pode-se utilizar a opção CCC, que significa o número do canal no dispositivo (com três dígitos), e SSSS, que representa o número serial do dispositivo (com quatro dígitos).
Exemplos de configuração no arquivo khomp.conf:
; número seqüencial do dispositivo e do link (ex: khomp-01-00) context-digital=khomp-DD-LL ; número serial do dispositivo e seqüencial do link (ex: khomp-3049-00) context-digital=khomp-SSSS-LL ; número seqüencial do dispositivo e do canal (ex: khomp-00-001) context-digital=khomp-DD-CCC ; recebe todas as chamadas em um só contexto (khomp-digital) context-digital=khomp-digital
Abaixo um exemplo de contexto no plano de discagem:
; Este contexto presente no extensions.conf irá manipular chamadas ; de entrada no link 0 (primeiro link) do dispositivo 0. ; [khomp-00-00]
Outro exemplo, utilizando o mesmo formato:
; Este contexto presente no extensions.conf irá manipular chamadas ; de entrada no link 1 (segundo link) do dispositivo 0. ; [khomp-00-01]
Um exemplo completo, com algumas ações simples:
[khomp-00-00] exten => 1234,1,Dial(Khomp/b0L1/2345) exten => _23XX,1,Dial(SIP/11${EXTEN:2}) [khomp-00-01] exten => 1111,1,Dial(Khomp/b0L0/2345)
Este plano de discagem define o recebimento de chamadas no dispositivo 0 e no link 0, redirecionando chamadas para o número 1234 feitas para o link 1 do dispositivo 0, pro ramal/telefone 2345, e redirecionando qualquer número de quatro dígitos começado com 23 para telefones SIP de quatro dígitos começados com 11.
Também há mais uma extensão definida, onde as ligações recebidas no link 1 do dispositivo 0 para o número 1111, são redirecionadas para o link 0 do dispositivo 0, para o telefone/ramal 2345.
Da mesma forma que no contexto de dispositivos E1, as ligações de entrada são encaminhadas pelo channel para o Asterisk. Entretanto, estas sinalizações possuem dois contexto pré-definidos, buscados com uma ordem de preferência.
O primeiro contexto é pré-definido da seguinte forma, conforme o arquivo khomp.conf:
context-gsm-call = khomp-DD-CC ; dispositivos GSM context-fxs = khomp-DD-CC ; dispositivos FXS context-fxo = khomp-DD-CC ; dispositivos FXO
Enquanto o segundo contexto possui o seguinte formato padrão:
context-gsm-alt = khomp-DD ; dispositivos GSM context-fxs-alt = khomp-DD ; dispositivos FXS context-fxo-alt = khomp-DD ; dispositivos FXO
Nestes casos, DD é o número dispositivo (com dois dígitos), e CC é o número do canal do dispositivo. Pode-se utilizar também SSSS, que representa o número serial do dispositivo.
Em ligações originadas a partir de um ramal FXS, o channel driver procura uma extensão válida dos dígitos discados em três contextos diferentes. A prioridade dos contextos é a seguinte:
Caso durante a discagem, nenhuma extensão válida puder ser encontrada, a extensão i é procurada nos contextos em ordem de prioridade, e por fim no contexto default. Caso ocorra um timeout durante a discagem (configurável pela opção fxs-digit-timeout, no arquivo khomp.conf) durante a discagem, o mesmo comportamento será aplicado - no entanto, a busca se dará inicialmente pelo número já discado até o timeout e, se não encontrado, a busca nos contextos será repetida para a extensão "t".
Mensagens SMS são recebidas pelo channel da Khomp e encaminhadas para o Asterisk como uma ligação normal, mas sem áudio. Esta ligação possui algumas variáveis ajustadas com informações recebidas na mensagem - para maiores informações sobre estas variáveis, consulte a documentação das variáveis do channel. Este contexto também pode ser alterado, da mesma forma que os contextos acima.
Esta ligação entra no seguinte contexto, conforme o arquivo khomp.conf:
context-gsm-sms = khomp-sms-DD-CC
Onde DD é o número dispositivo (com dois dígitos), e CC é o número do canal (também com dois dígitos). Por exemplo:
[khomp-sms-00-01] exten => s,1,System(/usr/bin/tratar-SMS.sh ${KSmsFrom} ${KSmsBody})
Atenção: se um contexto de SMS é adicionado ao dialplan durante a execução do Asterisk, é necessário que se execute os comandos dialplan reload e module reload chan_khomp.so através da CLI. Esta sequência de comandos indica ao channel que um novo contexto para mensagens pode estar disponível.
Mensagens USSD são recebidas pelo channel da Khomp e encaminhadas para o Asterisk como uma ligação normal, mas sem áudio. Esta ligação possui algumas variáveis ajustadas com informações recebidas na mensagem - para maiores informações sobre estas variáveis, consulte a documentação das variáveis do channel. Este contexto também pode ser alterado, da mesma forma que os contextos acima.
Esta ligação entra no seguinte contexto, conforme o arquivo khomp.conf:
context-gsm-ussd = khomp-ussd-DD-CC
Onde DD é o número dispositivo (com dois dígitos), e CC é o número do canal (também com dois dígitos). Por exemplo:
[khomp-ussd-00-01] exten => s,1,System(/usr/bin/tratar-USSD.sh ${KUssdMessage})
Atenção: se um contexto de USSD é adicionado ao dialplan durante a execução do Asterisk, é necessário que se execute os comandos dialplan reload e module reload chan_khomp.so através da CLI. Esta sequência de comandos indica ao channel que um novo contexto para mensagens pode estar disponível.
Para estes dispositivos, as ligações de entrada possuem um contexto pré-definido, conforme exemplo abaixo:
[khomp-DD-CC]
Neste caso, DD é o número do dispositivo (com dois dígitos), e CC é o número do canal do dispositivo. O nome e o formato deste contexto também pode ser alterado através da opção "context-pr" no arquivo de configuração.
O Asterisk é responsável por iniciar transferências, agrupar os dígitos discados e realizar todos os outros passos da lógica de uma transferência de chamada. Entretanto, cada canal alocado no Asterisk (seja para uma ligação saínte ou entrante) permite especificar somente 1 contexto de transferência. Isto implica que somente um contexto (além do default) pode ser usado durante uma transferência de chamada.
Neste caso, o contexto escolhido pelo channel driver segue a seguinte regra para o canal que realizar a transferência:
Caso desejado definir contextos específicos para determinados grupos de canais, isto pode ser realizado utilizando a seção groups, no arquivo de configuração khomp.conf.
Esta opção é detalhada na seção Configurações do channel.
O aplicativo (ou application) Dial é responsável por gerar chamadas no Asterisk a partir de um dialplan. Este aplicativo pode ser utilizado para gerar chamadas a partir de diversos tipos de channels, sendo que cada channel segue um formato específico para definir tanto as opções quanto os canais de comunicação a serem utilizados.
Quando utilizado para canais da Khomp, a string de Dial pode ter dois, três ou quatro campos separados por uma barra (/). Algumas strings de exemplo:
Dial(Khomp/B2L0/32625644,30,tT) Dial(Khomp/*B2L0/32625644) Dial(Khomp/S0411/99991234) Dial(Khomp/Gpstn/99991234) Dial(Khomp/*Gpstn/99991234,,t) Dial(Khomp/B2C58/32625644/category=4:orig=4855553232,,tT) Dial(Khomp/b0c9,30) Dial(Khomp/b0c1+b0c14) Dial(Khomp/r304)
Nos cinco primeiros exemplos, temos três campos sendo especificados; no quarto, quatros campos são utilizados; e por fim, nos três últimos exemplos, apenas dois são utilizados. É importante notar que os valores separados por vírgula (,) são opções do application Dial, não do channel da Khomp.
Sobre os campos utilizados, segue a descrição:
OBS: A string de Dial com somente dois campos é específica à ligações para um dispositivo KFXS, onde o destino está atrelado automaticamente ao canal alocado, ou ao ramal especificado.
A política de alocação de canais, no channel da Khomp, pode ser especificado na própria string de Dial ou através de grupos, no arquivo de configuração khomp.conf. Para especificar dispositivos, canais e links a serem alocados existe a seguinte sintaxe disponível (considerando X, Y e Z como números quaisquer):
Para dispositivos com canais GSM, nos quais seja possível escolher entre diferentes SIM cards, é possível também restringir quais chips podem ser utilizados. Para isso, adiciona-se ao final da string de Dial o sufixo nX, onde X especifica qual chip deve estar selecionado para que o canal possa ser alocado. Por exemplo:
Para buscar por ramais de dispositivos KFXS de acordo com o número do ramal, pode ser utilizada a seguinte sintaxe (considerando X e Y números de ramais válidos):
É interessante notar que apenas a capitalização da letra 'B', 'S' ou 'R' define a ordem de busca dos canais; se minúscula, crescente, e se maiúscula, decrescente.
Já para a alocação de canais através de grupos, existe a seguinte sintaxe disponível:
Existem casos onde é necessário buscar canais com mais de um determinado dispositivo, ou determinado grupo de ramais. Para isto, existe uma extensão disponível na string de alocação, que diz respeito ao uso do símbolo de soma (+) para concatenar várias strings de ligação, da seguinte forma:
Dial(Khomp/B1L0+B2L0/32332933,30,tT) Dial(Khomp/*B2+B3+B4/99887766) Dial(Khomp/S0411+B1L0/99887766) Dial(Khomp/Gpstn1+Gpstn2/99991234) Dial(Khomp/*gOperadora1+gOperadora2/98891234) Dial(Khomp/OgOperadora1+gOperadora2/98891234) Dial(Khomp/agOperadora2/98891234)
Esta extensão está disponível tanto no application Dial quanto na especificação de grupos, e pode ser utilizada para agrupar qualquer string de alocação válida à outra. O processamento das strings de alocação ocorre da esquerda para a direita - exceto quanto utilizando a alocação cíclica, onde todos os canais especificados são verificados simultaneamente.
Uma variação da alocação de canais é através de uma escolha cíclica e/ou justa, que consiste em escolher o canal que completou - até o momento - o menor número de ligações saintes. Essa forma é caracterizada por um asterisco (*) antes da string de alocação de canais (conforme pode ser verificado acima, no segundo e quinto exemplos).
Quando iniciada com um asterisco (*), as outras formas de alocação subsequentes (crescente, decrescente, etc) são utilizadas para decidir, entre os canais com menor número de ligações saintes, qual será verificado primeiro para realizar a chamada.
Também é possível realizar a alocação de canais escolhendo o canal que possui - até o momento - o menor tempo total de chamadas saintes (Disponível a partir da versão: 4.3.0). Essa forma é caracterizada pela letra O (maiúscula ou minúscula) antes da string de alocação de canais (conforme pode ser verificado acima, no penúltimo exemplo).
Tenta sempre alocar o canal subsequente ao utilizado na última alocação (Disponível a partir da versão: 4.3.1). Essa forma é caracterizada pela letra A (maiúscula ou minúscula) antes da string de alocação de canais (conforme pode ser verificado acima, no último exemplo).
Dial(Khomp/b0/99887766/orig=restricted)AVISO: Em canais de dispositivos GSM, o único valor válido para esta opção é restricted.
Este recurso está disponível a partir da versão: 3.1. |
A configuração do DAHDI é agrupada por spans, que podem ser dispositivos e/ou links. Os spans servem como agrupamentos lógicos de canais e podem ser configurados nos grupos manualmente ou de forma automática.
Os canais de todos os dispositivo são configurados/apresentados em uma única sequência começando por 1 e sem a distinção de dispositivo.
A compatibilidade com o DAHDI permite os seguintes formatos de dialstrings:
As opções de grupos são:
As opções gerais disponíveis são:
Observações:
Alguns exemplos de dialstrings estilo DAHDI:
Dial(Khomp/1/2927) Dial(Khomp/2r1/2927) Dial(Khomp/G1/32625644) Dial(Khomp/R1r2/99991234) Dial(Khomp/i2/30110666)
Segue lista de variáveis disponíveis no channel:
Nome | Tipo | Descrição |
---|---|---|
KDropCollectCall | W/O | Quando definida antes do atendimento (ao receber uma chamada), ativa ("yes") ou desativa ("no", padrão) o derrubamento de chamadas à cobrar baseado na sinalização recebida da central pública; através do duplo atendimento; ou através do reconhecimento por áudio de uma chamada à cobrar, podendo ser definida de maneira global. (Disponível a partir da versão: 2.2) |
KR2GotCategory | R/O | Ajustada pelo channel ao receber uma chamada entrante, e possui o código da categoria do número de A. Apenas disponível para sinalização R2. |
KR2StrCategory | R/O | Ajustada pelo channel ao receber uma chamada entrante, e possui o nome da categoria do número de A. Apenas disponível para sinalização R2. |
KR2GotCondition* | R/O | Ajustada pelo channel, e disponível após o retorno de uma chamada realizada pelo Asterisk. Contém o código da condição de B recebida ao realizar a chamada. Para versões anteriores ao Asterisk 1.8, necessita de um patch no Asterisk para funcionar corretamente ou que a opção parent seja ajustada corretamente no canal de saída - disponível apenas para sinalização R2. |
KR2StrCondition* | R/O | Ajustada pelo channel, e disponível após o retorno de uma chamada realizada pelo Asterisk. Contém o nome da condição de B recebida ao realizar a chamada. Para versões anteriores ao Asterisk 1.8, necessita de um patch no Asterisk para funcionar corretamente ou que a opção parent seja ajustada corretamente no canal de saída - disponível apenas para sinalização R2. |
KR2SendCondition (deprecated) | W/O | Quando definida antes do envio de ringback pelo Asterisk (ao receber uma chamada), ajusta a condição de B para o valor numérico que foi recebido. Apenas disponível para sinalização R2. |
KR2Condition | W/O | Quando definida antes do envio de ringback pelo Asterisk (ao receber uma chamada), define a condição de B para o valor numérico que foi ajustada. Apenas disponível para sinalização R2. Disponível a partir da versão: 3.0 |
KR2Category | R/W | Ajustada automaticamente em chamadas entrantes, contendo a categoria do originante. Quando definida com um valor numérico, antes da realização de uma chamada pelo Asterisk, ajusta a categoria de A para o mesmo. A variável é automaticamente repassada entre dois canais de sinalização R2, pois é definida de maneira herdável. Apenas disponível para sinalização R2. Disponível a partir da versão: 3.0 |
KFXOGotCategory | R/O | Ajustada pelo channel ao receber uma chamada entrante, e possui o código da categoria do número de A (equilavente à sinalização R2). Apenas disponível para sinalização FXO. |
KFXOStrCategory | R/O | Ajustada pelo channel ao receber uma chamada entrante, e possui o nome da categoria do número de A (equilavente à sinalização R2). Apenas disponível para sinalização FXO. |
KCallAnswerInfo* | R/O | Ajustada pelo channel, e disponível após o retorno de uma chamada realizada pelo Asterisk. Contém as informações de atendimento detectadas ao realizar a chamada. Para versões anteriores ao Asterisk 1.8, necessita de um patch no Asterisk para funcionar corretamente, ou que a opção parent seja ajustada corretamente no canal de saída - disponível apenas para sinalizações digitais (E1, GSM). |
KISDNGotCause* | R/O | Ajustada pelo channel, e disponível após o retorno de uma chamada realizada pelo Asterisk. Contém o código de causa do ISDN, recebido ao realizar a chamada. Para versões anteriores ao Asterisk 1.8, necessita de um patch no Asterisk para funcionar corretamente ou que a opção parent seja ajustada corretamente no canal de saída - disponível apenas para sinalização ISDN. |
KISDNStrCause* | R/O | Ajustada pelo channel, e disponível após o retorno de uma chamada realizada pelo Asterisk. Contém o nome da causa do ISDN recebido ao realizar a chamada. Para versões anteriores ao Asterisk 1.8, necessita de um patch no Asterisk para funcionar corretamente ou que a opção parent seja ajustada corretamente no canal de saída - disponível apenas para sinalização ISDN. |
KISDNSendCause (deprecated) | W/O | Quando definida antes do envio de ringback pelo Asterisk (ao receber uma chamada), ajusta a causa para o valor numérico que foi recebido. Apenas disponível para sinalização ISDN. Disponível a partir da versão: 3.0 |
KISDNCause | W/O | Quando definida antes do envio de ringback pelo Asterisk (ao receber uma chamada), ajusta a causa para o valor numérico que foi recebido. Apenas disponível para sinalização ISDN. Disponível a partir da versão: 3.0 |
KISDNOrigTypeOfNumber | R/W | Ajustada automaticamente em chamadas entrantes, contendo o tipo do número do originador. Quando definida com um valor numérico, antes da realização de uma chamada pelo Asterisk, ajusta o tipo do número do originador para o valor recebido. A variável é automaticamente repassada entre dois canais de sinalização ISDN, pois é definida de maneira herdável. Apenas disponível para sinalização ISDN. Disponível a partir da versão: 3.0 |
KISDNDestTypeOfNumber | R/W | Ajustada automaticamente em chamadas entrantes, contendo o tipo do número do destinatário. Quando definida com um valor numérico, antes da realização de uma chamada pelo Asterisk, ajusta o tipo do número do destinatário para o valor recebido. A variável é automaticamente repassada entre dois canais de sinalização ISDN, pois é definida de maneira herdável. Apenas disponível para sinalização ISDN. Disponível a partir da versão: 3.0 |
KISDNOrigNumberingPlan | R/W | Ajustada automaticamente em chamadas entrantes, contendo o plano de numeração do originador. Quando definida com um valor numérico, antes da realização de uma chamada pelo Asterisk, ajusta o plano de numeração do originador para o valor recebido. A variável é automaticamente repassada entre dois canais de sinalização ISDN, pois é definida de maneira herdável. Apenas disponível para sinalização ISDN. Disponível a partir da versão: 3.0 |
KISDNDestNumberingPlan | R/W | Ajustada automaticamente em chamadas entrantes, contendo o plano de numeração do destinatário. Quando definida com um valor numérico, antes da realização de uma chamada pelo Asterisk, ajusta o plano do numeração do destinatário para o valor recebido. A variável é automaticamente repassada entre dois canais de sinalização ISDN, pois é definida de maneira herdável. Apenas disponível para sinalização ISDN. Disponível a partir da versão: 3.0 |
KISDNOrigPresentation | R/W | Ajustada automaticamente em chamadas entrantes, contendo o tipo de apresentação do número originador. Quando definida com um valor numérico, antes da realização de uma chamada pelo Asterisk, ajusta o tipo de apresentação do número originador para o valor recebido. A variável é automaticamente repassada entre dois canais de sinalização ISDN, pois é definida de maneira herdável. Apenas disponível para sinalização ISDN. Disponível a partir da versão: 3.0 |
KSmsDelivered | R/O | Ajustada pelo channel ao enviar uma mensagem SMS com o application KSendSMS, e define se a mensagem foi entregue com sucesso ("yes") ou não ("no"). |
KSmsErrorCode | R/O | Ajustada pelo channel ao enviar uma mensagem SMS com o application KSendSMS, e define o código de erro ao enviar a mensagem. Até o channel 2.4.1, contém uma string descrevendo o nome do erro; a partir do channel 3.0, contém o código numérico do erro. |
KSmsErrorName | R/O | Ajustada pelo channel ao enviar uma mensagem SMS com o application KSendSMS, contém o nome do erro em forma textual, ou "None" caso não tenha ocorrido nenhum erro (Disponível a partir da versão: 3.0). |
KSmsReference | R/O | Ajustada pelo channel ao enviar uma mensagem SMS com o application KSendSMS, ou no contexto de entrada das mensagens SMS (disponível no tipo "confirm"). Contém o número de identificação da mensagem enviada/recebida, valor entre 0 e 255, ou "None" caso a mensagem não tenha sido enviada. Quando mais de uma mensagem é enviada (mensagens concatenadas) os números de identificação são apresentados separados por ;. (Disponível a partir da versão: 4.2). |
KSmsType | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, define o tipo da mensagem recebida (pode conter os valores "message", "confirm" ou "broadcast") (Disponível a partir da versão: 3.0). |
KSmsFrom | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, define o número de origem da mensagem recebida (disponível em tipos "message" e "confirm"). |
KSmsDate | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, define a data de envio da mensagem (disponível em tipos "message" e "confirm"). |
KSmsSize | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém o tamanho (em bytes) da mensagem recebida (disponível em tipos "message" e "broadcast"). |
KSmsMode | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém o tipo codificação da mensagem recebida (disponível em tipos "message" e "broadcast"). |
KSmsBody | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém o texto da mensagem enviada (disponível em tipos "message" e "broadcast"). |
KSmsDelivery | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém a data de entrega de mensagem enviada anteriormente cuja confirmação foi requisitada (disponível no tipo "confirm") (Disponível a partir da versão: 3.0). |
KSmsStatus | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém o status de envio de mensagem anteriormente cuja confirmação foi requisitada (disponível no tipo "confirm") (Disponível a partir da versão: 3.0). |
KSmsSerial | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém o número de série da mensagem recebida (disponível no tipo "broadcast") (Disponível a partir da versão: 3.0). |
KSmsPage | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém o número da página relativo à mensagem recebida (disponível no tipo "broadcast") (Disponível a partir da versão: 3.0). |
KSmsPages | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém o número total de páginas a serem recebidas (disponível no tipo "broadcast") (Disponível a partir da versão: 3.0). |
KSmsAlert | R/O | Ajustada pelo channel como TRUE no caso de recebimento de uma mensagem do tipo Alerta, também chamado de Flash SMS (Disponível a partir da versão: 4.0). |
KSmsConcat | R/O | Ajustada pelo channel como TRUE no caso de recebimento de uma mensagem que faz parte de uma mensagem maior de 160 caracteres (Disponível a partir da versão: 4.0). |
KSmsConcatRef | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, contém o número de referência (identificador) da mensagem concatenada (Disponível a partir da versão: 4.0). |
KSmsConcatPartId | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, identifica a parte da mensagem concatenada que esta mensagem corresponde (Disponível a partir da versão: 4.0). |
KSmsConcatParts | R/O | Ajustada pelo channel no contexto de entrada das mensagens SMS, identifica o número total de partes da mensagem concatenada (Disponível a partir da versão: 4.0). |
KUssdDelivered | R/O | Ajustada pelo channel ao enviar uma mensagem USSD com o application KSendUSSD, e define se a mensagem foi entregue com sucesso ("yes") ou não ("no") (Disponível a partir da versão: 4.2.2). |
KUssdErrorCode | R/O | Ajustada pelo channel ao enviar uma mensagem USSD com o application KSendUSSD, e define o código de erro ao enviar a mensagem (Disponível a partir da versão: 4.2.2). |
KUssdErrorName | R/O | Ajustada pelo channel ao enviar uma mensagem USSD com o application KSendUSSD, contém o nome do erro em forma textual, ou "None" caso não tenha ocorrido nenhum erro (Disponível a partir da versão: 4.2.2). |
KUssdMessage | R/O | Ajustada pelo channel no contexto de entrada das mensagens USSD, contém o texto da mensagem recebida (Disponível a partir da versão: 4.2.2). |
KTDDStringReceived | R/O | Ajustada pelo channel no contexto de entrada das mensagens TDD, contém o texto recebido pela aplicação KReceiveTDD (Disponível a partir da versão: 3.1) (Este recurso está obsoleto desde a versão 4.0.). |
KUserInfoExtended | R/W | Ajustada pelo channel ao receber uma mensagem User-to-User Information (ISDN), define se deverá ser usado o comando estendido (até 256 caracteres) ou padrão (até 32 caracteres) para envio de mensagens UUI. Quando definida para um valor booleano (true ou false), antes da realização de uma chamada pelo Asterisk, define o comando a ser utilizado para envio da mensagem UUI - a variável é automaticamente repassada entre dois canais de sinalização ISDN, pois é definida de maneira herdável. Apenas disponível para sinalização ISDN. |
KUserInfoDescriptor | R/W | Ajustada pelo channel ao receber uma mensagem User-to-User Information (ISDN), contém o descritor do protocolo utilizado na mensagem. Quando definida para um valor numérico, antes da realização de uma chamada pelo Asterisk, ajusta o descritor da mensagem UUI para o valor recebido - a variável é automaticamente repassada entre dois canais de sinalização ISDN, pois é definida de maneira herdável. Apenas disponível para sinalização ISDN. |
KUserInfoData | R/W | Ajustada pelo channel ao receber uma mensagem User-to-User Information (ISDN), contém os dados da mensagem em formato Base 16 (caracteres representados em hexadecimal). Quando definida para uma mensagem em formato Base 16, antes da realização de uma chamada pelo Asterisk, ajusta os dados da mensagem UUI para o valor recebido - a variável é automaticamente repassada entre dois canais de sinalização ISDN, pois é definida de maneira herdável. Apenas disponível para sinalização ISDN. |
KUserTransferStatus | R/O | Retorna o estado relativo ao comando de transferência KUserTransfer em sinalização FXO, quando a opção W é utilizada. Pode estar ajustada para os seguintes valores:
|
KFaxSent | R/O | Ajustada pelo channel ao enviar FAX com o application KSendFax, e define se o FAX foi enviado com sucesso ("yes") ou não ("no") (Este recurso está obsoleto desde a versão 4.0.). |
KFaxReceived | R/O | Ajustada pelo channel ao receber FAX com o application KReceiveFax, e define se o FAX foi recebido com sucesso ("yes") ou não ("no") (Este recurso está obsoleto desde a versão 4.0.). |
KFaxResult | R/O | Ajustada pelo channel ao enviar ou receber FAX com o application KSendFax ou KReceiveFax, respectivamente, e define o seu resultado (Este recurso está obsoleto desde a versão 4.0.). |
KOutgoingChannel | R/O | Ajustada pelo channel ao alocar um canal para uma ligação de saída, informando qual dispositivo e canal serão utilizados para efetuar esta ligação. (Disponível a partir da versão: 3.0) |
KTransfersList | R/O | Caso seja indicada transferência pelo protocolo QSIG, esta variável concatena os identificadores dos destinos das transferências. (Disponível a partir da versão: 4.1.2) |
KTransfersCount | R/O | Esta variável exibe a contagem de transferências indicadas pelo protocolo QSIG. (Disponível a partir da versão: 4.1.2) |
Abaixo, segue uma explanação sobre como utilizar as variáveis do channel do Khomp disponíveis no dialplan, tanto para comunicar quanto para receber informações:
Quando ativada, faz com que o channel da Khomp derrube chamadas a cobrar através de duplo atendimento (disponível para sinalização 'R2 Digital' e FXO), através da informação disponível no protocolo RDSI e R2/MFC, ou através da detecção do áudio de chamada a cobrar (disponível para qualquer sinalização digital por link E1, e para sinalização GSM).
Esta variável é útil para derrubar chamadas a cobrar para determinados ramais, e deve ser ajustado obrigatoriamente antes de realizar qualquer tipo de atendimento - aplicações como Playback e Dial devem ser executadas sempre após ajustar esta variável, por exemplo.
Para melhor funcionalidade, é recomendado também que nenhum estado de chamada (ringback) seja enviado antes desta variável ser ajustada, então aplicações como Progress ou Ringing também devem ser executadas apenas após o ajuste correto desta variável.
Esta variável pode ser ajustada localmente e globalmente, tanto para yes quanto para no. O ajuste da variável global para yes fará com que todas as chamadas a cobrar sejam derrubadas, a não ser que a chamada específica seja ajustada para no - isto permite a criação de um filtro global de chamadas a cobrar, com algumas poucas exceções.
Ativando a variável dentro do contexto default:
[default] ... exten => _X.,1,Set(KDropCollectCall=yes) ...
Ativando a variável no contexto global:
[globals] ... KDropCollectCall=yes ...
Ao receber uma chamada, pode ser definida antes do envio de ringback pelo Asterisk (ou seja, antes do Asterisk executar as aplicações Answer, Ringing, ou Dial). Quando utilizada em sinalização R2/MFC, esta variável ajusta a condição de B para o valor numérico desejado.
Exemplo:
;; Condição "NUMBER CHANGED", avisa ao chamador que o número de B mudou. ;; exten => _X.,1,Set(KR2Condition=3)
Ao receber uma chamada, é ajustada pelo channel com a categoria recebida do número que originou a chamada. É ajustada na sinalização R2/MFC, e pode ser consultada em qualquer local do dialplan.
Exemplo:
exten => _X.,1,NoOp(${KR2GotCategory})
Variável ajustada pelo channel, e disponível após o retorno de uma chamada realizada pelo Asterisk. Contém a condição de B recebida ao realizar a chamada. Para versões anteriores ao Asterisk 1.8, necessita de um patch no Asterisk para funcionar corretamente ou que a opção parent seja ajustada durante a realização da chamada sainte. Disponível apenas para sinalização R2/MFC.
Exemplo:
exten => _X.,1,NoOp(${KR2GotCondition})
Variável ajustada pelo channel no contexto de entrada, a partir de informações recebidas pela rede RDSI através da funcionalidade User-to-User Information. Contém o número do descritor do protocolo utilizado pela outra ponta, e normalmente contém valor '0', mas este valor é dependente da aplicação utilizada.
Maiores informações, consultar a especificação ITU-T Q931 (mais precisamente, a tabela 4-26 da especificação).
Exemplo (trabalhando com o número do descritor do protocolo):
exten => _X.,1,Verbose( ${KUserInfoDescriptor} )
Variável ajustada pelo channel no contexto de entrada, a partir de informações recebidas pela rede RDSI através da funcionalidade User-to-User Information. Contém os dados propriamente ditos, que foram recebidos, em forma de uma 'string' de texto.
Maiores informações sobre este recurso, consultar a especificação ITU-T Q931.
Exemplo (trabalhando com os dados recebidos):
exten => _X.,1,Verbose( ${KUserInfoData} )
É importante salientar que as variáveis são sensíveis à capitalização das letras (case sensitive).
Variável ajustada pelo channel em ligações de saída, quando solicitado pela configuração, representando o tipo de atendimento realizado pela outra ponta. Pode conter os seguintes valores:
(*) Este tipo de atendimento é detectado por sinais em determinadas frequências que são enviados antes da chamada entrar em uma caixa postal, e variam conforme a operadora. O algoritmo captura a maior parte das caixas postais, mas pode falhar se não existir um sinal claro, ou se o mesmo não estiver dentro dos padrões mais utilizados;
(**) A diferenciação entre estes dois tipos de atendimento depende de configuração específica utilizando o programa k3lanswerinfoconfig, sendo a detecção apenas baseada em heurísticas e nunca com precisão de 100%.
Exemplo utilizando um link E1:
exten => _X.,1,Dial(khomp/b0l0/${EXTEN}/parent=${CHANNEL}:answer_info) exten => _X.,n,NoOp(${KCallAnswerInfo})
Para maiores informações sobre o tipo de atendimento veja a seção Análise de Atendimento - Call Analyzer.
Variável ajustada pelo channel em ligações de saída, informando qual canal foi alocado para fazer a ligação, no formato BXCY, onde X representa o número do dispositivo, e Y o número do canal utilizado.
Obs: Esta variável somente pode ser reportada ao canal originador se o Dial informar o parâmetro parent, conforme exemplo abaixo:
exten => 100,1,Dial(khomp/b0l0/${EXTEN}/parent=${CHANNEL},30,ht) exten => h,1,NoOp(Canal utilizado para fazer a ligação: ${KOutgoingChannel} )
Variável ajustada com a mensagem recebida pela aplicação KReceiveTDD. (Disponível a partir da versão: 3.1) (Este recurso está obsoleto desde a versão 4.0.)
exten => 100,1,KReceiveTDD() exten => 100,2,NoOp(${KTDDStringReceived})
A função CHANNEL() permite tanto obter quanto ajustar valores no canal Khomp . O channel da Khomp suporta os seguinte valores (Disponível a partir da versão: 3.0):
Nome | Tipo | Descrição |
---|---|---|
collectcall | R/O | Retorna "yes" se esta é uma chamada entrante a cobrar, ou "no" se não for (ou se a sinalização não prover esta informação). |
gsmantenna | R/O | Retorna o nível de sinal do dispositivo, de 0% a 100%, ou "unknown" se desconhecido. |
gsmerrorrate | R/O | Retorna o índice de erros de transmissão de sinal, de 0% a 7%, ou "unknown" se desconhecido. |
gsmoperatorname | R/O | Retorna o nome da operadora onde o SIM card está atualmente registrado. |
gsmregistrystatus | R/O | Retorna estado de registro do SIM card, que pode ser "notregistered", "registered", "searching", "denied", "roaming", "initializing" ou "unknown". |
gsmsimcard | R/W | Retorna o número do SIM card atualmente em uso, ou ajusta o SIM card para o número inteiro passado como valor. |
inputvolume | R/W | Lê ou ajusta o volume de entrada do canal (de -10 a +10). |
outputvolume | R/W | Lê ou ajusta o volume de entrada do canal (de -10 a +10). |
Exemplo: Lendo valores
exten => _X.,1,Set(var_collectcall=${CHANNEL(collectcall)})
Exemplo: Configurando valores (variáveis Read/Write ou R/W)
exten => _X.,1,Set(CHANNEL(inputvolume)=+5)
Lista de comandos disponíveis no console do Asterisk para o channel da Khomp:
Desconecta um ou vários canais atualmente conectados. Este comando envia uma mensagem diretamente para o canal físico do dispositivo em questão, requisitando a desconexão. Use com cautela.
Usar: khomp channels disconnect {<opções> }
Exemplo:
khomp channels disconnect all khomp channels disconnect 0 5
Mostra estados das chamadas Khomp, podendo listar também por dispositivo ou canal específico, em uma tabela contendo informações das ligações (Disponível a partir da versão: 3.0).
O identificador (hw id) é composto pelo número do dispositivo, número do canal físico (no dispositivo), número do canal lógico e número da chamada. Canais GSM possuem 5 canais lógicos e um canal de conferência, enquanto as outras sinalizações possuem apenas um canal lógico. Todas as sinalizações possuem espaço para duas chamadas por canal lógico.
Os campos chan e call referem-se ao estado do canal lógico e da chamada, enquanto orig_addr e dest_addr referem-se ao número de origem e ao número de destino da chamada, respectivamente.
O campo info mostra indicações extras sobre o canal, podendo conter:
Mostra o estado dos canais Khomp, podendo listar também por dispositivo específico.
Usar: khomp channels show {<opções>}
Exemplo:
khomp channels show khomp channels show 0 khomp channels show concise khomp channels show active 0 2
Mostra as estatísticas de ligações dos canais, ou as estatísticas de um canal específico;
Usar: khomp channels statistics {<opções>}
Exemplo:
khomp channels statistics khomp channels statistics 0 khomp channels statistics show 0 2
Limpa as estatísticas dos canais, ou as estatísticas de um dispositivo ou canal específico;
Usar: khomp channels statistics clear {<opções>}
Exemplo:
khomp channels statistics clear khomp channels statistics clear 0 khomp channels statistics clear 0 2
Desbloqueia canais bloqueados para entrada ou para saída. Somente disponível em sinalização digital via link E1.
Usar: khomp channels unblock {<opções>}
Exemplo:
khomp channels unblock all khomp channels unblock 0 all khomp channels unblock 1 20
Mostra as configurações gerais ou locais, assim como valores configurados em cada canal na tela (Disponível a partir da versão: 3.0).
Usar: khomp dump config {<opções> }
Exemplo:
khomp dump config khomp dump config 1 2
Mostra os branches (ramais) configurados em dispositivos FXS. (Disponível a partir da versão: 3.0).
Usar: khomp dump branches [{[<device>] [<canal>]}]
Exemplo:
khomp dump branches 1 1
Mostra os grupos de discagem configurados. (Disponível a partir da versão: 3.1).
Exemplo:
khomp dump groups
Gera um dump da execução do sistema. AVISO: Este comando pára a execução de todo o software por um tempo que varia de 30 segundos a 1 minuto, onde as chamadas nem o áudio será processado. Use este comando apenas para se necessário, em depuração e testes. (Disponível a partir da versão: 3.1).
Ativa ou desativa os kommuters ligados via USB ou inseridos nos dispositivos EBS nesta máquina. Somente acessível quando a configuração "kommuter-activation" estiver setada como "manual". Todos os kommuters são configurados com o tempo de reconexão definidos em "kommuter-timeout". Disponível a partir da versão: 2.4.1.
Usar: khomp kommuter {<opções>}
Exemplo:
khomp kommuter status khomp kommuter on khomp kommuter off
Mostra o número de kommuters conectados nesta máquina. Disponível a partir da versão: 2.4.1. Este recurso está obsoleto desde a versão 4.0..
Mostra estado dos contadores de erro de todos os canais, ou de um dispositivo/link somente.
Usar: khomp links errors [{{<opções>} [<placa>]}]
Exemplo:
khomp links errors show khomp links errors show 1 khomp links errors concise 2
Envia um comando de reset para um determinado link E1 de um determinado dispositivo.
Usar: khomp links reset <device> <link>
Os campos têm o seguinte significado:
Exemplos:
khomp links reset 0 1
Mostra estados dos links E1 disponíveis. É possível demonstrar na opção concise para facilitar análise.
Usar: khomp links show {<opções>}
Exemplo:
khomp links show khomp links show 1 khomp links show concise 2
Ajusta opções de logs no console.
Dispõem de opções auxiliares no - que inverte a escolha de mensagens - e just, que faz com que só as mensagens especificadas na linha de comando continuem habilitadas.
Usar: khomp log console <opções>
Exemplo:
khomp log console events commands khomp log console just standard khomp log console no warnings
Ajusta opções de logs em disco.
Dispõem de opções auxiliares no - que inverte a escolha de mensagens - e just, que faz com que só as mensagens especificadas na linha de comando continuem habilitadas.
Usar: khomp log disk <opções>
Exemplo:
khomp log disk debugging
Rotaciona arquivos de log do channel.
Exemplo:
khomp log rotate
Recarrega a configuração dos logs da K3L (klog.cfg) (Disponível a partir da versão: 4.0).
Exemplo:
khomp log update
Mostra o estado atual das configurações de log, na console e disco.
Exemplo:
khomp log status
Ativa a depuração da sinalização RDSI (ISDN) (Este recurso está obsoleto desde a versão 4.0.). .
Ativa a depuração de baixo nível da API K3L (Este recurso está obsoleto desde a versão 4.0.).
Ativa a depuração de baixo nível da sinalização R2/MFC (Este recurso está obsoleto desde a versão 4.0.).
Reinicia o modem de um canal de um dispositivo GSM (Disponível a partir da versão: 3.0).
Usar: khomp modem reset <device> <canal>
Os campos têm o seguinte significado:
Exemplos:
khomp modem reset 0 3
Mostra qual SIM card está ativo em um dispositivo GSM (Disponível a partir da versão: 3.0).
Usar: khomp modem sim card [concise] <device> <canal>
Os campos têm o seguinte significado:
Exemplos:
khomp modem sim card 1 3 khomp modem sim card concise 1 3
Mostra o IMEI do modem em dispositivos GSM (Disponível a partir da versão: 3.0).
Usar: khomp modem imei [concise] <device> <canal>
Os campos têm o seguinte significado:
Exemplos:
khomp modem imei 0 0 khomp modem imei concise 0 0
Mostra o IMSI do SIM card em dispositivos GSM (Disponível a partir da versão: 4.2.4).
Usar: khomp modem imsi [concise] <device> <canal>
Os campos têm o seguinte significado:
Exemplos:
khomp modem imsi 0 0 khomp modem imsi concise 0 0
Mostra o ICCID do SIM card em dispositivos GSM (Disponível a partir da versão: 4.2.4).
Usar: khomp modem iccid [concise] <device> <canal>
Os campos têm o seguinte significado:
Exemplos:
khomp modem iccid 0 0 khomp modem iccid concise 0 0
Ativa gravação de áudio através do channel (Este recurso está obsoleto desde a versão 4.0.).
Mostra número da versão e revisão do channel.
Exemplo:
khomp revision
Seleciona o SIM card disponível nos dispositivos GSM da Khomp.
Usar: khomp select sim <device> <canal> <sim_card..>
Os campos têm o seguinte significado:
Exemplo:
khomp select sim 0 0 1
Envia comando da API K3L diretamente para o dispositivo. Apenas para depuração de problemas, pode compromenter a estabilidade do sistema se utilizado de maneira incorreta.
Envia um comando diretamente para o DSP da placa. Apenas para depuração de problemas, pode compromenter a estabilidade do sistema se utilizado de maneira incorreta (Este recurso está obsoleto desde a versão 4.0.).
Mostra opções diversas do channel da Khomp, explicadas em maiores detalhes na descrição de uso do comando ("help khomp get").
Exemplo:
khomp get fxs-global-orig
Ajusta opções diversas do channel da Khomp, explicadas em maiores detalhes na descrição de uso do comando ("help khomp set").
Exemplo:
khomp set co-dialtone-digits 0,90
Envia uma mensagem SMS utilizando canais do dispositivo GSM para um determinado número.
Usar: khomp sms <device> <destino> <mensagem..>
Os campos têm o seguinte significado:
Exemplo:
khomp sms b0 99887766 Mensagem teste Khomp. khomp sms b0c10 99887766! Mensagem teste Khomp com confirmacao de recebimento.
Imprime um sumário dos dispositivos do sistema e de suas características.
Envia uma mensagem USSD utilizando canais do dispositivo GSM.
Usar: khomp ussd <device> <mensagem>
Os campos têm o seguinte significado:
Exemplo:
khomp ussd b0 *123#
Para maiores informações e exemplos de uso, adicionar help antes dos comandos. Por exemplo: help khomp links errors.
Este capítulo trata de recursos adicionais do channel, relacionados à funcionalidades especiais presentes em algumas sinalizações.
O channel da Khomp, além de registrar um tipo de canal de comunicação "Khomp", registra também os seguintes itens:
Realiza o processo de transferência do canal atual para o ramal número' utilizando o protocolo de sinalização QSig (Single Step Call Transfer) para dispositivos E1 configurados com sinalização RDSI (ISDN), ou utiliza comando de FLASH para linhas FXO.
A sintaxe segue:
KUserTransfer(número[,opções])
Exemplos:
exten => 1234,1,KUserTransfer(2345)
exten => 1234,1,KUserTransfer(2345,t(qsig-ssct))
Os campos têm o seguinte significado:
Este recurso está obsoleto desde a versão 4.0. |
Aplicação para gravar áudio através das placas da Khomp. Esta aplicação foi criada para utilizar o recurso de gravação presente nas placas da Khomp, que pode realizar a mistura do áudio em hardware e enviá-lo diretamente para o disco. A gravação é feita apenas em formato A-Law, com cabeçalhos WAV. Caso o canal de entrada não seja um canal Khomp e a opção f não tenha sido informada, o KRecord invoca o application MixMonitor para realizar a gravação.
A sintaxe da aplicação é a seguinte:
KRecord([arquivo[|opções[|outras-opções]]])
Os campos têm o seguinte significado:
Exemplos:
exten => 1234,1,KRecord(teste.wav) exten => 1234,1,KRecord(teste.wav|f)
Este recurso está obsoleto desde a versão 4.0. |
Pára a gravação de áudio iniciada anteriormente pela aplicação KRecord. A sintaxe da aplicação é a seguinte:
KStopRecord()
Esta aplicação não recebe parâmetros. Exemplo de utilização:
exten => 1234,1,KStopRecord()
Esta aplicação tem a função de enviar mensagens SMS através dos dispositivos GSM da Khomp, utilizando os módulos e SIM cards presentes no dispositivo para tal. A sintaxe da aplicação é a seguinte:
KSendSMS(recurso|destino[/opções][|mensagem])
Podendo cada campo ser resumido em:
Após o envio da mensagem, as variáveis KSmsDelivered e KSmsErrorCode conterão o resultado do envio e a variável KSmsReference conterá o número de identificação da mensagem. Para maiores informações sobre estas, favor consultar a seção sobre as variáveis utilizadas no channel.
Exemplos de uso desta aplicação seguem abaixo:
exten => [...],1,NoOp(Enviando SMS...) exten => [...],n,KSendSMS(b0c1|99887766|Mensagem de teste.)
exten => [...],1,NoOp(Enviando SMS...) exten => [...],n,KSendSMS(b0|99887766|Mensagem de teste.) exten => [...],n,NoOp(Enviou? ${KSmsDelivered}) exten => [...],n,NoOp(Codigo: ${KSmsErrorCode}) exten => [...],n,NoOp(Descr.: ${KSmsErrorName}) ; a partir do channel 3.0 exten => [...],n,NoOp(ID: ${KSmsReference}) ; a partir do channel 4.2
exten => [...],1,NoOp(Enviando SMS...) exten => [...],n,KSendSMS(b0+b1|99887766|Mensagem de teste.)
exten => [...],1,NoOp(Enviando SMS...) exten => [...],n,KSendSMS(b0|99887766/c|Mensagem de teste.)
exten => [...],1,NoOp(Enviando SMS...) exten => [...],n,KSendSMS(b0|99887766/ac|Mensagem de teste.)
exten => [...],1,NoOp(Enviando SMS...) exten => [...],n,KSendSMS(b0|99887766/e(8)cw(www.teste.com)|Visite este site:)
exten => [...],1,NoOp(Enviando SMS...) exten => [...],n,KSendSMS(b0|99887766/e(8)w(www.teste.com)p(1234))
Esta aplicação tem a função de enviar mensagens USSD através dos dispositivos GSM da Khomp, utilizando os módulos e SIM cards presentes no dispositivo para tal. A sintaxe da aplicação é a seguinte:
KSendUSSD(recurso|mensagem)
Podendo cada campo ser resumido em:
Após o envio da mensagem, as variáveis KUssdDelivered, KUssdErrorCode e KUssdErrorName conterão o resultado do envio. Para maiores informações sobre estas, favor consultar a seção sobre as variáveis utilizadas no channel.
Exemplo de uso:
exten => [...],1,NoOp(Enviando USSD...) exten => [...],n,KSendUSSD(b0|*123#) exten => [...],n,NoOp(Enviou? ${KUssdDelivered}) exten => [...],n,NoOp(Codigo: ${KUssdErrorCode}) exten => [...],n,NoOp(Descr.: ${KUssdErrorName})
Esta aplicação tem a função de habilitar ou desabilitar o cancelador de eco do canal.
Sintaxe atualizada da aplicação (Disponível a partir da versão: 2.4.1):
KEchoCanceller(ação[,opções])
Sintaxe anterior:
KEchoCanceller(ação)
Onde:
Exemplo de uso desta aplicação:
exten => [...],n,KEchoCanceller(off)
Esta aplicação tem a função de habilitar ou desabilitar o controle automático de ganho no canal.
Sintaxe atualizada da aplicação (Disponível a partir da versão: 2.4.1):
KAutoGainControl(ação[,opções])
Sintaxe anterior:
KAutoGainControl(ação)
Onde:
Exemplo de uso desta aplicação:
exten => [...],n,KAutoGainControl(on)
Esta aplicação tem a função de habilitar ou desabilitar a supressão de DTMF do canal. A sintaxe da aplicação é a seguinte:
Sintaxe atualizada da aplicação (Disponível a partir da versão: 2.4.1):
KDTMFSuppression(ação[,opções])
Sintaxe anterior:
KDTMFSuppression(ação)
Onde:
É importante notar que quando desabilitada a supressão de DTMF, os DTMFs serão passados inband. Isso significa que pode haver duplicação de dígitos (inband e out-of-band), ocasionando mau funcionamento de aplicações externas.
Exemplo de uso desta aplicação:
exten => [...],n,KDTMFSuppression(off)
Este recurso está disponível a partir da versão: 4.1. |
Esta aplicação tem a função de habilitar ou desabilitar a detecção e geração de DTMFs "out-of-band" do canal, enviando-os exclusivamente "inband". A sintaxe da aplicação é a seguinte:
Sintaxe da aplicação:
KOutOfBandDTMF(ação[,opções])
Onde:
É importante notar que quando desabilitado o mecanismo de DTMFs out-of-band, os DTMFs não serão mais reportados ao Asterisk. Dessa forma o Asterisk não reconhecerá os DTMFs, o que pode ocasionar em mau funcionamento de aplicações como por exemplo, URAs.
Exemplo de uso desta aplicação:
exten => [...],n,KOutOfBandDTMF(off)
Esta aplicação tem a função de ajustar o volume de entrada e saída de canais da Khomp, sendo a sua sintaxe a seguinte:
KSetVolume(<volume>) KSetVolume(<input-volume>|<output-volume>)
Onde os campos possuem o seguinte significado:
Esta aplicação tem a função de ajustar um canal da Khomp para o recebimento de sinal de FAX/modem, otimizando o canal de comunicação para o tráfego de dados. Sintaxe:
KAdjustForFax()
Esta aplicação não recebe parâmetros. Exemplo de utilização:
exten => 1234,1,KAdjustForFax()
Disponível até a versão: 3.1 |
Esta aplicação tem a função de enviar fax utilizando canais digitais ou FXO da Khomp em ligações pré-estabelecidas, sendo a sua sintaxe a seguinte:
KSendFax(<arquivo>[:<arquivo2>[:...]][|<faxid>])
Esta aplicação necessita de uma licença adquirida à parte para ser utilizada em canais digitais. Os campos possuem os seguintes significados:
Exemplo de uso desta aplicação:
exten => [...],n,KSendFax(/tmp/fax.tif:/home/root/fax2.tif,1234)
Disponível até a versão: 3.1 |
Esta aplicação tem a função de receber fax utilizando canais digitais ou FXO da Khomp, sendo a sua sintaxe a seguinte:
KReceiveFax(<arquivo>[|<faxid>])
Esta aplicação necessita de uma licença adquirida à parte para ser utilizada em canais digitais. Os campos possuem os seguintes significados:
Exemplo de uso desta aplicação:
exten => [...],n,Answer() exten => [...],n,KReceiveFax(/tmp/fax.tif)
Aplicação para selecionar um SIM card em dispositivos GSM.
A sintaxe da aplicação é a seguinte:
KSelectSimCard([<dispositivo>|<canal>|]<sim_card>[|wait])
Os campos têm o seguinte significado:
Observação: o parâmetro wait está disponível somente a partir da versão 4.0.
Exemplos:
exten => 1234,1,KSelectSimCard(0|2|1) exten => 1234,1,KSelectSimCard(0|2|1,wait)
Este recurso está obsoleto desde a versão 4.0. |
Esta aplicação tem a função de enviar texto utilizando o recurso TDD (Disponível a partir da versão: 3.1), sendo a sua sintaxe a seguinte:
KSendTDD(<text>)
Exemplo:
exten => [...], n, KSendTDD(Hello world!)
Este recurso está obsoleto desde a versão 4.0. |
Esta aplicação tem a função de receber texto utilizando o recurso TDD (Disponível a partir da versão: 3.1), sendo a sua sintaxe a seguinte:
KReceiveTDD([timeout])
Este canal de comunicação é utilizado para receber mensagens SMS e criar ligações entrantes no Asterisk para cada mensagem recebida. Este canal não possui qualquer tipo de tratamento ou processamento de áudio, e é chamado com cinco variáveis ajustadas:
O processamento do dialplan do Asterisk pode ser utilizado para guardar esta mensagem em um banco de dados, executar alguma aplicação, entre outros. Entretanto, a única ação aceita por este channel é desligamento (hangup) - ou seja, esta ligação entrante não pode ser considerada uma ligação comum.
Este canal de comunicação é utilizado para receber mensagens USSD e criar ligações entrantes no Asterisk para cada mensagem recebida. Este canal não possui qualquer tipo de tratamento ou processamento de áudio e é chamado com uma variável ajustada:
O processamento do dialplan do Asterisk pode ser utilizado para guardar esta mensagem em um banco de dados, executar alguma aplicação, entre outros. Entretanto, a única ação aceita por este channel é desligamento (hangup) - ou seja, esta ligação entrante não pode ser considerada uma ligação comum.
Este canal de comunicação é utilizado para receber ligações em dispositivos de gravação passiva (família KPR e KFXO-HI), criando ligações entrantes no Asterisk para cada chamada recebida. Este canal permite apenas o recebimento de áudio capturado do link, não permitindo tanto o envio de mensagens de áudio quanto o de sinalizações de controle.
O processamento do dialplan do Asterisk pode ser utilizado para gravar dados sobre esta ligação em um banco de dados, executar alguma aplicação especial e/ou algum application de gravação (como o Monitor, o MixMonitor, ou o Record), entre outros. Entretanto, a única ação aceita por este channel é desligamento (hangup) - ou seja, esta ligação entrante não pode ser considerada uma ligação comum.
A interface de gerenciamento AMI permite a um programa externo controlar o Asterisk e as ligações gerenciadas pelo mesmo. Para facilitar este gerenciamento o channel da Khomp disponibiliza as seguintes facilidades:
Os comandos AMI permitem ao channel realizar funções auxiliares e/ou de ligações através de um programa externo. Os comandos disponibilizados são os seguintes:
Este recurso está disponível somente a partir da versão 4.0.
Quando disponível mais de um SIM card por canal no dispositivo GSM, este comando possibilita selecionar qual chip será usado pelo canal GSM. Campos necessários para este comando:
Observe que selecionar um identificador inválido ou um chip que já está selecionado é tratado pela interface de gerenciamento como sendo um erro.
Quando o processo de seleção do novo chip termina, o evento SIMSelectionFinished é retornado indicando o sucesso ou não da operação.
Exemplo:
action: KSelectSIMCard channel: B0C0 simcard: 1 Response: Success Message: SIM card selection command sent action: KSelectSIMCard channel: B0C0 simcard: 1 Response: Error Message: SIM card already selected
Este recurso está disponível somente na versão 4.0.
Quando permitido pela operadora, este comando configura a restrição do número de origem das ligações efetuadas. Campos necessários para este comando:
Exemplos:
action: KGSMPresentation channel: B0C3 presentation: restricted Response: Success Message: Channel "B0C3" presentation set to "restricted"
action: KGSMPresentation channel: B0C3 Response: Success Message: Channel "B0C3" presentation is set to "restricted"
Envia mensagens SMS através de canais do dispositivo GSM da Khomp. Campos necessários para este comando:
Campos opcionais:
As respostas esperadas para este comando são duas: Success ou Error. Sendo a primeira indicando que a mensagem foi enviada com sucesso pelo modem, e a segunda indicando que houve erro no envio e detalhando o erro no campo Message. Em caso de sucesso o número de identificação da mensagem é apresentado no campo Message Reference. Quando mais de uma mensagem é enviada (mensagens concatenadas) os números de identificação são apresentados separados por ;.
Exemplos:
action: KSendSMS device: b0c0 destination: 88888888 message: Teste Response: Success Message: Message sent Message Reference: 8 Channel: B0C0
action: KSendSMS device: b0 destination: 88888888 message: Teste Response: Error Message: No free channel found Channel: B0C0
action: KSendSMS device: b0 destination: 88888888 message: Teste async: true Response: Success Message: SMS successfully queued Event: KSendSMSResponse Privilege: command,all Response: Success Message: Message sent Message Reference: 9 Channel: B0C0
Action: KSendSMS Device: b0c0 Destination: 88888888 Encoding: 16 Message: Teste de envio de sms, na codificação 16bits.
Action: KSendSMS Device: b0c0 Destination: 88888888 Linefeed: true Message: Teste quebra de linha\nlinha2\nlinha3.
Envia mensagens USSD através de canais do dispositivo GSM da Khomp. Campos necessários para este comando:
As respostas esperadas para este comando são duas: Success ou Error. Sendo a primeira indicando que a mensagem foi enviada com sucesso pelo modem e a segunda indicando que houve erro no envio e detalhando o erro no campo Message.
Exemplo:
action: KSendUSSD device: b0c0 message: *123# Response: Success Message: Message sent Channel: B0C0
Permite desligar chamadas forçando um envio de comando diretamente para o dispositivo, utilizando índices de chamadas do dispositivo GSM da Khomp. Campos necessários para este comando:
Permite que mensagens UUI (User-to-User Information) sejam enviadas através de um canal ISDN segundo o padrão Q.931. Os campos utilizados para este comando são:
Este recurso está disponível somente a partir da versão 4.2.4.
Permite o envio de dígitos DTMF em canais FXS que estejam "Off Hook". Campos necessários para este comando:
Exemplo:
Action: KDialOffHook Channel: b0c1 Number: 200
Response: Success Message: KDialOffHook
Os eventos de AMI permitem ao channel comunicar eventos de ligações a um programa/aplicação externo que realiza o gerenciamento e/ou controle das ligações presentes no sistema. Os eventos disponibilizados são os seguintes:
Reporta notificação de alarme em canal. Contém as seguintes informações:
Reporta notificação de fim de alarme em canal. Contém as seguintes informações:
Reporta detecção de atendimento no canal. Contém as seguintes informações:
Reporta alterações no nível de sinal da antena GSM; dísponível apenas em dispositivos GSM. Contém as seguintes informações:
Reporta o registro bem sucedido do modem em uma operadora GSM. Disponível apenas em dispositivos GSM. Contém as seguintes informações:
Reporta que ramal está fora do gancho; disponível apenas em dispositivos KFXS. Contém as seguintes informações:
Reporta que ramal está no gancho; disponível apenas em dispositivos KFXS. Contém as seguintes informações:
Reporta detecção de chamada a cobrar. Contém as seguintes informações:
Reporta que há uma nova mensagem SMS no dispositivo; dísponível apenas em dispositivos GSM. Contém as seguintes informações:
Os campos abaixo são adicionais, e vem setados caso a mensagem recebida é parte de uma mensagem com mais de 160 caracteres:
OBS: Este evento só é enviado caso exista um contexto de recebimento de ligações SMS ajustado no dialplan; caso contrário, as mensagem SMS são mantidas no SIM card, evitando assim a perda destas mensagens.
Reporta que há uma nova mensagem SMS do tipo confirmação no dispositivo; disponível apenas em dispositivos GSM. Contém as seguintes informações:
OBS: Este evento só é enviado caso exista um contexto de recebimento de ligações SMS ajustado no dialplan; caso contrário, as mensagem SMS são mantidas no SIM card, evitando assim a perda destas mensagens.
Reporta que há uma nova mensagem SMS do tipo broadcast no dispositivo; disponível apenas em dispositivos GSM. Contém as seguintes informações:
OBS: Este evento só é enviado caso exista um contexto de recebimento de ligações SMS ajustado no dialplan; caso contrário, as mensagens SMS são mantidas no SIM card, evitando assim a perda destas mensagens.
Reporta que há uma nova mensagem USSD no dispositivo; dísponível apenas em dispositivos GSM. Contém as seguintes informações:
Este recurso está disponível somente na versão 4.0.
Reporta o sucesso ou não do processo de seleção de SIM card. Este evento sempre será recebido quando o comando de AMI KSelectSIMCard for enviado ou no próprio dialplan seja utilizada a aplicação KSelectSIMCard.
Reporta a causa de desconexão de uma chamada em um canal Khomp.
Indica que a ligação do canal sofreu transferência no PABX (informação obtida através do protocolo QSIG).
Para facilitar a utilização do channel da Khomp, são fornecidos comandos AGI para determinadas funções, listados abaixo:
É um comando AGI para envio de mensagens SMS através do channel, utilizando codificação ISO-8859-1. O comando têm a seguinte sintaxe:
ksendsms <recurso> <destino> <mensagem>
Onde os campos têm o seguinte significado.
O código de retorno deste comando, em caso de sucesso, é:
200 result=1
Em caso de falha, o retorno é:
200 result=0 (<código-de-erro>)
Onde <código-de-erro> é um código definido pela API K3L, por exemplo:
200 result=0 (kgccUnallocatedNumber)
Caso o número de destino seja inexistente. Para maiores detalhes, favor consultar o capítulo seguinte, "Códigos e significados".
É um comando AGI para envio de mensagens USSD através do channel. O comando têm a seguinte sintaxe:
ksendussd <recurso> <mensagem>
Onde os campos têm o seguinte significado.
O código de retorno deste comando, em caso de sucesso, é:
200 result=1
Em caso de falha, o retorno é:
200 result=0 (<código-de-erro>)
Onde <código-de-erro> é um código definido pela API K3L, por exemplo:
200 result=0 (30,No network service)
Caso o serviço seja inexistente. Para maiores detalhes, favor consultar o capítulo seguinte, "Códigos e significados".
Este comando permite que mensagens UUI (User-to-User Information) sejam enviadas através de um canal ISDN segundo o padrão Q.931.
A utilização é feita da seguinte forma:
kuui <dispositivo> <protocolo> <mensagem>
onde:
Este recurso está obsoleto desde a versão 4.0. |
Desde a versão 4.0 do Channel Khomp, os recursos para a utilização de multiparty em canais GSM não estão mais disponíveis. Para mais informações sobre estes recursos em versões anteriores ao Channel Khomp 4.0, acesse: Recurso Multiparty.
Para alguns recursos disponibilizados pelo channel - como no caso da detecção e reportação de atendimento por caixa postal e secretária eletrônica - pode ser necessário o uso de patches para o Asterisk®, que visam extender as capacidades deste software para atender melhor às necessidades do channel da Khomp.
Estes patches encontram-se na distribuição do código-fonte do channel da Khomp, em um diretório denominado patches, onde cada diretório contém patches para uma ou mais versões do Asterisk®, e arquivos de documentação explicando suas funcionalidades.
Para aplicar estes patches, deve-se seguir estes procedimentos básicos:
$ tar -zxvf asterisk-1.x.y.tar.gz
$ cd asterisk-1.x.y
$ patch -p0 < patch-xyzw.diff
Este capítulo apresenta os códigos presentes no channel da Khomp e seus significados, utilizados tanto nos eventos AMI quanto nos comandos de console:
Refletem o estado do canal relativo ao dispositivo. No caso de links E1, o estado pode ter uma ou mais das seguintes opções:
No caso de um canal FXS, o estado é definido por um destes valores:
No caso de um canal GSM, o estado também é definido por um dos valores a seguir:
E no caso de um canal FXO, os estados serão os seguintes:
Define o estado de cada canal relativo ao software, que pode ser:
Reflete diretamente o estado de chamada controlado pelo Asterisk, que pode ser:
Os seguintes códigos numéricos são reportados:
1 Unassigned number 8 Operator determined barring 10 Call barred 21 SMS transfer rejected 27 Destination out of service 28 Unidentified subscriber 29 Facility rejected 30 Unknown subscriber 38 Network out of order 41 Temporary failure 42 Congestion 47 Resources unavailable 50 Facility not subscribed 69 Facility not implemented 81 Invalid SMS transfer reference value 95 Invalid message 96 Invalid mandatory information 97 Message type non existent 98 Message not compatible with SMS protection state 99 Information element non existent 111 Protocol error 127 Interworking 128 Telematic interworking not supported 129 SMS type zero not supported 130 Cannot replace SMS 143 Unspecified TPPID error 144 Alphabet not supported 145 Message class not supported 159 Unspecified TPDCS error 160 Command cannot be actioned 161 Command unsupported 175 Unspecified TP command error 176 TPDU not supported 192 SC busy 193 No SC subscription 194 SC system failure 195 Invalid SME address 196 Destination SME barred 197 SM rejected duplicate SM 198 TPVPF not supported 199 TPVP not supported 208 SIM SMS storage full 209 No SMS storage capability in SIM 210 Error in SMS 211 Memory capatity exceeded 213 SIM data download error 255 Unspecified error 300 Phone failure 301 SMS service reserved 302 Operation not allowed 303 Operation not supported 304 Invalid PDU mode parameter 305 Invalid text mode parameter 310 SIM not inserted 311 SIM PIN necessary 312 Phone SIM PIN necessary 313 SIM failure 314 SIM busy 315 SIM wrong 320 Memory failure 321 Invalid memory index 322 Memory full 330 SMSC address unknown 331 No network service 332 Network timeout 500 Unknown error 512 Network busy 513 Invalid destination address 514 Invalid message body length 515 Phone is not in service 516 Invalid preferred memory storage 517 User terminated
1 Unallocated number 3 No route to destination 6 Channel unacceptable 8 Operator determined barring 16 Normal call clear 17 User busy 18 No user responding 19 No answer from user 21 Call rejected 22 Number changed 26 Non Selected user clear 27 Destination out of order 28 Invalid number format 29 Facility rejected 30 Response status enquiry 31 Normal, unspecified 34 No circuit channel available 38 Network out of order 41 Temporary failure 42 Switch congestion 43 Access information discarded 44 Requested channel unavailable 47 Resource unavailable 49 QoS unavailable 50 Request facility not subscribed 55 Call barred with UG 57 Bearer capability not authorized 58 Bearer capability not available 63 Service not available 65 Bearer capability not implemented 69 Request facility not implemented 70 Only restricted bearer capability available 79 Service not implemented 81 Invalid call reference value 82 User not member of UG 88 Incompatible destination 91 Invalid transit network selected 95 Invalid message 96 Missing mandatory information element 97 Message type not implemented 98 Message incompatible with state 99 Information element not implemented 100 Invalid information element 101 Message incompatible with state (2) 102 Recovery on timer expiry 111 Protocol error 127 Interworking
0 Phone failure 1 No connection to phone 2 Phone adaptor link reserved 3 Operation not allowed 4 Operation not supported 5 Phone SIM PIN required 6 Phone FSIM PIN required 7 Phone FSIM PUK required 10 SIM not inserted 11 SIM PIN required 12 SIM PUK required 13 SIM failure 14 SIM busy 15 SIM wrong 16 Incorrect password 17 SIM PIN2 required 18 SIM PUK2 required 20 Memory full 21 Invalid index 22 Not found 23 Memory failure 24 Text string too long 25 Invalid character in text string 26 Dial string too long 27 Invalid character in dial string 30 No network service 31 Network timeout 32 Network not allowed 33 Command aborted 34 Number parameter instead of text parameter 35 Text parameter instead of number parameter 36 Numeric parameter out of bounds 37 Text string too short 40 Network PIN required 41 Network PUK required 42 Network subset PIN required 43 Network subset PUK required 44 Network service provider PIN required 45 Network service provider PUK required 46 Corporate PIN required 47 Corporate PUK required 60 SIM Service option not supported 100 Unknown 103 Illegal MS #3 106 Illegal MS #6 107 GPRS service not allowed #7 111 PLMN not allowed #11 112 Location area not allowed #12 113 Roaming not allowed #13 132 Service option not supported #32 133 Registration service option not subscribed #33 134 Service option temporary out of order #34 147 Long context activation 148 Unspecified GPRS error 149 PDP authentication failure 150 Invalid mobile class 151 GPRS disconnection TMR active 256 Too many active calls 257 Call rejected 258 Unanswered call pending 259 Unknown calling error 260 No phone number recognized 261 Call state not idle 262 Call in progress 263 Dial state error 264 Unlock code required 265 Network busy 266 Invalid phone number 267 Number entry already started 268 Cancelled by user 269 Number entry could not be started 280 Data lost 281 Invalid message body length 282 Inactive socket 283 Socket already open
Nesta seção, erros e suas soluções mais comuns são apresentados.
Durante a instalação do channel da Khomp, podem ocorrer as seguintes mensagens:
K3L: WARNING: Unable to find a module for [...]
ou
install: ****** THE KERNEL MODULE HAS NOT BEEN INSTALLED: ******* install: install: ** Please, untar the file kpdriver*.tar.gz located in: ** install: ** '/usr/src/khomp/' ** install: ** then check the README.txt ** install: ** for knowing how to proceed with the installation. **
Neste caso, será necessário compilar os drivers manualmente para o seu sistema. Prossiga para o item abaixo para maiores informações.
Basta seguir ao diretório /usr/src/khomp, descompactar o arquivo "kpdriver_AAAAMMDD_XXXX.tar.gz", e acompanhar procedimentos descritos no arquivo README.txt.
Após realizar a compilação e a instalação do módulo, basta carregá-lo no sistema, configurar os dispositivos, e iniciar o(s) servidor(es) de processos da Khomp.
Para carregar o driver de kernel, é necessário executar o seguinte comando:
# /etc/init.d/khompdrv start
Utilize o KWebPortal para configurar os dispositivos no Channel 4.0, e em versões anteriores é necessário executar o comando:
# khompwizard
Isto executará um assistente de configuração, que irá perguntar a sinalização utilizada no sistema, bem como outros parâmetros de utilização das placas.
Caso seja necessário configurar outros parâmetros adicionais em versões anteriores ao Channel 4.0, pode-se utilizar o seguinte comando:
# k3lconfig
Este configurador, por sua vez, mostra todas as opções possíveis de configuração da placa. Os parâmetros que não forem configurados assumem os valores padrão automaticamente, e são compatíveis com a maior parte dos sistemas. Maiores detalhes sobre este programa podem ser obtidos na seção de número '2'.
noload => chan_khomp.so
Por fim, para carregar o servidor de processos no Channel 4.0, basta executar o seguinte comando:
# k3lserver start
Em versões anteriores ao Channel 4.0, basta executar o comando:
# kserver start
Após realizar estes procedimentos, o channel já estará operacional, e o Asterisk já pode ser carregado.
No Channel 4.0, os parâmentros especiais de sincronismo e/ou sinalização são configurados no KWebPortal descrito no seu respectivo Manual do Usuário.
Para configurar parâmetros especiais de sincronismo e/ou sinalização em versões anteriores ao Channel 4.0, é possível utilizar o programa "k3lconfig": basta selecionar a placa desejada, e as opções das placas serão apresentadas, divididas em seções e subseções para facilitar o acesso. Não é necessário efetuar a configuração de todos os parâmetros: os valores padrão são assumidos, caso não sejam configurados. Para ajustar a sinalização do link, basta - depois de selecionar a placa - entrar na seção "Opções de sinalização", e em seguida, em "Sinalização da linha". Para escolher uma sinalização específica, basta utilizar as teclas de direcionamento (setas) até selecioná-la, pressionar 'espaço', e confirmar a opção pressionando 'Enter' sobre o botão "Confirmar". Por fim, para salvar as configurações modificadas, basta sair do programa: ele irá mostrar uma janela, com opções para salvar ou não as alterações realizadas.
É importante notar que não é necessário alterar/ativar as seguintes opções:
Estas opções são controladas pelo channel, e devem estar desabilitadas.
Se a carga dos módulos de kernel ou a inicialização dos serviços da Khomp não for realizada automaticamente na inicialização do sistema, é possível realizar esta instalação manualmente, criando links para os scripts da Khomp no diretório de inicialização do sistema. No Channel 4.0 os scripts são: /etc/init.d/khompdrv, /etc/init.d/klogserver, /etc/init.d/k3lserver, /etc/init.d/kqueryserver, /etc/init.d/kwebserver e /etc/init.d/kibs. Em versões anteriores a esse Channel os scripts são: /etc/init.d/khompdrv e /etc/init.d/kserver.
Na caso da distribuição Debian, o script de carga dos módulos de kernel seria linkado dentro do diretório /etc/rcS.d/, enquanto os outros scripts de inicialização dos serviços seria linkado dentro dos diretórios /etc/rc2.d, /etc/rc3.d, /etc/rc4.d, /etc/rc5.d.
Para o Channel 4.0:
# ln -s /etc/init.d/khompdrv /etc/rcS.d/S19khompdrv # ln -s /etc/init.d/klogserver /etc/rc2.d/S13klogserver # ln -s /etc/init.d/klogserver /etc/rc3.d/S13klogserver # ln -s /etc/init.d/klogserver /etc/rc4.d/S13klogserver # ln -s /etc/init.d/klogserver /etc/rc5.d/S13klogserver # ln -s /etc/init.d/k3lserver /etc/rc2.d/S15k3lserver # ln -s /etc/init.d/k3lserver /etc/rc3.d/S15k3lserver # ln -s /etc/init.d/k3lserver /etc/rc4.d/S15k3lserver # ln -s /etc/init.d/k3lserver /etc/rc5.d/S15k3lserver # ln -s /etc/init.d/kwebserver /etc/rc2.d/S20kwebserver # ln -s /etc/init.d/kwebserver /etc/rc3.d/S20kwebserver # ln -s /etc/init.d/kwebserver /etc/rc4.d/S20kwebserver # ln -s /etc/init.d/kwebserver /etc/rc5.d/S20kwebserver # ln -s /etc/init.d/kibs /etc/rc2.d/S20kibs # ln -s /etc/init.d/kibs /etc/rc3.d/S20kibs # ln -s /etc/init.d/kibs /etc/rc4.d/S20kibs # ln -s /etc/init.d/kibs /etc/rc5.d/S20kibs # ln -s /etc/init.d/kqueryserver /etc/rc2.d/S20kqueryserver # ln -s /etc/init.d/kqueryserver /etc/rc3.d/S20kqueryserver # ln -s /etc/init.d/kqueryserver /etc/rc4.d/S20kqueryserver # ln -s /etc/init.d/kqueryserver /etc/rc5.d/S20kqueryserver
Para versões anteriores ao Channel 4.0:
# ln -s /etc/init.d/khompdrv /etc/rcS.d/S19khompdrv # ln -s /etc/init.d/kserver /etc/rc2.d/S20kserver # ln -s /etc/init.d/kserver /etc/rc3.d/S20kserver # ln -s /etc/init.d/kserver /etc/rc4.d/S20kserver # ln -s /etc/init.d/kserver /etc/rc5.d/S20kserver
É interessante verificar as normas da sua distribuição para inicializar os serviços de acordo com o que é esperado pela inicialização da mesma.
Nesta seção, encontram-se informações úteis sobre o channel e componentes relacionados.
Os diretórios criados/modificados nesta instalação são:
/etc/init.d/ -- Scripts de inicialização; /etc/khomp/ -- Arquivos de firmware e configurações; /etc/asterisk/ -- Configurações do Asterisk e channel; /usr/doc/khomp/ -- Documentação dos dispositivos, do chan_khomp e dos utilitários; /usr/sbin/ -- Utilitários e servidor de processos; /usr/lib/ -- Bibliotecas compartilhadas da K3L; /usr/lib/asterisk/modules/ -- Módulo 'chan_khomp.so'; /var/log/khomp/ -- Diretório de logs da K3L e channel (Channel 4.0); /var/log/khomp2.2/ -- Diretório de logs da K3L e channel (Channel 3.1); /var/log/khomp2.1/ -- Diretório de logs da K3L e channel (Channel 3.0); /var/log/khomp2.0/ -- Diretório de logs da K3L e channel (Channel 2.4);
O script /etc/init.d/khompdrv é responsável por carregar os módulos kpci9030.ko e kpex8311.ko no kernel, que deve ser realizada automaticamente na inicialização do sistema. Em caso de problemas, verifique a seção Solução de problemas.
Em alguns casos, quando a instalação do Asterisk é feita por algum gerenciador de pacotes, os drivers Zaptel/DADHI podem ser carregados por padrão - mesmo não havendo necessidade. Caso estes não sejam utilizados, sugere-se que seja removidos visto questão de compatibilidade - explanadas com maior detalhamento a seguir.
Seguem os passos para verificar se o módulo está carregado e como removê-lo:
# lsmod | grep zaptel # lsmod | grep dahdi
# rmmod zaptel
ou
# rmmod dahdi
# apt-get remove zaptel
ou
# apt-get remove dahdi
Caso necessário, é possível utilizar os módulos Zaptel/DAHDI com os dispositivos da Khomp, mas para isso é necessário inicializar primeiramente os módulos da Khomp.
Isto se deve a uma incompatibilidade entre o sistema de detecção de dispositivos implementada nos drivers Zaptel/DAHDI com os dispositivos Khomp - que são incorretamente inicializados por estes - e impede a sua correta detecção pelos drivers da Khomp.