IAX Issues. Please help :)

Alright so I have an asterisk box out on the net that I wnat to be able to use a softphone to connect to via the IAX2 protocal. I have used and like Idefisk, but it just seems to not be working on this machine. Here are the errors that asterisk -vvvvr returns with iax2 debug set:

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX	 Subclass: REGREJ
   Timestamp: 00013ms  SCall: 00019  DCall: 31935 [67.184.230.25:4569]
   CAUSE		   : Registration Refused
   CAUSE CODE	  : 29

Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 000 Type: IAX	 Subclass: REGREQ
   Timestamp: 00003ms  SCall: 31935  DCall: 00000 [67.184.230.25:4569]
   USERNAME		: 8088
   REFRESH		 : 60

Tx-Frame Retry[-01] -- OSeqno: 000 ISeqno: 001 Type: IAX	 Subclass: ACK
   Timestamp: 00003ms  SCall: 00019  DCall: 31935 [67.184.230.25:4569]
Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 000 Type: IAX	 Subclass: REGREQ
   Timestamp: 00003ms  SCall: 31935  DCall: 00000 [67.184.230.25:4569]
   USERNAME		: 8088
   REFRESH		 : 60

Ok, Registration refused. I double checked hte usernames, passwords, etc, its all setup right. till the same error. IDEFIsk just returns a timeout after awhile. I dont get it. Is there any way for asterisk to be more specific on the part of the registration it is refusing? Anything special I need to do if the client is behind my home NAT? Anything special I need to do serverside to tell it that the client is coming in over the nt versus the local network? Please help me out, its really angering me, especially since this is one of the main reasons I have this machine setup on a nice fat pipe (future plans to turn it into a community PBX project for pod/vidcasters and internet radio shows)

Thanks alot
–Will