Resumo

O KQueryServer é um serviço que permite a obtenção de dados referentes à configuração e estado atual de dispositivos e da API K3L, além do envio de alguns comandos. Isso é feito através de requisições em formato pré-definido baseado no KSNMP, um agente do protocolo SNMP que fornece as informações da API K3L para consulta, no qual uma requisição é formada por números separados por pontos. Diferentemente, o KQueryServer utiliza-se de mnemônicos para indicar o dado que deseja consultar, porém respeitando a organização definida pelo KSNMP. Por exemplo, "k3l.DeviceCount" requisita a quantidade de dispositivos configurados e "k3l.DeviceType.4242" requisita o tipo do dispositivo cujo número de série é 4242. Dessa forma, pode-se obter dados do sistema através de uma conexão TCP e assim utilizar essa ferramenta para construção de scripts e/ou aplicações Web.

Para realizar a comunicação com o KQueryServer, é necessário estabelecer uma conexão com o serviço através de um Socket TCP, que por padrão utiliza a porta 14130. Nessa conexão transitam as requisições e suas respectivas respostas. Essas requisições podem ser do tipo QUERY (que requisitam uma informação do sistema) ou CMD (que enviam um comando) e possuem um formato específico como pode ser visto na seção EBS. Para informações detalhadas sobre como enviar requisições e receber respostas, vide a seção Utilizando o KQueryServer.

O KQueryServer também pode ser usado para responder requisições como um Agente Proxy para o SNMP. Dessa forma, o KQueryServer funcionará como um sub-agente compatível com Net-SNMP, trabalhando em conjunto com outros agentes presentes no sistema. A seção Utilizando o KQueryServer como Proxy SNMP explica como integrar ao Net-SNMP e a seção Requisições Disponíveis mostra a requisição SNMP equivalente a cada requisição do KQueryServer.

Na versão 3.3 da API, a interface SNMP foi reformulada para possiblitar sua formalização na forma da RFC 1213 (Management Information Base - MIB-II). A interface legada SNMP permanece sendo suportada para todas as queries definidas até esta versão. Queries implementadas após esta versão poderão ser suportadas somente no modo formalizado.

Formatos de Requisição

Requisições Simples


QUERY <string>

Envia uma requisição simples, a <string> pode ser qualquer uma das listadas na seção Códigos de retorno das funções.

Exemplo:
QUERY k3l.DeviceCount
Resposta:
3


CMD <string>

Envia um comando, a <string> pode ser qualquer uma das listadas na seção Códigos de retorno das funções.

Exemplo:
CMD k3l.ResetLink.12345.1
Resposta:
Executed


OID <object id>

Envia uma requisição simples utilizando o interpretador SNMP, permitindo utilizar qualquer item da MIB Khomp. Todos os resultados serão convertidos para string.

Exemplo (requisição k3lDeviceCount):
OID .1.3.6.1.4.1.32624.2.1.2.1.0
Resposta:
3

Requisições múltiplas

Formato novo (a partir da 3.3)

Este formato só disponível a partir da versão 3.3

REQUISIÇÃO_SIMPLES_1;REQUISIÇÃO_SIMPLES_2; ... ;REQUISIÇÃO_SIMPLES_N

Envia requisições em lote. Como separador podem ser usados os caracteres ';' ou '|', não existe distinção entre eles, servindo somente para permitir agrupamentos na resposta, ficando sua utilização à cargo do usuário, o separador utilizado na requisição será utilizado na resposta na mesma posição. Qualquer requisição simples pode ser utilizada (QUERY, CMD ou OID). Caso alguma requisição falhe, as demais serão executadas normalmente e a que falhou será indicada por um "Query failed(<causa>)" na posição referente a mesma.

Exemplo 1:
QUERY k3l.DeviceCount;QUERY k3l.Device.Type.12345;QUERY k3l.Config.Device.12345.ChannelCount
Resposta 1:
3;18;60


Exemplo 2:
OID .1.3.6.1.4.1.32624.2.1.2.1.0|QUERY k3l.Status.Connected.12345|QUERY k3l.Status.Connected.54321
Resposta 2:
3|0|1


Formato antigo (até 3.2)

Este formato não está mais disponível a partir da versão 3.3

n(QUERY <string>;)n-1QUERY <string>$


Envia requisições em lote, onde n indica o número de requisições existentes no lote e '$' indica o fim da requisição. Como separador podem ser usados os caracteres ';' ou '|', não existe distinção entre eles, servindo somente para permitir agrupamentos na resposta, ficando sua utilização à cargo do usuário. Caso alguma requisição falhe, as demais serão executadas normalmente e a que falhou será indicada por um "Query failed(<causa>)" na posição referente a mesma. Se caso o indicador de fim de lote '$' não for enviado, será retornado apenas "Batch corrupted" e nenhuma requisição será executada.

Exemplo 1:
3QUERY k3l.DeviceCount;QUERY k3l.Device.Type.12345;QUERY k3l.Config.Device.12345.ChannelCount$
Resposta 1:
3;18;60
Exemplo 2:
2QUERY k3l.Status.Connected.12345|QUERY k3l.Status.Connected.54321$
Resposta 2:
0|1
Exemplo 3:
3QUERY k3l.Status.Connected.12345;QUERY k3l.Device.TyASD.12345;QUERY k3l.ApiConfig.StrVersion$
Resposta 3:
1;Query failed(5);K3L API 3.0.0 - (rev: 11789)



Requisições Disponíveis

As requisições estão apresentadas como Query | SNMP | MIB, ou seja, o lado esquerdo do '|' mostra a query no formato de mnemônicos e, no centro, o formato correspondente para o SNMP, por fim à direita o formato utilizando a MIB. Algumas não estão disponíveis em todos os formatos.

Importante! Os parâmetros 'Link' e 'Canal' começam a contagem a partir de 1 (um) nas requisições SNMP legadas. Nas requisições que utilizam a MIB como referência, a contagem começa em 0 (zero).

Importante! Uma requisição SNMP legada deve ser iniciada por 1.3.6.1.4.1.32624. seguido pelas sequências númericas apresentadas a seguir ou KHOMP-MIB::legacy., sendo necessário remover o primeiro dígito da sequencia numérica.

Configuração

k3l.DeviceCount | 1.1.0 | KHOMP-MIB::k3lDeviceCount.0

k3l.DeviceType.X | 1.2.X.0 | KHOMP-MIB::k3lDeviceType.X

k3l.Config.Device.X.LinkCount | 1.3.1.X.1.0 | KHOMP-MIB::k3lDeviceLinkCount.X

k3l.Config.Device.X.ChannelCount | 1.3.1.X.2.0 | KHOMP-MIB::k3lDeviceChannelCount.X

k3l.Config.Device.X.EnabledChannelCount | 1.3.1.X.3.0 | KHOMP-MIB::k3lDeviceChannelCountEnabled.X

k3l.Config.Device.X.EnabledChannelCount | 1.3.1.X.3.0 | KHOMP-MIB::k3lDeviceChannelCountEnabled.X

KHOMP-MIB::k3lDeviceChannelGroupCount.X.Y

KHOMP-MIB::k3lDeviceStatsIncoming.X

KHOMP-MIB::k3lDeviceStatsOutgoing.X

KHOMP-MIB::k3lDeviceOutgoingCompleted.X

KHOMP-MIB::k3lDeviceOutgoingError.X

KHOMP-MIB::k3lDeviceRemoteDisconnect.X

KHOMP-MIB::k3lDeviceLocalDisconnect.X

KHOMP-MIB::k3lDeviceCallFailBusy.X

KHOMP-MIB::k3lDeviceCallFailNoAnswer.X

KHOMP-MIB::k3lDeviceCallFailRejected.X

KHOMP-MIB::k3lDeviceCallFailChangedNumber .X

KHOMP-MIB::k3lDeviceCallFailInvalidNumber.X

KHOMP-MIB::k3lDeviceCallFailOutOfService.X

KHOMP-MIB::k3lDeviceCallFailCongestion.X

KHOMP-MIB::k3lDeviceCallFailNetworkFailure.X

KHOMP-MIB::k3lDeviceCallFailOther.X

KHOMP-MIB::k3lConsolidatedDevicesChannelCount

KHOMP-MIB::k3lConsolidatedDevicesChannelCountEnabled

KHOMP-MIB::k3lConsolidatedDevicesChannelCountIdle

KHOMP-MIB::k3lConsolidatedDevicesChannelCountFail

KHOMP-MIB::k3lConsolidatedDevicesChannelCountBusy

KHOMP-MIB::k3lDeviceLinkChannelCount.X.Y

Este recurso está disponível a partir da versão: 3.3.

KHOMP-MIB::k3lDeviceLinkChannelCountEnabled.X.Y

Este recurso está disponível a partir da versão: 3.3.

KHOMP-MIB::k3lDeviceLinkChannelCountIdle.X.Y

KHOMP-MIB::k3lDeviceLinkChannelCountFail.X.Y

KHOMP-MIB::k3lDeviceLinkChannelCountBusy.X.Y

KHOMP-MIB::k3lDeviceLinkStatsIncoming.X.Y

KHOMP-MIB::k3lDeviceLinkStatsOutgoing.X.Y

KHOMP-MIB::k3lDeviceLinkOutgoingCompleted.X.Y

KHOMP-MIB::k3lDeviceLinkOutgoingError.X.Y

KHOMP-MIB::k3lDeviceLinkRemoteDisconnect.X.Y

KHOMP-MIB::k3lDeviceLinkLocalDisconnect.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailBusy.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailNoAnswer.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailRejected.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailChangedNumber.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailInvalidNumber.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailOutOfService.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailCongestion.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailNetworkFailure.X.Y

KHOMP-MIB::k3lDeviceLinkCallFailOther.X.Y

k3l.Config.Device.X.DeviceModel | 1.3.1.X.7.0 | KHOMP-MIB::k3lDeviceModel.X

k3l.Config.Device.X.VoIPChannelCount | 1.3.1.X.12.0 | KHOMP-MIB::k3lDeviceSipChannelCount.X

k3l.Config.Device.X.SerialNumber | 1.3.1.X.16.0

k3l.Config.Link.X.Y.Signaling | 1.3.2.X.Y.1.0 | KHOMP-MIB::k3lDeviceLinkSignaling.X.Y

k3l.Config.Link.X.Y.Name | 1.3.2.X.Y.7.0 | KHOMP-MIB::k3lDeviceLinkDescr.X.Y

k3l.Config.Link.X.Y.OperatingMode | 1.3.2.X.Y.8.0

Este recurso está disponível a partir da versão: 3.3.

k3l.Config.Link.X.Y.ReceivingClock | 1.3.2.X.Y.9.0

Este recurso está disponível a partir da versão: 3.3.

k3l.Config.Channel.X.Y.Signaling | 1.3.3.X.Y.1.0 | KHOMP-MIB::k3lDeviceChannelSignaling.X.Y

k3l.Config.Api.StrVersion | 1.3.5.7.0 | KHOMP-MIB::k3lVersionString.0

k3l.Config.Api.R2Country | 1.3.5.8.0

k3l.Config.EBS.X.String | 1.3.6.X.1.0 | KHOMP-MIB::k3lDeviceDescr.X

Este recurso está disponível a partir da versão: 3.1.

k3l.Config.EBS.X.GSMChannels | 1.3.6.X.2.0 | KHOMP-MIB::k3lDeviceGsmChannelCount.X

Este recurso está disponível a partir da versão: 3.1.

k3l.Config.EBS.X.IP | 1.3.6.X.3.0

Este recurso está disponível a partir da versão: 3.3.

KHOMP-MIB::k3lDeviceChannelGroupIndex.X.Y

KHOMP-MIB::k3lDeviceChannelGroupType.X.Y

KHOMP-MIB::k3lDeviceChannelGroupFirstChannel.X.Y

KHOMP-MIB::k3lDeviceChannelGroupChannelCount.X.Y

KHOMP-MIB::k3lDeviceChannelGroupChannelIdle.X.Y

KHOMP-MIB::k3lDeviceChannelGroupChannelFail.X.Y

KHOMP-MIB::k3lDeviceChannelGroupChannelBusy.X.Y

Estado

KHOMP-MIB::k3lDeviceLinkOperStatus.X.Y

Este recurso está disponível a partir da versão: 3.3.

k3l.Status.Link.X.Y.E1 | 1.4.1.X.Y.1.0 | KHOMP-MIB::k3lDeviceLinkAlarm.X.Y

k3l.Status.Link.X.Y.Z.E1 | 1.4.1.X.Y.Z.1.0 | KHOMP-MIB::k3lDeviceLinkAlarm.X.Y

k3l.Status.Link.X.Y.Z.Channels | 1.4.1.X.Y.Z.2.0 | KHOMP-MIB::k3lDeviceE1ChannelStatus.X.Z

KHOMP-MIB::k3lDeviceHILinkOperStatus.X.Y

Este recurso está disponível a partir da versão: 3.3.

k3l.Status.Link.X.Y.HI | 1.4.1.X.Y.3.0 | KHOMP-MIB::k3lDeviceHILinkAlarm.X.Y

Este recurso está disponível a partir da versão: 3.1.

k3l.Status.Channel.X.Y.CallStatus | 1.4.2.X.Y.1.0 | KHOMP-MIB::k3lDeviceChannelCallStatus.X.Y

k3l.Status.Channel.X.Y.AudioStatus | 1.4.2.X.Y.2.0 | KHOMP-MIB::k3lDeviceChannelAudioStatus.X.Y

k3l.Status.Channel.X.Y.AddInfo | 1.4.2.X.Y.3.0 | KHOMP-MIB::k3lDevice*ChannelStatus.X.Y

k3l.Status.Channel.X.Y.EnabledFeatures | 1.4.2.X.Y.4.0 | KHOMP-MIB::k3lDeviceChannelEnabledFeatures.X.Y

k3l.Status.Channel.X.TotalFail | 1.4.2.X.5.0 | KHOMP-MIB::k3lDeviceCountFail.X

k3l.Status.Channel.X.TotalIdle | 1.4.2.X.6.0 | KHOMP-MIB::k3lDeviceCountIdle.X

k3l.Status.Channel.X.TotalCall | 1.4.2.X.7.0 | KHOMP-MIB::k3lDeviceCountBusy.X

KHOMP-MIB::k3lDeviceLinkCountFail.X.Y

Este recurso está disponível a partir da versão: 3.3.

KHOMP-MIB::k3lDeviceLinkCountIdle.X.Y

Este recurso está disponível a partir da versão: 3.3.

KHOMP-MIB::k3lDeviceLinkCountBusy.X.Y

Este recurso está disponível a partir da versão: 3.3.

k3l.Status.Channel.X.Y.DialNumber | 1.4.2.X.8.0

Este recurso está disponível a partir da versão: 3.2.

k3l.Status.Channel.X.Y.CallDuration | 1.4.2.X.9.0

Este recurso está disponível a partir da versão: 3.2.

k3l.Status.Channel.X.Y.RecordingStatus | 1.4.2.X.10.0

Este recurso está disponível a partir da versão: 3.2.

k3l.Status.Channel.X.Y.AverageCallTime | 1.4.2.X.11.0

Este recurso está disponível a partir da versão: 3.3.

k3l.Status.LinkErrorCounter.X.Y | 1.4.4.X.Y.0 | KHOMP-MIB::k3lDeviceLinkErrorCount*.X.Y

k3l.Status.GSMChannel.X.Y.SignalStrength.Z | 1.4.5.X.Y.1.Z.0 | KHOMP-MIB::k3lDeviceGsmChannelSignalStrength.X.Y

k3l.Status.GSMChannel.X.Y.ErrorRate.Z | 1.4.5.X.Y.2.Z.0 | KHOMP-MIB::k3lDeviceGsmChannelErrorRate.X.Y

k3l.Status.GSMChannel.X.Y.RegistryStatus.Z | 1.4.5.X.Y.3.Z.0 | KHOMP-MIB::k3lDeviceGsmChannelRegistryStatus.X.Y

k3l.Status.GSMChannel.X.Y.OperName.Z | 1.4.5.X.Y.4.Z.0 | KHOMP-MIB::k3lDeviceGsmChannelOperName.X.Y

k3l.Status.GSMChannel.X.Y.UnreadSmsCount.Z | 1.4.5.X.Y.5.Z.0 | KHOMP-MIB::k3lDeviceGsmChannelUnreadSmsMessages.X.Y

k3l.Status.GSMChannel.X.Y.EnabledFeatures.Z | 1.4.5.X.Y.6.Z.0 | KHOMP-MIB::k3lDeviceGsmChannelEnabledFeatures.X.Y

k3l.Status.GSMChannel.X.Y.IMEI.Z | 1.4.5.X.Y.7.Z.0 | KHOMP-MIB::k3lDeviceGsmChannelImei.X.Y

k3l.Status.GSMChannel.X.Y.SIM.Z | 1.4.5.X.Y.8.Z.0 | KHOMP-MIB::k3lDeviceGsmChannelSim.X.Y

k3l.Status.GSMChannel.X.Y.CallStatus.Z | 1.4.5.X.Y.9.Z.0 | KHOMP-MIB::k3lDeviceGsmCallStatus.X.Y.Z

k3l.Status.GSMChannel.X.Y.IMSI.Z | 1.4.5.X.Y.10.Z.0

Este recurso está disponível a partir da versão: 3.2.4.

k3l.Status.GSMChannel.X.Y.ICCID.Z | 1.4.5.X.Y.11.Z.0

Este recurso está disponível a partir da versão: 3.2.4.

k3l.Status.Connected.X | 1.4.6.X.0

Estatística

k3l.ChannelStats.X.Y | 1.5.X.Y.0 | KHOMP-MIB::k3lDeviceChannelStats*.X.Y

VoIP

SIP

voip.GW.Profile.X.LocalAddress

voip.GW.Profile.X.LocalPort

voip.GW.Profile.X.TransportType

voip.GW.Profile.X.RTPAddress

voip.GW.Profile.X.User

voip.GW.Profile.X.AuthorizationUser

voip.GW.Profile.X.Realm

voip.GW.Profile.X.Domain

voip.GW.Profile.X.DomainPort

voip.GW.Profile.X.Proxy

voip.GW.Profile.X.ProxyPort

voip.GW.Profile.X.Registered


RTP

voip.Media.RTPStatus.X.Transmit.LastSequenceNumber

voip.Media.RTPStatus.X.Transmit.PacketCount

voip.Media.RTPStatus.X.Transmit.OctetCount

voip.Media.RTPStatus.X.Transmit.PacketLost

voip.Media.RTPStatus.X.Receive.InitialSequenceNumber

voip.Media.RTPStatus.X.Receive.LastSequenceNumber

voip.Media.RTPStatus.X.Receive.PacketCount

voip.Media.RTPStatus.X.Receive.DroppedCount

voip.Media.RTPStatus.X.Receive.LastDroppedCount


SS7

ISUP

ss7.isup.circuitGroup

ss7.isup.circuitGroup.X.opc

ss7.isup.circuitGroup.X.dpc

ss7.isup.circuitGroup.X.baseCIC

ss7.isup.circuitGroup.X.passive

ss7.isup.circuitGroup.X.circuitCount

ss7.isup.circuitGroup.X.timeslotMap

ss7.isup.circuitGroup.X.address

ss7.isup.circuitGroup.X.device

ss7.isup.circuitGroup.X.link

ss7.isup.circuitGroup.X.CCActivated

ss7.isup.circuitGroup.X.LinkActivated

ss7.isup.circuitGroup.X.MTPResumed

ss7.isup.circuitGroup.X.TResume

ss7.isup.circuitGroup.X.TPause

ss7.isup.circuitGroup.X.cic

ss7.isup.circuitGroup.X.cic.Y.cid

ss7.isup.circuitGroup.X.cic.Y.callStatus

ss7.isup.circuitGroup.X.cic.Y.T1

ss7.isup.circuitGroup.X.cic.Y.T5

ss7.isup.circuitGroup.X.cic.Y.T6

ss7.isup.circuitGroup.X.cic.Y.T7

ss7.isup.circuitGroup.X.cic.Y.T8

ss7.isup.circuitGroup.X.cic.Y.T9

ss7.isup.circuitGroup.X.cic.Y.T12

ss7.isup.circuitGroup.X.cic.Y.T13

ss7.isup.circuitGroup.X.cic.Y.T14

ss7.isup.circuitGroup.X.cic.Y.T15

ss7.isup.circuitGroup.X.cic.Y.T16

ss7.isup.circuitGroup.X.cic.Y.T17

ss7.isup.circuitGroup.X.cic.Y.T18

ss7.isup.circuitGroup.X.cic.Y.T19

ss7.isup.circuitGroup.X.cic.Y.T20

ss7.isup.circuitGroup.X.cic.Y.T21

ss7.isup.circuitGroup.X.cic.Y.T22

ss7.isup.circuitGroup.X.cic.Y.T23

ss7.isup.circuitGroup.X.cic.Y.T24

ss7.isup.circuitGroup.X.cic.Y.T25

ss7.isup.circuitGroup.X.cic.Y.T26

ss7.isup.circuitGroup.X.cic.Y.T27

ss7.isup.circuitGroup.X.cic.Y.T28

ss7.isup.circuitGroup.X.cic.Y.T34

ss7.isup.circuitGroup.X.cic.Y.T36

ss7.isup.circuitGroup.X.cic.Y.T37

ss7.isup.circuitGroup.X.cic.Y.T38

ss7.isup.license.circuitCount

ss7.isup.license.cid.X


MTP3

ss7.mtp3.linkSet

ss7.mtp3.linkSet.X.id

ss7.mtp3.linkSet.X.originPointCode

ss7.mtp3.linkSet.X.adjacentPointCode

ss7.mtp3.linkSet.X.networkIndicator

ss7.mtp3.linkSet.X.available

ss7.mtp3.linkSet.X.link

ss7.mtp3.linkSet.X.link.Y.mtp2

ss7.mtp3.linkSet.X.link.Y.slc

ss7.mtp3.linkSet.X.link.Y.Q707T1

ss7.mtp3.linkSet.X.link.Y.Q707T2

ss7.mtp3.linkSet.X.link.Y.Q704T17

ss7.mtp3.linkSet.X.link.Y.available

ss7.mtp3.linkSet.X.link.Y.inService

ss7.mtp3.linkSet.X.link.Y.activationInProgress

ss7.mtp3.linkSet.X.link.Y.activated

ss7.mtp3.linkSet.X.link.Y.blocked

ss7.mtp3.linkSet.X.link.Y.inhibited

ss7.mtp3.linkSet.X.link.Y.remoteProcessorOutage

ss7.mtp3.route

ss7.mtp3.route.X.pointCode

ss7.mtp3.route.X.linkSet


MTP2

ss7.mtp2.link

ss7.mtp2.link.X.address

ss7.mtp2.link.X.device

ss7.mtp2.link.X.link

ss7.mtp2.link.X.timeslot

ss7.mtp2.link.X.passive

ss7.mtp2.link.X.T1

ss7.mtp2.link.X.T2

ss7.mtp2.link.X.T3

ss7.mtp2.link.X.T5

ss7.mtp2.link.X.T6

ss7.mtp2.link.X.T7

ss7.mtp2.link.X.ProvingEmergency

ss7.mtp2.link.X.ProvingNormal


Point Code

ss7.pointCode

ss7.pointCode.X.first

ss7.pointCode.X.middle

ss7.pointCode.X.last

Comandos Disponíveis

k3l.ResetLink.X.Y

k3l.ClearLinkErrorCounter.X.Y

k3l.BlockLink.X.Y

k3l.ResetModem.X.Y

Este recurso está disponível a partir da versão: 3.3.

k3l.ClearChannelStats.X.Y

Este recurso está disponível a partir da versão: 3.3.


Programando com KQueryServer

O esqueleto de um programa que interage com o KQueryServer enviando requisições e recebendo respostas pode ser visto no PseudoCódigo/C++ a seguir:

socket_handle = socket( AF_INET, SOCK_STREAM, SOL_TCP );
connect( socket_handle, IP_DO_SERVIDOR_RODANDO_KQUERYSERVER, 14130 );
 
for (int i = 0; i < NUMERO_DE_REQUISICOES; i++)
{
    write( socket_handle, requisicao, strlen(requisicao) );
    recv ( socket_handle, $resposta, TAMANHO_BUFFER_RESPOSTA, MSG_WAITALL );
}
 
close( socket_handle );

Utilizando o KQueryServer como Proxy SNMP

Para integrar o KQueryServer à uma solução de SNMP já utilizada pelo usuário, será necessário somente configurar o seu agente atual para utilizar o KQueryServer como um sub-agente. Para isso, basta adicionar no arquivo snmpd.conf:

rocommunity  public
proxy -v 1 -c khomp localhost:14161 .1.3.6.1.4.1.32624

aonde:

Assim, todas as requisições que comecem com '1.3.6.1.4.1.32624' serão redirecionadas para o KQueryServer que esteja rodando no IP e porta especificados. O KQueryServer terá as mesmas funcionalidades do KSNMP (com a adição de algumas requisições atualmente não disponíveis).