A computer-implemented call establishment method comprising implementing, on a processor executing a behaviour detection algorithm, the following steps: receiving user inputs from a user via a user interface, wherein the behaviour prediction algorithm predicts a call by monitoring the user inputs to detect an action by the user that suggests the user may be about to instigate the call; the method characterized by the steps of: the behaviour prediction algorithm further predicts a call by identifying a candidate callee (4b,4c) for the call; accessing a data store to retrieve a network address associated with the callee in the data store; in response to the behaviour detection algorithm predicting the call, transmitting a connection establishment message to the network address via a network, so as to establish over the network a signalling connection for transmitting messages to a device (6b,6c) available to the callee; after the connection establishment message has been transmitted, receiving from the user via the user interface an explicit instruction to instigate the call to the callee; and in response to receiving the explicit instruction, transmitting a call invite to the device via the signalling connection, thereby causing the device to output an incoming call notification. receiving user inputs from a user via a user interface, wherein the behaviour prediction algorithm predicts a call by monitoring the user inputs to detect an action by the user that suggests the user may be about to instigate the call; the method characterized by the steps of: the behaviour prediction algorithm further predicts a call by identifying a candidate callee (4b,4c) for the call; accessing a data store to retrieve a network address associated with the callee in the data store; in response to the behaviour detection algorithm predicting the call, transmitting a connection establishment message to the network address via a network, so as to establish over the network a signalling connection for transmitting messages to a device (6b,6c) available to the callee; after the connection establishment message has been transmitted, receiving from the user via the user interface an explicit instruction to instigate the call to the callee; and in response to receiving the explicit instruction, transmitting a call invite to the device via the signalling connection, thereby causing the device to output an incoming call notification. the behaviour prediction algorithm further predicts a call by identifying a candidate callee (4b,4c) for the call; accessing a data store to retrieve a network address associated with the callee in the data store; in response to the behaviour detection algorithm predicting the call, transmitting a connection establishment message to the network address via a network, so as to establish over the network a signalling connection for transmitting messages to a device (6b,6c) available to the callee; after the connection establishment message has been transmitted, receiving from the user via the user interface an explicit instruction to instigate the call to the callee; and in response to receiving the explicit instruction, transmitting a call invite to the device via the signalling connection, thereby causing the device to output an incoming call notification.