The routing process is responsible for directing the client requests to proper destination endpoint. Voipswitch checks the URI from the request line and tries to find the best matching entry in the routing plan for the phone number or username from the URI. In addition it checks if the matching entries’ other properties agree with the client (caller). Once the route is found and a SIP session established then all subsequent messages are sent within the session.
The user part from the SIP URI from the request line which comes to the routing process is already after modification procedure defined in the Dialing rules in the client account definition (in the Advanced tab). Thereafter, the modified phone number or username (and not the original sent from client) is used for finding an entry or entries in the routing plan. The Dialing rules can also be defined per each entry in the Routing plan. It renders the string to be modified again before passing to the selected route. If the route type is a gateway or registrar then the string can be modified once more time before finally inserted in the request which is sent out from the softswitch.
Note: the routing process is separate from the Billing process. The number modifications are used only for routing purposes.
- The role of the routing process can be summarized as follows:
- Finding a route based on the destination from the request line of the client requests
- Checking the route properties like codecs, calls limit, failover, load balancing etc.
- Modify the request line and FROM header
- Send the request out to the destination
- Handling calls failures and executing failover flow
- Distributing calls according to the Load Balancing settings
- Receiving response from the lookup function and start the procedure for the returned number
- Communication with enum servers
- For calls to a user, for example for calls from DID or from another user, -finding the destination user in the location database
- Communication with the Voipbox functions for calls sent to the IVR based functions