[AsteriskBrasil] RES: Desenvolvedores

dioedu@yahoo.com.br dioedu em yahoo.com.br
Sexta Março 3 15:21:30 BRT 2006


On Friday 03 March 2006 06:45, Caio Begotti wrote:
> Eu não mexo com programação direta, mas me envolve até certo ponto no
> desenvolvimento também, e acho que aqui na lista, sim, seria bom
> conversarmos disso. Acho que "entra" :-)
OK. 

> PS: tente perguntar no canal IRC #asterisk-dev, lá eles ajudam em coisas
> mais profundas sobre o código do Asterisk.
Eu até acompanho o canal IRC #asterisk-dev, mas para perguntar, teria de ser 
uma dúvida específica.
E primeiramente, gostaria de entender melhor o funcionamento geral. Daí fica 
complicado perguntar no canal IRC. Vou tentar aqui, se alguém souber ou tiver 
uma dica de onde procurar já ajuda.

Eu sei como funcionam os módulos do asterisk. Isto é, como eles são "ligados". 
Porém, não sei como um chama o outro. Para ficar mais claro:

Um exemplo do Asterisk utilizando R2 Digital:

Estrutura: PSTN - Placa Digium - Driver Zaptel - libmfcr2 - libunicall - 
channels (chan-unicall) - asterisk.

Explicação bem básica: A prestadora está conectada fisicamente à placa Digium. 
Ao receber uma chamada, a prestadora envia a sinalização para placa digium, 
que através do driver zaptel, envia esta sinalização (tons) para ser 
interpretada pelo módulo libmfcr2 e este, devolve a sinalização necessária. 
Assim que a troca da sinalização é completada, a libunicall empacota os dados 
em um formato que o asterisk saiba interpretar através do chan_unicall e 
passa pro asterisk.

Dúvida: Como é feita essa conexão dos módulos ? Isto é, como, por exemplo, que 
a libmfcr2 chama a libunicall ? Eventos ? Threads ?

OBS.: Um exemplo prático: Encontrei, dentro da libmfcr2, o local que eu 
identifico que a ligação é a cobrar, mas não sei como fazer para que essa 
ligação seja tratada de forma diferenciada, ou pelo menos informar a uma 
camada mais acima que essa ligação é a cobrar.

Obrigado pela atenção.

Diógenes


Mais detalhes sobre a lista de discussão AsteriskBrasil