On 12/13/2014 12:33 PM, Ahmed Salem wrote:
Is there any other way other than t_suspend/t_continue that I can use to scale kamailio and still support push notifications.
Well, one factor is that Kamailio is very high-performant and scales very well in just one instance. Just how many clients do you have registered and how many messages per second do you want to process? Unless you're building an astronomically high-volume, national-scale service and realistically expect to have millions of endpoints, one Kamailio instance should probably be fine.
Failing that, there are a variety of ways to push messages to other Kamailio instances. The easiest generic way to send a message is using a synthetic request through uac_req_send():
http://kamailio.org/docs/modules/4.2.x/modules/uac.html#uac.f.uac_req_send()
You can receive it (and the arbitrary payload you have put in it) on the other server and do something with it.
You can also replicate requests using TM, if appropriate:
http://kamailio.org/docs/modules/4.2.x/modules/tm.html#tm.f.t_replicate
Also, some modules have started to use DMQ for distributing state:
http://kamailio.org/docs/modules/4.2.x/modules/dmq.html
-- Alex