Le projet Agora permet la communication entre deux ou plusieurs intervenants entre eux. Le fonctionnement de ce projet se présente comme suit.
Les logiciels intégrant la bibliothèque Agora permettent aux utilisateurs de communiquer entre eux, et ce bien que les logiciels de départ ne soient pas obligatoirement les même. Les communications transitent par un serveur sur le réseau (développé à l'aide de la bibliothèque Agora) qui les traite et les relaie.
La bibliothèque intègre une base de données SQLite1 située sur ce serveur afin de gérer les différents canaux d’échanges et différents droits relatifs aux communications et aux utilisateurs. La bibliothèque d'encodage Speex sert de support par défaut pour l'encodage des communications. La bibliothèque OpenAL est utilisé pour faire l'interface entre l'utilisateur et l'application utilisant Agora lors de l'acquisition et de la restitution du flux sonore.
Pour être utilisables, les fonctionnalités de la bibliothèque Agora doivent être implémentées dans une application dite cliente (application installée sur l'ordinateur de l'utilisateur), développée en C ou C++. L'ordinateur sur lequel cette application utilisant Agora s'exécute doit être équipé d'une carte son ainsi que d'un micro et des hauts parleurs (ou un quelconque système de restitution sonore tel un casque, une oreillette bluetooth, etc...). Enfin, il faut que cet ordinateur soit relié au réseau (internet ou local) sur lequel se situent les correspondants avec qui l'utilisateur souhaite dialoguer.
Comme tout projet informatique, le projet Agora connait certaines limites.
Le nombre d'utilisateurs simultané sur un même canal. Cette limitation se fera en fonction de différents critères :
L'application utilisant les fonctionnalités d'Agora devra être développée en C ou C++ afin d'être compatible. Dans sa version 0.3, la bibliothèque Agora est limitée à une quinzaine d'utilisateur pour une qualité audio moyenne avec une connexion au réseau classique (1 Méga).
Le projet Agora est développé dans une optique multiplateforme. Ainsi, les univers Unix et Windows sont supportés.