Escrevendo uma aplicação voip simples com C [fechado]

quero começar a codificar uma simples aplicação Voip que me ajudará a falar com um amigo meu. Como A Skyp.

Eu pesquisei na internet e encontrei algumas ligações úteis como:

Parece bom. O que dizes ?

Esqueci-me de dizer que estou a pensar em escrever esta aplicação em C. Qual é a tua opinião ? Prefere outra língua para este trabalho ? É uma boa escolha?

Também se alguém já tentou algo assim, por favor, diga-me o seu nome. experiência. Como iniciar, se houver um bom tutorial, que Idioma usar e qualquer outra informação útil.

Obrigado pelo seu tempo.

 5
Author: user547363, 2011-10-14

1 answers

Ok, escrever um programa VOIP simples como uma experiência de aprendizagem é certamente uma boa razão. Primeiro, você deve escolher um codec de áudio adequado e aprender a usá-lo. Eu recomendaria o SPEEX. Em segundo lugar, tens de decidir como vais enviar os dados codificados pela rede. Um soquete simples TCP poderia funcionar, pelo menos com as opções certas (estou a pensar particularmente em TCP_NODELAY aqui), mas a maioria das aplicações VOIP parecem usar UDP para transmitir os pacotes diretamente, confiabilidade de negociação para a eficiência. Então você deve aprender como configurar e usar sockets UDP. É claro que também precisa de aprender a ler e a reproduzir o áudio. Os detalhes disto dependerão do idioma e da plataforma que você está usando. Depois de ter tudo controlado, deve ser bastante simples. Ler o áudio do microfone, codificá-lo, enviá-lo pela rede, ler os dados recebidos da rede, descodificar, Reproduzir. Claro, tu. ter fazer várias dessas coisas ao mesmo tempo - não é bom se o seu programa parar de enviar a sua voz enquanto está à espera de dados que podem ou não chegar. Uma maneira de lidar com isto pode ser dividir o programa em dois tópicos: um para ouvir e transmitir e outro para receber e reproduzir. Outra solução seria usar o I/O não-bloqueador e programação orientada a eventos para lidar com dados de várias fontes à medida que ele chega. Uma vantagem possível deste a opção é tornar mais fácil implementar chamadas de conferência, onde você envia e recebe áudio de várias pessoas. É claro que nunca experimentei isto, por isso estou só a tentar adivinhar.
 9
Author: Ilmari Karonen, 2011-10-14 19:22:51