I have recently inherited an Asterisk based VOIP system (using SIP). A brief look at the configuration and it looks like quite a standard setup (~40 nodes and ~10 meetme’s). When i tried to stress test the system i found that the computer i was running Asterisk on (2Ghz, 512Mb) was running at 70-80% CPU utilitsation (so with ~20 point to point calls and every client receiving on 3 meet me lines).
I was not sure why this is so ran Ethereal on a client and the server - this came up with two issues of scalability, the first is that it looks like all the RTP traffic from point to point calls is being routed through the server (causing a bottle-neck) but looking at the wikipedia page for SIP (http://en.wikipedia.org/wiki/Session_Initiation_Protocol) it looks like the RTP traffic should be transferred directly between the peers. The second issue was that for each client connected to a meetme line had it’s own stream being sent from the server - i would have presumed the stream should have been sent multicast to the appropriate systems…
I realise i am not using a stateless SIP proxy (i was looking at OpenSER which i believe does this) so maybe this is the reason there is no peer to peer communication. But do not know this for certain so was hoping for some advice as to how i can solve these problems.