Rules fields

Example resource document:

{
   "_id": "some_resource_id",
   "_rev": "2-9cde8aaf05b398fa8eb463fc5a943ca7",
   "name": "Resource 1",
   "enabled": true,
   "flags": [
   ],
   "weight_cost": 30,
   "rules": [
       "^\\+7(\\d{10})$"
   ],
   "rules_test": [
       "^\\+{0,1}(933)$"
   ],
   "cid_rules": [
       "^(\\+749[59]\\d{7})$"
   ],
   "gateways": [
       {
            ...
       }
   ],
   "pvt_type": "resource"
}

Dialed number rules (“rules” field)

A list of regular expressions for matching E.164-formatted (+12223334444) DIDs. A sample regex to match all Russian E.164 numbers:

"^\\+7(\\d{10})$"

You can obviously add regexps for specific area codes, toll-free, E911, and international numbers. The first capture group is what is used to pass in the bridge URI (in the example, the 10-digit number will be passed to the gateways).

CallerID number rules (“cid_rules” field)

Like “rules” field, but capture groups don’t modify outgoing CallerID number. If you want modify CallerID number - use “formatters”.

(“rules_test” field)

The rules_test object defines an array of regular expressions for test patterns of the given resource.

For example, if the resource handles emergency routes in North America, defining 933 as a test route, will inform teletype this emergency call is a test and will be reflected as such in the notification.