420 "Options Disabled" so confused

Totally stumped on this and any help would be appreciated.

Trying to make a call from the sip number to my asterisk box then to a local network phone.
When I do a Hello World test the call goes though but when I try to dial the local exten it give me this error.

-- ast_get_srv: SRV lookup for '_sip._UDP.sipgate.com' mapped to host sipgate.com, port 5060

== Using SIP RTP CoS mark 5
– Executing [4370084e0@voip-provider:1] Dial(“SIP/sipgate-0000000d”, “SIP/1000”) in new stack
== Using SIP RTP CoS mark 5
– Called 1000
– SIP/1000-0000000e is ringing
– SIP/1000-0000000e answered SIP/sipgate-0000000d
– Native bridging SIP/sipgate-0000000d and SIP/1000-0000000e
– Got SIP response 420 “Option Disabled” back from 204.155.28.10
== Spawn extension (voip-provider, 4370084e0, 1) exited non-zero on ‘SIP/sipgate-0000000d’

sip.conf
[general]

port=5060
bindaddr=0.0.0.0

register => 4370084e0:pass@sipgate.com/4370084e0

[1000]
secret=
type=friend
context=phones
host=dynamic
context=internal

[1001]
secret=
type=friend
context=phones
host=dynamic
context=internal

[sipgate]
type=friend
context=voip-provider
insecure=invite
username=4370084e0
defaultuser=4370084e0
fromuser=4370084e0
secret=
fromdomain=sipgate.com
host=sipgate.com
outboundproxy=proxy.live.sipgate.com
qualify=yes
reinvite=no
disallow=all
allow=ulaw
dtmfmode=rfc2833

extensions.conf

[root@asterisk asterisk]# vi extensions.conf
[globals]
[general]

[default]
exten => s,1,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()

[incoming_calls]

[internal]
exten => 500,1,Answer()
exten => 500,n,Wait(20)
exten => 500,n,Playback(hello-world)
exten => 500,n,Echo(20)
exten => 500,n,Hangup()

exten => 1000,1,Dial(SIP/1000,30)
exten => 1000,n,Hangup()

exten => 1001,n,Dial(SIP/1001,30)
exten => 1001,n,Hangup()

[voip-provider]

exten => 4370084e0,1,Dial(SIP/1000)

[phones]
include => internal
include => voip-provider

3 things
version is 1.6
It is canreinvite copy error sorry

By putting Wait(1) before dial it fixes the problem. I would still like to know why this is? Thanks for any help.