Excellent article! Just a small comment to clarify:
We have three namespaces to work with: Channels, Extensions and Devices/lines. * Channels are ongoing calls. * Extensions are what you dial to setup something, an entry in the dialplan. * Devices/lines are what we place a call to in the dial plan with the dial command. When you write an article like yours, I feel it's important to try to separate these to avoid confusion. When I started working with Asterisk, everything was a "channel" and that word is still used that way in many places in the source code and in the manager interface. We have channel states - ringing, up, down, hold. This marks the state of a CALL. We have device states - unavailable, busy, hold, ringing. This is the state of a device or a line, seen from Asterisk. Observe that the device's actual state might be different, since it might be in communication with another server. We connect extensions to devices with a hint in the dialplan. As you write, we can have multiple devices connected to one device. In that case, Asterisk aggregates the device states so that the extension doesn't signal busy until all devices are busy. This could be used for a group, like a sales department. We can provide states for ALL channel drivers, but the channel drivers that have support for device states will give you more data to work with, better information. Blinking lamps are fun. A bit more fun in 1.4 than in 1.2 and much more fun in trunk - the dangerous world for developers and testers. :-) /O _______________________________________________ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
