IraDialer IraCluster Based Architecture




  1. The campaign manager or any third party application initiates a HTTPS request to IraDialerWeb. 

  2. Upon receiving the HTTP request, IraDialerWeb processes the request and publishes a message to IraCallRouter.

  3. Iracallrouter loadbalances the dialing of the calls between multiple IraSwitches and sends the request to one of the switch (mod_IraDialer) to handle the request. 

  4. The IraDialer dials a call through the defineIP gateway(AWS Chime,Twilio etc).,

  5. All the call events are sent from IraEventDispatcher to the webhook over http/https. The webhook url is defined in the make_call request.

  6. IraCluster and its associated components are explained in a seperate document.



  1. IraDialerWeb: This component serves as the interface for third-party applications. It allows them to send HTTP requests to initiate calls and interact with the other components of IraDialer.

  2. IraPass: This is our licensing system. It manages the licenses for using IraDialer, ensuring that everything is properly authorized and that users have access to the features they need.

  3. mod_iradialer: This is the core component built on FreeSWITCH, which handles all the telephony functions. It makes the actual calls, plays audio, and collects inputs from users during calls.

  4. Nats: It is a lightweight, high-performance messaging system that enables services to communicate by publishing and subscribing to messages on specific subjects.

  5. IraCallRouter: It is responsible for initiating the request to IraDialer and it also loadbalances the calls in HA setup. It has the queue system, where it queues the call before it gets dialed.

  6. IraEventDispatcher: This component is responsible for sending https events to webhook.

  7. IraMonitorWeb:  It takes over the responsibility of displaying the dashboard from IraDialerWeb and adds features such as displaying server resource usage and active infrastructure-related warnings and errors, including high CPU or memory usage, disk nearing full capacity, or a service going down.

  8. Collector: It is responsible for storing the queued/ongoing calls into the TDB.

  9. Analyser: It is responsible for fetching the data from TDB and creates views.

  10. Exporter: It is responsible for requesting for views from analyser and send it over to the iramonitor.