Variable's Value after Dial & then transfer

I am using Asterisk 1.4.41
I set one Variable by (__Var1=Y) at the start of each call.
And then I dial from one extension to another extension. And among these two extensions, while any one starts to transfer to 3rd extension, the call comes to my specified Context, & here I check the set variable which I set at the start of the Call. But here I do Noop(${Var1}), it does not show any value. Why does it not contain its value? Where am I wrong here? Please guide me. I am new bee for asterisk.

There are several ways of doing transfers. In particular, for SIP attended transfers (note some SIP phones do blind transfers with the attended transfer protocol) the enquiry call is set up by the transferring phone in a way that is indistinguishable from a completely independent outgoing call, so there is no way for Asterisk to know to copy variables.

Is this a features transfers?

Is it attended or unattended at the protocol level?

Is it SIP or dahdi?

If this is a new installation, you should not that 1.4.x is past end of life and that 1.4.41 is not the end of life sub-version.

I use Asterisk 1.4.41 and FreePBX also.
I do the transfer through *2 and Flash button both.
And at the start of the Call, I Set(__Var1=Y) and when I press Flash (and it comes to my specified CONTEXT) and at that time, I want to see this set variable again. How can it would be possible?
Currently I use only SIP calls.

Thanks a lot for your reply.
I could not get the meaning of your message:
“If this is a new installation, you should not that 1.4.x is past end of life and that 1.4.41 is not the end of life sub-version.”

blogs.digium.com/2012/03/16/asterisk-1-4-eol/

svn.digium.com/svn/asterisk/tags … /ChangeLog

Thanks a lot.
I read that article. So, as per your opinion, we should change to Asterisk 1.8 from Asterisk 1.4