One small nit to pick with fskrotzki’s comment - while an ATA might pick off certain feature codes during initial dialing, once a call is in progress it should not respond to anything dialed by the user (one possible exception is **** when dialed on a Linksys/Sipura device). Of course, I can’t say with absolute certainty that there is no poorly designed unit that won’t interfere, so YMMV.
The second issues with a device or SIP-based phone is whether you want the adapter to handle the transfer, or Asterisk itself. I think in many cases the net effect is the same, but it may mean there are two different dialing patterns that will work. Normally, if you want the adapter or phone to do initiate it, you flash and dial a code, or press a transfer button if one exists. I believe this then sends some kind of SIP message back to Asterisk telling it to reroute the call, but don’t quote me on that. The other way is to directly interact with Asterisk, which is accomplished by pressing ## (for a blind transfer) or *2 (for an attended transfer) during an in-progress call (I notice you have to dial the two characters within a fairly short time, or it doesn’t “take” - *2 is especially hard to dial quickly enough - also these codes can be changed on the Feature Code Admin page). You will then hear Allison say “Transfer” followed by a dial tone, after which you dial the extension or number you wish to transfer the call to. My personal preference is to use Asterisk’s transfer feature (since I know it definitely pulls the call back from the phone) but as I say, that may happen anyway even if you use the transfer feature built into the phone or device (although you probably won’t hear Allison).
Feel free to correct me if I am wrong about any of this!