referring now to the drawings in greater detail , there is illustrated therein structure diagrams for a fax transaction system and logic flow diagrams for the processes a computer system will utilize to complete various fax transactions with instant messaging services . the system is a client - server system , and it will be understood that the client program is run on a computer that is capable of communication with the server over a network , as will be more readily understood from a study of the diagrams . the system described below is called “ vbuzzer messenger ” for purpose of reference and explanation . fig1 is an illustration of an embodiment of a fax - over - vbuzzer instant messaging ( im ) architecture that operates in accordance with one aspect of the present invention . an im server 130 connects to a packet switched network 140 for providing instant messaging services for the im clients 400 connected to the server 130 over the packet switched network 140 , which can be a wide area network ( wan ) and / or the internet . the im server 130 provides users with services such as authentication , login , contact list , instant exchange of text messages and / or files , and internet telephony . the im server 130 communicates with an im user database 150 that provides user authentication , authorization , and accounting for the various free and paying services , including but not limited to , fax services that the im server 130 provides . in this embodiment , the im user database 150 also maintains data on users who subscribe to the fax service for purposes of user authentication , authorization , and accounting ( aaa ). a fax server 120 connects and works with the im server 130 and the im user database 150 . the fax server 120 works as a “ command and processing center ” for storing , indexing , sending , receiving fax image files as well as processing fax transmission status . the fax server 120 interfaces with network devices such as t . 30 modem 111 and t . 38 modem 115 , among others . these modems in turn are connected respectively to a circuit switched network 110 such as the pots network and packet switched networks such as internet . the fax server 120 collaborates with the im server 130 to notify the server 130 with events and status on the storing , indexing , sending and receiving of fax image files . the im server 130 in turn notifies such events and status to the im client 400 through instant messages . the im server 130 also sends action requests to the fax server 120 for the fax server 120 to execute all fax - related commands the im server 130 receives from one or more im clients 400 . the fax server 120 accesses the im user database 150 for user authentication , authorization , and accounting ( aaa ). for example , upon receiving a request for sending a fax transmission , the fax server 120 queries the im user database 150 to get the remaining balance from a client account in order to determine if there is sufficient monetary value in the account to cover the fax transmission charge ( s ). also , upon receiving a fax from external networks , the fax server 120 queries the im user database 150 to determine if an incoming fax can be sent over im ( peered ) to a user , and if so , which user the fax is peered to . in one embodiment , the im user database 150 is a relational database storing necessary information of all instant messaging users . in one embodiment , the database contains a username , password , vphone , vfax , balance , home phone , mobile phone , office phone , street , city , state / province , country , and zip code , among others . the user name is provided by the im user at the time of his or her registration , and each user name is unique . vphone is the voice over ip ( voip ) phone number that the im user has subscribed to ( or null if there is no voip subscription ), and is unique at any given time . vfax is the fax number that the im user subscribed to through the im service provider and is also unique at any given time . if the user does not subscribe to the fax service from the im service provider , the field is null . the balance is the monetary value representing the current credit the user has remaining in his or her account . other fields include information entered by the user at or after the time of registering the im account , and the information is unique and can be null if not filled by the user . each im client 400 who subscribes to the fax service ( s ) from the im service provider has a one - to - one relationship between a user name and a fax number . when the fax server 120 receives a send fax request from the im server 130 , the fax server 120 also receives the user name and fax number ( if available ) from the im server 130 so that the fax server 120 can query the im user database 150 and check if sufficient balance is available for executing the fax request . if the user passes the authorization , his user name and / or fax number ( if available ) is then passed through to the external network 110 by the fax server 120 . when the fax server 120 receives a fax image file from an external network such as the circuit switched network 110 and the packet switched network 140 , the fax server 120 queries the im user database 150 to identify the recipient &# 39 ; s user name by the recipient &# 39 ; s fax number , based on their one - to - one relationship . the fax server 120 also communicates with a fax file server 160 , which is a file server that contains file folders for storing fax image files including those sent and / or received for each user name . whenever a fax is sent or received , the fax server 120 opens a user name - based file folder in the file server 160 if the folder does not exist . the file server 160 provides the ability to store each user &# 39 ; s incoming and outgoing fax image files in the server , in addition to the files stored in the user &# 39 ; s im client . the fax server 120 also communicates with a fax database server 170 , which is a fax database server contains information about the storage of file image files sent and received . the information captured by server 120 includes user name , fax file and store path , and file server ip address written by the fax server 120 . the fax database server 170 will subsequently be queried by the im client 400 to determine where and how to fetch the fax image files sent and / or received . the fax server 120 is also connected to the external circuit switched network ( public switched telephone network ( pstn ) or plain old telephone system ( pots )) 110 either through a t . 30 fax modem 411 with a did pool 113 attached to it ( a number of direct inward dial , or more commonly speaking , a pool of telephone numbers ), or through a t . 38 fax gateway 115 with a did pool 117 attached to it . the circuit switched network 110 is connected to a plurality of fax machines 110 through regular phone lines subscribed from the local telephone carriers . the t . 30 fax modem 111 is a fax executing device that transmits fax over the pots or pstn 110 . the fax modem 111 can be an analog fax modem ( one circuit connected to pstn ) or a digital trunk fax modem ( digital trunk line such as a digital ti connected to pstn ). the fax modem 111 executes all fax transmitting operations according to fax protocol t . 30 . the fax server 120 can also be connected to a t . 38 fax gateway 115 either through direct cable connection or through a wide area network 140 as shown in fig1 . the t . 38 fax gateway 115 executes all operations related to transmitting fax over internet 140 and to / from pstn 110 . any commercially available t . 38 fax gateways can be used , many of which are integrated together with voice over ip gateways . to connect to the pstn 110 , both t . 30 modem 111 and t . 38 modem 115 need to be connected to analog phone lines or trunk lines that assigned by telephone carriers . by connecting to the pstn , a pool of fax numbers ( did pool 113 and 117 ) are assigned to the respective lines , these fax numbers will be further assigned by the instant messaging service provider to the users who subscribed to im fax services . therefore , a one to one relationship is set up between a fax number and a user name . the network topology shown in fig1 provides a localized and centralized deployment where the servers are connected locally with each other . however , it is understood that the im fax system can well be achieved through a distributed network topology where the above servers are connected remotely through and across a wide area network ( wan ). also , these servers can be deployed in clusters to provide for redundancy . with the above illustrated architecture of software system , fax can be transmitted , sent and received , over instant messenger protocols . fig2 is a flow diagram illustrating the system operations flow of sending fax to external networks such as pstn 110 and internet 140 . in block 200 , the im server 130 receives a fax image file together with a request for sending a fax from a im client 400 . in block 210 , since the im client 400 has logged - in with the im server 130 , the im server 130 already has user information such as user name , the im server 130 forwards the information as well as the send fax request and the fax image file to the fax server 120 for processing . in block 220 , the fax server 120 receives the send fax request , fax image file , destination fax number , and user information . with the information , the fax server 120 queries the im user database 150 to check if the request is authorized and if sufficient balance exists in the user account to pay for the send request . in block 230 , the im user database 150 processes the query and returns a result . if the query fails , the server 120 will notify the im server 130 which will further notify the im client 400 . in block 240 , if the send request is authorized , fax server 120 will process the request , e . g . check available modems , available channels , the files waiting to sent etc and put the new request in the queue accordingly . in block 250 , one modem such as the t . 30 modem 111 or t . 38 modem receives the commands of sending fax from the fax server 120 executes the sending operation and reports the result to the server 120 . in block 260 , modems 111 / 115 receives signals indicating the result of sending operations and they in turn forward the indications to fax server 120 to confirm the result . the indications are further forwarded to im server 130 and im client 400 . fig3 is a flow diagram illustrating the system operation in receiving faxes for its users . in block 300 , t . 30 modem 111 and / or t . 38 modem 115 receives an incoming fax signal from fax devices in the external networks pstn 110 or internet 140 . in block 310 , while receiving the incoming fax signal , the modems 111 / 115 also detect the destination fax number by means of direct - inward - dial ( did ) or dual tone multi frequency ( dtmf ). the destination fax number is forwarded to fax server 120 . in block 320 , fax server 120 queries im user database 150 to get the user name of the im client 400 that corresponds to the destination fax number . in block 330 , based on the username it gets in the above step , the fax server 120 creates a file folder in fax file server 160 if the folder does not exist yet . next , the fax server 120 starts to receive and data stream from modems 111 / 115 and the server 120 composes the data stream in an image format files such as tif or tiff files . in block 340 , the fax server 120 stores the file image file into the folder in file server 160 . in block 350 , the fax server 120 writes the received information to the fax database server 170 . such information includes recipient &# 39 ; s username , fax image file id and store path , file server id and ip address , among others . in block 360 , the fax server 120 sends a notification to the im server 130 , which in turn forwards the notification to the im client 400 that it has received a fax . in block 370 , the im client 400 access the fax database to get information to retrieve the fax , including a fax image file id , its store path , file server id and its ip address , for example . in block 380 , the im client 400 accesses the file server 120 and the fax image file according to the information acquired in block 370 . the im client 400 can either view the fax image file on the file server 120 or download the fax image file to a folder in the local computer hosting the im client 400 . fig1 - 3 detail the architecture and mechanism to transmit fax over instant messaging software at the server / system level . next , the architecture and processes to render a fax over im in the im client software are shown in fig4 , fig5 and fig6 and described below . the im client 400 software has a server software component as well as a client software component . during operation , each user of the im software interacts with the client software directly . fig4 is a diagram of an im client architecture that provides fax functionality over an instant messenger service . a fax over instant messaging client 400 is an im client software running on the user &# 39 ; s computer . initially , the im client 400 logs into the im server 130 through a connection to the internet 140 . in one embodiment , the login to the im server 130 consists of a series of user authentication and service authentication between the im client 400 and the im server 130 . when the im client 400 is successfully logged in , the client 400 has already passed a rigorous authentication process and the information associated with the client 400 is already available to the im server 130 . in one embodiment , an im client 400 called vbuzzer messenger has functional modules to execute basic applications instant messaging , file exchange , and voice calls between users . the im client 400 includes a fax over im module 410 , which is designed to supplement to the im mainframe . as shown in fig4 , the fax over im module 410 contains various sub modules that collaborate with each other to provision fax with the im client 400 as well as with the im server 130 . the fax over im module 410 includes a signature maker module 401 , which is a sub module to make the user &# 39 ; s signature image file . it manages a wizard for guiding the user through a number of on - screen operations to make a signature image file . the user is able to draw his / her signature by moving the computer mouse . alternatively , user can make a signature on paper , then scan it and input it into 401 . in either case , a signature image is made and stored in the sub module 410 . fig4 also shows a file sorter 402 , which is a sub module to choose a file intended to be sent as a fax from the user &# 39 ; s computer . additionally , a fax file generator 403 is provided as a sub module that imports the user &# 39 ; s signature image and inserts the signature image into another file . after the insertion , the fax file generator 403 generates a new image file of the fax to be sent . the fax over im module 410 also contains a file maker / converter 404 , which is a sub module that converts files generated by the fax file generator 403 and the fax cover page file generated by the make fax wizard 406 into one file in a format that is suitable for fax transmission . in one implementation , the files are converted into a tiff format , and depending on the type of fax server 120 , files can be converted into other formats such as pdf or postscript . in one embodiment , the fax file maker / converter 404 is formatted as a virtual printer but the file maker / converter can also be in other formats that can suitably convert the file . the formats of source files that can be converted include text file , ms word , ms excel , pdf , and postscript , among others . the source formats can be expanded as necessary so that the file converter 404 can convert files of different format into one uniform format suitable for fax transmission . the fax over im module 410 also includes a file folder 405 , which is a sub module for storing fax image files . in one embodiment , the files are arranged by their outgoing and incoming status . in this embodiment , outgoing and after - conversion image files are stored in the folder , as well as all incoming received image files are stored in the folder , each in different sub folders for sorting purpose . the user will access this folder as their fax file pool reflecting the history of sent / received fax . a send fax wizard 406 is a sub module that contains a series of on - screen user interfaces ( uis ) for guiding the user through all operations related to sending a fax . the wizard covers the operations of selecting a file to be sent , making a cover page , converting the file , and entering the destination information such as destination fax number . with the above described client software , a fax can be generated within the client software for the transmission ( sending and receiving ) between the client software and the servers through system software . fig5 illustrates an exemplary operation flowchart to generate and send a fax from the im client software . in block 510 , the im client 400 communicates with the im server 130 and is suitably authenticated by the im server 130 . in block 520 , the make signature sub - module 401 helps the user to generate a copy of his / her signature as a graphic / image , and this graphic / image will be saved and stored as his / her signature image file . in block 530 , the file sorter 402 prompts the user to choose a file stored in the local computer to be faxed . in block 540 , with the help of fax file generator 403 , a user can copy and paste the signature image into a predetermined location in the chosen file and generate a new file containing the signature image to be faxed . in block 550 , the send fax wizard 406 prompts the user to make a fax cover page , with relevant information such as sender &# 39 ; s name , company , fax number , data and time , subject of the fax , brief introductory content of the fax etc ; as well as information about the recipient such as name , company , address , fax number etc . in block 560 , the file converter 404 converts the file generated in 530 and 540 and combines them into one fax image file in a suitable format such as tif , tiff , pdf , and / or postscript . in block 570 , after the final fax image file is generated , the user is prompted to complete the send fax wizard 406 by entering destination fax number and confirming the fax request . in block 580 , the send fax request is submitted to the im server 130 for the system to process the request in accordance with the work flow illustrated in fig2 . in block 590 , the final fax image file is stored in file folder 405 as history record for user to access and review as needed . the work flow of send fax in the client software is completed after block 590 . in one embodiment , if a fax recipient is not found in the im user database 150 , the fax server 120 sends the fax over the circuit switched network 110 . alternatively , if the recipient is listed in the im user database 150 , the recipient is an authorized im user in the provider &# 39 ; s network and he or she has a fax number from the im service , the system copies the fax image file directly into the fax file server 160 and notifies the recipient &# 39 ; s im client 400 to retrieve and view the received fax . thus , the process of sending a fax between internal users is simply a file transfer over im where the transferred files are fax image files . fig6 is a diagram of an exemplary process for receiving fax by the im client 400 . in block 610 , the im client 400 logs in with the im server 130 . in block 620 , the im client 400 receives a notice that a fax has been received . in block 630 , the im client 400 accesses the fax database server 170 to fetch the location of the received fax file using a file id , store path , id of file server 160 , and ip address , for example . in block 640 , the im client 400 accesses the file server 160 and in block 650 , the im client 400 accesses the fax file stored on file server 160 . in block 660 , the im client either views the received fax file on file server 160 , or downloads it to the folder in the local computer for viewing . it is understood that the present invention may be embodied in other forms and configurations other than the exact specifications and system layouts of the vbuzzer messenger as described below . further , although the present invention is described through a centralized server architectural design , principles of the invention apply to distributed server architecture as well as peer to peer architecture . moreover , we intend not to specify the type of networks because the invention of fax over instant messaging software applies to all networks in general , e . g . fix line networks and wireless networks , and on all devices , e . g . desktop computers , laptop computers , mobile devices etc as long as they run instant messaging software on them . the invention may be implemented in hardware , firmware or software , or a combination of the three . preferably the invention is implemented in a computer program executed on a programmable computer having a processor , a data storage system , volatile and non - volatile memory and / or storage elements , at least one input device and at least one output device . by way of example , a block diagram of a computer to support the im client 400 is discussed next . the computer preferably includes a processor , random access memory ( ram ), a program memory ( preferably a writable read - only memory ( rom ) such as a flash rom ) and an input / output ( i / o ) controller coupled by a cpu bus . the computer may optionally include a hard drive controller which is coupled to a hard disk and cpu bus . hard disk may be used for storing application programs , such as the present invention , and data . alternatively , application programs may be stored in ram or rom . i / o controller is coupled by means of an i / o bus to an i / o interface . i / o interface receives and transmits data in analog or digital form over communication links such as a serial link , local area network , wireless link , and parallel link . optionally , a display , a keyboard and a pointing device ( mouse ) may also be connected to i / o bus . alternatively , separate connections ( separate buses ) may be used for i / o interface , display , keyboard and pointing device . programmable processing system may be preprogrammed or it may be programmed ( and reprogrammed ) by downloading a program from another source ( e . g ., a floppy disk , cd - rom , or another computer ). each computer program is tangibly stored in a machine - readable storage media or device ( e . g ., program memory or magnetic disk ) readable by a general or special purpose programmable computer , for configuring and controlling operation of a computer when the storage media or device is read by the computer to perform the procedures described herein . the inventive system may also be considered to be embodied in a computer - readable storage medium , configured with a computer program , where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein . the invention has been described herein in considerable detail in order to comply with the patent statutes and to provide those skilled in the art with the information needed to apply the novel principles and to construct and use such specialized components as are required . however , it is to be understood that the invention can be carried out by specifically different equipment and devices , and that various modifications , both as to the equipment details and operating procedures , can be accomplished without departing from the scope of the invention itself .