A method for mediating a communication session between a first device associated with a first user and one of a plurality of second devices associated with a second user using a device registry server , comprising: storing, in a registry of a device registry server , device information for the second user , wherein the device information for the second user includes: - a list of the plurality of second devices associated with the second user , and - for each device of the plurality of second devices associated with the second user , a list of one or more capabilities of each device; characterized in the following steps: for a first communication session type, selecting a device from the list of the plurality of second devices associated with the second user by sorting the device information for the second user and storing a link of first communication session type with the selected second device as a session type mapping ; receiving a request to open a communication session with the second user , the request originating from the first device of the first user or a private branch exchange (PBX) server and including a first session type identifier of the first communication session type; and in response to receiving the request, returning a response including device information associated with the selected second device to the device of the first user or the private branch exchange (PBX) server. - a list of the plurality of second devices associated with the second user , and - for each device of the plurality of second devices associated with the second user , a list of one or more capabilities of each device; characterized in the following steps: for a first communication session type, selecting a device from the list of the plurality of second devices associated with the second user by sorting the device information for the second user and storing a link of first communication session type with the selected second device as a session type mapping ; receiving a request to open a communication session with the second user , the request originating from the first device of the first user or a private branch exchange (PBX) server and including a first session type identifier of the first communication session type; and in response to receiving the request, returning a response including device information associated with the selected second device to the device of the first user or the private branch exchange (PBX) server. for a first communication session type, selecting a device from the list of the plurality of second devices associated with the second user by sorting the device information for the second user and storing a link of first communication session type with the selected second device as a session type mapping ; receiving a request to open a communication session with the second user , the request originating from the first device of the first user or a private branch exchange (PBX) server and including a first session type identifier of the first communication session type; and in response to receiving the request, returning a response including device information associated with the selected second device to the device of the first user or the private branch exchange (PBX) server. <EOS>