Setting of P-Asserted-Identity for transferred calls

Hi Group

My extensions.conf is a little different to most in that I use Local Channels extensively via subroutines.
This allows me to have a single included dial plan file containing all my used number patterns.

The format of the dialplan is something like:
[dialplan]
exten => _1XX,1,Gosub(subDial-Extension,start,1(${EXTEN}))

[subDial-Extension]
exten => start,1,NoOp(Start of subroutine)

Now this all works fine however one issue that I am having is the Connected ID number after a transferred call just shows ‘start’.

For example:
Ext A calls Ext B - all CID and Connected ID is fine
Ext B performs an attended transfer of the call to Ext C - Ext B CID and Connected ID is fine but Ext A see’s the correct Connected ID name but shows ‘start’ for the number.

This problem can be solved by branching to the actual extension in the subroutine as follows:
[dialplan]
exten => _1XX,1,Gosub(subDial-Extension,{EXTEN},1({EXTEN}))

[subDial-Extension]
exten => _XX.,1,NoOp(Start of subroutine)

So my questions are:
How is the P-Asserted-Identity updated for transferred calls?
Is this the only way to make it work correctly for the way I am doing it?

Thanks so much all.

Regards
Michael Knill

I’d suggest reading https://wiki.asterisk.org/wiki/display/AST/Manipulating+Party+ID+Information and seeing if any of that helps.

Thanks David

Yes I did look at that and tried setting the REDIRECTING variable. Interestingly after setting this, a From and Via value appears on the screen of the phones (Yealink).
The problem is that the Connected ID update happens after the Dial command so it does not appear to be affected by any variables set.

Regards
Mike

I fixed it with a workaround:

[subDial-Extension]
exten => start,1,NoOp(${ARG1})
same => n,Set(NumbersOnly=${FILTER(0-9,${ARG1})})
same => n,GotoIf($["${NumbersOnly}" = ""]?9999,1:${NumbersOnly},1)
;Jump to here
exten => _XX.,1,NoOp()

Seems to work well.

Thanks
Mike