Error 503 when calling some softphones

Hi all,
I’m running some tests with an AsteriskNOW distro in a VirtualBox machine. I’ve configured two SIP extensions, 1000 and 1001, that will be used by some softphones in the host machine. The configuration of the extensions is identical. The softphones should be able to call each other via Asterisk.
The softphones I’m using are:
(1) SIP Communicator
(2) MjSip
(3) a small softphone written by me, using the JAIN SIP stack (i.e. the same of (1))
Everything works fine when the callee is (1); if the callees are either (2) or (3), the call fails with a “503 Service Unavailable” response. There are two Asterisk headers in that response:

X-Asterisk-HangupCause: Unknown
X-Asterisk-HangupCauseCode: 20

The Asterisk log of the call is at the end of the message.
I thought the problem was in the REGISTER requests from the callee, but the packets sent by all softphones looks similar and compliant.

What does the error mean? Where should I look for the cause?

Many thanks & best regards
Enrico

[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:1] Macro("SIP/1001-00000012", "exten-vm,novm,1000") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:1] Macro("SIP/1001-00000012", "user-callerid,") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:1] Set("SIP/1001-00000012", "AMPUSER=1001") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:2] GotoIf("SIP/1001-00000012", "0?report") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:3] ExecIf("SIP/1001-00000012", "1?Set(REALCALLERIDNUM=1001)") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:4] Set("SIP/1001-00000012", "AMPUSER=1001") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:5] Set("SIP/1001-00000012", "AMPUSERCIDNAME=Tester2") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:6] GotoIf("SIP/1001-00000012", "0?report") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:7] Set("SIP/1001-00000012", "AMPUSERCID=1001") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:8] Set("SIP/1001-00000012", "CALLERID(all)="Tester2" <1001>") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:9] GotoIf("SIP/1001-00000012", "0?continue") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:10] Set("SIP/1001-00000012", "__TTL=64") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:11] GotoIf("SIP/1001-00000012", "1?continue") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-user-callerid,s,18)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:18] NoOp("SIP/1001-00000012", "Using CallerID "Tester2" <1001>") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:2] Set("SIP/1001-00000012", "RingGroupMethod=none") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:3] Set("SIP/1001-00000012", "VMBOX=novm") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:4] Set("SIP/1001-00000012", "EXTTOCALL=1000") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:5] Set("SIP/1001-00000012", "CFUEXT=") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:6] Set("SIP/1001-00000012", "CFBEXT=") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:7] Set("SIP/1001-00000012", "RT=""") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:8] Macro("SIP/1001-00000012", "record-enable,1000,IN") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:1] GotoIf("SIP/1001-00000012", "1?check") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-record-enable,s,4)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:4] ExecIf("SIP/1001-00000012", "0?MacroExit()") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:5] GotoIf("SIP/1001-00000012", "0?Group:OUT") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-record-enable,s,16)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:16] GotoIf("SIP/1001-00000012", "1?IN") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-record-enable,s,21)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:21] ExecIf("SIP/1001-00000012", "1?MacroExit()") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:9] Macro("SIP/1001-00000012", "dial,,tr,1000") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:1] GotoIf("SIP/1001-00000012", "1?dial") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-dial,s,3)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:3] AGI("SIP/1001-00000012", "dialparties.agi") in new stack
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:     -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:  dialparties.agi: Starting New Dialparties.agi
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:  dialparties.agi: Caller ID name is 'Tester2' number is '1001'
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:  dialparties.agi: Methodology of ring is  'none'
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:     -- dialparties.agi: Added extension 1000 to extension map
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:     -- dialparties.agi: Extension 1000 cf is disabled
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:     -- dialparties.agi: Extension 1000 do not disturb is disabled
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:  dialparties.agi: EXTENSION_STATE: 4 (UNAVAILABLE)
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:     -- dialparties.agi: dbset CALLTRACE/1000 to 1001
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:     -- dialparties.agi: Filtered ARG3: 1000
[Sep  7 12:47:28] VERBOSE[4721] res_agi.c:     -- <SIP/1001-00000012>AGI Script dialparties.agi completed, returning 0
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:7] Dial("SIP/1001-00000012", "SIP/1000,,tr") in new stack
[Sep  7 12:47:28] VERBOSE[4721] netsock.c:   == Using SIP RTP TOS bits 184
[Sep  7 12:47:28] VERBOSE[4721] netsock.c:   == Using SIP RTP CoS mark 5
[Sep  7 12:47:28] WARNING[4721] app_dial.c: Unable to create channel of type 'SIP' (cause 20 - Unknown)
[Sep  7 12:47:28] VERBOSE[4721] app_dial.c:   == Everyone is busy/congested at this time (1:0/0/1)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:8] Set("SIP/1001-00000012", "DIALSTATUS=CHANUNAVAIL") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:9] GosubIf("SIP/1001-00000012", "0?CHANUNAVAIL,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:10] GotoIf("SIP/1001-00000012", "0?exit,return") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:11] Set("SIP/1001-00000012", "SV_DIALSTATUS=CHANUNAVAIL") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:12] GosubIf("SIP/1001-00000012", "0?docfu,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:13] GosubIf("SIP/1001-00000012", "0?docfb,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:14] Set("SIP/1001-00000012", "DIALSTATUS=CHANUNAVAIL") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:15] NoOp("SIP/1001-00000012", "Voicemail is 'novm'") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:16] GotoIf("SIP/1001-00000012", "1?s-CHANUNAVAIL,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-exten-vm,s-CHANUNAVAIL,1)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:1] NoOp("SIP/1001-00000012", "IVR_RETVM:  IVR_CONTEXT: ") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:2] GotoIf("SIP/1001-00000012", "0?exit,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:3] PlayTones("SIP/1001-00000012", "congestion") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:4] Congestion("SIP/1001-00000012", "10") in new stack
[Sep  7 12:47:28] VERBOSE[4721] app_macro.c:   == Spawn extension (macro-exten-vm, s-CHANUNAVAIL, 4) exited non-zero on 'SIP/1001-00000012' in macro 'exten-vm'
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:   == Spawn extension (from-internal, 1000, 1) exited non-zero on 'SIP/1001-00000012'
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:1] Macro("SIP/1001-00000012", "hangupcall") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:1] GotoIf("SIP/1001-00000012", "1?skiprg") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-hangupcall,s,4)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:4] GotoIf("SIP/1001-00000012", "1?skipblkvm") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-hangupcall,s,7)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:7] GotoIf("SIP/1001-00000012", "1?theend") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Goto (macro-hangupcall,s,9)
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [[email protected]:9] Hangup("SIP/1001-00000012", "") in new stack
[Sep  7 12:47:28] VERBOSE[4721] app_macro.c:   == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/1001-00000012' in macro 'hangupcall'
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:   == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/1001-00000012'