Problem
Had this crazy idea of collecting CDRs from bunch of Asterisk boxes using AMQP (Qpid) cluster on CentOS 5.
I already had:
- hardware
- 8 SUN servers, each running 8E1s worth of SS7
- 3 SUN servers for backend (DB cluster, management interface, monitoring)
- software
- Sangoma Media Gateway cluster
- CentOS 5.0
- MySQL Main Memory Cluster (carrier grade stuff)
- MySQL Master/Master cluster (mmm managed)
- Asterisk 1.4.17
I needed:
- realtime CDR collection replicated to several independent RDBS instead of current local cvs storage replicated to a MySQL master/master cluster
- test several new (to this setup) technologies
- AMQP cluster
- MemCache
- get rid of MySQL cluster and master/master setup (too much operational overhead)
- have everything replicated durably on messaging level not DB level.
Things I needed for above to happen:
- Install this stuff on CentOS 5
- Adhearsion
- Apache QPID
- MemCache
- cdr_manager module for Asterisk
- Write some apps in Ruby
- Adhearsion CDR2MQ
- Ruby MQ2SQL
Prototype
To get my idea tested first I used stompserver instead of AMQP Qpid cluster
- Adhearsion CDRStomper
- Ruby StompCDR2SQL


Caveats Queues are neither persistent nor durable in this scenario - we need SQL restore from other box after a temporary failure. AMQP solution will solve this.

Labels: