DID ranges were implemented in 2023 version of Sippy.

The documentation for DID ranges management which extends the usage of DID pool with the ability to add a range of DID numbers instead of addition of N DIDs. DID range could be split to subranges that might consist of either individual numbers or smaller subranges. 

Ranges, subranges or individual numbers could be assigned to Account/Customer/IVR application in the very same manner as it was implemented for a single DIDs previously.

Related documentations:

Diagram for DID Ranges

Implementation details:

Switch operator creates the range by choosing Range in Type and specifying Range Start and Range End in Basic Parameters of DID, Authentication Rules section might have empty or non-empty Incoming DID/CLD, or regex in python syntax. In the example above incoming calls with CLD in a range between 0100 and 0199 with any CLI that are coming from an IP specified in destination field of connection bft_default of vendor bft_default_test would be authenticated to this DID range.

New behavior: 

Unallocated DIDs in range would return 404 Not Found for authenticated incoming calls. Previously unassigned DIDs were not matched in Authentication, system behaved as if no DID is present at all. Calls to CLD in a range above would result in 404 Not Found unless a subrange is created and assigned to an Account/Customer/IVR Application.

Management of DID range:

After creation of a range it's possible to open it in a list view so that a subrange or a DID could be added/changed/deleted

List view is available upon clicking the folder button in Action column of specific DID range. It's also possible to view top 10 records in a DID range by clicking a triangle button to the left of a DID Range.

Filter elements were reworked to process needed level of subranges properly depending on the scope. E.g. when a subrange on screenshot gets 0100 or 0109 entered in a DID field, no matches would be found, since in a view of subrange 0100-0199 there are no subranges or single DIDs that match the search condition. However if 0105 is entered, the match for subrange 0105-0110 would be found.

It's also possible to manage the subrange data via upload, with same syntax as described in our documentation - a new field DID Range End was added to the downloaded spreadsheet - for the case it's empty, an update is applied to the single DID, if not empty - corresponding DID range is searched.