Saturday, 2 August 2008
Komponenter i et mini VoIP system
Lige en lille follow-up på Gratissip 1.2.0 releaset. Jeg havde pga. server-crashet her tidligere i marts i år fået ryddet godt og grundigt op på serveren, så jeg havde mulighed for at lave det hele på ny. Og det gjorde jeg så - tidligere var det et patch-værk af tidligere tiders ideer siden 2004 hvor vi startede op.
En ny arkitektur
Vores nye setup kom til at ligne noget lignende dette:
- OpenSER - er frontend ud mod brugerne. Den implementerer hele dial planen for hvem man kan ringe til. Den holder også styr på de telefoner der er koblet op imod gratissip.
- Asterisk - er frontend mod SIP trunkene, og den står for alle de tjenester der involverer genereret lyd.
- MySQL - bliver brugt til at gemme alt data. Det meste data ligger i to databaser, en til selve applikationen, og en til det provisionerede data for OpenSER. Asterisk bruger en enkelt tabel til sine realtime data.
- Lighttpd - er frontend ud mod web brugerne. Det er den som serverer http://gratissip.dk/ udadtil.
- Tomcat - her kører wiki'et. Det er det eneste "levn" som jeg ikke har kunnet slippe af med endnu. JSPWiki som vi bruger kræver sin egen JVM hvor den kan styre rettigheder - det er lidt kikset implmenteret af dem.
- Glassfish - her kører selve Gratissip applikationen. Der er 3 hoved applikationer, en som håndterer interfacet mod Asterisk, en som håndterer "logikken" og en som håndterer web grænsefladen.
Det var det hele. Tidligere var der 2 web-servere, en stor PHP kodebase, både en PostgreSQL og en MySQL database, to Asterisk servere, en JOnAS app-server og en SIPMethod app-server.
Vi kører også det hele i dag på en enkelt server. Tidligere havde vi leget med noget fax setup og en 3. Asterisk på en seperat boks, men den er også sparet væk :)
