I had the same problem: Yealink T38G, Asterisk 1.8.4.2, FreePBX 2.9
Programming a button as a transfer function to the park extension would play the announcement to the wrong party. I think the real issue is that this is doing a BLIND transfer rather than a supervised transfer. I didn’t expect it to play it back to the “parker” since the call would have already left the phone at that point, but also wouldn’t expect it to play it to the “parkee”.
My initial resolution was to comment out “ast_say_digits(peer, pu->parkingnum, “”, peer->language);” line 1210 in features.c.
However, a different problem then presents under certain circumstances. Here is the reproducible order:
New call comes into ring group;
Phone not in ring group does a call pickup of a ringing extension in ring group by **ExtNum;
Call is parked using the BLIND transfer key on the phone described above;
Call times out and should ring back to the extension that parked it (return destination set as Originator), HOWEVER Asterisk incorrectly tries to do an invite back to the SIP trunk provider (reinvite=no), which fails, so…;
Call ends up ringing back at the Alternate destination.
Now, if we reprogram that BLIND transfer key to instead send DTMF digits ##70# (initiating a transfer, dialing 70 which is the parking lot extension, then completing the transfer), then this all works perfect. We still leave the ast_say_digits commented out as there is no need to hear it in this situation (blf lights of parking lot slots).
In addition, if the initial phone call comes directly into an extension, and not a ring group, then even the blind transfer key process works fine, other than the announcement that would be played if not commented out as described above.
While I didn’t like the commenting out of the announcement and the ##70# alternative, it was really the only reasonable option I could find to implement the proper functioning of the parking lot for this particular installation.
Hope this detail helps somebody out!