18.7. VoIP call carriers

A VoIP carrier is a service provider that can accept outgoing calls, and route incoming calls. Typically a VoIP carrier is expecting a handset to register with the carrier, and will then send calls to the registered device. It is also possible for a VoIP carrier to send calls to the FB2900 using a fixed pre-set configuration.

To set up a VoIP carrier where the FB2900 registers with the carrier you need to specify the registrar attribute. This can be a host name or IP address. You also need to specify the username and password. For incoming calls you need to specify the extn that is logically dialled when a call comes in from this carrier - this can be the extension number of a telephone or hunt group.

To set up a VoIP carrier for outgoing calls you need to specify the proxy. This can be a host name or IP address. You also need to specify the username and password.

You can define the carrier to use for outgoing calls on a per telephone basis, and also for hunt groups (where the group calls an external number). You can also define a default carrier if none is otherwise specified. A backup carrier can also be defined which is used if the call fails via the selected carrier.

For a carrier that sends calls to the FB2900 without registration, you will need to know how the FireBrick recognises the call is from a carrier.

For a start, all carriers considered have the allow attribute, if present, checked against the source IP, and if not allowed the carrier is excluded from any consideration.

Also, if there is an Authorization header with a username, only carriers with a matching username or no username set will match.

Then the following tests are done to find a carrier match, finding the first.

Once a carrier is picked, if it has a password (and was not to a registered contact), the password must match, after sending a challenge if necessary.

Note

The carrier may send a pre-challenge Authorization header to indicate the username it is using - in such case the carrier selection will only match entries that have that username set and can match entries with no to attribute defined. When a FireBrick attempts an authenticated call it can send such a pre-challenge Authorization header.

An incoming carrier will usually relate to a specific extn which is what is called when a call comes in. You can leave this unset and route based on called ddi or you can set the extn including X characters in place of the digits sent with the call as the dialled number. These are taken from the right hand end of the dialled number, so if 0134567890 is what was called, 1XX would be extn 190. This makes it easy to define a trunk carrier for incoming calls.