This connector type enables implementation of custom routing logic decoupled from receiver process for incoming messages. Normally when a message is received routing logic is applied before response is sent back to client. This may be problematic if routing process depends on external systems and may take a long time to complete. For example if HLR lookups are necessary for routing process and subscriber is not currently available.
By adding an intermediate route-connector to which messages are routed in first step, the response can be sent back to client immediately and before routing process is completed. A queue can be allowed to build on the intermediate connector and several parallel worker threads can process this queue. It is possible to limit the total queue size allowed by G5Tel by using keywords MAXTOTALQUEUESIZE_SOFT and MAXTOTALQUEUESIZE which will throttle and reject incoming messages when total queue size within EMG reaches specified limits.
When a connector goes into state "ERROR" all messages in queue for that connector will be re-routed. The re-route mechanism extracts each message in the connector queue and transfers it back to the "routing" step on the connector where it was first received.
In this scenario it will be back to the incoming connector "smpp-in1" where message was received and from there it will, once again, be routed to the "router" connector queue. The "router" connector will process the messages and the "before_send" and "route" plugin hooks will be executed. If additional message options were added when lookup in "before_send" was run first time we now have the possibility of either running the lookup again or skip that step. Some logic to determine how long time has passed since previous lookup may be implemented.