fig1 illustrates the application of the present invention to a voip telephony system 10 . as shown , two voip - enabled telephony units are in communication via one or more networks . each voip - enabled telephony unit comprises a voip adapter 11 , 13 and a corresponding telephony device 12 , 14 , the adapter connecting the telephony device to the network . each voip adapter comprises a network edge device according to the present invention . one unit acts as the local user unit 11 , 12 and the other as the far - end unit 13 , 14 . the two devices may connect via a standard telecommunications operator 15 and / or via another network path 16 . each device may also communicate with one or more remote servers 17 via the network . in this context , each network edge devices provides data paths between the network and the end telephony device , the telephony device providing an audio interface to the user . importantly , as will be described later , the network edge device also provides the functionality for inserting audio messages locally for onward transmission to either the local user or the far - end user , and also the functionality for detecting user feedback and forwarding this information via the network . fig2 illustrates a slightly different voip telephony system 20 in which the two voip - enabled telephony units are dedicated voip telephones 21 , 22 . in this example each voip telephone comprises a network edge device according to the present invention . again , one unit acts as the local user unit 21 and the other as the far - end unit 22 . we now consider the network edge device 300 and its internal components in more detail , as illustrated in fig3 . connection to a network is achieved via a network interface 301 , which may comprise several ports for physical connection . a user interface 302 is provided for connection to an audio interface by means of which audio signals are relayed to and from a user . various data paths exist between the ports and within the device . the four main types of data path are those for audio transmission from the local device to the far - end 303 , for audio reception by the local device from the far end 304 , for audio message transmission 305 and for user feedback 306 . using the network port , connection to any suitable network 307 is possible , including one or more of a local area network ( lan ), a wide area network ( wan ), such as the internet , or a radio network , such as a mobile network . in this way , the device 300 may communicate with a variety of remote devices , including remote servers 308 , 309 and one or more far - end users 310 . the user interface 302 may comprise several user ports providing for various physical connections , which will typically include an audio interface and input from other user - activated features . fig3 shows an audio input 311 ( from a user microphone or telephone handset , for example ), an audio output 312 ( to a user speaker or telephone earpiece , for example ) and an input from a user - activated key or button 313 . in the case of a stand - alone device , such as the adapter 11 , 13 shown in fig1 , the user input will typically be carried as part of the audio input from the user , in the form of dtmf tones , for example . outgoing and incoming telephone calls are coded and decoded , respectively , by means of a coder - decoder ( codec ) 320 , 321 . typically , the codec will execute an audio . compression / decompression algorithm . a transmitter unit 322 processes outgoing call data before compression and a receiver unit 323 processes incoming call data after decompression . a mixer 324 , 325 is provided in each of the transmitter and receiver paths for combining audio data such as messages with the incoming or outgoing call data . the mixer 324 for the outgoing data is located between the call data transmitter 322 and its respective codec 320 , whereas the mixer for the incoming data is located between the call data receiver 323 and the appropriate user port connection , for example the audio output 312 . connected to both mixers 324 , 325 is a message store 326 , which holds audio samples originating from various sources . for example , the message store may be in communication with a remote message server 308 from which updates may be received . the audio samples may also be recordings originating from the far - end user device 310 , in which case the audio data received from the far - end can be written to the message store for immediate playback or else to played back later . in the case of a remote message server , data is transferred across the network using a standard client - server protocol like http , and is written into the message store . the message server can communicate with a plurality of network edge devices allowing data transfer to and from message stores located on many end - points . a mechanism may also exist to allow end - points to uniquely identify themselves to the message server , for example by including a unique identifier in messages sent from an end - point . an example of such a unique identifier would be the media - access control ( mac ) address of the end - point . the mac address is an identifier for distinguishing between different devices on the same network and is typically represented as six hexadecimal numbers ( for example 00 : 20 : 2b : ab : cd : ef ). the message store 326 will typically comprise volatile or non - volatile random access memory ( ram ) for storing the audio data . the audio data will often represent a message and can be stored in raw format , suitable for direct input into a mixer , or else the messages can be stored in a compressed form , which means they must first go through a decompression routine or codec before entering the mixer . examples of messages that may be held by the message store include : it should be noted that , as the message server may have information about the user identity , messages sent by the server might be user - specific and therefore targeted as such . the network edge device 300 may also include a real - time streamer 327 , which serves a similar function to the message store , except that it requires minimal storage capacity in ram . the real - time streamer also receives data from the message server , but does not store data to the message store . instead the real - time streamer passes the data directly to either mixer 324 or mixer 325 . this allows playing of messages that are too big to be held in ram . in principle , the real - time streamer could negate the need for a separate message store , but in practice both mechanisms will be provided . the mixers 324 , 325 are capable of taking multiple audio streams and mixing them so that the user hears all of them . this enables the system to play messages at any time in a communication , although some times make more sense than others . examples of appropriate time slots include : during a call : messages and notifications can be played during a call . for example , in an emergency such as a tornado , or for less severe situations such as paging somebody in an office . during call progress tones : for example , when hearing ringing and waiting for the far - end to answer the call . when on - hold : when putting a user on - hold the local system could play a message to the far - end system ( like a replacement for on - hold music ). at the end of a call : after the far - end has hung - up , but before the local user does so . prior to dial tone , when the phone is first taken off - hook . often a call progress tone , particularly a dial tone , is generated remotely somewhere in the network . however , such tones may be replaced or supplemented by tones generated locally , if the network edge device comprises an integral tone generator . the device shown in fig3 has two integral tone generators 328 , 329 , which are connected to the mixers 324 , 325 for the transmitter and receiver paths , respectively . of course , a single tone generator could be employed to generate tones for both data streams . the provision of local tone generators facilitates the insertion or interleaving of audio messages from the message store or real - time streamer . examples of call progress tones that may be generated locally by the device tone generators include : ringing tone : both in response to an incoming - call and after dialling a number by interleaving a message with a ringing tone , the user may hear the message in the earpiece at the same time as the ringing tone while waiting for a far - end user to answer a call initiated by the local user , or before answering a call initiated by a far - end user . as shown in fig3 , the device 300 may also comprise a user event processor 330 . this sub - system is responsible for processing feedback from the user and can be adapted to recognise a large variety of feedback signals . moreover , the user event processor 330 may be adapted to generate an appropriate signal or message for communicating to a remote server via the network . the detected feedback can originate in many ways , including : a signal generated by the user pressing a key or button a dual - tone multi - frequency ( dtmf ) tone generated as a result of the user pressing a key or button . the dtmf tone may originate either locally or remotely for a given session or call , feedback can arise at any time , providing a call progress tone is present or else is generated . examples of possible time slots include : before the call : this is where feedback is received during dialling or ringing . during dialling , dtmf tones are used to dial a user &# 39 ; s number , but after a full number has been dialled , subsequent numbers are normally discarded . these are the ones that can be used for feedback . other types of feedback can be interpreted immediately as they are unambiguous . during the call : feedback can be received during a call , for example to convey that the call is a nuisance call and a block - list should be updated . after the call : this is where feedback is received after a call has ended , but before the hand - set is replaced . once feedback has been received , the system can take action as appropriate . for example , if the feedback is registering interest in an advertised product , the device could notify the vendor &# 39 ; s server 309 on the internet . if the call was a nuisance call , the feedback could be used to update an on - line block - list . the network edge telephony device according to the present invention enables a large array of features , which existing systems are unable to implement . several of these are described in detail below . as the message store is capable of storing messages received from the far - end , this can be used to enable an audio caller identification ( id ) mechanism , which operates as follows . 1 ) an incoming call is originated by a far - end user 310 to the local user . 2 ) the call is automatically answered by the local device and a pre - recorded message ( from the message store 326 ) is played to the far - end user via mixer 324 . the local receiving end does not ring at this time , but remains as though no call was present . 3 ) the recorded message being played to the far - end user 310 asks them to identify who they are and the verbal response is recorded to the message store 326 . the data path for this recording is from the call data receiver 323 to the message store 326 . 4 ) the receiving end now begins ringing , but the ringing is mixed with the recorded message identifying the far - end . 5 ) the local user connected to the device hears both ringing and the message identifying the caller and can decide whether or not to answer the call . the method described above requires the actual “ ringer ” on the phone to be capable of playing arbitrary audio samples , and not just a simple ringing tone . if this is not possible , because of the nature of the ringer hardware , then the following steps may occur : 4 ) the receiving end now begins ringing as normal and , because the ringer is not capable of playing arbitrary audio samples , no audio caller - id is heard at this stage . 5 ) the receiving user takes the phone off - hook to answer the call , but initially the call is not connected . 6 ) before connecting the call , the local device plays the audio caller - id message through the earpiece to the local user connected to the device . the data path is from the message store 326 via mixer 325 to the user . 7 ) on hearing the caller identify the user can decide whether to hang - up and not take the call , or wait and the call will be connected as normal . the device also supports the maintenance of trusted caller list who need not identify themselves . this means that regular callers need not be hindered by always having to identify themselves . in this situation callers are identified to the receiving user by the regular caller - id mechanism , such as that incorporated into voip protocols , or pstn networks . another feature enabled by the device is advertising , as the message store 326 can be used to hold audio adverts . as previously discussed , the remote message server 308 can differentiate individual users , and therefore the adverts can be tailored to be of most relevance to the particular end user . a device adapted to enable this feature might operate as follows : 1 ) a user wishes to make an outgoing call and takes the phone off - hook and prepares to dial a number . 2 ) the tone generator 329 plays a dial tone to mixer 325 , indicating to the user that they may begin to dial . 3 ) when the user commences dialing , tone generator 329 stops playing a dial - tone . 4 ) the user completes dialing the required number . normally at this point the user would hear ringing ( from tone generator 329 ) as the system waits for the far - end to pick - up and answer the call . however , the device can use mixer 325 to both generate a ringing tone to the user , and an audio advert . 5 ) once the far - end user answers the call , both the ringing and advert stop , and the normal rx / tx data paths 304 , 303 are enabled to allow the call to progress as normal . sometimes the duration of ringing is not long enough to hear a full advert , especially if the call recipient answers quickly ( step ( 4 ) above is very short in duration ). in this scenario , it is possible for the device to delay connecting the call , to allow it more time to play the advert . at the beginning of step ( 4 ) ‘ fake ’ call progress tones can be inserted and mixed with the advert to give the user the illusion that the call is in progress , while extending the time available to play the advert . of course , the above example could equally well apply to another form of call progress tone such as a busy or engaged tone , rather than the simple ringing tone . the advertising facility described above can be extended still further , if feedback is collected from the user , which relates to his or her response to the advert . when an outgoing call is made as above , dialed numbers are discarded between the user completing dialing and the call being connected . that is to say , dialed numbers are discarded while the user hears ringing . however , the device does not discard these numbers , but instead passes them to the user event processor 330 shown in fig3 . the user event processor can take arbitrary action with the feedback it receives . for example , during an advert being played to the user as described above , the user may be told to press 1 on their phone to register interest in the advertised product and be sent more information about the product . the user event processor 330 can inform a remote event server 309 ( see fig1 ) of the user feedback using a standard mechanism such as http . the notification will typically include the unique identifier of the end - point user . it should be noted that the example of pressing 1 above to register interest could equally well be achieved by the user speaking their response and the user event processor recognizing the input , or indeed any other form of input available to the device . another facility enabled by the user event processor 330 is the ability to indicate that a received call is a nuisance call ( or spam ). a certain event , such as pressing the # button on the phone could be used to indicate that the current call is spam . the user could press this button during audio caller - id , in the middle of a call , or even at the end of a call after the far - end has hung - up , but before the user has done so . upon receipt of spam notification the user event processor can take whatever action it has been programmed to take . this might include updating a block - list with information about the caller , including the caller - id or other information such as ip address or session initiation protocol ( sip ) uniform resource identifier ( uri ), to prevent further calls from this user . the block - list could even be a shared list on an external server so that many users can immediately receive protection from the same spammer . as indicated previously , a wide range of messages may be played to a user at varying times during a call . in particular , it is possible for a remote message server 308 to request the message store 326 to play a message immediately , thereby interrupting the call . an example situation would be in the event of an emergency such as a tornado warning . in this situation , the message store 326 would send its message to mixer 325 to be mixed with some form of interrupt call progress tone to be sent to the user , and possibly the far end . depending on the hardware make - up of the device the audio could be played on a speaker or via an earpiece of the device . during a call , particularly during an interruption , it is possible for the far - end to be put on hold . in this situation the message store can relay a message ( such as an advert ) to the far - end user through mixer 324 . as described above , a network edge device according to the present invention has particular application in voip telephony , enabling a wide range of functionality that is not possible with existing systems . however , the technology could also be employed in other types of telephony devices such as mobile phones , where there is potential for localised message and advert insertion . moreover , the technology could extend to any other network edge telephony device that employs call progress tones .