First, sorry for this long post. I can be very, er, verbose when i am talking about VoIP or Asterisk
There is a book, asterisk: the future of telephony. The dead-tree version is published by O'Rilley and should be available in most bookstores; or you can get it online (legally) for free at
https://www.asteriskdocs.org/modules/tinycontent/index.php?id=11 Read the section on dialplan design (extensions.conf), once you understand the dialplan you can do anything. It's here that 90% of asterisk's intelligence lies.
Yes, asterisk.org is the official website. You can also find a ton of info at the Wiki,
https://www.voip-info.org . Lots of asterisk-related info there.
For IP phones, I'd suggest buy yourself one or two Grandstream (BT200 ($50) or GXP2000 ($90) phones (not BT1xx if you can avoid it). These phones are relatively simple and many Asterisk users learned about SIP on GS hardware. You want the BT200 and not BT100 (if you get the cheap one) because the BT200 supports auto hangup and Intercom (auto hangup = speakerphone turns itself off when call ends, intercom = voice paging). GXP2000 is slightly higher end and supports this too. GXP2000 also supports power over ethernet (802.3af) so if you buy a powered switch you can juice them that way, makes things simpler. (netgear makes a nice 24 port switch (16 ports are powered, 16 unpowered, 2 gigabit uplink and minigbic ports); CDW.com's having a sale, it and a Wifi AP for $300)... model is FS726TP as i recall.
Also check out AAstra and SNOM IP phones- they are built like tanks and a joy to use. I use a SNOM 360 on my desk. SNOM and AAstra both make PoE compatible models. If you want cordless, Linksys makes a few decent ones (WIP300/WIP330). These phones speak SIP and connect via WiFi to Asterisk. The 330 has windows CE and you can check your email from it

. It costs like $400 tho
Lastly, you can use a computer as an IP phone- using a 'softphone' program like X-Lite or SJphone (both free) you can connect to Asterisk and use your computer headset (or bluetooth) to talk. These are not a good replacement for real phones, however they can be quite convenient for making some calls from the PC. You can also get softphones for a PDA if it has WiFi.
As for your sunrocket service, you'd definately want to connect to it via SIP, not thru the gizmo. I looked and didn't find much info about how to use them with *. There is a post on the sunrocketforum site that basically says that if you want to BYOD (bring your own device), they don't support it and wont help you do it, but if you manage to make it work they won't stop you either. However from searching, it seem that they really, really won't help you- you have to (somehow) figure out the admin password for the 'gizmo' and from there you can apparently (sometimes) get the right info to make Asterisk work.
You really want to get it working directly via SIP if you can. Asterisk will deal with a SIP channel much better than with the analog line, getting call waiting to work in any useful capacity on a POTS line with asterisk is somewhat difficult. With SIP, it works flawlessly. Actually with SIP, most providers give you two channels (for 3way calling) so you can have two people on the phone at once.
You could also try porting your number to another service that supports BYOD, ie broadvoice, viatalk, etc. However you may not want to do this if you have one of the $200/year plans. Sunrocket DOES support porting out their numbers if you go that route however.
If you don't go with IP phones, and/or to connect to the gizmo or analog lines:
First, FXO and FXS. An FXO port connects to a Line and connects * to the phone service provided by this line. An FXS port provides dialtone and phone service to phone(s). An ATA usually has two FXS ports. If you get these mixed up, remember that FX
S Serves.
There are two main types of analog cards you can get. There's the Digium TDM400 series (PCI card, up to 4 ports/card, each port is enabled as FXS or FXO by adding a module to the card. FXS modules are green, FXO modules are red.) There's also the Sangoma A200 'Remora' series (PCI based system. One PCI card connects to one or more 'Remora' cards via a backplane, each providing 4 analog ports. Remora cards take modules, each module enables 2 ports as FXO or FXS. Same coloring). These cards are a bit expensive from a home user perspective at around $70-90/port. If you want cheap FXO cards, you can get an X100 clone card on ebay or from a few places. The X100 is a discontinued Digium product which is basically a rebadged voice modem of a particular type. Sometimes they work, sometimes they cause difficult-to-solve echo problems, and sometimes they are the cause of a number of odd issues. They are cheap, at around $10/each.
I'm gonna ramble back to dialplan design for a sec to give you a basic idea of how it works. In asterisk, you have:
[context]
exten => extension,priority,application(argguments)
each context is a group of extensions. Every phone/channel/call is 'in' a context, and can only dial extensions in its context, and extensions in contexts included to its context, and so on (you can include one context in another). The extension is a number or number pattern that can be dialed. priority is what order it happens in. Application is what happens, and arguments are passed to the application.
For example, say you find your sip settings for a provider, and put them in sip.conf, naming the link [provider], putting them in context [incoming]. Say you also have five IP phones, named 10-15 also defined in sip.conf, them in the context [phones]. Your basic extensions.conf might look like this:
[incoming]
include => extensions
include => check-voicemail
exten => s,1,Answer() ; ; is the comment char. S is the 'start' exten. Answer picks up and needs no args.
exten => s,2,Background(welcome) ; s,2 is run after s,1 finishes (thats priority at work. Background plays an audio file, listening for DTMF.
exten => s,3,WaitExten(5) ; WaitExten waits while listening for DTMF. 5 is number of seconds
exten => s,4,Dial(SIP/10&SIP/12&SIP/13,20,r) ; Dials sip phones 10, 12 and 13 if they don't push anything else. dials for 20 seconds, plays ringing to caller. If no answer in 20sec we move on.
exten => s,5,VoiceMail(10) ; leaves voicemail for mailbox 10
[extensions]
exten => _XX,1,Dial(SIP/${EXTEN},20,r) ; matches any two digit number. ${EXTEN} is the number that was dialed. This lets you define 10-19 in one line insteadl of 10
exten => _XX,2,VoiceMail(${EXTEN}) ; if nobody answers in 20sec go to their VM.
[phones]
include => extensions
include => dial-out
include => check-voicemail
[dial-out]
exten => _1NXXNXXXXXX,1,Dial(SIP/provider/${EXTEN}) ; 11 digit numbers get passed straight to the sip provider.
exten => _NXXNXXXXXX,1,Goto(1${EXTEN},1) ; if you dial 10 digit. It puts the one in front and 'goes to' the resulting exten priority 1, which matches the first line.
exten => _NXXXXXX,1,Goto(1999${EXTEN},1) ; same as above. replace 999 with your area code.
[check-voicemail]
exten => 8500,1,VoiceMailMain() ; voicemailmain lets you check your VM.
The result:
when a call comes in from the provider, it starts at s,1 in [incoming]. It then executes the s priorities in order, which will: Answer the call; play a sound file, wait 5 seconds, dial three phones, and go to voicemail. If the caller types in an extension number during the welcome greeting or the 5 second delay, he will go straight to them (in [extensions], because it was included to incoming). If internal phones call each other by dialing two digits, it rings their destination and goes to voicemail. And if internal phones want to dial out (7 10 or 11 digit), it sends that out through the provider as a 11 digit number (dial-out context is included in phones). You can also check your VM by dialing 8500 from either inside or outside.
If you get more lines for your kids, you can put them in different contexts. A different context might have it's s,1 be just goto(extensions,13,1) which would send that call straight to exten 13, then to voicemail (as above).
Hopefully by now if you're still awake you are realizing how flexible this system is. I've shown you a few basic applications (dial voicemail voicemailmain goto answer), in reality there are over 160 applications that come with Asterisk. And if you don't like those, you can use AGI (Asterisk Gateway Interface), an API that lets you script out call flows in PHP, Perl, or just about any other language.
Also as an aside- be very careful with includes. Careless use of contexts and includes can give random people access to billable services. For example, if you include dial-out in incoming, then any caller can punch a 11 digit number as their 'extension' and the call will go through, on your dime!
Lastly, there is one thing (i've used Asterisk for a few years and I've only found one thing) that Asterisk cannot do: Shared Line Appearance. This is where an analog line gets a softkey on the phone, which lights up when it is in use, and pushing that button while lit conferences you in with the others already talking. This can be useful in a home environment. However, it's scheduled to be included in Asterisk 1.4, which should hit beta before the end of the month. (current version is 1.2.12 as i recall). As you may have imagined, Asterisk is named after the wildcard character, because it can talk to almost any type of phone/line/system, do anything with the call, and pass it off to any other phone/line/system.
As an example, I recently used Asterisk to replace the voicemail system on an outdated analog PBX. I posted a full writeup if interested:
https://www.voip-info.org/wiki/view/Asterisk-Partner+ACS+for+Voicemail Anyway, hope that all helps, sorry for the length!