A computer-implemented method comprising: establishing a communication session between a first participant and a second participant; programming, via a control plane, a stream classifier which is to process packets associated with the communication session with classification logic; receiving a first packet at the stream classifier; when the communication session requires recording, applying the classification logic at the stream classifier to form a network service header identifying a chosen service function path of a plurality of service function paths and a stream ID associated with the communication session; inserting the network service header into the first packet; routing the first packet into the chosen service function path according to the network service header, wherein the chosen service function path comprises a recording service function; reporting data representative of media quality from the recording service function in the chosen service function path to the control plane; based on the data representative of media quality, updating the classification logic programmed in the stream classifier by the control plane to migrate the communication session to a new chosen service function path to yield updated classification logic; receiving subsequent packets at the stream classifier; forming a new network service header identifying the new chosen service function path and the stream ID associated with the communication session; inserting the network service header into the subsequent packets; and routing the subsequent packets into the new chosen service function path according to the network service header. establishing a communication session between a first participant and a second participant; programming, via a control plane, a stream classifier which is to process packets associated with the communication session with classification logic; receiving a first packet at the stream classifier; when the communication session requires recording, applying the classification logic at the stream classifier to form a network service header identifying a chosen service function path of a plurality of service function paths and a stream ID associated with the communication session; inserting the network service header into the first packet; routing the first packet into the chosen service function path according to the network service header, wherein the chosen service function path comprises a recording service function; reporting data representative of media quality from the recording service function in the chosen service function path to the control plane; based on the data representative of media quality, updating the classification logic programmed in the stream classifier by the control plane to migrate the communication session to a new chosen service function path to yield updated classification logic; receiving subsequent packets at the stream classifier; forming a new network service header identifying the new chosen service function path and the stream ID associated with the communication session; inserting the network service header into the subsequent packets; and routing the subsequent packets into the new chosen service function path according to the network service header.