Extensions

In FreeSWITCH parlance, an extension is NOT a phone or a service.
An extension is a configuration compound made of a pattern (criterion) and a list of actions.

An incoming call traverses the dialplan one extensions after another. The call has many characteristics (destination number, time of day, kind of transport, etc). At each extension those characteristics (represented by "variables") are checked against the pattern (the criterion). If the pattern "matches" the characteristics, the list of actions will be added to the call's TODO list. At the end of dialplan traversal, all the actions stacked into the TODO list will be executed, one after another.

An extension is contained between the XML tags <extension> and </extension>. Extensions can have two attributes: name and continue.

Attribute "name" has no usage beyond being printed in debug output. Helps you to follow through what happens. Forget about it, is just a name.

Attribute "continue" is of the utmost importance. It determines if the call, having matched the pattern of this extension and stacked its actions into the TODO list, will then continue to the next extension or will exit the dialplan now (and begin the execution of the TODO actions list).

By default, a call exits the dialplan at the first extension match.

If you set <extension name="myextensionname" continue="true">, the call will check if it matches the next extension ("and so on, and so on", as Zizek said).