A method of conducting a packet based call with a remote device via a channel established over a wireless communication network, the method comprising: executing a communication client application to conduct the call and monitor at least one network parameter; monitoring a power supply level of a power supply; executing a logical analysis of the at least one network parameters; receiving an input signal at a switching means of a selection mechanism; receiving the at least one monitored network parameter at a control means of the selection mechanism; selectively supplying the call to one of a hardware processing module operable to implement a processing function, or a software processing module executable to implement said processing function, based on the at least one monitored network parameter by supplying a control signal from said control means to said switching means, the control signal based on the at least one monitored network parameter, wherein the control signal controls the switching means to output the input signal to either the hardware processing module or the software processing module to be processed; and adjusting the operation of the selection mechanism based on the power supply level; wherein the control means controls said switching means to output the input signal to the hardware processing module to be processed, when: a channel bit rate is greater than, or equal to, a predetermined bit rate threshold, and a channel end-to-end transmission delay is less than a predetermined delay threshold, and a channel packet loss rate is less than a predetermined packet loss rate threshold; and/or the control means controls said switching means to output the input signal to the software processing module to be processed, when the channel bit rate is less than the predetermined bit rate threshold, or when the channel end-to-end transmission delay is greater than, or equal to, the predetermined delay threshold, when the channel packet loss rate is greater than, or equal to, the predetermined packet loss rate threshold. executing a communication client application to conduct the call and monitor at least one network parameter; monitoring a power supply level of a power supply; executing a logical analysis of the at least one network parameters; receiving an input signal at a switching means of a selection mechanism; receiving the at least one monitored network parameter at a control means of the selection mechanism; selectively supplying the call to one of a hardware processing module operable to implement a processing function, or a software processing module executable to implement said processing function, based on the at least one monitored network parameter by supplying a control signal from said control means to said switching means, the control signal based on the at least one monitored network parameter, wherein the control signal controls the switching means to output the input signal to either the hardware processing module or the software processing module to be processed; and adjusting the operation of the selection mechanism based on the power supply level; wherein the control means controls said switching means to output the input signal to the hardware processing module to be processed, when: a channel bit rate is greater than, or equal to, a predetermined bit rate threshold, and a channel end-to-end transmission delay is less than a predetermined delay threshold, and a channel packet loss rate is less than a predetermined packet loss rate threshold; and/or the control means controls said switching means to output the input signal to the software processing module to be processed, when the channel bit rate is less than the predetermined bit rate threshold, or when the channel end-to-end transmission delay is greater than, or equal to, the predetermined delay threshold, when the channel packet loss rate is greater than, or equal to, the predetermined packet loss rate threshold. a channel bit rate is greater than, or equal to, a predetermined bit rate threshold, and a channel end-to-end transmission delay is less than a predetermined delay threshold, and a channel packet loss rate is less than a predetermined packet loss rate threshold; and/or the control means controls said switching means to output the input signal to the software processing module to be processed, when the channel bit rate is less than the predetermined bit rate threshold, or when the channel end-to-end transmission delay is greater than, or equal to, the predetermined delay threshold, when the channel packet loss rate is greater than, or equal to, the predetermined packet loss rate threshold.