CID Superfecta is not adding CID to calls

We’re having an issue where a call comes in an h.323 trunk and despite having CID Superfecta on and enabled for the “Any DID/CID” inbound route, Caller ID information is not being sent to Yealink T46G SIP endpoints. We are looking to use the Asterisk Phonebook and OpenCNAM sources in CID Superfecta.

Here is my Asterisk Phone book:

Here is my CID Superfecta config:

Here is my inbound route:


Here is my trunk:

Here is a call detail report where you can see that calls made from the 480 extension do not get a CNAM from Superfecta

ooh323.conf
http://pastebin.com/Mcyy4JxV

Can anyone think of a reason that this wouldn’t work?

Everything looks correct. Superfecta logs activity during the inbound call in the Asterisk full log. Locate the lines in /var/log/asterisk/full during the problem call and see if there are clues there.

Thank you so much for the reply Lorne. Your various posts on other topics have been a big help over the last few months.

I’ve attached my full asterisk log, but I’m not seeing any explicit mention of CIDSuperfecta:

[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] app_macro.c: == Spawn extension (macro-dial-one, s, 44) exited non-zero on ‘OOH323/panasonic-1’ in macro ‘dial-one’
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] app_macro.c: == Spawn extension (macro-exten-vm, s, 16) exited non-zero on ‘OOH323/panasonic-1’ in macro ‘exten-vm’
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] pbx.c: == Spawn extension (ext-local, 502, 2) exited non-zero on ‘OOH323/panasonic-1’
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] pbx.c: – Executing [h@ext-local:1] Macro(“OOH323/panasonic-1”, “hangupcall,”) in new stack
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] pbx.c: – Executing [s@macro-hangupcall:1] ExecIf(“OOH323/panasonic-1”, “0?Set(CDR(recordingfile)=.wav)”) in new stack
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] pbx.c: – Executing [s@macro-hangupcall:2] GotoIf(“OOH323/panasonic-1”, “1?theend”) in new stack
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] pbx.c: – Goto (macro-hangupcall,s,4)
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] pbx.c: – Executing [s@macro-hangupcall:4] Hangup(“OOH323/panasonic-1”, “”) in new stack
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] app_macro.c: == Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘OOH323/panasonic-1’ in macro ‘hangupcall’
[2015-06-19 08:56:03] VERBOSE[2174][C-00000001] pbx.c: == Spawn extension (ext-local, h, 1) exited non-zero on ‘OOH323/panasonic-1’
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [502@from-trunk:1] GotoIf(“OOH323/panasonic-2”, “1?ext-local,502,1”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (ext-local,502,1)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [502@ext-local:1] Set(“OOH323/panasonic-2”, “__RINGTIMER=15”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [502@ext-local:2] Macro(“OOH323/panasonic-2”, “exten-vm,502,502,0,0,0”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:1] Macro(“OOH323/panasonic-2”, “user-callerid,”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:1] Set(“OOH323/panasonic-2”, “TOUCH_MONITOR=1434718633.4”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:2] Set(“OOH323/panasonic-2”, “AMPUSER=480”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:3] GotoIf(“OOH323/panasonic-2”, “0?report”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:4] ExecIf(“OOH323/panasonic-2”, “1?Set(REALCALLERIDNUM=480)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:5] Set(“OOH323/panasonic-2”, “AMPUSER=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:6] GotoIf(“OOH323/panasonic-2”, “0?limit”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:7] Set(“OOH323/panasonic-2”, “AMPUSERCIDNAME=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:8] GotoIf(“OOH323/panasonic-2”, “1?report”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-user-callerid,s,16)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:16] GotoIf(“OOH323/panasonic-2”, “0?continue”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:17] ExecIf(“OOH323/panasonic-2”, “1?Set(__CALLEE_ACCOUNCODE=)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:18] Set(“OOH323/panasonic-2”, “__TTL=64”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:19] GotoIf(“OOH323/panasonic-2”, “1?continue”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-user-callerid,s,30)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:30] Set(“OOH323/panasonic-2”, “CALLERID(number)=480”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:31] Set(“OOH323/panasonic-2”, “CALLERID(name)=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:32] Set(“OOH323/panasonic-2”, “CDR(cnum)=480”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:33] Set(“OOH323/panasonic-2”, “CDR(cnam)=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-user-callerid:34] Set(“OOH323/panasonic-2”, “CHANNEL(language)=en”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:2] Set(“OOH323/panasonic-2”, “RingGroupMethod=none”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:3] Set(“OOH323/panasonic-2”, “__EXTTOCALL=502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:4] Set(“OOH323/panasonic-2”, “__PICKUPMARK=502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:5] Set(“OOH323/panasonic-2”, “RT=15”) in new stack
[2015-06-19 08:57:13] WARNING[2229][C-00000002] chan_sip.c: This function can only be used on SIP channels.
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:6] ExecIf(“OOH323/panasonic-2”, “0?Macro(vm,502,DIRECTDIAL,)”) in new stack
[2015-06-19 08:57:13] WARNING[2229][C-00000002] chan_sip.c: This function can only be used on SIP channels.
[2015-06-19 08:57:13] WARNING[2229][C-00000002] chan_sip.c: This function can only be used on SIP channels.
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:7] ExecIf(“OOH323/panasonic-2”, “0?MacroExit()”) in new stack
[2015-06-19 08:57:13] WARNING[2229][C-00000002] chan_sip.c: This function can only be used on SIP channels.
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:8] Gosub(“OOH323/panasonic-2”, “sub-record-check,s,1(exten,502,dontcare)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:1] GotoIf(“OOH323/panasonic-2”, “0?initialized”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:2] Set(“OOH323/panasonic-2”, “__REC_STATUS=INITIALIZED”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:3] Set(“OOH323/panasonic-2”, “NOW=1434718633”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:4] Set(“OOH323/panasonic-2”, “__DAY=19”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:5] Set(“OOH323/panasonic-2”, “__MONTH=06”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:6] Set(“OOH323/panasonic-2”, “__YEAR=2015”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:7] Set(“OOH323/panasonic-2”, “__TIMESTR=20150619-085713”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:8] Set(“OOH323/panasonic-2”, “__FROMEXTEN=480”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:9] Set(“OOH323/panasonic-2”, “__MON_FMT=wav”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:10] NoOp(“OOH323/panasonic-2”, “Recordings initialized”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:11] ExecIf(“OOH323/panasonic-2”, “0?Set(ARG3=dontcare)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:12] Set(“OOH323/panasonic-2”, “REC_POLICY_MODE_SAVE=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:13] ExecIf(“OOH323/panasonic-2”, “0?Set(REC_STATUS=NO)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:14] GotoIf(“OOH323/panasonic-2”, “5?checkaction”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (sub-record-check,s,17)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@sub-record-check:17] GotoIf(“OOH323/panasonic-2”, “1?sub-record-check,exten,1”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (sub-record-check,exten,1)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:1] NoOp(“OOH323/panasonic-2”, “Exten Recording Check between 480 and 502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:2] Set(“OOH323/panasonic-2”, “CALLTYPE=internal”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:3] ExecIf(“OOH323/panasonic-2”, “0?Set(CALLTYPE=)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:4] Set(“OOH323/panasonic-2”, “CALLEE=dontcare”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:5] ExecIf(“OOH323/panasonic-2”, “0?Set(CALLEE=dontcare)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:6] GotoIf(“OOH323/panasonic-2”, “0?callee”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:7] GotoIf(“OOH323/panasonic-2”, “1?caller”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (sub-record-check,exten,13)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:13] Set(“OOH323/panasonic-2”, “RECMODE=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:14] ExecIf(“OOH323/panasonic-2”, “1?Set(RECMODE=dontcare)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:15] ExecIf(“OOH323/panasonic-2”, “1?Set(RECMODE=dontcare)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:16] Gosub(“OOH323/panasonic-2”, “recordcheck,1(dontcare,internal,502)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [recordcheck@sub-record-check:1] NoOp(“OOH323/panasonic-2”, “Starting recording check against dontcare”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [recordcheck@sub-record-check:2] Goto(“OOH323/panasonic-2”, “dontcare”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (sub-record-check,recordcheck,3)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [recordcheck@sub-record-check:3] Return(“OOH323/panasonic-2”, “”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [exten@sub-record-check:17] Return(“OOH323/panasonic-2”, “”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:9] GotoIf(“OOH323/panasonic-2”, “1?macrodial”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-exten-vm,s,15)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:15] GosubIf(“OOH323/panasonic-2”, “0?clrheader,1()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-exten-vm:16] Macro(“OOH323/panasonic-2”, “dial-one,15,Ttr,502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:1] Set(“OOH323/panasonic-2”, “DEXTEN=502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:2] Set(“OOH323/panasonic-2”, “DIALSTATUS_CW=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:3] GosubIf(“OOH323/panasonic-2”, “0?screen,1()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:4] GosubIf(“OOH323/panasonic-2”, “0?cf,1()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:5] GotoIf(“OOH323/panasonic-2”, “1?skip1”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-dial-one,s,8)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:8] GotoIf(“OOH323/panasonic-2”, “0?nodial”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:9] GotoIf(“OOH323/panasonic-2”, “0?continue”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:10] Set(“OOH323/panasonic-2”, “EXTHASCW=ENABLED”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:11] GotoIf(“OOH323/panasonic-2”, “0?next1:cwinusebusy”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-dial-one,s,23)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:23] GotoIf(“OOH323/panasonic-2”, “1?next3:continue”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-dial-one,s,24)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:24] ExecIf(“OOH323/panasonic-2”, “0?Set(DIALSTATUS_CW=BUSY)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:25] GotoIf(“OOH323/panasonic-2”, “0?nodial”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:26] GosubIf(“OOH323/panasonic-2”, “1?dstring,1():dlocal,1()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:1] Set(“OOH323/panasonic-2”, “DSTRING=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:2] Set(“OOH323/panasonic-2”, “DEVICES=502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:3] ExecIf(“OOH323/panasonic-2”, “0?Return()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:4] ExecIf(“OOH323/panasonic-2”, “0?Set(DEVICES=02)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:5] Set(“OOH323/panasonic-2”, “LOOPCNT=1”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:6] Set(“OOH323/panasonic-2”, “ITER=1”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:7] Set(“OOH323/panasonic-2”, “THISDIAL=SIP/502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:8] GosubIf(“OOH323/panasonic-2”, “1?zap2dahdi,1()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:1] ExecIf(“OOH323/panasonic-2”, “0?Return()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:2] Set(“OOH323/panasonic-2”, “NEWDIAL=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:3] Set(“OOH323/panasonic-2”, “LOOPCNT2=1”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:4] Set(“OOH323/panasonic-2”, “ITER2=1”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:5] Set(“OOH323/panasonic-2”, “THISPART2=SIP/502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:6] ExecIf(“OOH323/panasonic-2”, “0?Set(THISPART2=DAHDI/502)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:7] Set(“OOH323/panasonic-2”, “NEWDIAL=SIP/502&”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:8] Set(“OOH323/panasonic-2”, “ITER2=2”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:9] GotoIf(“OOH323/panasonic-2”, “0?begin2”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:10] Set(“OOH323/panasonic-2”, “THISDIAL=SIP/502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [zap2dahdi@macro-dial-one:11] Return(“OOH323/panasonic-2”, “”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:9] GotoIf(“OOH323/panasonic-2”, “1?doset”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-dial-one,dstring,12)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:12] Set(“OOH323/panasonic-2”, “DSTRING=SIP/502&”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:13] Set(“OOH323/panasonic-2”, “ITER=2”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:14] GotoIf(“OOH323/panasonic-2”, “0?begin”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:15] Set(“OOH323/panasonic-2”, “DSTRING=SIP/502”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [dstring@macro-dial-one:16] Return(“OOH323/panasonic-2”, “”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:27] GotoIf(“OOH323/panasonic-2”, “0?nodial”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:28] GotoIf(“OOH323/panasonic-2”, “0?skiptrace”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:29] GosubIf(“OOH323/panasonic-2”, “1?ctset,1():ctclear,1()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [ctset@macro-dial-one:1] Set(“OOH323/panasonic-2”, “DB(CALLTRACE/502)=480”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [ctset@macro-dial-one:2] Return(“OOH323/panasonic-2”, “”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:30] Set(“OOH323/panasonic-2”, “D_OPTIONS=Ttr”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:31] ExecIf(“OOH323/panasonic-2”, “0?SIPAddHeader(Alert-Info: )”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:32] ExecIf(“OOH323/panasonic-2”, “0?SIPAddHeader()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:33] ExecIf(“OOH323/panasonic-2”, “0?Set(CHANNEL(musicclass)=)”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:34] GosubIf(“OOH323/panasonic-2”, “0?qwait,1()”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:35] Set(“OOH323/panasonic-2”, “__CWIGNORE=”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:36] Set(“OOH323/panasonic-2”, “__KEEPCID=TRUE”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:37] GotoIf(“OOH323/panasonic-2”, “0?usegoto,1”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:38] GotoIf(“OOH323/panasonic-2”, “1?godial”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-dial-one,s,43)
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:43] Macro(“OOH323/panasonic-2”, “dialout-one-predial-hook,”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dialout-one-predial-hook:1] MacroExit(“OOH323/panasonic-2”, “”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-dial-one:44] Dial(“OOH323/panasonic-2”, “SIP/502,15,Ttr”) in new stack
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] netsock2.c: == Using SIP RTP TOS bits 184
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] netsock2.c: == Using SIP RTP CoS mark 5
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] app_dial.c: – Called SIP/502
[2015-06-19 08:57:13] VERBOSE[2229][C-00000002] app_dial.c: – SIP/502-00000002 is ringing
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] app_macro.c: == Spawn extension (macro-dial-one, s, 44) exited non-zero on ‘OOH323/panasonic-2’ in macro ‘dial-one’
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] app_macro.c: == Spawn extension (macro-exten-vm, s, 16) exited non-zero on ‘OOH323/panasonic-2’ in macro ‘exten-vm’
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] pbx.c: == Spawn extension (ext-local, 502, 2) exited non-zero on ‘OOH323/panasonic-2’
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] pbx.c: – Executing [h@ext-local:1] Macro(“OOH323/panasonic-2”, “hangupcall,”) in new stack
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-hangupcall:1] ExecIf(“OOH323/panasonic-2”, “0?Set(CDR(recordingfile)=.wav)”) in new stack
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-hangupcall:2] GotoIf(“OOH323/panasonic-2”, “1?theend”) in new stack
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] pbx.c: – Goto (macro-hangupcall,s,4)
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] pbx.c: – Executing [s@macro-hangupcall:4] Hangup(“OOH323/panasonic-2”, “”) in new stack
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] app_macro.c: == Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘OOH323/panasonic-2’ in macro ‘hangupcall’
[2015-06-19 08:57:22] VERBOSE[2229][C-00000002] pbx.c: == Spawn extension (ext-local, h, 1) exited non-zero on ‘OOH323/panasonic-2’

It looks like there is no cnam being put into the call, but without seeing any explicit logs from Superfecta, I’m not sure.

Something I forgot to show was that the Superfecta was indeed working from the GUI. Here is the query for the same number.

The Superfecta is indeed finding the CNAM from the GUI, but just not talking to Asterisk.

Here is the log on Pastebin. Might make it easier to look through.
http://pastebin.com/sqsBY8C6

EDIT: After the above information was posted, I tried completely uninstalling and removing the CID SuperFecta via the GUI, then uploading the most recent version from GitHub and installing it again. The version I installed is 2.11.16. I am currently running FreePBX 12.0.68 and Asterisk 11.17.1. Nothing else has changed and the issue is still present.

Superfecta is not attached to your inbound route.

Hey Andrew,

That’s certainly what the log seems to indicate. It’s like the Superfecta isn’t being called by the dial plan. I checked out extensions.conf and there wasn’t any destination specified for the Superfecta in any context. Not sure if that’s supposed to be that way, but I would imagine it would need to be in there for inbound calls to be routed to it.

I think I have my inbound route correctly configured. I am using a blanket Any DID/CID route, and here is how I have it configured.

How should I change it to add the Superfecta to my inbound route? Thanks in advance!

Not sure how that route could work as you have no destination

Thank you both very much for your help. After you put me on the Inbound Route track, I’ve determined that I must not be using one. Basically, I’m doing extension calling within the PBX without using an Inbound Route. According to this ticket from 2011, it looks like my scenario is unsupported. In short, you must have an inbound route (and thus a central destination for inbound calls) in order to use the Superfecta. Besides that, it appears as though extension to extension calls have been been supported by the Superfecta.

I would really appreciate it if there was a way to have the Superfecta apply to extension-to-extension calls. Basically, I have a Panasonic PBX with a PRI taking in our DIDs, then using a dial plan to route calls to Freepbx via the H.323 trunk. Panasonic and FreePBX don’t use the same conventions for CIDs, so they are incompatible without more expertise and time than I have. I want to use the Superfecta as a workaround and perform lookups on calls coming over the H.323 trunk, but they don’t seem to tie to an inbound route. I tried setting a destination to one of my two test extensions, but calls are not respecting the destination.

If calls arrive at your PBX in the context of “from-trunk” (or a handfull of other reserved contexts) then they are considered an inbound call, and they will follow an inbound route. It should be no more difficult than making minor adjustments to the trunk parameters between the Panasonic and FreePBX to make the calls arrive in the “from-trunk” context.

edit
It occurs that you are probably bypassing inbound routes so that you can route directly to the dialled extension. In this case you will want an inbound route destination to go to a Custom Destination with a dial string of:

from-internal,${EXTEN},1

*edit - exten variable name should be all caps

Hey Lorne,

Thanks for the reply, that looks like exactly what I need. For testing purposes I applied a Text-to-speech to be a destination for the Inbound Route, but any call going over the H.323 trunk didn’t play the text.

What I ended up doing was modifying the [macro-user-callerid] context in extensions_override_freepbx.conf to include the exten settings regarding the Superfecta from the [ext-did-000001] context, which I assume is an autogenerated context for the inbound route (found in extensions_additional.conf). Here is what I came up with which works:

[macro-user-callerid]
exten => s,1,Set(TOUCH_MONITOR=${UNIQUEID})
exten => s,n,Set(AMPUSER=${IF($[“${AMPUSER}” = “”]?${CALLERID(number)}:${AMPUSER})})
exten => s,n,GotoIf($[“${CUT(CHANNEL,@,2):5:5}”=“queue” | ${LEN(${AMPUSERCIDNAME})}]?report)
exten => s,n,ExecIf($[“${REALCALLERIDNUM:1:2}” = “”]?Set(REALCALLERIDNUM=${CALLERID(number)}))
exten => s,n,Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,GotoIf($[“${AMPUSER}” = “none”]?limit)
exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => s,n,GotoIf($[“${AMPUSERCIDNAME:1:2}” = “”]?report)
exten => s,n,Set(AMPUSERCID=${IF($[“${ARG2}” != “EXTERNAL” & “${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}” = “1”]?${DB_RESULT}:${AMPUSER})})
exten => s,n,Set(__DIAL_OPTIONS=${IF($[“${DB_EXISTS(AMPUSER/${AMPUSER}/dialopts)}” = “1”]?${DB_RESULT}:${DIAL_OPTIONS})})
exten => s,n,Set(CALLERID(all)=“${AMPUSERCIDNAME}” <${AMPUSERCID}>)
exten => s,n,GotoIf($[“${ARG1}”=“LIMIT” & ${LEN(${AMPUSER})} & ${DB_EXISTS(AMPUSER/${AMPUSER}/concurrency_limit)} & ${DB(AMPUSER/${AMPUSER}/concurrency_limit)}>0 & ${GROUP_COUNT(${AMPUSER}@concurrency_limit)}>=${DB(AMPUSER/${AMPUSER}/concurrency_limit)}]?limit)
exten => s,n,ExecIf($[“${ARG1}”=“LIMIT” & ${LEN(${AMPUSER})}]?Set(GROUP(concurrency_limit)=${AMPUSER}))
exten => s,n,GosubIf($[${LEN(${DB(AMPUSER/${AMPUSER}/ccss/cc_agent_policy)})} & “${DB(AMPUSER/${AMPUSER}/ccss/cc_agent_policy)}” != “never”]?sub-ccss,s,1(${MACRO_CONTEXT},${CALLERID(dnid)}))
exten => s,n,ExecIf($[“${DB(AMPUSER/${AMPUSER}/language)}” != “”]?Set(CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)}))
exten => s,n(report),GotoIf($[ “${ARG1}” = “SKIPTTL” | “${ARG1}” = “LIMIT” ]?continue)
exten => s,n,ExecIf($[“${CALLEE_ACCOUNCODE}” = “”]?Set(__CALLEE_ACCOUNCODE=${DB(AMPUSER/${IF($[“${MACRO_CONTEXT}”=“macro-exten-vm”]?${ARG2}:${MACRO_EXTEN})}/accountcode)}))
exten => s,n(report2),Set(__TTL=${IF($[“foo${TTL}” = “foo”]?64:$[ ${TTL} - 1 ])})
exten => s,n,GotoIf($[ ${TTL} > 0 ]?continue)
exten => s,n,Wait(${RINGTIMER})
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(im-sorry&an-error-has-occured&with&call-forwarding)
exten => s,n,Macro(hangupcall,)
exten => s,n(limit),Answer
exten => s,n,Wait(1)
exten => s,n,Playback(beep&im-sorry&your&simul-call-limit-reached&goodbye)
exten => s,n,Macro(hangupcall,)
exten => s,n,Congestion(20)
exten => s,n(continue),Set(CALLERID(number)=${CALLERID(number):0:40})
exten => s,n,Set(CIDSFSCHEME=YmFzZV9EZWZhdWx0)
exten => s,n,AGI(/var/www/html/admin/modules/superfecta/agi/superfecta.agi)
exten => s,n,Set(CALLERID(name)=${lookupcid})
exten => s,n,Set(CDR(cnum)=${CALLERID(num)})
exten => s,n,Set(CDR(cnam)=${CALLERID(name)})
exten => s,n,Set(CHANNEL(language)=${MASTER_CHANNEL(CHANNEL(language))})

exten => h,1,Macro(hangupcall,)

;–== end of [macro-user-callerid] ==–;

I realize that the result is that the Superfecta is used to look up every CID, but that is acceptable in our deployment.

Let me know if you think this will create issues down the line.

You can’t argue with results, but rewriting contexts in override is probably the least desirable way to proceed. Add a noop line at the beginning that you are entering the context as defined in the override file in case an update a few years from now breaks something. At least there will be some breadcrumbs in the full log that might point to the cause.

That’s a great idea. Thank you again for your help.

1 Like