Many ITSPs try to prevent situations in which heavy traffic overloads various components of the VoIP network (for example, because of call centers with auto-dialer software).
To control the amount of traffic that passes through the VoIP network, PortaSwitch allows the enforcement of the calls per second (CPS) limitation. With the CPS limitation functionality, you can restrict the number of dialing attempts that can be made by an endpoint (e.g., a call center PBX) each second. For example, the allowed rate for a call center PBX is defined as 10 CPS. It’s possible that at some moment, the call center will send 100 calls per second. As a result, only 10 call initiation requests per second can be processed further, and therefore the other 90 are rejected.
In the case of several endpoints using the credentials of a single account, this account’s CPS limit is shared by each of these endpoints. That is, the number of dialing attempts made per second by all endpoints cannot exceed the maximum number of dialing attempts defined for the account.
The CPS limitation relies on the Limit Controller PortaSIP component. Thus, after the Limit Controller is enabled for PortaSIP via the Configuration server and the CPS limit rate is defined for an account, the logic of processing outgoing calls can be summarized as follows:
- An endpoint attempts to place an outgoing call. PortaSIP receives a new SIP message, detects that this is a new call setup attempt and hence forwards it to the Limit Controller.
- The Limit Controller performs an analysis of the received SIP message: it parses out a caller’s IP address and username. Using these attributes, the Limit Controller retrieves the current CPS counter value and configured CPS limit. The Limit Controller then updates the current CPS counter and recalculates the caller’s current CPS rate.
- The Limit Controller compares the current CPS rate of the caller and the configured CPS limit. If the CPS counter value is lower than the CPS limit, the Limit Controller relays a positive SIP response and the call is processed further. If the Limit Controller detects that the CPS counter value exceeds the CPS limit, it rejects the call. The Limit Controller always provides a SIP response when it rejects a call to prevent retransmits and the involved components becoming overloaded. By default, the Limit Controller provides 503 reject code in a SIP response (it can be changed on the Configuration server).
If PortaSIP detects that a newly received message is an in-dialog message, the message will not be sent to the Limit Controller.