1. A method of managing a lifecycle of a telephone call comprising: creating an abstract model of telecommunication services to be provided during a call, comprising: creating an abstract model of the call; defining, based on the abstract model of the call, a plurality of communication threads to manage the abstract model of the call from initiation to termination; wherein said communication threads are active in parallel and can be activated or deactivated as desired during the call; translating the defined communication threads into executable software code; establishing a real telephone call; and executing the executable software code of the defined communication threads to manage the real telephone call over the lifecycle of the telephone call; wherein the real telephone call is controlled by the defined communication threads, without manipulation of telecommunications protocols and/or network layers.