Selecao DevMedia QUERO SER PRIME

Fórum URA - Delphi - Linux #327346

12/08/2006

0

Pessoal, estou aqui numa situação um tanto complexa. Meu cliente está com intenção de integrar parte da minha aplicação ´delphi/firebird/windows´ com um sistema de URA (Unidade de Resposta Audível) para fazer parte das operações via telefone, algumas consultas ao banco e também algumas entradas de dados. Pois bem, o software que estamos em vias de usar para o gerenciamento da URA é para Linux (somente), e preciso fazer um interfaceamento entre o banco firebird e a URA, porém o software precisará estar rodando na máquina com a URA que será Linux. O que fazer? Desenvolver a interface em Kylix? Em Lazarus? Já me sugeriram programar as saidas/entradas da URA em script-bash ou Rexx chamando ISQL do Firebird para lidar com o banco.

Alguem teria sugestões a respeito?


Aerreira

Aerreira

Responder

Posts

19/08/2006

Aerreira

Alguem teria alguma sugestão?


Responder

Gostei + 0

19/08/2006

Thomaz_prg

Posso estar falando asneira, mas não daria pra fazer algo como uma intranet e usar o browser para aplicação? Daí a aplicação ficaria apenas no servidor windows, ou entãso usando um Terminal Server, ou Área de trabalho remota?


Responder

Gostei + 0

19/08/2006

Aerreira

O problema é que a aplicação que controla a URA já existe é roda exclusivamente em Linux. Que tipo de aplicação eu faria ´for windows´ para comunicar-se com a aplicação URA via browser, terminal server ou desktop remoto?


Responder

Gostei + 0

20/08/2006

Bon Jovi

Basicamente seria vc fazer um serviço que ficasse atendendo requisições de um lado e de outro. Pode ser um webservice.


Responder

Gostei + 0

20/08/2006

Dmalta

Oi Adriano!

Gostei do tópico. :) Dê mais informações pra gente poder pensar juntos numa solução Qual é o fabricante, marca e modelo do equipamento de URA? E o software? Tens um website do produtor do sw?

Um abraço,


Responder

Gostei + 0

21/08/2006

Aerreira

Oi Adriano! Gostei do tópico. :) Dê mais informações pra gente poder pensar juntos numa solução Qual é o fabricante, marca e modelo do equipamento de URA? E o software? Tens um website do produtor do sw? Um abraço,

DMALTA, obrigado pelo interesse... vamos lá:

O software (ainda em análise) é [url]www.asterisk.org[/url], um Open-Source, com versões para Linux, MacOSX ou BSD. O objetivo é fazer um atendimento como aqueles de cartão de crédito ou bancos para auto-atendimento eletrônico (disque 1 para saldo, 2 para extrato...) porém voltado para agendamento de consultas médicas.

Já encontrei diversas informações a respeito ([url]http://www.google.com.br/search?hl=pt-BR&q=URA[/url]), mas normalmente são soluções proprietárias ($$$), gostaria de fugir disso, então preciso criar uma solução para lidar com esse open-source de modo a se encaixar ao meu software.

Basicamente há um micro dedicado ao serviço URA (em ingles é IVR - Interactive Voice Response), uma combinação de software e hardware, pois nessa máquina Linux haverá uma placa capaz de atender à diversas ligações simultaneamente, conforme o número de linhas telefônicas disponíveis e a capacidade de canais da placa.

Com a URA em funcionamento, o software Asterisk faz o atendimento das ligações conforme programação prévia dos menus e suas diversas opções, dando retorno por voz a quem iniciou a ligação. Porém as respostas que a URA irá enviar para a pessoa ao telefone serão provenientes do meu banco de dados que é em Firebird. Assim como a pessoa também poderá fazer pequenas entradas de dados pelo telefone que também cairão dentro do mesmo banco de dados que estará on-line com a clínica funcionando.

Com isso, preciso de uma aplicação que:
- acesse o banco firebird
- rode em Linux
- permita um interfaceamento com o software Asterisk

Já cogitamos: Kylix, Lazarus, Script-Bash / ISQL, Rexx / ISQL.


Responder

Gostei + 0

21/08/2006

Dmalta

É o seguinte. Eu descobri que exite uma interface tipo CGI para Asterisk: o [url=http://home.cogeco.ca/~camstuff/agi.html]Asterisk Gateway Interface[/url] (AGI).

A AGI funciona do mesmo jeito que um CGI. Você configura o seu ´dial plan´ para usar AGI e ele gera um arquivinho texto com instruções e depois chama o seu programa. O seu programa então deve ler esse texto e gravar a resposta usando comandos específicos para a interface AGI.

Esse programa pode ser feito em [url=http://www.freepascal.org/]Free Pascal[/url] ou Kylix.

Espero que funcione pra você. Depois me conte seus progressos.

Um grande abraço,


Responder

Gostei + 0

21/08/2006

Dmalta

Pensando bem, se você conseguir configurar o Asterisk para chamar o programa AGI remotamente na rede, pode até fazer em Delphi, em modo console, em uma máquina rodando Win32. :)

Outro link útil que eu deixe de citar é esse:
http://www.voip-info.org/wiki-Asterisk+AGI


Responder

Gostei + 0

21/08/2006

Aerreira

É o seguinte. Eu descobri que exite uma interface tipo CGI para Asterisk: o [url=http://home.cogeco.ca/~camstuff/agi.html]Asterisk Gateway Interface[/url] (AGI).

Certo, o interfaceamento seria feito justamente pela AGI, o problema era justamente rodar a aplicação em linux... Por isso pensamos em Rexx, que é um tipo de script que funciona tanto em linux quanto windows, e o rexx chamando o ISQL do firebird, ambos gerando TXT com as queries e as respostas... Porém, provavelmente, isso poderia ficar lento..

Esse programa pode ser feito em [url=http://www.freepascal.org/]Free Pascal[/url] ou Kylix. Espero que funcione pra você. Depois me conte seus progressos.

Uma boa coisa que ví naquele seu link ali é justamente um exemplo de acesso a AGI usando FreePascal... Eu até poderia fazer o programa em C, porém como não sou dos mais entendidos em C, ainda, não saberia como me conectar ao Firebird via C ou C++, alguem sabe como?

Pensando bem, se você conseguir configurar o Asterisk para chamar o programa AGI remotamente na rede, pode até fazer em Delphi, em modo console, em uma máquina rodando Win32.

Como desenvolvedor, isso pra mim seria o ideal, mas acho para ganho de performance, o ideal seria que a aplicação ficasse rodando em linux na mesma máquina da URA.... Vou pensar mais a respeito e tentar alguns testes...

DMALTA, ótima troca de ideias...


Responder

Gostei + 0

21/08/2006

Dmalta

Adriano,

Se o volume de chamadas for intenso, talvez seja até mais rápido distribuir a carga de processamento com outra máquina, de forma que o servidor Asterisk cuide das chamadas e o servidor de BD cuide das transações com o banco. Aí é uma questão de planejamento do seu domínio de negócio e de fazer benchmarks para avaliar a e melhor solução.

Em todo caso, um programa Linux em modo console eu faria com Free Pascal na boa. O Free Pascal é hoje bem estável. Pode usar sem medo. :)

Um abraço,


Responder

Gostei + 0

21/08/2006

Aerreira

Adriano, Se o volume de chamadas for intenso, talvez seja até mais rápido distribuir a carga de processamento com outra máquina, de forma que o servidor Asterisk cuide das chamadas e o servidor de BD cuide das transações com o banco. Aí é uma questão de planejamento do seu domínio de negócio e de fazer benchmarks para avaliar a e melhor solução. Em todo caso, um programa Linux em modo console eu faria com Free Pascal na boa. O Free Pascal é hoje bem estável. Pode usar sem medo. :) Um abraço,

Beleza... vou avaliar todas as questões tratadas aqui no tópico, e ainda aguardando o cliente dar um OK para dar prosseguimento no trabalho.

Quando ao volume, o cliente teve no ano passado 55.968 entradas na agenda, o que dá uma média de 178 apontamentos diários (descontados os domingos). Se considerarmos que uns 80¬ das marcações são por telefone, teríamos 142 registros diários ou 17 por hora (uma ligação a cada 3,5 minutos). Não é muito.

Mas se considerarmos que hoje, no atendimento pelas secretárias, o paciente do outro lado da linha nunca sabe direito o que quer, pergunta uma coisa, fala outra, confirma depois cancela tudo e começa tudo de novo, cada ligação acaba tomando mais tempo que os 3,5 minutos, e já tem outra recepcionista com outro paciente na outra linha, e assim fica o dia todo. No atendimento eletrônico, infelizmente o que poderá ocorrer é que a maioria acabaria teclando ´9 - para falar com nossos atendentes!!!´ :cry:


Responder

Gostei + 0

22/08/2006

Thomaz_prg

Uma boa coisa que ví naquele seu link ali é justamente um exemplo de acesso a AGI usando FreePascal... Eu até poderia fazer o programa em C, porém como não sou dos mais entendidos em C, ainda, não saberia como me conectar ao Firebird via C ou C++, alguem sabe como?


Também não manjo de C/C++, mas na pasta do firebird, tem alguns exemplos feitos em C/C++ que fazem conexão, inserção, etc...

Tipo C:\Arquivos de programas\Firebird\Firebird_X_X\examples\api

Não sei se irá ajudar, mas taí.


Responder

Gostei + 0

22/08/2006

Aerreira

Também não manjo de C/C++, mas na pasta do firebird, tem alguns exemplos feitos em C/C++ que fazem conexão, inserção, etc... Não sei se irá ajudar, mas taí.

Nunca tinha parado prá olhar. (20 minutos depois...) Acabei de dar uma olhada geral e, pra quem não entende muito, não é exatamente um exemplo de simplicidade... rsrsrs. O Dev-C++ nem compila, são apenas funções para serem inseridas num projeto, as funções sozinhas não funcionam, mas certamente há como usá-las. Se o objetivo for realmente performance, certamente o C seria uma boa solução.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar