Asterisk as Sip User Agent

Hello all,
I have come across on several places ( in internet where it states that “Asterisk registers as a client to another SIP server and receives and places calls to this server. Incoming calls are routed to an Asterisk extension”.

—It means asterisk can be used as a sip client. This feature specially suites my need. But all the reference I usually get is about asterisk as a sip server. Can anyone help me on how I can proceed to use Asterisk as a Sip User Agent? My requirements are as follow:

1> Dynamically register to [one/more] third party sip accounts through AMI interface with asterisk.
2> Get updates on incoming calls through AMI.
3> Control(hangup/transfer/play announcement) the in coming calls with ami.