Freepbx 2.9 call recording via TAPI

Hi all wondering if anyone could assist in the following predicament! (thanks in advance)

I have a freepbx 2.9 box. I have 27 phones all configured record always in & out. The phones are dialing from the asterisk manager via a TAPI interface (xtelsio tapi driver actually)

Here is the problem:

When the user dials out from the phone the call records fine no problem.

When the user dials out from the TAPI software the call does not record fine.

I’ve had a close look at the output and i’ve noticed that its calling macro-record-enable with arg2 missing when dialed from the tapi driver. (which is the extension i believe? I’m having difficulty finding any documentation on the dialplan that freepbx ships with)

I’ve taken a look at the tapi software; prehaps it’s a problem with the dialer? After a little tinkering i’ve found a way to make it record the call without modifying anything. The quick and dirty cure seems to set the caller id on the dialer to that of the users extension. (100 for example instead of 01269757010 which puts the missing variable in the macro-record-enable call). Which is great but when anyone dials out they will get their own extension number calling them and not that of the destination which will result in very very confused people (outbound call centre).

Is there anything that I can do to remedy this problem? I have no quarrel with ripping apart freepbx dialplans. I’ll even change the permissions in /etc/asterisk if I have to. I just need it to record calls if at all possible.

Many thanks in advance

Alan

console output:

From dialer:
– Executing [01933670560@agentContext:4] Macro(“SIP/207-00000df9”, “record-enable,OUT,”) in new stack
– Executing [s@macro-record-enable:1] GotoIf(“SIP/207-00000df9”, “1?check”) in new stack
– Goto (macro-record-enable,s,4)
– Executing [s@macro-record-enable:4] ExecIf(“SIP/207-00000df9”, “1?MacroExit()”) in new stack

from phone:
– Executing [07725335440@from-internal:4] Macro(“SIP/200-00000dfc”, “record-enable,200,OUT,”) in new stack
– Executing [s@macro-record-enable:1] GotoIf(“SIP/200-00000dfc”, “1?check”) in new stack
– Goto (macro-record-enable,s,4)
– Executing [s@macro-record-enable:4] ExecIf(“SIP/200-00000dfc”, “0?MacroExit()”) in new stack
– Executing [s@macro-record-enable:5] GotoIf(“SIP/200-00000dfc”, “0?Group:OUT”) in new stack
– Goto (macro-record-enable,s,14)
– Executing [s@macro-record-enable:14] GotoIf(“SIP/200-00000dfc”, “0?IN”) in new stack
– Executing [s@macro-record-enable:15] ExecIf(“SIP/200-00000dfc”, “0?MacroExit()”) in new stack
– Executing [s@macro-record-enable:16] Set(“SIP/200-00000dfc”, “CALLFILENAME=OUT200-20120223-165601-1330016161.5280”) in new stack
– Executing [s@macro-record-enable:17] Goto(“SIP/200-00000dfc”, “record”) in new stack
– Goto (macro-record-enable,s,20)