A method for establishing a communication connection between a calling computing device connected to a network and a second device, comprising the steps of: providing for the calling computing device a software button originating from a button server which is associated with the second device and is actuable by a user of the calling computing device; upon actuation of the software button by the user, downloading an executable agent to the calling computing device, said agent containing control information for a communication to be established by the calling computing device to the second device, the control information including one of: (i) an address, not derived from or accessible to the user of the calling computing device, for contacting the second device; and (ii) information for controlling the type of connection to be established between the calling computing device and second device, based on information provided from the user of the second device; and the agent being constructed to effect establishment of communication between the calling computing device and second device based upon the control information; CHARACTERISED IN THAT: the second device is one of a plurality of devices used by a called party which utilize different types of communication connections, the information provided from the user of the second device including instructions on which of the plurality of devices to use for communication in predefined operating states, the information for controlling the type of connection being determined by the instantaneous operating state, the executable agent being constructed to configure the calling computing device so as to utilize a communication interface type consistent with the instantaneous operating state, whereby communication is effected with the device selected by the called party for the instantaneous operating state. providing for the calling computing device a software button originating from a button server which is associated with the second device and is actuable by a user of the calling computing device; upon actuation of the software button by the user, downloading an executable agent to the calling computing device, said agent containing control information for a communication to be established by the calling computing device to the second device, the control information including one of: (i) an address, not derived from or accessible to the user of the calling computing device, for contacting the second device; and (ii) information for controlling the type of connection to be established between the calling computing device and second device, based on information provided from the user of the second device; and the agent being constructed to effect establishment of communication between the calling computing device and second device based upon the control information; CHARACTERISED IN THAT: the second device is one of a plurality of devices used by a called party which utilize different types of communication connections, the information provided from the user of the second device including instructions on which of the plurality of devices to use for communication in predefined operating states, the information for controlling the type of connection being determined by the instantaneous operating state, the executable agent being constructed to configure the calling computing device so as to utilize a communication interface type consistent with the instantaneous operating state, whereby communication is effected with the device selected by the called party for the instantaneous operating state. the second device is one of a plurality of devices used by a called party which utilize different types of communication connections, the information provided from the user of the second device including instructions on which of the plurality of devices to use for communication in predefined operating states, the information for controlling the type of connection being determined by the instantaneous operating state, the executable agent being constructed to configure the calling computing device so as to utilize a communication interface type consistent with the instantaneous operating state, whereby communication is effected with the device selected by the called party for the instantaneous operating state.