[RESOLVED] Cause 20 - Subscriber absent - But which one?

Dear folks, I have a problem debugging a TAPI issue (we are running in device and user mode).
ActivaTSP dials extension 555 in this case.
Everything seems to be working, but the two cause 20’s trouble me, because I don’t know what exactly they mean, why they occur, and which subscriber they are actually talking about.

My question is, which two subscribers are absent??? SIP/101 and SIP102?? Or just SIP101? (That one would make sense).
I would really appreciate some help as to find out which ones it’s talking about…

I am getting the following call log. Please note the last two lines with subscriber absent:

-- Executing [555@from-internal:1] Set("Local/555@from-internal-00000047;2", "__RINGTIMER=15") in new stack
-- Executing [555@from-internal:2] Macro("Local/555@from-internal-00000047;2", "exten-vm,555,555,0,0,0") in new stack
-- Executing [s@macro-exten-vm:1] Macro("Local/555@from-internal-00000047;2", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("Local/555@from-internal-00000047;2", "AMPUSER=555") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("Local/555@from-internal-00000047;2", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("Local/555@from-internal-00000047;2", "1?Set(REALCALLERIDNUM=555)") in new stack
-- Executing [s@macro-user-callerid:4] Set("Local/555@from-internal-00000047;2", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:5] Set("Local/555@from-internal-00000047;2", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("Local/555@from-internal-00000047;2", "1?report") in new stack
-- Goto (macro-user-callerid,s,14)
-- Executing [s@macro-user-callerid:14] GotoIf("Local/555@from-internal-00000047;2", "0?continue") in new stack
-- Executing [s@macro-user-callerid:15] Set("Local/555@from-internal-00000047;2", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:16] GotoIf("Local/555@from-internal-00000047;2", "1?continue") in new stack
-- Goto (macro-user-callerid,s,27)
-- Executing [s@macro-user-callerid:27] Set("Local/555@from-internal-00000047;2", "CALLERID(number)=555") in new stack
-- Executing [s@macro-user-callerid:28] Set("Local/555@from-internal-00000047;2", "CALLERID(name)=#Id=37") in new stack
-- Executing [s@macro-user-callerid:29] Set("Local/555@from-internal-00000047;2", "CDR(cnum)=555") in new stack
-- Executing [s@macro-user-callerid:30] Set("Local/555@from-internal-00000047;2", "CDR(cnam)=#Id=37") in new stack
-- Executing [s@macro-user-callerid:31] Set("Local/555@from-internal-00000047;2", "CHANNEL(language)=en") in new stack
-- Executing [s@macro-exten-vm:2] Set("Local/555@from-internal-00000047;2", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("Local/555@from-internal-00000047;2", "__EXTTOCALL=555") in new stack
-- Executing [s@macro-exten-vm:4] Set("Local/555@from-internal-00000047;2", "__PICKUPMARK=555") in new stack
-- Executing [s@macro-exten-vm:5] Set("Local/555@from-internal-00000047;2", "RT=15") in new stack
-- Executing [s@macro-exten-vm:6] Gosub("Local/555@from-internal-00000047;2", "sub-record-check,s,1(exten,555,)") in new stack
-- Executing [s@sub-record-check:1] Set("Local/555@from-internal-00000047;2", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:2] GotoIf("Local/555@from-internal-00000047;2", "1?check") in new stack
-- Goto (sub-record-check,s,7)
-- Executing [s@sub-record-check:7] Set("Local/555@from-internal-00000047;2", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:8] GotoIf("Local/555@from-internal-00000047;2", "1?next") in new stack
-- Goto (sub-record-check,s,11)
-- Executing [s@sub-record-check:11] ExecIf("Local/555@from-internal-00000047;2", "0?Return()") in new stack
-- Executing [s@sub-record-check:12] ExecIf("Local/555@from-internal-00000047;2", "0?Set(__REC_POLICY_MODE=)") in new stack
-- Executing [s@sub-record-check:13] GotoIf("Local/555@from-internal-00000047;2", "0?exten,1") in new stack
-- Executing [s@sub-record-check:14] Set("Local/555@from-internal-00000047;2", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:15] Set("Local/555@from-internal-00000047;2", "NOW=1362498674") in new stack
-- Executing [s@sub-record-check:16] Set("Local/555@from-internal-00000047;2", "__DAY=05") in new stack
-- Executing [s@sub-record-check:17] Set("Local/555@from-internal-00000047;2", "__MONTH=03") in new stack
-- Executing [s@sub-record-check:18] Set("Local/555@from-internal-00000047;2", "__YEAR=2013") in new stack
-- Executing [s@sub-record-check:19] Set("Local/555@from-internal-00000047;2", "__TIMESTR=20130305-165114") in new stack
-- Executing [s@sub-record-check:20] Set("Local/555@from-internal-00000047;2", "__FROMEXTEN=555") in new stack
-- Executing [s@sub-record-check:21] Set("Local/555@from-internal-00000047;2", "__CALLFILENAME=exten-555-555-20130305-165114-1362498674.178") in new stack
-- Executing [s@sub-record-check:22] Goto("Local/555@from-internal-00000047;2", "exten,1") in new stack
-- Goto (sub-record-check,exten,1)
-- Executing [exten@sub-record-check:1] GotoIf("Local/555@from-internal-00000047;2", "0?callee") in new stack
-- Executing [exten@sub-record-check:2] Set("Local/555@from-internal-00000047;2", "__REC_POLICY_MODE=dontcare") in new stack
-- Executing [exten@sub-record-check:3] GotoIf("Local/555@from-internal-00000047;2", "1?caller") in new stack
-- Goto (sub-record-check,exten,10)
-- Executing [exten@sub-record-check:10] Set("Local/555@from-internal-00000047;2", "__REC_POLICY_MODE=dontcare") in new stack
-- Executing [exten@sub-record-check:11] GosubIf("Local/555@from-internal-00000047;2", "0?record,1(exten,555,555)") in new stack
-- Executing [exten@sub-record-check:12] Return("Local/555@from-internal-00000047;2", "") in new stack
-- Executing [s@macro-exten-vm:7] Macro("Local/555@from-internal-00000047;2", "dial-one,15,Ttr,555") in new stack
-- Executing [s@macro-dial-one:1] Set("Local/555@from-internal-00000047;2", "DEXTEN=555") in new stack
-- Executing [s@macro-dial-one:2] Set("Local/555@from-internal-00000047;2", "DIALSTATUS_CW=") in new stack
-- Executing [s@macro-dial-one:3] GosubIf("Local/555@from-internal-00000047;2", "0?screen,1()") in new stack
-- Executing [s@macro-dial-one:4] GosubIf("Local/555@from-internal-00000047;2", "0?cf,1()") in new stack
-- Executing [s@macro-dial-one:5] GotoIf("Local/555@from-internal-00000047;2", "1?skip1") in new stack
-- Goto (macro-dial-one,s,8)
-- Executing [s@macro-dial-one:8] GotoIf("Local/555@from-internal-00000047;2", "0?nodial") in new stack
-- Executing [s@macro-dial-one:9] GotoIf("Local/555@from-internal-00000047;2", "0?continue") in new stack
-- Executing [s@macro-dial-one:10] Set("Local/555@from-internal-00000047;2", "EXTHASCW=ENABLED") in new stack
-- Executing [s@macro-dial-one:11] GotoIf("Local/555@from-internal-00000047;2", "0?next1:cwinusebusy") in new stack
-- Goto (macro-dial-one,s,23)
-- Executing [s@macro-dial-one:23] GotoIf("Local/555@from-internal-00000047;2", "1?next3:continue") in new stack
-- Goto (macro-dial-one,s,24)
-- Executing [s@macro-dial-one:24] ExecIf("Local/555@from-internal-00000047;2", "0?Set(DIALSTATUS_CW=BUSY)") in new stack
-- Executing [s@macro-dial-one:25] GotoIf("Local/555@from-internal-00000047;2", "0?nodial") in new stack
-- Executing [s@macro-dial-one:26] GosubIf("Local/555@from-internal-00000047;2", "1?dstring,1():dlocal,1()") in new stack
-- Executing [dstring@macro-dial-one:1] Set("Local/555@from-internal-00000047;2", "DSTRING=") in new stack
-- Executing [dstring@macro-dial-one:2] Set("Local/555@from-internal-00000047;2", "DEVICES=101&102") in new stack
-- Executing [dstring@macro-dial-one:3] ExecIf("Local/555@from-internal-00000047;2", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:4] ExecIf("Local/555@from-internal-00000047;2", "0?Set(DEVICES=01&102)") in new stack
-- Executing [dstring@macro-dial-one:5] Set("Local/555@from-internal-00000047;2", "LOOPCNT=2") in new stack
-- Executing [dstring@macro-dial-one:6] Set("Local/555@from-internal-00000047;2", "ITER=1") in new stack
-- Executing [dstring@macro-dial-one:7] Set("Local/555@from-internal-00000047;2", "THISDIAL=SIP/101") in new stack
-- Executing [dstring@macro-dial-one:8] GosubIf("Local/555@from-internal-00000047;2", "1?zap2dahdi,1()") in new stack
-- Executing [zap2dahdi@macro-dial-one:1] ExecIf("Local/555@from-internal-00000047;2", "0?Return()") in new stack
-- Executing [zap2dahdi@macro-dial-one:2] Set("Local/555@from-internal-00000047;2", "NEWDIAL=") in new stack
-- Executing [zap2dahdi@macro-dial-one:3] Set("Local/555@from-internal-00000047;2", "LOOPCNT2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:4] Set("Local/555@from-internal-00000047;2", "ITER2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:5] Set("Local/555@from-internal-00000047;2", "THISPART2=SIP/101") in new stack
-- Executing [zap2dahdi@macro-dial-one:6] ExecIf("Local/555@from-internal-00000047;2", "0?Set(THISPART2=DAHDI/101)") in new stack
-- Executing [zap2dahdi@macro-dial-one:7] Set("Local/555@from-internal-00000047;2", "NEWDIAL=SIP/101&") in new stack
-- Executing [zap2dahdi@macro-dial-one:8] Set("Local/555@from-internal-00000047;2", "ITER2=2") in new stack
-- Executing [zap2dahdi@macro-dial-one:9] GotoIf("Local/555@from-internal-00000047;2", "0?begin2") in new stack
-- Executing [zap2dahdi@macro-dial-one:10] Set("Local/555@from-internal-00000047;2", "THISDIAL=SIP/101") in new stack
-- Executing [zap2dahdi@macro-dial-one:11] Return("Local/555@from-internal-00000047;2", "") in new stack
-- Executing [dstring@macro-dial-one:9] Set("Local/555@from-internal-00000047;2", "DSTRING=SIP/101&") in new stack
-- Executing [dstring@macro-dial-one:10] Set("Local/555@from-internal-00000047;2", "ITER=2") in new stack
-- Executing [dstring@macro-dial-one:11] GotoIf("Local/555@from-internal-00000047;2", "1?begin") in new stack
-- Goto (macro-dial-one,dstring,7)
-- Executing [dstring@macro-dial-one:7] Set("Local/555@from-internal-00000047;2", "THISDIAL=SIP/102") in new stack
-- Executing [dstring@macro-dial-one:8] GosubIf("Local/555@from-internal-00000047;2", "1?zap2dahdi,1()") in new stack
-- Executing [zap2dahdi@macro-dial-one:1] ExecIf("Local/555@from-internal-00000047;2", "0?Return()") in new stack
-- Executing [zap2dahdi@macro-dial-one:2] Set("Local/555@from-internal-00000047;2", "NEWDIAL=") in new stack
-- Executing [zap2dahdi@macro-dial-one:3] Set("Local/555@from-internal-00000047;2", "LOOPCNT2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:4] Set("Local/555@from-internal-00000047;2", "ITER2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:5] Set("Local/555@from-internal-00000047;2", "THISPART2=SIP/102") in new stack
-- Executing [zap2dahdi@macro-dial-one:6] ExecIf("Local/555@from-internal-00000047;2", "0?Set(THISPART2=DAHDI/102)") in new stack
-- Executing [zap2dahdi@macro-dial-one:7] Set("Local/555@from-internal-00000047;2", "NEWDIAL=SIP/102&") in new stack
-- Executing [zap2dahdi@macro-dial-one:8] Set("Local/555@from-internal-00000047;2", "ITER2=2") in new stack
-- Executing [zap2dahdi@macro-dial-one:9] GotoIf("Local/555@from-internal-00000047;2", "0?begin2") in new stack
-- Executing [zap2dahdi@macro-dial-one:10] Set("Local/555@from-internal-00000047;2", "THISDIAL=SIP/102") in new stack
-- Executing [zap2dahdi@macro-dial-one:11] Return("Local/555@from-internal-00000047;2", "") in new stack
-- Executing [dstring@macro-dial-one:9] Set("Local/555@from-internal-00000047;2", "DSTRING=SIP/101&SIP/102&") in new stack
-- Executing [dstring@macro-dial-one:10] Set("Local/555@from-internal-00000047;2", "ITER=3") in new stack
-- Executing [dstring@macro-dial-one:11] GotoIf("Local/555@from-internal-00000047;2", "0?begin") in new stack
-- Executing [dstring@macro-dial-one:12] Set("Local/555@from-internal-00000047;2", "DSTRING=SIP/101&SIP/102") in new stack
-- Executing [dstring@macro-dial-one:13] Return("Local/555@from-internal-00000047;2", "") in new stack
-- Executing [s@macro-dial-one:27] GotoIf("Local/555@from-internal-00000047;2", "0?nodial") in new stack
-- Executing [s@macro-dial-one:28] GotoIf("Local/555@from-internal-00000047;2", "0?skiptrace") in new stack
-- Executing [s@macro-dial-one:29] GosubIf("Local/555@from-internal-00000047;2", "1?ctset,1():ctclear,1()") in new stack
-- Executing [ctset@macro-dial-one:1] Set("Local/555@from-internal-00000047;2", "DB(CALLTRACE/555)=555") in new stack
-- Executing [ctset@macro-dial-one:2] Return("Local/555@from-internal-00000047;2", "") in new stack
-- Executing [s@macro-dial-one:30] Set("Local/555@from-internal-00000047;2", "D_OPTIONS=Ttr") in new stack
-- Executing [s@macro-dial-one:31] ExecIf("Local/555@from-internal-00000047;2", "0?SIPAddHeader(Alert-Info: )") in new stack
-- Executing [s@macro-dial-one:32] ExecIf("Local/555@from-internal-00000047;2", "0?SIPAddHeader()") in new stack
-- Executing [s@macro-dial-one:33] ExecIf("Local/555@from-internal-00000047;2", "0?Set(CHANNEL(musicclass)=)") in new stack
-- Executing [s@macro-dial-one:34] GosubIf("Local/555@from-internal-00000047;2", "0?qwait,1()") in new stack
-- Executing [s@macro-dial-one:35] Set("Local/555@from-internal-00000047;2", "__CWIGNORE=") in new stack
-- Executing [s@macro-dial-one:36] Set("Local/555@from-internal-00000047;2", "__KEEPCID=TRUE") in new stack
-- Executing [s@macro-dial-one:37] GotoIf("Local/555@from-internal-00000047;2", "0?usegoto,1") in new stack
-- Executing [s@macro-dial-one:38] GotoIf("Local/555@from-internal-00000047;2", "1?godial") in new stack
-- Goto (macro-dial-one,s,42)
-- Executing [s@macro-dial-one:42] Dial("Local/555@from-internal-00000047;2", "SIP/101&SIP/102,15,Ttr") in new stack

[2013-03-05 16:51:14] WARNING[5151][C-0000004f]: app_dial.c:2437 dial_exec_full: Unable to create channel of type ‘SIP’ (cause 20 - Subscriber absent)
[2013-03-05 16:51:14] WARNING[5151][C-0000004f]: app_dial.c:2437 dial_exec_full: Unable to create channel of type ‘SIP’ (cause 20 - Subscriber absent)

From the ISDN hangup causes(google them)

The subscriber here is the dialed extension.

Cause No. 20 - subscriber absent.
This cause value is used when a mobile station has logged off. Radio contact is not obtained with a mobile station or if a personal telecommunication user is temporarily not addressable at any user-network interface.

You get two because both subscribers

SIP/101&SIP/102

are not available looks like its a Activa problem not an asterisk/FreePBX one.

The thing is, though, SIP/102 actually rings and the call connects properly.
That’s what is confusing me.

Sorry I don’t do windows.

I would like to add that once SIP/101 is logged off, none of the two messages occur, so it seems as though Asterisk logs the warning twice for the single occurrence of SIP/101 being offline.

It seems as though this solves my “problem”, but it interesting nonetheless…