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 [1000@from-internal:1] Macro("SIP/1001-00000012", "exten-vm,novm,1000") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:1] Macro("SIP/1001-00000012", "user-callerid,") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:1] Set("SIP/1001-00000012", "AMPUSER=1001") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:2] GotoIf("SIP/1001-00000012", "0?report") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:3] ExecIf("SIP/1001-00000012", "1?Set(REALCALLERIDNUM=1001)") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:4] Set("SIP/1001-00000012", "AMPUSER=1001") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:5] Set("SIP/1001-00000012", "AMPUSERCIDNAME=Tester2") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:6] GotoIf("SIP/1001-00000012", "0?report") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:7] Set("SIP/1001-00000012", "AMPUSERCID=1001") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:8] Set("SIP/1001-00000012", "CALLERID(all)="Tester2" <1001>") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:9] GotoIf("SIP/1001-00000012", "0?continue") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid:10] Set("SIP/1001-00000012", "__TTL=64") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-user-callerid: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 [s@macro-user-callerid:18] NoOp("SIP/1001-00000012", "Using CallerID "Tester2" <1001>") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:2] Set("SIP/1001-00000012", "RingGroupMethod=none") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:3] Set("SIP/1001-00000012", "VMBOX=novm") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:4] Set("SIP/1001-00000012", "EXTTOCALL=1000") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:5] Set("SIP/1001-00000012", "CFUEXT=") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:6] Set("SIP/1001-00000012", "CFBEXT=") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:7] Set("SIP/1001-00000012", "RT=""") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:8] Macro("SIP/1001-00000012", "record-enable,1000,IN") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-record-enable: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 [s@macro-record-enable:4] ExecIf("SIP/1001-00000012", "0?MacroExit()") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-record-enable: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 [s@macro-record-enable: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 [s@macro-record-enable:21] ExecIf("SIP/1001-00000012", "1?MacroExit()") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:9] Macro("SIP/1001-00000012", "dial,,tr,1000") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-dial: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 [s@macro-dial: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 [s@macro-dial: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 [s@macro-dial:8] Set("SIP/1001-00000012", "DIALSTATUS=CHANUNAVAIL") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-dial:9] GosubIf("SIP/1001-00000012", "0?CHANUNAVAIL,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:10] GotoIf("SIP/1001-00000012", "0?exit,return") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:11] Set("SIP/1001-00000012", "SV_DIALSTATUS=CHANUNAVAIL") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:12] GosubIf("SIP/1001-00000012", "0?docfu,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:13] GosubIf("SIP/1001-00000012", "0?docfb,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:14] Set("SIP/1001-00000012", "DIALSTATUS=CHANUNAVAIL") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm:15] NoOp("SIP/1001-00000012", "Voicemail is 'novm'") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-exten-vm: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 [s-CHANUNAVAIL@macro-exten-vm:1] NoOp("SIP/1001-00000012", "IVR_RETVM:  IVR_CONTEXT: ") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s-CHANUNAVAIL@macro-exten-vm:2] GotoIf("SIP/1001-00000012", "0?exit,1") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s-CHANUNAVAIL@macro-exten-vm:3] PlayTones("SIP/1001-00000012", "congestion") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s-CHANUNAVAIL@macro-exten-vm: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 [h@from-internal:1] Macro("SIP/1001-00000012", "hangupcall") in new stack
[Sep  7 12:47:28] VERBOSE[4721] pbx.c:     -- Executing [s@macro-hangupcall: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 [s@macro-hangupcall: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 [s@macro-hangupcall: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 [s@macro-hangupcall: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'