1. A method of dynamically adding a communication service function using network function virtualization during a communication session, the method comprising:receiving, at a first communication service function executing on a server that comprises a processor, a communication during a communication session on an active connection;
detecting, by the first communication service function, a communication service trigger in the communication;
determining a second communication service function based on the communication service trigger;
determining connection information for the second communication service function;
providing, by the first communication service function, the connection information to a controller, wherein the controller sets a session routing protocol for a communication flow for the communication session to include the second communication service function;
routing the communication from the first communication service function to the second communication service function; and
processing the communication with the second communication service function.