Problems transfering calls to outbound number

After upgrading to 2.7 version we’re experiencing some issues with call
transfers.

Whenever an internal extension wants to make an internal transfer (to
another extension) there is no problem but as soon as an external number
(through outbound-routes) is tried, it is impossible to make the transfer.

Looking at the logs, it seems as if only 1 digit is sent from the transfer
application to the from-internal-xfer context:

[2010/04/07 12:38:08] VERBOSE[9383] logger.c: – <SIP/106-00000004> Playing ‘pbx-transfer’ (language ‘es’)
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing[0@from-internal-xfer:1] Macro(“Local/0@from-internal-xfer-e2e4,2”,“user-callerid|SKIPTTL|”)in new stack
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing[s@macro-user-callerid:1] Set(“Local/0@from-internal-xfer-e2e4,2”,“AMPUSER=106”) in new stack
[2010/04/07 12:38:10] DEBUG[9387] app_macro.c: Executed application: Set
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing [s@macro-user-callerid:2] GotoIf(“Local/0@from-internal-xfer-e2e4,2”, “1?report”) in new stack
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Goto (macro-user-callerid,s,10)
[2010/04/07 12:38:10] DEBUG[9387] app_macro.c: Executed application: GotoIf
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing [s@macro-user-callerid:10] GotoIf(“Local/0@from-internal-xfer-e2e4,2”, “1?continue”) in new stack
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Goto (macro-user-callerid,s,19)
[2010/04/07 12:38:10] DEBUG[9387] app_macro.c: Executed application: GotoIf
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing [s@macro-user-callerid:19] NoOp(“Local/0@from-internal-xfer-e2e4,2”, “Using CallerID “device” <106>”) in new stack
[2010/04/07 12:38:10] DEBUG[9387] app_macro.c: Executed application: Noop
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: == Auto fallthrough, channel ‘Local/0@from-internal-xfer-e2e4,2’ status is ‘UNKNOWN’
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing [h@from-internal-xfer:1] Macro(“Local/0@from-internal-xfer-e2e4,2”, “hangupcall”) in new stack
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing [s@macro-hangupcall:1] GotoIf(“Local/0@from-internal-xfer-e2e4,2”, “1?skiprg”) in new stack
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Goto (macro-hangupcall,s,4)
[2010/04/07 12:38:10] DEBUG[9387] app_macro.c: Executed application: GotoIf
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing [s@macro-hangupcall:4] GotoIf(“Local/0@from-internal-xfer-e2e4,2”, “1?skipblkvm”) in new stack
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Goto (macro-hangupcall,s,7)
[2010/04/07 12:38:10] DEBUG[9387] app_macro.c: Executed application: GotoIf
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing [s@macro-hangupcall:7] GotoIf(“Local/0@from-internal-xfer-e2e4,2”, “1?theend”) in new stack
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Goto (macro-hangupcall,s,9)
[2010/04/07 12:38:10] DEBUG[9387] app_macro.c: Executed application: GotoIf
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: – Executing [s@macro-hangupcall:9] Hangup(“Local/0@from-internal-xfer-e2e4,2”, “”) in new stack
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: == Spawn extension (macro-hangupcall, s, 9) exited non-zero on ‘Local/0@from-internal-xfer-e2e4,2’ in macro ‘hangupcall’
[2010/04/07 12:38:10] VERBOSE[9387] logger.c: == Spawn extension (from-internal-xfer, h, 1) exited non-zero on ‘Local/0@from-internal-xfer-e2e4,2’
[2010/04/07 12:38:10] VERBOSE[9383] logger.c: – Stopped music on hold on SIP/adamvozip-00000002

We’ve tried with asterisk versions 1.4.18, 1.4.21.2, and last 1.4.30 and
the problem is the same.

Can anyone shed some light on this issue?

Thank you very much in advance!!!

Need to see outbound route dialrules.

the outbound dialrules:
[list]
[]0|1001
[
]0|1111
[]0|1114
[
]0|00XX.
[]0|XXXXXXXXXXXX
[
]0|[96]XXXXXXXX
[/list]

the tunk dialrules:
[list]
[]0034+9XXXXXXXX
[
]0034+6XXXXXXXX
[/list]

and the outbound dialplan generated by freepbx:

[outbound-allroutes]
include => outbound-allroutes-custom
include => outrt-001-9_outside
exten => _!,1,Macro(user-callerid,SKIPTTL,)

; end of [outbound-allroutes]

[outrt-001-9_outside]
include => outrt-001-9_outside-custom
exten => 01001,1,Macro(user-callerid,SKIPTTL,)
exten => 01001,n,Set(_NODEST=)
exten => 01001,n,Macro(record-enable,${AMPUSER},OUT,)
exten => 01001,n,Macro(dialout-trunk,2,${EXTEN:1},)
exten => 01001,n,Macro(outisbusy,)
exten => 01111,1,Macro(user-callerid,SKIPTTL,)
exten => 01111,n,Set(_NODEST=)
exten => 01111,n,Macro(record-enable,${AMPUSER},OUT,)
exten => 01111,n,Macro(dialout-trunk,2,${EXTEN:1},)
exten => 01111,n,Macro(outisbusy,)
exten => 01114,1,Macro(user-callerid,SKIPTTL,)
exten => 01114,n,Set(_NODEST=)
exten => 01114,n,Macro(record-enable,${AMPUSER},OUT,)
exten => 01114,n,Macro(dialout-trunk,2,${EXTEN:1},)
exten => 01114,n,Macro(outisbusy,)
exten => _000XX.,1,Macro(user-callerid,SKIPTTL,)
exten => _000XX.,n,Set(_NODEST=)
exten => _000XX.,n,Macro(record-enable,${AMPUSER},OUT,)
exten => _000XX.,n,Macro(dialout-trunk,2,${EXTEN:1},)
exten => _000XX.,n,Macro(outisbusy,)
exten => _0XXXXXXXXXXXX,1,Macro(user-callerid,SKIPTTL,)
exten => _0XXXXXXXXXXXX,n,Set(_NODEST=)
exten => _0XXXXXXXXXXXX,n,Macro(record-enable,${AMPUSER},OUT,)
exten => _0XXXXXXXXXXXX,n,Macro(dialout-trunk,2,${EXTEN:1},)
exten => _0XXXXXXXXXXXX,n,Macro(outisbusy,)
exten => _0[96]XXXXXXXX,1,Macro(user-callerid,SKIPTTL,)
exten => _0[96]XXXXXXXX,n,Set(_NODEST=)
exten => _0[96]XXXXXXXX,n,Macro(record-enable,${AMPUSER},OUT,)
exten => _0[96]XXXXXXXX,n,Macro(dialout-trunk,2,${EXTEN:1},)
exten => _0[96]XXXXXXXX,n,Macro(outisbusy,)

; end of [outrt-001-9_outside]

thanks for all