FreePBX - What Is An Extension?
Scope
Most people have some familiarity with extensions, as they are used on most office phones these days. However, this article explains some of the purposes behind extensions and how they are used in FreePBX.
Introduction
In FreePBX, extensions are used to identify your endpoints (phones) and facilitate the routing of calls to and from them internally (extension to extension) or externally (external call to extension).
Terms
There are a few other terms/concepts that are helpful to understand:
A Trunk is simply a circuit or path between two domains. It can be thought of as a path that multiple phone lines/calls can travel on simultaneously between the phone company and your local FreePBX server. A trunk can travel over both private circuits (PRI, etc.) and public circuits (Internet).
An Extension is the identifier (usually a short number) that an endpoint uses to facilitate communication between itself and FreePBX. This is not a phone number, but usually a 3-4 digit number (i.e.: 1001). Extensions are used internally.
An Endpoint is a device that registers itself to FreePBX. This would be a device such as a SIP phone, or in our case, the VX itself.
Registering is the process of an endpoint associating itself with an extension. Practically, this is simply an end device logging into FreePBX with a username (usually the extension number) and a password. If the username and password are correct, then the registration is successful, and FreePBX routes all calls for that extension to that endpoint.
How an Extension Works
Let's say that we have an organization with 100 phones, but only 1 phone number that routes to the building. How do we route calls to each phone? Better yet, how do we route each phone to a single phone number? Don't all phones need their own number?
Yes, but not the way you might think.
While each phone must have a way to be uniquely identified, this does not have to be done using the phone number itself. Instead, we use the extension to identify the phone.
Internally (Extension to Extension)
Usually extensions are short, internal-only phone numbers, and these numbers can be used to place calls internally between phones within the same company. For example, if Phone A is at extension 1001 and Phone B is at extension 1002, we can dial 1002 from Phone A to reach Phone B:
Externally (Outside Call to Extension)
The above example is is great if we only need to talk to people in our company, but we also want to talk to people on the outside as well. To do this, we must first get access to the outside world through a connection from a phone provider. This connection is commonly referred to as a Trunk.
After we have set up our Trunk, we then tell FreePBX what to do with any calls that are received on that Trunk by creating inbound routes. An inbound route is used to tell FreePBX which extension to route a call to when it is received from the phone provider.
For example, suppose someone calls our number at 216-241-7225. That call is routed to a phone provider, and then to the FreePBX server. The FreePBX server then examines its inbound routes to determine which extension should receive that call, based on the number that was dialed.
Below illustrates what would happen if we created an inbound route that sent all calls that dialed 216-241-7225 to extension 7500. Extension 7500 is receiving the call that was sent TO the phone number 216-241-7225:
The Registration Process
How does an endpoint register itself as an extension? The same way you would log in to anything else, by using some sort of authentication method. Here we will use a simple username and password.
In this example, our endpoint wishes to register itself as extension 7500. In order to do this, the endpoint needs a few key pieces of information:
- The FreePBX (SIP Server) IP address
- The Extension Username
- The Extension Password
Below is a simple illustration of how this process works:
As you can see, it is usually not very complex. If you were to look at a log of this exchange, the messages would be different, but the concept is the same.
In addition, an extension often has an expiration timer. If an extension does not re-register after a pre-determined amount of time, then FreePBX assumes that endpoint is no longer active and will not route calls to it anymore. Therefore, if you look at a log, you will often see registration messages sent out every few minutes:
How The VX Uses Extensions
The VX is really no different than a phone. The only difference is that the VX is capable of registering MULTIPLE extensions to itself. This is to accommodate the needs a broadcast facility has, such as using multiple phone numbers for different shows, distinguishing call-in lines from VIP lines, etc.
Additionally, more information about how to set up and use the Telos VX product line can be found here.
Let us know how we can help
If you have further questions on this topic or have ideas about improving this document, please contact us.