Bonjour!
Je suis sur un projet de creation d'une application de VOIP fonctionnant sur la bse d'un protocole SIP que je dois moi meme implemanter.
Pour le projet, voici les exigences generales:
- L'application doit etre protable sur windows et linux
- le protocole de communication doit etre binaire
- la communication client-client se fera en UDP et client-serveur en TCP
- Je n'ai droit a aucune librairie SIP existante
Alors mon probleme reside au niveau de la gestion des adresses IP natees.
Dna sma conception actuelle, mon serveur permettra l'enregistrement et l'authentification des utiliateurs via une base de donnees interne. Comment puis-je faire pour que :
- Mon serveur situe a un coin du monde et coonnecte a internet , mes clients situes a des zones distantes et diferentes du monde, puissent echanger les informations de maniere a ce que un client puisse etablir une connexion directe a un autre, ou que plusieurs clients puissent echanger a la fois via le mode conference?
- Sur internet les adresses sont natees et je sais que les routeurs/passerelles de chaque reseau sauront rediriger les paquets, mais comment un client se connecte a un autre client distant (sur un autre reseau) avec un port?
- J'ai prevu d'implementer un mode proxy pour serveur, qui permettra de gerer le probleme d'adresses ip natees, afin de permettre l'interconnexion entre clients sur la base d'informations recues du proxy (Adresse ip du destinataire a joindre, port d'ecoute...). Mais quelles adresses ip les clients utiliseront etant donne que chaque client possede une ip prive sur le reseau ou il se trouve?
- Comment je vais gerer mes sockets dans ce projet? De la meme facon que pour les applications fonctionnant en local?
J'espere que je ne suis pas tres difficile a comprendre, si oui mon probleme se resoud a ceci:
Quel protocole puis-je mettre en place pour transmettre la voix, le texte et la video entre clients distants et entre clients et mon serveur sur internet? Quelle architecture logicilelle me proposeriez-vous, avec les contraintes materielles/reseau a respecter cote client et serveur (Comment implementer le mode proxy sur le serveur, gerer les communbications client-client direct sans relai par le serveur, gerer les conferences(communication un a lpusieurs)).
Je n'ai pas encore de probleme au niveau du code, j'ai plutot besoin a travers votre assistance, de peaufiner la conception de mon projet afin de bien le realiser.
Merci infiniment pour votre aide.
Partager