Re: How to configure out of the office button on a cisco pho
I am not certain that you will be able to get all that you desire, but others may have ideas.
In any event, much of what you want is contained in the MyPhone App that comes with 3CX and is loaded onto the user's Pc. It will allow the user to manage the phone to forward calls as you have indicated and provides a visual status to all who also happen to run the App. By changing the status, you can have one Status set to forward all calls to the Vmail whereas another Status can be used to forward to the external number. They can also granulate the call handling to an extent that internal and external calls can be handled the same or differently. There is a lot more to MyPhone than the above and I encourage you to check it out.
If MyPhone is not an option, then you can preconfigure the forwarding options and then program the phone with speed dials that will change the Status accordingly. The dial code "*3" is the code used to make a change and 0-4 are appended to indicate the status desired. In your scenario, you would need to use three of your available keys as you would need one for "*30", another for "*31" and another for "*32". where the "0" is used to indicate Available, the "1" is used to indicate "Away - go to Vmail" and the "2" is used to indicate "out of Office - go to external number". You can customize these to some degree to meet your need and you will find more info in the manual and/or the blog.
As far as forwarding the originating caller-id, that is not a button function, but will largely be dependent on the method used and the carriers involved in the forwarding route. 3CX can pass the caller-id, but the other factors may prevent this from showing at the destination.
As far as changing the light status, I know that it is possible for a number of circumsatances but am uncertain about it for these scenarios. Most of the light conditions are brought about by line and/or call status and not user status - Ringing, On-Hold, In a call or off-hook, not registered, etc., use combinations of colors and patterns to reflect the status of a key as it relates to the line, a call or the ability of the phone to make a call (registration). It is somewhat akin to the DND buttons that many phones have; you can toggle the button and get an indication at the local icon level of its condition, but I have not seen one change the light pattern of a line or dss key.
You can also program some of the phone soft keys to do what you want and these will give you an indication similar to the DND button in that it will change an icon appearance, but not the light. You will need to get the admin guide (link following and experiment):
http://www.cisco.com/en/US/docs/voice_ip_comm/csbpipp/ip_phones/administration/guide/spa500_admin.pdf
Hope this helps.