Strange internal call routing issue

Can anyone help me? we have a strange internal call routing issue - when phone a calls phone b, it actually rings phone c !
There are no call forwards or follow-me set on the extension or the handsets, but for some reason a call seems to be getting routed via zap2dahdi instead of a pure sip to sip call.

Heres and example, ext 207 calls 206 but its ext 203 which actually rings:

– Executing [206@ext-local:1] Macro(“SIP/207-0000001f”, “exten-vm,206,206”) in new stack
– Executing [s@macro-exten-vm:1] Macro(“SIP/207-0000001f”, “user-callerid,”) in new stack
– Executing [s@macro-user-callerid:1] Set(“SIP/207-0000001f”, “AMPUSER=207”) in new stack
– Executing [s@macro-user-callerid:2] GotoIf(“SIP/207-0000001f”, “0?report”) in new stack
– Executing [s@macro-user-callerid:3] ExecIf(“SIP/207-0000001f”, “1?Set(REALCALLERIDNUM=207)”) in new stack
– Executing [s@macro-user-callerid:4] Set(“SIP/207-0000001f”, “AMPUSER=207”) in new stack
– Executing [s@macro-user-callerid:5] Set(“SIP/207-0000001f”, “AMPUSERCIDNAME=M9”) in new stack
– Executing [s@macro-user-callerid:6] GotoIf(“SIP/207-0000001f”, “0?report”) in new stack
– Executing [s@macro-user-callerid:7] Set(“SIP/207-0000001f”, “AMPUSERCID=207”) in new stack
– Executing [s@macro-user-callerid:8] Set(“SIP/207-0000001f”, “CALLERID(all)=“M9” <207>”) in new stack
– Executing [s@macro-user-callerid:9] GotoIf(“SIP/207-0000001f”, “0?continue”) in new stack
– Executing [s@macro-user-callerid:10] Set(“SIP/207-0000001f”, “__TTL=64”) in new stack
– Executing [s@macro-user-callerid:11] GotoIf(“SIP/207-0000001f”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,18)
– Executing [s@macro-user-callerid:18] Set(“SIP/207-0000001f”, “CALLERID(number)=207”) in new stack
– Executing [s@macro-user-callerid:19] Set(“SIP/207-0000001f”, “CALLERID(name)=M9”) in new stack
– Executing [s@macro-user-callerid:20] NoOp(“SIP/207-0000001f”, “Using CallerID “M9” <207>”) in new stack
– Executing [s@macro-exten-vm:2] Set(“SIP/207-0000001f”, “RingGroupMethod=none”) in new stack
– Executing [s@macro-exten-vm:3] Set(“SIP/207-0000001f”, “VMBOX=206”) in new stack
– Executing [s@macro-exten-vm:4] Set(“SIP/207-0000001f”, “__EXTTOCALL=206”) in new stack
– Executing [s@macro-exten-vm:5] Set(“SIP/207-0000001f”, “CFUEXT=”) in new stack
– Executing [s@macro-exten-vm:6] Set(“SIP/207-0000001f”, “CFBEXT=”) in new stack
– Executing [s@macro-exten-vm:7] Set(“SIP/207-0000001f”, “RT=15”) in new stack
– Executing [s@macro-exten-vm:8] Macro(“SIP/207-0000001f”, “record-enable,206,IN”) in new stack
– Executing [s@macro-record-enable:1] GotoIf(“SIP/207-0000001f”, “1?check”) in new stack
– Goto (macro-record-enable,s,4)
– Executing [s@macro-record-enable:4] ExecIf(“SIP/207-0000001f”, “0?MacroExit()”) in new stack
– Executing [s@macro-record-enable:5] GotoIf(“SIP/207-0000001f”, “0?Group:OUT”) in new stack
– Goto (macro-record-enable,s,15)
– Executing [s@macro-record-enable:15] GotoIf(“SIP/207-0000001f”, “1?IN”) in new stack
– Goto (macro-record-enable,s,20)
– Executing [s@macro-record-enable:20] ExecIf(“SIP/207-0000001f”, “1?MacroExit()”) in new stack
– Executing [s@macro-exten-vm:9] Macro(“SIP/207-0000001f”, “dial-one,15,rWw,206”) in new stack
– Executing [s@macro-dial-one:1] Set(“SIP/207-0000001f”, “DEXTEN=206”) in new stack
– Executing [s@macro-dial-one:2] Set(“SIP/207-0000001f”, “DIALSTATUS_CW=”) in new stack
– Executing [s@macro-dial-one:3] GosubIf(“SIP/207-0000001f”, “0?screen,1”) in new stack
– Executing [s@macro-dial-one:4] GosubIf(“SIP/207-0000001f”, “0?cf,1”) in new stack
– Executing [s@macro-dial-one:5] GotoIf(“SIP/207-0000001f”, “1?skip1”) in new stack
– Goto (macro-dial-one,s,8)
– Executing [s@macro-dial-one:8] GotoIf(“SIP/207-0000001f”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:9] GotoIf(“SIP/207-0000001f”, “0?continue”) in new stack
– Executing [s@macro-dial-one:10] Set(“SIP/207-0000001f”, “EXTHASCW=”) in new stack
– Executing [s@macro-dial-one:11] GotoIf(“SIP/207-0000001f”, “1?next1:cwinusebusy”) in new stack
– Goto (macro-dial-one,s,12)
– Executing [s@macro-dial-one:12] GotoIf(“SIP/207-0000001f”, “0?docfu:skip3”) in new stack
– Goto (macro-dial-one,s,16)
– Executing [s@macro-dial-one:16] GotoIf(“SIP/207-0000001f”, “1?next2:continue”) in new stack
– Goto (macro-dial-one,s,17)
– Executing [s@macro-dial-one:17] GotoIf(“SIP/207-0000001f”, “1?continue”) in new stack
– Goto (macro-dial-one,s,25)
– Executing [s@macro-dial-one:25] GotoIf(“SIP/207-0000001f”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:26] GosubIf(“SIP/207-0000001f”, “1?dstring,1:dlocal,1”) in new stack
– Executing [dstring@macro-dial-one:1] Set(“SIP/207-0000001f”, “DSTRING=”) in new stack
– Executing [dstring@macro-dial-one:2] Set(“SIP/207-0000001f”, “DEVICES=206”) in new stack
– Executing [dstring@macro-dial-one:3] ExecIf(“SIP/207-0000001f”, “0?Return()”) in new stack
– Executing [dstring@macro-dial-one:4] ExecIf(“SIP/207-0000001f”, “0?Set(DEVICES=06)”) in new stack
– Executing [dstring@macro-dial-one:5] Set(“SIP/207-0000001f”, “LOOPCNT=1”) in new stack
– Executing [dstring@macro-dial-one:6] Set(“SIP/207-0000001f”, “ITER=1”) in new stack
– Executing [dstring@macro-dial-one:7] Set(“SIP/207-0000001f”, “THISDIAL=SIP/203”) in new stack
– Executing [dstring@macro-dial-one:8] GosubIf(“SIP/207-0000001f”, “1?zap2dahdi,1”) in new stack
– Executing [zap2dahdi@macro-dial-one:1] ExecIf(“SIP/207-0000001f”, “0?Return()”) in new stack
– Executing [zap2dahdi@macro-dial-one:2] Set(“SIP/207-0000001f”, “NEWDIAL=”) in new stack
– Executing [zap2dahdi@macro-dial-one:3] Set(“SIP/207-0000001f”, “LOOPCNT2=1”) in new stack
– Executing [zap2dahdi@macro-dial-one:4] Set(“SIP/207-0000001f”, “ITER2=1”) in new stack
– Executing [zap2dahdi@macro-dial-one:5] Set(“SIP/207-0000001f”, “THISPART2=SIP/203”) in new stack
– Executing [zap2dahdi@macro-dial-one:6] ExecIf(“SIP/207-0000001f”, “0?Set(THISPART2=DAHDI/203)”) in new stack
– Executing [zap2dahdi@macro-dial-one:7] Set(“SIP/207-0000001f”, “NEWDIAL=SIP/203&”) in new stack
– Executing [zap2dahdi@macro-dial-one:8] Set(“SIP/207-0000001f”, “ITER2=2”) in new stack
– Executing [zap2dahdi@macro-dial-one:9] GotoIf(“SIP/207-0000001f”, “0?begin2”) in new stack
– Executing [zap2dahdi@macro-dial-one:10] Set(“SIP/207-0000001f”, “THISDIAL=SIP/203”) in new stack
– Executing [zap2dahdi@macro-dial-one:11] Return(“SIP/207-0000001f”, “”) in new stack
– Executing [dstring@macro-dial-one:9] Set(“SIP/207-0000001f”, “DSTRING=SIP/203&”) in new stack
– Executing [dstring@macro-dial-one:10] Set(“SIP/207-0000001f”, “ITER=2”) in new stack
– Executing [dstring@macro-dial-one:11] GotoIf(“SIP/207-0000001f”, “0?begin”) in new stack
– Executing [dstring@macro-dial-one:12] Set(“SIP/207-0000001f”, “DSTRING=SIP/203”) in new stack
– Executing [dstring@macro-dial-one:13] Return(“SIP/207-0000001f”, “”) in new stack
– Executing [s@macro-dial-one:27] GotoIf(“SIP/207-0000001f”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:28] GotoIf(“SIP/207-0000001f”, “1?skiptrace”) in new stack
– Goto (macro-dial-one,s,30)
– Executing [s@macro-dial-one:30] Set(“SIP/207-0000001f”, “D_OPTIONS=rWw”) in new stack
– Executing [s@macro-dial-one:31] ExecIf(“SIP/207-0000001f”, “0?SIPAddHeader(Alert-Info: )”) in new stack
– Executing [s@macro-dial-one:32] ExecIf(“SIP/207-0000001f”, “0?SIPAddHeader()”) in new stack
– Executing [s@macro-dial-one:33] ExecIf(“SIP/207-0000001f”, “0?Set(CHANNEL(musicclass)=)”) in new stack
– Executing [s@macro-dial-one:34] GosubIf(“SIP/207-0000001f”, “0?qwait,1”) in new stack
– Executing [s@macro-dial-one:35] Set(“SIP/207-0000001f”, “__CWIGNORE=”) in new stack
– Executing [s@macro-dial-one:36] Set(“SIP/207-0000001f”, “__KEEPCID=TRUE”) in new stack
– Executing [s@macro-dial-one:37] Dial(“SIP/207-0000001f”, “SIP/203,15,rWw”) in new stack

FPBX version is 2.8.1 on Centos 5.5 & Asterisk 1.6.2.17-2
We have Zap channel DIDs configured (each one is 7 digits) and a 4-port analogue card configured to use from-zaptel context rather than from-dahdi or from-pstn.
I cant figure out why zap2dadhi would come into play when dialling another sip extension!