Adding Extensions


Adding Extensions

A PBX without any extensions isn't very useful, so it's the first thing to do after installing FreePBX. Extensions let you test all kinds of things, so it's the first thing to get right.

Adding Extensions

Shown at right are a few test extensions on a FreePBX installation on my t42 Ubuntu laptop.


There are several pages of information here. We'll go through each of them.


Display Name: This is the name that is used, at least internally, when placing an outbound call. Most Caller Name services look up the name in a database, so this name setting might do nothing on your outbound VOIP or PRI calls. It will certainly do nothing on outbound POTS calls.

CID Num Alias: The CallerID to show when dialing intracompany. Example Usage: James has a office extension at 201, a softphone at 401, a home office phone at 601, and a FollowMe at 201 that rings them all. 401 and 601 can use a CID Num Alias of 201, so that all internal call recipients see “201”

SIP Alias: Every 'clever' presentation of VOIP has an example of dialing by email address. This is hard to do on most phones, but is nonetheless supported. Put only the name here, not the @ symbol or the fully-qualified-domain name. That's used by the calling application or device to locate your PBX on the Internet. To allow any party to call you, you'll need to have firewall rules that allow all SIP calls regardless of IP address. This is only advisable if your Asterisk installation is up-to-date, and has no current SIP security vulnerability.

Direct DID: This is where you enter the Direct Inward Dial (DID) you'd like to reach this extension. If you forget, all calls to that DID will end up at the main IVR. Putting a value here eliminates the need to create an Inbound Route.

DID Alert Info: Used for distinctive ring services


Music on Hold: Set a different Music On Hold (MOH) class for this extension. Great for having different music for different offices or companies that are served by the same PBX.

Outbound CID: Put the CallerID and preferred CallerIDName here for outbound usage.

Ring Time: How long to ring before a server-side transfer to voicemail. You'll usually use the default here, and set a system-wide value in General Settings.

Call Waiting: Set the call waiting value. Also accessible by feature code from an individual extension (by default *70 to activate and *71 to deactivate – see Feature Codes).

Emergency CID: The CallerID to be set when dialing a number labeled as emergency.

Device Options

Extensions - Device OptionsExtensions - Device Options

These options are the same as in a vanilla asterisk sip.conf file. In a FreePBX installation, they end up in sip_additional.conf. For more information, check out Asterisk: TFOT.

secret: The SIP password used in the authentication of this device to the server.

dtmfmode: How DTMF is expected by the server. Options are rfc2833, INFO, and in-band. rfc2833 seems the most reliable across many devices. Client devices (e.g. Linksys) often have an Auto setting, which is to be avoided.

canreinvite: Asterisk is a back-to-back useragent. This means that your phone calls it, and it calls your VOIP, PRI or POTs line. All audio (RTP stream) is carried through the Asterisk process during the call. Your VOIP service provider, for example, often will use a SIP REINVITE message to change the RTP destinations after the call is set up. This reduces load on the equipment, as it's only doing call setup and takedown.

Highly desirable if you're supporting remote users making VOIP calls and your VOIP provider supports REINVITE.

However, it's tricky to get any of your FreePBX features to work in this scenario. Play with this, but don't use it on a customer system unless you have tested the features you need.

context: Context is an Asterisk dialplan sphere-of-influence concept used to separate components from each other (multi-tenant, for example, or outward facing customer service from backoffice).

From-internal means you can dial like you're a phone on premises with access to other extensions and outbound trunks. Other common options are outbound-all-routes (dial out only), from-trunk (extensions only, no outbound dialing)

host: dynamic or a static IP address. dynamic allows any device that can pass the SIP challenge/authentication to register and make/receive calls.

type: friend or peer. Use friend for a phone. Peer is for SIP devices that are capable of carrying calls, like a Trunk.

nat:yes or never. SIP is a nat-unfriendly protocol in that it specifies the return IP address for the call audio stream deep inside a packet. NAT works by rewriting packet source and destination IP addresses, but doesn't understand SIP (unless a good SIP Application Layer Gateway is installed). NAT is therefore problem if both the phone and the server PBX are separated from the public Internet by different NATs (e.g. a home router and and corporate one.) In such a situation, audio won't work, but signaling will (phones will ring but no audio). To support remote home users behind conventional NATs, use yes, and either give the server PBX a public IP address or do a 1:1 IP mapping from a public IP to it's internal, then set IP_nat.conf to the public IP address of the system. NAT=yes instructs Asterisk to send audio to the IP it receives it from, regardless of what the SIP SDP says, and lets you have at least one NAT present and still have effective audio. Note that NATs vary widely as to how long they stay 'open'. Best practice when using Non-STUN phones is to have SIP registration expire every 60 seconds – the re-registration (outbound, by the phone) will keep the NAT open to receive calls. NAT=yes doesn't hurt anything when the client device is on the same LAN.



disallow: enter codec overrides here. An extension or group of extensions on a low-bandwidth link might want to disallow the higher-bandwidth codecs out of the general pool.

allow: enter any codec overrides here

dial: SIP/extension is the default.

accountcode: enter an account code for use by a billing module.

mailbox: extension@default is the default.

Taxonomy upgrade extras: