oh come on bacon… be nice 
Remember that GUI, CLI and config files are 3 different things. GUI’s like AsteriskNOW or AMP/freepbx attempt to replace config files, NOT the cli. The CLI is still very useful for seeing what asterisk is doing. As for how you use the GUI to configure extensions, that depends on the GUI. THey all end up writing to either database for realtime or to the config files, keep that in mind. However the config files that result from a GUI may be a lot less readable than human-written ones.
As for h.263, asterisk sees it as a codec like ulaw or gsm. You must enable video support in sip.conf and then allow=h263 to allow asterisk to use the codec.
IAX and SIP are VoIP protocols. SIP is more common and is used by most all IP phones and ITSPs (voip providers). SIP is a control protocol, it uses RTP to actually transport media (voice/video data). It is a text based protocol that’s designed to be very flexible and extensible. One result of being text based is that a raw sip trace is usually human readable.
IAX (iax2 actually) is another VoIP protocol. Unlike SIP, media is sent over the same connection as the control data. This makes it much more NAT-friendly. IAX also has a ‘trunking mode’, if both sides of the connection have a working timing source IAX can be used in trunking mode which reduces overhead. Trunking mode is more bandwidth-efficient if you have 4 or more concurrant calls over an IAX link. IAX isn’t widely supported by IP phones or gadgets, but there are a few. Many providers now support IAX.
IPX is an old MAC-based networking protocol that hasn’t been widely used in quite a while.
As for IXO, I think you mean FXO and FXS. These are the two types of analog telephone ports.
FXO ports connect to a phone line. An FXO port on your Asterisk box will allow Asterisk to answer an incoming call / dial out, and otherwise make use of a line provided by your telco.
FXS ports connect to phone extensions. You plug one or more phones into an FXS port, and the FXS port supplies the phone with battery voltage, dialtone, ringing, etc.
A good way to remember the difference- FXS Serves phones with power and service.
As for channels and extensions-
On a traditional PBX or hybrid/key system, you will have line ports (line1, line2, line3, etc, btw these are FXO ports) and extension ports (10, 11, 12, 13, 14, etc, btw these are FXS ports). If you push the button line1 on any phone, it will pick up line 1. At the same time and more importantly, if you pick up a phone and dial 10, whatever phone is connected to the port ‘extension 10’ will start ringing. Thus, the thing you dial (10) and the physical port (the jack marked Ext10) are the same thing and this cannot be changed. I cannot for example, dial 10 and have the phone connected to the “Ext14” jack ring.
With Asterisk, the two are kept very separate. The extension (the thing you dial, ie 10) and the channel (the physical FXS port that the phone is connected to, or the SIP account a phone is registered to) are two different things and are kept completely separate.
So say for example we will create a fictional office. Their * server has 4 FXS ports (Zap/1 thru Zap/4), and 4 IP phones. We will, for the sake of argument, register the IP phones not using a number as the username but their names- bob, mary, frank, and carol.
You register the IP phone by making its sip.conf section start with [carol], and using carol as the username/authname on the phone. This makes its channel name SIP/carol, rather than SIP/1234 or whatever.
Now in extensions.conf we do something like
exten => 10,1,Dial(ZAP/1) ; user dials 10 and rings the phone connected to zap port 1
exten => 11,1,Dial(SIP/bob) ; user dials 11 and rings bob’s IP phone
exten => 12,1,Dial(ZAP/4) ; user dials 12 and rings Zap port 4
exten => 13,1,Dial(ZAP/2&SIP/frank) ; (Frank has two phones in his office, an analog speakerphon on zap port 2 and an IP phone on his desk. This calls both, whichever answers first gets the call.)
exten => 13,1,Dial(SIP/carol) ; user dials 13 and rings Carol’s ip phone
exten => 14,1,Dial(SIP/mary) ; same idea
exten => 226,1,Dial(SIP/carol&SIP/mary); Carol and Mary are assigned to the same project. This way their coworkers who want to talk to them about the project can dial 226 and get whoever answers first.
exten => 9432,1,Dial(ZAP/3) ; zap/3 connects to the phone in the cafeteria, so it is rarely dialed, thus a longer exten so it’s not accidentally dialed
exten => *999,1,Page(Console/DSP) ; the server’s sound card is hooked up to an overhead paging system. This way you can dial *999 and the Page() app plays a tone, then lets you talk over it.
The point is that the extension (the thing you dial) and the channel (what device or sip account your call is sent to) are two totally different things, and asterisk has no association between the two. THat’s what the dialplan, extensions.conf is there for- to tell asterisk what to do when you dial something. Using this functionality you can mix and match different types of IP phones, analog phones, etc. What you register them to the server as makes no difference, so registering a phone with a username of 1234 DOES NOT MEAN that automatically it will ring if you dial 1234 from another phone. See?