FÓRUM DigiVoice

Fórum de Suporte Digivoice

Você não está logado.

#1 15/09/2009 22:51:16

vvssistemas
Membro

Intelbras 95 Digital + VB6060

Amigos,
tenho uma linha E1 da Embratel uma VB6060 e uma Central Intelbras 95 Digital.
Estou iniciando desenvolvimento de uma URA.
Ja consegui fazer funcionar a URA porem nao consegui transferir para o PABX.
Alguem tem uma dica? É o CustomCAS que devo utilizar? Tem algum exemplo em delphi?
Obrigado,
Vinicius

Offline

 

#2 16/09/2009 10:00:34

PattyC
Visitante

Re: Intelbras 95 Digital + VB6060

Vinicius,
o Intelbras, dificilmente terá a opção de ramal CAS, portanto a saida é a conexão via passthrough, ou seja, o E1 da Embratel entra na URA, por exemplo do primeiro E1 da VB6060 e o segundo E1 da placa VB6060 é conectado no PABX. Inicialmente de maneira independente. Ao receber uma chamada a URA trata e ao ter que transferir uma chamada faz uma chamada no segundo E1 para o PABX . Após o atendimento você terá que fazer a comutação do audio do primeiro E1 para o segundo com LocalBridgeConnect (que só comuta o audio). O R2 você terá que fazer na mão no evento OnR2Received.

Private Sub vlib_OnR2Received(ByVal Port As Integer, ByVal Signal As Integer)
Dim sPos As String
   
    If Port <= 30 Then
        vlib.SendR2Command Port + 30, Signal
    Else
        vlib.SendR2Command Port - 30, Signal
    End If

End Sub

habilite o recebimento de R2 com o comando  vlib.SendR2Command p, R2_ENABLEDETECTION

ou tratar os eventos do E1, tipo busy detected etc. e desligar o outro canal. Só não esqueça de tirar o localbridge dos canais com LocalBridgeDisconnect.

Obrigada
Equipe Digivoice

 

#3 17/09/2009 22:54:19

vvssistemas
Membro

Re: Intelbras 95 Digital + VB6060

Procedure TVVSTeleCom.HabilitarE1;
var
  nRet,i,j,k : Integer;
begin
  try
    for j:=1 to 60 do
    begin
      //Cria thread do protocolo R2D
      nRet := vlib.CreateE1Thread(j);

      case nRet of
        DG_EXIT_SUCCESS:
        Begin
          E1Iniciada := True;
          GeraLog(j,'Thread E1 iniciada com sucesso');
        End;

        DG_ERROR_DRIVER_CLOSED:
          GeraLog(j,'O driver não foi iniciado');

        DG_ERROR_THREAD_ALREADY_RUNNING:
          GeraLog(j,'A thread já havia sido iniciada anteriormente');

        DG_FEATURE_NOT_SUPPORTED:
          GeraLog(j,'Comando enviado para uma placa FXO e não E1');

        DG_ERROR_FIFO_UNAVAILABLE:
          GeraLog(j,'Erro na criação da estrutura de comunicação da thread');

        DG_ERROR_COULD_NOT_CREATE_THREAD:
          GeraLog(j,'Falha na inicialização da thread');
      end;
    end;

    for i:=1 to vlib.GetCardsCount do
    begin
      //Configura o H100 como placa MASTER com sincronismo externo no E1 A (Primeiro E1)
      vlib.SetCardSyncMode(i, SYNC_LINE_A);
      //Configura para que o evento OnE1Alarm ocorra automaticamente sempre quando um alarme for detectado
      vlib.SetAlarmMode(i, ALARM_AUTOMATIC_NOTIFY);
    end;
    for k:=1 to 60 do
    begin

      vlib.CreateCallProgress(k,'cp_default.cfg');
      vlib.EnableCallProgress(k,CP_ENABLE_ALL);

      //Categoria do Assinante
      vlib.ConfigE1Thread(k, E1CFG_GROUP_II,1);

      vlib.SetDetectionType(k, DETECT_DTMF,1);
      //Seta o Bina
      vlib.SetPortID(k, '2134059500');
      //Numero total de digitos a receber
      vlib.ConfigE1Thread(k, E1CFG_MAXDIGITS_RX,4);
      //Status Grupo B
      vlib.ConfigE1Thread(k, E1CFG_GROUP_B,1);
      //Em ligacoes de entrada, pede bina apos o 2 digito
      vlib.ConfigE1Thread(k, E1CFG_SEND_ID_AFTERDIGIT,2);
    end;
  except
    Application.MessageBox('Erro na Criação das Threads E1', 'Except', mb_OK);
  end;
end;

Offline

 

#4 17/09/2009 22:55:27

vvssistemas
Membro

Re: Intelbras 95 Digital + VB6060

Desculpe:

Mensagem completa:

Obrigado pela resposta.
Ainda não consegui transferir ligação externa para interna.
Vou explicar como é a aplicação.
1) Usuario recebe Prompt
2) Usuario recebe menu
3) Aplicacao deve transferir para alguns ramal
Parei neste item pois quando executo o MakeCall recebo os eventos:
50 - OnCallStateChange -> Flash Inicial para Transferencia
50 - OnCallStateChange -> Esperando tom de discagem...

Como devo usar o LocaBridgeConnect?
No inicio da aplicacao Ligo 1 com 31, 2 com 32 e assim por diante? ou somente quando precisar?
No meu teste fiz assim:
Logo apos receber opcao do menu..
Executo o metodo abaixo:
O parametro porta é a porta que recebi a ligação...executo makecall com outra porta.
Se estiver correto tenho a duvida...se a "porta+30" estiver ocupada?
O ideal seria eu verificar uma porta livre ou assim esta correto?
Se quiser posso enviar todo projeto para voces...

Procedure TVVSTeleCom.TransfereParaGrupo(Porta: Integer; Grupo: String);
var
  nRet: Integer;
Begin
  GeraLog(Porta,'Transfere para Grupo('+Grupo+')');

  nRet:= vlib.SetCallNoAnswerRingCount(Porta,10);
  if nRet <> DG_EXIT_SUCCESS then
    GeraLog(Porta,'Erro quantidade de rings a serem considerados como não atendimento. Código: '+ inttostr(nRet));

  // Configura as opções após a deteção de atendimento do método MakeCall
   nRet:= vlib.SetCallAfterAnswer(Porta, '',
     1000, True);
  if nRet <> DG_EXIT_SUCCESS then
    GeraLog(Porta,'Erro nas configurações das opções após a deteção de atendimento do método MakeCall . Código: '+ inttostr(nRet));

  // Efetua chamada passando as opções do MakeCall
  GeraLog(Porta,'Executando MakeCall');
  vlib.StopRecordFile(Porta);
  vlib.DisableInputBuffer(Porta);
  nRet:= vlib.MakeCall(Porta+30, ctWithFlash,Grupo,'Transferindo para grupo('+Grupo+')...', true,dtTone);
  vlib.LocalBridgeConnect(Porta,Porta+30);
//  if nRet <> DG_EXIT_SUCCESS then
//    GeraLog(Porta,'Erro durante a execução do MakeCall. Chamada externa.');
End;


Codigo usado apois iniciar o voice lib:

Procedure TVVSTeleCom.HabilitarE1;
var
  nRet,i,j,k : Integer;
begin
  try
    for j:=1 to 60 do
    begin
      //Cria thread do protocolo R2D
      nRet := vlib.CreateE1Thread(j);

      case nRet of
        DG_EXIT_SUCCESS:
        Begin
          E1Iniciada := True;
          GeraLog(j,'Thread E1 iniciada com sucesso');
        End;

        DG_ERROR_DRIVER_CLOSED:
          GeraLog(j,'O driver não foi iniciado');

        DG_ERROR_THREAD_ALREADY_RUNNING:
          GeraLog(j,'A thread já havia sido iniciada anteriormente');

        DG_FEATURE_NOT_SUPPORTED:
          GeraLog(j,'Comando enviado para uma placa FXO e não E1');

        DG_ERROR_FIFO_UNAVAILABLE:
          GeraLog(j,'Erro na criação da estrutura de comunicação da thread');

        DG_ERROR_COULD_NOT_CREATE_THREAD:
          GeraLog(j,'Falha na inicialização da thread');
      end;
    end;

    for i:=1 to vlib.GetCardsCount do
    begin
      //Configura o H100 como placa MASTER com sincronismo externo no E1 A (Primeiro E1)
      vlib.SetCardSyncMode(i, SYNC_LINE_A);
      //Configura para que o evento OnE1Alarm ocorra automaticamente sempre quando um alarme for detectado
      vlib.SetAlarmMode(i, ALARM_AUTOMATIC_NOTIFY);
    end;
    for k:=1 to 60 do
    begin

      vlib.CreateCallProgress(k,'cp_default.cfg');
      vlib.EnableCallProgress(k,CP_ENABLE_ALL);

      //Categoria do Assinante
      vlib.ConfigE1Thread(k, E1CFG_GROUP_II,1);

      vlib.SetDetectionType(k, DETECT_DTMF,1);
      //Seta o Bina
      vlib.SetPortID(k, '2134059500');
      //Numero total de digitos a receber
      vlib.ConfigE1Thread(k, E1CFG_MAXDIGITS_RX,4);
      //Status Grupo B
      vlib.ConfigE1Thread(k, E1CFG_GROUP_B,1);
      //Em ligacoes de entrada, pede bina apos o 2 digito
      vlib.ConfigE1Thread(k, E1CFG_SEND_ID_AFTERDIGIT,2);
    end;
  except
    Application.MessageBox('Erro na Criação das Threads E1', 'Except', mb_OK);
  end;
end;

Offline

 

#5 29/09/2009 10:04:40

luizmello
Membro

Re: Intelbras 95 Digital + VB6060

Vinicius,

Você poderia entrar em contato com o suporte para que possamos solucionar seu problema?

Fone: 11-2191-6363
Procurar por Luiz Mello.

Att,

Luiz

Offline

 

#6 30/09/2009 21:04:02

vvssistemas
Membro

Re: Intelbras 95 Digital + VB6060

Alguma posicao?

Offline

 

#7 01/10/2009 15:11:49

PattyC
Visitante

Re: Intelbras 95 Digital + VB6060

Oi Vinicius,

O Luiz te mandou um e-mail, mas para feedback aqui no fórum informo que publiquei um Exemplo de PassThrough com E1 em Delphi em nosso site que pode ajuda-lo.

Qualquer dúvida estamos a disposição.
Equipe Digivoice

 

Rodapé do fórum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson