A processor-implemented method for selecting a new media server in a communication network, the method comprising: monitoring (401, 503) at least one of a user characteristic, a session characteristic, and a network condition during an ongoing communication session involving an existing media server; determining (402, 509) a need for selection of a new media server based on at least one of the user characteristic, the session characteristic, and the network condition; dynamically (403, 510) selecting the new media server in response to the need, characterized in that dynamically selecting comprises: determining a plurality of overall network path lengths between each of a plurality of selectable media servers and a plurality of user equipment involved in the ongoing communication session, adjusting each of the plurality of overall network path lengths based on at least one of a resource usage level of the corresponding media server and a network segment congestion level in which the corresponding media server is located, and selecting an optimal media server from the plurality of selectable media servers based on the adjusted overall network path lengths for the plurality of selectable media servers, wherein an overall network path length between a selectable media server and the plurality of user equipment involved in the ongoing communication session is a sum of individual path lengths between that selectable media server and each of the plurality of user equipment involved in the ongoing communication session. monitoring (401, 503) at least one of a user characteristic, a session characteristic, and a network condition during an ongoing communication session involving an existing media server; determining (402, 509) a need for selection of a new media server based on at least one of the user characteristic, the session characteristic, and the network condition; dynamically (403, 510) selecting the new media server in response to the need, characterized in that dynamically selecting comprises: determining a plurality of overall network path lengths between each of a plurality of selectable media servers and a plurality of user equipment involved in the ongoing communication session, adjusting each of the plurality of overall network path lengths based on at least one of a resource usage level of the corresponding media server and a network segment congestion level in which the corresponding media server is located, and selecting an optimal media server from the plurality of selectable media servers based on the adjusted overall network path lengths for the plurality of selectable media servers, wherein an overall network path length between a selectable media server and the plurality of user equipment involved in the ongoing communication session is a sum of individual path lengths between that selectable media server and each of the plurality of user equipment involved in the ongoing communication session. determining a plurality of overall network path lengths between each of a plurality of selectable media servers and a plurality of user equipment involved in the ongoing communication session, adjusting each of the plurality of overall network path lengths based on at least one of a resource usage level of the corresponding media server and a network segment congestion level in which the corresponding media server is located, and selecting an optimal media server from the plurality of selectable media servers based on the adjusted overall network path lengths for the plurality of selectable media servers, wherein an overall network path length between a selectable media server and the plurality of user equipment involved in the ongoing communication session is a sum of individual path lengths between that selectable media server and each of the plurality of user equipment involved in the ongoing communication session.