WO2001035272A2 - Apparatus and method for selective routing of users to experts over a network of computers - Google Patents

Apparatus and method for selective routing of users to experts over a network of computers Download PDF

Info

Publication number
WO2001035272A2
WO2001035272A2 PCT/US2000/030314 US0030314W WO0135272A2 WO 2001035272 A2 WO2001035272 A2 WO 2001035272A2 US 0030314 W US0030314 W US 0030314W WO 0135272 A2 WO0135272 A2 WO 0135272A2
Authority
WO
WIPO (PCT)
Prior art keywords
user
experts
selected expert
expert
server
Prior art date
Application number
PCT/US2000/030314
Other languages
French (fr)
Other versions
WO2001035272A3 (en
Inventor
G. Dewey Gaedcke
Carl N. Samos
Original Assignee
Knowitall, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Knowitall, Inc. filed Critical Knowitall, Inc.
Priority to AU14594/01A priority Critical patent/AU1459401A/en
Publication of WO2001035272A2 publication Critical patent/WO2001035272A2/en
Publication of WO2001035272A3 publication Critical patent/WO2001035272A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Definitions

  • the present invention relates generally to an apparatus and method for connecting users to expert service providers through a network of computers such as the Internet, and more particularly to routing computer users seeking expert help to experts in one or more topic areas m an online setting.
  • SUBST ⁇ JTE SHEET (RULE 26)
  • a common p ⁇ or art system for addressing the needs of a person seeking expert help is a telephonic help lme.
  • the user is first required to identify the approp ⁇ ate contact number.
  • the user must place the call within a set of limited and often inconvenient busmess hours adopted by the service
  • the user is often channeled through a se ⁇ es of menu options, after which the user may finally be connected with a human being Even at that juncture, the user has no way of knowing the skill set and expe ⁇ ence of the person on the other end of the line
  • Fig. 1 is a block diagram of the system for connecting users to experts of the present invention
  • Fig. 2 is a block diagram of a multiple server and multiple database configuration that may be used m connection with the method of the present mvention
  • Fig. 3 is a schematic diagram of a multiple server configuration with a router for routmg users to experts in accordance with the present mvention
  • Fig. 4 is an exploded block diagrammatic view of a server m accordance with the present mvention
  • Fig. 5 is a diagrammatic representation of a taxonomy which may be used in the present invention
  • Fig. 6a is a flowchart of an exemplary initial client logm routme
  • Fig. 6b is an exemplary flowchart of server actions responsive to client logm
  • Fig. 6c is a flowchart of a send request between the client and server
  • Fig. 6d is a flowchart of a receive request from the server
  • Fig. 6e is a flowchart of a send reply routine between the server and the client
  • Fig. 6f is a flowchart of a receive reply routine between the client and server
  • Fig. 7a is a flowchart showing an exemplary user question commumcation protocol between the client and server
  • Fig. 7b is a continuation of the flowchart showing the communication flow responsive to a user question commenced in Fig. 7.
  • Fig. 7c is a further continuation of the flowchart depicted in Fig. 7a and Fig. 7b.
  • Fig. 8 is a flowchart for the find agent routine run by the client application.
  • Fig. 9a and Fig. 9b are flowcharts of the ranking process.
  • Fig. 10a is a flow diagram showing an exemplary routine for initiating a service requestor/service provider conference.
  • Fig. 10b is a flow diagram showing a process for joining a service requestor/service provider conference.
  • Fig. 10c is a flow diagram illustrating a process for leaving a service requestor/service provider conference.
  • Fig. lOd is a flow diagram for the procedure whereby the server of the present invention collects information pertaining to a service requestor/service provider conference.
  • Fig. lOe is a flow diagram for the procedure for terminating a service requestor/service provider conference.
  • the present invention provides for an online, real-time method and system for connecting users to approp ⁇ ate experts through a network of computers such as the Internet. Users seeking a specific type of help are presented with a list of available experts The user may then browse the information presented and select an expert When a selection has occu ⁇ ed, the user and expert are connected, real-time, so that the expert may resolve the question or need of the user Payment may be admmistered by the system, and obtained from either the user or an entity which has engaged the expert or provider of the system.
  • Fig. 1 shows, in block diagram form, the operation of the present invention in its most basic form.
  • a service requestor 10a who is normally operatmg a computer system, issues a request for a service (commonly a request for expert assistance) from one or more service providers 10b located remote to the service requestor 10a.
  • service providers 10b may be experts or other types of service providers, e g , a catalog site.
  • At least a portion of the service requestor's 10a request is formatted mto a data commumcations compatible data package, e g , using a standard such as extensible Markup Language (XML), and then sent to server 30 usmg data commumcations pathway 20.
  • data commumcations pathway 20 is the Internet, using TCP/IP protocols
  • a routing program (not shown) executing within server 30 examines database 40 accessible to server 30 for a list of approp ⁇ ate experts responsive to service requestor's 10a request. If one or more matches are found, a resulting list of matches may be returned to service requestor 10a for acceptance. The list may also include specified attributes for each expert. Service requestors 10a may then be allowed to selectively view the resulting list of service providers 10b uncovered by the match, the ability to sort the list according to one or more attribute c ⁇ te ⁇ a such as name, ranking information, specific attribute, or combmations thereof.
  • service requestors 10a are allowed to browse a portion of database 40 which is a taxonomy 60 (shown m Fig 5), detailed herein below Such browsing may allow service requestors 10a to took at attributes of service providers 10b available either m general or in one or more domains (not shown in the figure), questions asked but not answered, questions asked and answered, ongomg conversations, or any combmation thereof
  • service requestor 10a accepts service provider 10b or otherwise affirmatively mdicates selection of a service provider 10b, and if service provider 10b is available, service provider 10b selected by a service requestor 10a receives a notification of the attempt by service requestor 10a to contact that service provider 10b
  • the notification may include all or a portion of service requestor's 10a request, the location in taxonomy 60 of the classification of service requestor's 10a request, an attribute representmg an identifier for service requestor 10a, or any combmation thereof Service provider 10b may then elect to receive or reject the request
  • service requestor 10a establishes real-time, peer-to-peer level commumcations 12 with that service provider 10b, as those skilled in the art will understand the term, at which pomt the commumcations between clients 10 occurs on a peer-to-peer level without any further need for server 30
  • Real-time, peer- to-peer communication 12, mcludmg the ability to have a secured commumcation established between service requestor 10a and service provider 10b may include text, audio, video, whiteboard, file transfer, and/or remote control, and server 30 may be extracted from the commumcation link at that pomt
  • selection of service provider 10b may be automatically accomplished by the matching program, for example, on a first-match or best fit set of cnte ⁇ a
  • a client application 100 (not shown m Fig. 1) executmg at service requestor 10a and service provider 10b retains state information to allow resumption of a session should the session
  • SUBSTTTUTE SHEET (RULE 26) be discontinued abnormally, e.g., a power outage.
  • the system also provides for logging each transaction between service requestor 10a and server 30, and between client 10a and expert 10b in the event the server 30 is extracted from the communication's loop.
  • client application 100 communicates to server 30 through a class interface module that encapsulates network communication protocol, XML packet building, XML parsing, and server side method invocation.
  • Use of a standard such as XML for packaging and transmitting data between clients 10 and servers 30 allows for flexibility without having to change code executing within server 30 or client 10.
  • Client applications 100 may communicate via dynamically linked library (DLL) modules.
  • DLL dynamically linked library
  • Each DLL presents a set of application program interfaces to client application 100, receiving data from client application 100 and passing on co ⁇ ectly formatted data to another application such as Microsoft® Net Meeting®.
  • Use of DLL modules provides great flexibility in the abilities of client application 100, especially in client-to-client peer level communications, without the need for extensive code changes in client application 100.
  • a client daemon application (not shown in Fig. 1) may be provided to interface other software applications such as browsers to server 30 as well as to provide an interface to facilitate establishment of sessions between service requestors 10a and service providers 10b, e.g. to Microsoft® Net Meeting® or AOL®.
  • a client user interface as that term is understood by those skilled in the computer arts, may be provided independently of the client daemon application, allowing for customization of a user interface.
  • client daemon applications may provide interfaces to standard protocols such as ITU H.323, for real-time video, voice, or data, and ITU T.120, for real-time multipoint
  • server 30 may be multiple servers 3 la, 3 lb, and 31c, and database 40, detailed herein below, may be replaced with multiple databases 41a, 41b, and 41c, and 41d
  • Servers 31a, 31b, and 31c may be in communication with databases 41a, 41b, 41c, and 41d through any number of means, all of which are readily understood by those skilled m the computer arts, including by way of example and not limitation a common bus, local area network, RAID servers, and the like
  • the scalability may be dynamic, providing stateless servers to which requests may be routed and or rerouted depending on load and availability of that server
  • servers 31 a, 31 b and 31 c may be multithreaded wherein the number of threads per server is a customizable number, thus allowing each server to be tuned to match the physical hardware with which such server is implemented
  • the user's computer may be of any family, e g , the x86 family or the Macmtosh Va ⁇ ous databases (e g , Oracle, Sybase) may be used as well
  • Fig. 3 is a schematic diagram of an embodiment of the present mvention with a router
  • intelligent handling routing software such as BIG/IP, marketed and manufactured by F5 may be used to send accept requests from clients 10 and route those requests from router 50 to the best server 30 available at any particular instant from one or more servers 30
  • servers 30 that are no longer responding are removed or otherwise disabled from receivmg any further requests to process client 10 or server 30 requests
  • each server such as server 30a, 30b, or 30c, is stateless, allowing requests from service requestors 10a to be serviced in turn by a plurality of servers 30a, 30b and 30c without degradation to response times or of the request
  • the client/server framework is implemented using the ADAPTIVE Communication Environment (ACE)
  • PD 32 is a Win32 service that runs m a Windows NT environment PD
  • PD 32 supports numerous tasks, including by way of example and not limitation service requestor 10a and service provider 10b logons and logoffs, service requestor 10a and service provider 10b availability status, creation, modification, and deletion of service requestors 10a and service providers 10b, mcludmg attribute information, start conference, join conference, end conference, find service provider, and rank service provider
  • Handler programs 33 are methods m PD 32 that get mvoked to handle a specific request
  • One or more handler programs 33 execute within server 30 to handle the vanous requests, mcludmg by way of example and not limitation mtegration to other systems via one or more application program interfaces (not shown m Fig. 4)
  • every transaction between clients 10 and server 30 is recorded by server 30 .
  • server 30 Accordmgly, the system provides for gathering and reporting of numerous statistical and empmcal data mcludmg usage and performance The information gathered may also be accessible to and stored m database 40, detailed herein below, for further use by database 40 with respect to knowledge domam contents and utilization
  • Database 40 comp ⁇ ses representations of qualifications and characte ⁇ stics of each service provider 10b As will be understood by those skilled m computer arts, database 40
  • SUBSTTTUTE SHEET itself may be a se ⁇ es of databases 40, shown in Fig. 3 as database 41a and database 41b, and may be collocated or dispersed Accordingly, redundancy and replication of databases may be provided to allow for online transactional integ ⁇ ty
  • Service provider att ⁇ butes may mclude, by way of example, overall ratmgs numbers of engagements, certifications, helpfulness ratmg, patience ratings, knowledge rating, and the like
  • service providers 10b may provide alternative sets of att ⁇ butes for a plurality of domains in which the service provider wishes to appear
  • database 40 may be implemented usmg one or more of
  • Fig. 5 is a diagrammatic representation of a taxonomy that may be used m the present mvention
  • a method of providing an extensible framework for taxonomy 60 as well as a ratmg methodology may be included m database 40
  • each server 30 obtains a copy of taxonomy 60 including any and all indices for taxonomy 60
  • Extensible taxonomy 60 comp ⁇ ses a collection of domains (not shown), agents 61a, 61b, 61c, and node linkages 64a, 64b, 64c, 64d, 64e, and 64f, mcludmg weightmg factors
  • exemplary domams comp ⁇ se areas in which service providers 10b may be expert such as word processmg, cable modems, or music compact disks
  • Each domam may be subdivided into subdomains, e g within a domain of word processing experts subdomams may exist for two or more operating systems' word processors
  • each term represents a topic area in which a query may be posed
  • At least one contact address is provided
  • Contact addresses 63 may include Internet addresses known as universal resource locators (URLs), telephone numbers for voice contact, telephone numbers for facsimile contact, telephone numbers for pager contact, or the like.
  • URLs universal resource locators
  • extensible taxonomy 60 helps define a set of nodes, where the nodes are agents 61, terms 62, and contact addresses 63. Each node may be linked in extensible taxonomy 60 to more than one other node.
  • Node linkages 64 may be described by additionally weighting factors which describe a node's relationship to the other linked node. Weighting factors may be fuzzy logic, such as "close” or “similar,” or may be non-fuzzy quantities such as an integer or other number within a range, e.g. a number between I and 100 where lower numbers indicate a less robust relationship than higher numbers.
  • Fig. 1 and Fig. 6 a flowchart of the initial client login, clients 10, including end user -service requestors 10a and service providers 10b, wishing to use the present invention invoke a client application 100 native to their operating environment.
  • client applications 100 are written for a Win32 environment in a language such as Microsoft Visual C++.
  • DLLs dynamic link libraries
  • service requestor 10a initializes client application 100.
  • Automatic login 110 may be provided as an option. If automatic login 110 has been configured or otherwise enabled 111, service requestor's 10a login information is retrieved from a local data store such as a hard drive. If configured or provided, service requestor 10a is queried 112 for login information. Once supplied, login information is communicated 113 to server 30.
  • Fig. 6b a flowchart of server 30 actions for login, server 30 verifies login information, generally shown as "120,” and sends a reply to client application 100. If login is
  • client application 100 notifies service requestor 10a and optionally and/or configurably re-prompts for logm information 112
  • Client application 100 interfaces with server 30 and other clients, e g service providers 10b, through data communications network 20 such as the Internet as well as with other applications through one or more approp ⁇ ate application program interfaces
  • Client's 10 requests are formatted into an approp ⁇ ate package using any of numerous packagmg means such as XML, before the packaged request is communicated to server 30 or other clients 10
  • Client application 100 may also be modular to allow utilization of numerous commumcations tools between clients, such as those offered by Microsoft® NetMeetmg® mcludmg but not limited to voice communications, video commumcations, whiteboard and other remote control functionality, chat sessions, and so on Support for multiple media, multiple simultaneous commumcations, or combinations thereof may also be supported
  • Service requestors 10a may optionally provide service provider 10b with information regardmg the operatmg environment of service requestor 10a including by way of example and not limitation hardware platform, software application information, and combmations thereof
  • Client application 100 creates a formatted message 101a which is transmitted 10 Id to server 30
  • Server 30 reads 102a the formatted message, decrypts 102b the message, and processes the formatted message 102e If the message was formatted co ⁇ ectly, server 30 contmues to process 102g the message
  • server 30 formats 103a the response, encrypts 103c the response, and sends 103d and 103e the response back to client application 100
  • Client application 100 receives 104a the response, decrypts 104b, extracts 104d the data, and contmues
  • SUBST ⁇ UTE SHEET (RULE 26) Referring back to Fig. 6, if login is successful, the remainder of client application 100 initializes and service requestor 10a availability is updated 131 m the system
  • state information for service requestors 10a is stored locally on client's 10 computer, including by way of example and not limitation logm information, favo ⁇ tes, and history files
  • service requestor 10a selects an option or otherwise indicates to client application 100, as will be understood by those skilled in the computer arts, to formulate a request 140 to server 30 At least a portion of the request is encapsulated 145 mto an approp ⁇ ate format, m the prefened embodiment XML, and sent 147 to server 30
  • Client application 100 sends a call request 160 to server 30 which m turn calls 165 service provider 10b
  • Service providers 10b may be have one or more statuses with respect to responding to service requestor's 10a requests, mcludmg by way of example and not limitation offline, online but otherwise unavailable (e g busy), online and available Additionally, service providers may provide the system with schedules of availability If service provider 10b accepts the call 170, commumcations between service requestor 10a and service provider 10b begin on a peer-to-peer basis
  • service requestor 10a may select 155 one of the listed service providers 10b
  • Service providers 10b may provide their services for free or for fee
  • service providers 10b may set their rates dynamically, based on one or more factors, may set a flat fee, or any combination thereof
  • Service requestors 10a who so request may be allowed to see service provider's 10b rate at any time including p ⁇ or to engagmg in any communication with the service provider
  • service requestor 10a or service provider 10b may end the peer-to-peer session 175
  • An automatic timeout or pause may be present at step 174 to activate whenever required, such as when there is no activity of some configurable, predetermined amount of tune
  • such a feature is used to more accurately reflect usage with respect to billing for those areas m taxonomy 60 where service requestor 10a gets directly billed or service provider 10b gets paid
  • peer-to-peer sessions between service requestors 10a and service providers 10b can be placed on 'hold" at step 175 rather than abandoned altogether Refernng now to Fig. 9a and Fig.
  • service requestor 10a may rank 180 service provider 10b after which time client application 100 terminates Service requestors 10a may therefore obtain a display of a rank dialog 200 and be allowed to provide quantitative and qualitative feedback 210 on service provider 10b Feedback may mclude knowledge, responsiveness, patience, ease of access, quality of service, and the like Additionally, client application 100, PD 32, or other processes may track other items such as actual tune online, data packet turn around, use of tools such as whiteboards, and the like One or more algo ⁇ thms 240 may then mampulate these quantitative and qualitative feedback measurements mto weightmg factors which are merged or combined with and/or otherwise replace the existmg weightmg factors 241 associated with the node m
  • SUBSTTTUTE SHEET (RULE 26) taxonomy 60 representing the service provider Service requestors 10a are allowed to provide quantitative and qualitative feedback on service provider 10b to server 30, mcludmg responsiveness to the service request, applicability of service provider 10b to a service requested, ease of access to and quality of responsiveness from service provider 10b, and the like Server 30 will update the history 182 of service provider 10b with ranking information and other information such as length of time spent peer-to-peer
  • Client application 100 may also provide an option allowing service requestors 10a to record information about one or more service providers 10b, including by way of example and not limitation biographical information, session information, histo ⁇ cal data, statistical data, and any combmation thereof Service requestors, 10a may add to a list of favo ⁇ tes and even contact service providers 10b on the favo ⁇ tes list directly
  • server 30 may update database 40 with information from the peer-to-peer session such as quest ⁇ on(s) posed and answer(s) received
  • Client application 100 may be responsible for maintaining state information for that client, e g logm information, favo ⁇ te service providers, and history, generatmg and routmg commumcations requests to the server, and generatmg and routmg commumcations requests to another client
  • service requestors 10a and service providers 10b may nommate other end users or service providers to be service providers
  • service providers may be experts m one or more fields, and end users may nommate another end user as an expert. An end user may even nommate him or herself to be an expert
  • a moderator can join an end user - service provider session either passively or actively, and monitor the session
  • the moderator - which may be another end user or another service provider - may remove the first service provider from
  • SUBST ⁇ TUTE SHEET (RULE 26) the session, for example if the first service provider is being rude, unprofessional, or inadequate Accordingly, moderators may be visible or invisible to the participants
  • Figs. 10a, 10b, 10c, lOd and lOe illustrate the handling of the conferencing operation between a service requestor 10a and service provider 10b More particularly, Fig. 10a shows the procedure whereby the system starts a conference Service requestor 10a initiates a request, which is received 400 by the server 30
  • the server 30 determines if the node id to which the conference belongs is valid 405 If it is not valid, the server 30 builds a failure reply 410, and the reply is sent to the service requestor 10a If the node id is valid, the server 30 generates a umque conference id number 420, stores information about the conference 425, stores the creator of the conference 430, adds the conference id to the reference node in the knowledge space 435, builds a success reply 440, adds the conference id to the reply 445, and sends the reply 415
  • FIG. 10b A procedure for joining a conference is shown in Fig. 10b Referring thereto, the server 30 receives a request 449 The server then determines if the conference id from the XML tree identifies a valid conference 450 If not, a failure reply is built 455 and sent to the service requestor 460 If the conference id is valid, the user id is added the list of participants of the conference 465, a success reply is built 470 and sent 460
  • Fig. 10c shows a procedure for leavmg a conference
  • server 30 receives a leave request 475, it determines from the XML tree if the conference id identifies a valid conference 480 If it does not, the server builds a failure reply 485 and sends the reply 490 If the conference id is valid, the user is removed from the list of participants 495, a success reply is built 496, and sent to the user 10
  • server 30 determines if the node id is a valid node id in the knowledge space 505 If it is not, a failure reply is built 510 and transmitted 515
  • Fig. lOe depicts the routine for ending a conference.
  • the server 30 determines if the conference id is valid and within a list of ongoing conferences. If it is not, a failure reply is generated 540 and transmitted 545. If the conference id is valid and ongoing, then for each node id that has the conference id associated with it, the conference id on such node is removed 550. Then, all user id's stored on the server for the conference id are removed 555, and the conference is removed from the list of ongoing conferences 560. A success reply is generated 565 and sent to the user 545. In another embodiment of the present invention, users can call for additional help if the cunent help has not satisfied the need of the user. Additionally, secure transactions are provided for by the system in a means familiar to persons of ordinary skill in the art.
  • SUBSTTTUTE SHEET (RULE 26) thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.

Abstract

A method and system for online, real-time interface of users and appropriate experts through a network of computers such as the Internet is disclosed. Users seeking a specific type of help are presented with a list of available experts. The user may then browse the information presented and select an expert. When a selection has occurred, the user and expert are connected, real-time, so that the expert may resolve the question or need of the user. Payment may be administered by the system, and obtained from either the user or an entity which has engaged the expert or provider of the system.

Description

APPARATUS AND METHOD FOR SELECTIVE ROUTING OF USERS TO EXPERTS OVER A NETWORK OF COMPUTERS
Copyright Notice A portion of the disclosure of this patent document contains mateπal which is subject to copyπght protection. The protection owner has no objection to the facsimile reproduction by anyone of the patent document, or of the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyrights whatsoever.
Priority
This application claims pnoπty based upon United States Provisional Application Seπal No. 60/163,900, filed November 5, 2000 and entitled "Apparatus and Method for Selective Routing of Users to Experts over a Network of Computers."
I. Field of the Invention
The present invention relates generally to an apparatus and method for connecting users to expert service providers through a network of computers such as the Internet, and more particularly to routing computer users seeking expert help to experts in one or more topic areas m an online setting.
II. Related Art
Presently, people attempting to locate expert help for a particular request are presented with a host of difficulties Foremost among these are locating an appropπate expert's contact information, obtaining the help of the expert in a timely fashion, learning about the expert's credentials and track record pπor to engaging the expert, and commg to mutually agreeable payment terms
-1-
SUBSTΓΠJTE SHEET (RULE 26) A common pπor art system for addressing the needs of a person seeking expert help is a telephonic help lme. In such systems, the user is first required to identify the appropπate contact number. Oftentimes, the user must place the call within a set of limited and often inconvenient busmess hours adopted by the service When the call is placed, the user is often channeled through a seπes of menu options, after which the user may finally be connected with a human being Even at that juncture, the user has no way of knowing the skill set and expeπence of the person on the other end of the line
When attemptmg to use a network of computers, such as the Internet, to locate an expert, a user is often confounded by a deluge of information in a format that is difficult to intelligently review Moreover, there is seldom any means to contact the given expert, no way to determme the past expeπences of other parties who have contacted the expert, and payment is cumbersome.
In response to this need, computer-based service systems have been developed wherein a user requiring information is required to complete a form to attempt obtam the service they require. Oftentimes, the form is madequate to identify the specific needs of the user, or the user does not have adequate computer skills to formulate their query m what is to that user an arcane syntax In addition, the user may not have sufficient specialized knowledge of computer-based query systems Moreover, users of such pπor art systems often have little or no way of evaluating the experts proffered m response by the system to the user's quenes pπor to retaining such expert's assistance Another flaw inherent in both pπor art telephomc and computer-based systems is the delay commonly expenenced by the user in reaching the expert
From the standpoint of the expert, an equally large number of problems aπse within the typical help-desk setting. An expert m such systems is required to travel to a particular physical location, which may be mconvement or mfeasible An expert is required to man the desk duπng a specified peπod, which makes the expert's schedule less flexible m terms of other mterests,
-2-
SUBSTΓΓUTE SHEET (RULE 26) mcludmg other work pursuits And experts "freelancing" are faced with administrative problems, most notably payment collection issues Finally, experts manning a help-desk often require the user to explain the problem, instead of having the opportunity to actually see and analyze the problem from the standpoint of the user III. Brief Description of the Drawings
For a further understandmg of the nature and objects of the present invention, but not by way of limitation, reference should be made to the following detailed descnption, taken m
conjunction with the accompanying drawings, in which like elements are given the same or analogous reference numbers and wherem
Fig. 1 is a block diagram of the system for connecting users to experts of the present invention
Fig. 2 is a block diagram of a multiple server and multiple database configuration that may be used m connection with the method of the present mvention
Fig. 3 is a schematic diagram of a multiple server configuration with a router for routmg users to experts in accordance with the present mvention
Fig. 4 is an exploded block diagrammatic view of a server m accordance with the present mvention
Fig. 5 is a diagrammatic representation of a taxonomy which may be used in the present invention Fig. 6a is a flowchart of an exemplary initial client logm routme
Fig. 6b is an exemplary flowchart of server actions responsive to client logm
Fig. 6c is a flowchart of a send request between the client and server
Fig. 6d is a flowchart of a receive request from the server
Fig. 6e is a flowchart of a send reply routine between the server and the client
Fig. 6f is a flowchart of a receive reply routine between the client and server
Fig. 7a is a flowchart showing an exemplary user question commumcation protocol between the client and server Fig. 7b is a continuation of the flowchart showing the communication flow responsive to a user question commenced in Fig. 7.
Fig. 7c is a further continuation of the flowchart depicted in Fig. 7a and Fig. 7b.
Fig. 8 is a flowchart for the find agent routine run by the client application.
Fig. 9a and Fig. 9b are flowcharts of the ranking process. Fig. 10a is a flow diagram showing an exemplary routine for initiating a service requestor/service provider conference.
Fig. 10b is a flow diagram showing a process for joining a service requestor/service provider conference.
Fig. 10c is a flow diagram illustrating a process for leaving a service requestor/service provider conference.
Fig. lOd is a flow diagram for the procedure whereby the server of the present invention collects information pertaining to a service requestor/service provider conference.
Fig. lOe is a flow diagram for the procedure for terminating a service requestor/service provider conference.
IV. Description of a Preferred Embodiment
The present invention provides for an online, real-time method and system for connecting users to appropπate experts through a network of computers such as the Internet. Users seeking a specific type of help are presented with a list of available experts The user may then browse the information presented and select an expert When a selection has occuπed, the user and expert are connected, real-time, so that the expert may resolve the question or need of the user Payment may be admmistered by the system, and obtained from either the user or an entity which has engaged the expert or provider of the system.
Fig. 1 shows, in block diagram form, the operation of the present invention in its most basic form. A service requestor 10a who is normally operatmg a computer system, issues a request for a service (commonly a request for expert assistance) from one or more service providers 10b located remote to the service requestor 10a. In a prefeπed embodiment, service providers 10b may be experts or other types of service providers, e g , a catalog site.
At least a portion of the service requestor's 10a request is formatted mto a data commumcations compatible data package, e g , using a standard such as extensible Markup Language (XML), and then sent to server 30 usmg data commumcations pathway 20. In the preferred embodiment, data commumcations pathway 20 is the Internet, using TCP/IP protocols
A routing program (not shown) executing within server 30 examines database 40 accessible to server 30 for a list of appropπate experts responsive to service requestor's 10a request. If one or more matches are found, a resulting list of matches may be returned to service requestor 10a for acceptance. The list may also include specified attributes for each expert. Service requestors 10a may then be allowed to selectively view the resulting list of service providers 10b uncovered by the match, the ability to sort the list according to one or more attribute cπteπa such as name, ranking information, specific attribute, or combmations thereof.
-5-
SUBSTΓΠJTE SHEET (RULE 26) In an alternative embodiment, service requestors 10a are allowed to browse a portion of database 40 which is a taxonomy 60 (shown m Fig 5), detailed herein below Such browsing may allow service requestors 10a to took at attributes of service providers 10b available either m general or in one or more domains (not shown in the figure), questions asked but not answered, questions asked and answered, ongomg conversations, or any combmation thereof
If service requestor 10a accepts service provider 10b or otherwise affirmatively mdicates selection of a service provider 10b, and if service provider 10b is available, service provider 10b selected by a service requestor 10a receives a notification of the attempt by service requestor 10a to contact that service provider 10b The notification may include all or a portion of service requestor's 10a request, the location in taxonomy 60 of the classification of service requestor's 10a request, an attribute representmg an identifier for service requestor 10a, or any combmation thereof Service provider 10b may then elect to receive or reject the request
If service provider 10b is available and elects to receive the request, service requestor 10a establishes real-time, peer-to-peer level commumcations 12 with that service provider 10b, as those skilled in the art will understand the term, at which pomt the commumcations between clients 10 occurs on a peer-to-peer level without any further need for server 30 Real-time, peer- to-peer communication 12, mcludmg the ability to have a secured commumcation established between service requestor 10a and service provider 10b, may include text, audio, video, whiteboard, file transfer, and/or remote control, and server 30 may be extracted from the commumcation link at that pomt
In an alternative embodiment, selection of service provider 10b may be automatically accomplished by the matching program, for example, on a first-match or best fit set of cnteπa
A client application 100 (not shown m Fig. 1) executmg at service requestor 10a and service provider 10b retains state information to allow resumption of a session should the session
-6-
SUBSTTTUTE SHEET (RULE 26) be discontinued abnormally, e.g., a power outage. In a preferred embodiment, the system also provides for logging each transaction between service requestor 10a and server 30, and between client 10a and expert 10b in the event the server 30 is extracted from the communication's loop. In the prefened embodiment, client application 100 communicates to server 30 through a class interface module that encapsulates network communication protocol, XML packet building, XML parsing, and server side method invocation. Use of a standard such as XML for packaging and transmitting data between clients 10 and servers 30 allows for flexibility without having to change code executing within server 30 or client 10.
Client applications 100 may communicate via dynamically linked library (DLL) modules. Each DLL presents a set of application program interfaces to client application 100, receiving data from client application 100 and passing on coπectly formatted data to another application such as Microsoft® Net Meeting®. Use of DLL modules provides great flexibility in the abilities of client application 100, especially in client-to-client peer level communications, without the need for extensive code changes in client application 100. Additionally, a client daemon application (not shown in Fig. 1) may be provided to interface other software applications such as browsers to server 30 as well as to provide an interface to facilitate establishment of sessions between service requestors 10a and service providers 10b, e.g. to Microsoft® Net Meeting® or AOL®. In this manner, a client user interface, as that term is understood by those skilled in the computer arts, may be provided independently of the client daemon application, allowing for customization of a user interface.
Additionally, client daemon applications may provide interfaces to standard protocols such as ITU H.323, for real-time video, voice, or data, and ITU T.120, for real-time multipoint
data connections and conferencing. Referring now to Fig. 2, a block diagram of a multiple server and multiple database configuration, in order to handle volume and load requirements server 30 may be multiple servers 3 la, 3 lb, and 31c, and database 40, detailed herein below, may be replaced with multiple databases 41a, 41b, and 41c, and 41d Servers 31a, 31b, and 31c may be in communication with databases 41a, 41b, 41c, and 41d through any number of means, all of which are readily understood by those skilled m the computer arts, including by way of example and not limitation a common bus, local area network, RAID servers, and the like In the preferred embodiment, the scalability may be dynamic, providing stateless servers to which requests may be routed and or rerouted depending on load and availability of that server Further, servers 31 a, 31 b and 31 c may be multithreaded wherein the number of threads per server is a customizable number, thus allowing each server to be tuned to match the physical hardware with which such server is implemented
The user's computer may be of any family, e g , the x86 family or the Macmtosh Vaπous databases (e g , Oracle, Sybase) may be used as well Fig. 3 is a schematic diagram of an embodiment of the present mvention with a router In a prefened embodiment, intelligent handling routing software such as BIG/IP, marketed and manufactured by F5 may be used to send accept requests from clients 10 and route those requests from router 50 to the best server 30 available at any particular instant from one or more servers 30 In this form of dynamic routmg, servers 30 that are no longer responding are removed or otherwise disabled from receivmg any further requests to process client 10 or server 30 requests Accordingly, each server, such as server 30a, 30b, or 30c, is stateless, allowing requests from service requestors 10a to be serviced in turn by a plurality of servers 30a, 30b and 30c without degradation to response times or of the request In the preferred embodiment, the client/server framework is implemented using the ADAPTIVE Communication Environment (ACE) ACE is an open-source object-onented framework that is fully portable to many operating systems
Referring now to Fig. 4, a block diagrammatic view of a server, server 30 compπses one main function block Pπmary daemon 32 (PD) maintains threads representing requests and responses, as that term is readily understood by those skilled in the software arts In the prefened embodiment, PD 32 is a Win32 service that runs m a Windows NT environment PD
32 receives all requests from clients 10 and processes them usmg one or more handler programs
33 PD 32 supports numerous tasks, including by way of example and not limitation service requestor 10a and service provider 10b logons and logoffs, service requestor 10a and service provider 10b availability status, creation, modification, and deletion of service requestors 10a and service providers 10b, mcludmg attribute information, start conference, join conference, end conference, find service provider, and rank service provider
Handler programs 33 are methods m PD 32 that get mvoked to handle a specific request One or more handler programs 33 execute within server 30 to handle the vanous requests, mcludmg by way of example and not limitation mtegration to other systems via one or more application program interfaces (not shown m Fig. 4)
In a prefened embodiment, every transaction between clients 10 and server 30 is recorded by server 30 Accordmgly, the system provides for gathering and reporting of numerous statistical and empmcal data mcludmg usage and performance The information gathered may also be accessible to and stored m database 40, detailed herein below, for further use by database 40 with respect to knowledge domam contents and utilization
Database 40 compπses representations of qualifications and characteπstics of each service provider 10b As will be understood by those skilled m computer arts, database 40
-9-
SUBSTTTUTE SHEET (RULE 26) itself may be a seπes of databases 40, shown in Fig. 3 as database 41a and database 41b, and may be collocated or dispersed Accordingly, redundancy and replication of databases may be provided to allow for online transactional integπty
Each service requestor 10a and service provider 10b is descnbed in database 40 by a plurality of attπbutes Service provider attπbutes may mclude, by way of example, overall ratmgs numbers of engagements, certifications, helpfulness ratmg, patience ratings, knowledge rating, and the like
Additionally, service providers 10b may provide alternative sets of attπbutes for a plurality of domains in which the service provider wishes to appear In the preferred embodiment, database 40 may be implemented usmg one or more of
Oracle, Microsoft Coφ , SQL Server, or any combmation thereof
Fig. 5 is a diagrammatic representation of a taxonomy that may be used m the present mvention In a preferred embodiment, a method of providing an extensible framework for taxonomy 60 as well as a ratmg methodology may be included m database 40 In one alternative embodiment, each server 30 obtains a copy of taxonomy 60 including any and all indices for taxonomy 60
Extensible taxonomy 60 compπses a collection of domains (not shown), agents 61a, 61b, 61c, and node linkages 64a, 64b, 64c, 64d, 64e, and 64f, mcludmg weightmg factors In Fig. 5, exemplary domams compπse areas in which service providers 10b may be expert such as word processmg, cable modems, or music compact disks Each domam may be subdivided into subdomains, e g within a domain of word processing experts subdomams may exist for two or more operating systems' word processors
Further, a set of descπptors called terms 62a, 62b and 62c exist as well where each term represents a topic area in which a query may be posed At least one contact address is provided
-10-
SUBSTTTUTE SHEET (RULE 26) for each service provider 10b. Contact addresses 63 may include Internet addresses known as universal resource locators (URLs), telephone numbers for voice contact, telephone numbers for facsimile contact, telephone numbers for pager contact, or the like.
Accordingly, extensible taxonomy 60 helps define a set of nodes, where the nodes are agents 61, terms 62, and contact addresses 63. Each node may be linked in extensible taxonomy 60 to more than one other node. Node linkages 64 may be described by additionally weighting factors which describe a node's relationship to the other linked node. Weighting factors may be fuzzy logic, such as "close" or "similar," or may be non-fuzzy quantities such as an integer or other number within a range, e.g. a number between I and 100 where lower numbers indicate a less robust relationship than higher numbers.
In the operation of the preferred embodiment, referring now to Fig. 1 and Fig. 6, a flowchart of the initial client login, clients 10, including end user -service requestors 10a and service providers 10b, wishing to use the present invention invoke a client application 100 native to their operating environment. In the preferred embodiment, client applications 100 are written for a Win32 environment in a language such as Microsoft Visual C++. Additionally, one or more dynamic link libraries (DLLs) may be presented to allow client application 100 to interface with other applications.
As shown in Fig. 6a, service requestor 10a initializes client application 100. Automatic login 110 may be provided as an option. If automatic login 110 has been configured or otherwise enabled 111, service requestor's 10a login information is retrieved from a local data store such as a hard drive. If configured or provided, service requestor 10a is queried 112 for login information. Once supplied, login information is communicated 113 to server 30. Referring now to Fig. 6b, a flowchart of server 30 actions for login, server 30 verifies login information, generally shown as "120," and sends a reply to client application 100. If login is
-1 1-
SUBSTTTUTE SHEET (RULE 26) unsuccessful, client application 100 notifies service requestor 10a and optionally and/or configurably re-prompts for logm information 112
Referring now to Fig. 6c through Fig. 6f, flowcharts of general messaging between client application 100 and server 30, client application 100 interfaces with server 30 and other clients, e g service providers 10b, through data communications network 20 such as the Internet as well as with other applications through one or more appropπate application program interfaces Client's 10 requests are formatted into an appropπate package using any of numerous packagmg means such as XML, before the packaged request is communicated to server 30 or other clients 10 Client application 100 may also be modular to allow utilization of numerous commumcations tools between clients, such as those offered by Microsoft® NetMeetmg® mcludmg but not limited to voice communications, video commumcations, whiteboard and other remote control functionality, chat sessions, and so on Support for multiple media, multiple simultaneous commumcations, or combinations thereof may also be supported
Service requestors 10a may optionally provide service provider 10b with information regardmg the operatmg environment of service requestor 10a including by way of example and not limitation hardware platform, software application information, and combmations thereof Client application 100 creates a formatted message 101a which is transmitted 10 Id to server 30 Server 30 reads 102a the formatted message, decrypts 102b the message, and processes the formatted message 102e If the message was formatted coπectly, server 30 contmues to process 102g the message When sending a response to client application 100, server 30 formats 103a the response, encrypts 103c the response, and sends 103d and 103e the response back to client application 100 Client application 100 receives 104a the response, decrypts 104b, extracts 104d the data, and contmues
-12-
SUBSTΓΓUTE SHEET (RULE 26) Referring back to Fig. 6, if login is successful, the remainder of client application 100 initializes and service requestor 10a availability is updated 131 m the system In the prefened embodiment, state information for service requestors 10a is stored locally on client's 10 computer, including by way of example and not limitation logm information, favoπtes, and history files
Referπng now to Fig. 7, Fig. 7b (a continuation Fig. 7) and Fig. 7c (a contmuation of Fig. 7b), service requestor 10a selects an option or otherwise indicates to client application 100, as will be understood by those skilled in the computer arts, to formulate a request 140 to server 30 At least a portion of the request is encapsulated 145 mto an appropπate format, m the prefened embodiment XML, and sent 147 to server 30 Client application 100 sends a call request 160 to server 30 which m turn calls 165 service provider 10b Service providers 10b may be have one or more statuses with respect to responding to service requestor's 10a requests, mcludmg by way of example and not limitation offline, online but otherwise unavailable (e g busy), online and available Additionally, service providers may provide the system with schedules of availability If service provider 10b accepts the call 170, commumcations between service requestor 10a and service provider 10b begin on a peer-to-peer basis Service requestor 10a and service provider 10b may then agree 173 on a call mode which is to be used for the session Call modes may include text, audio, video, whiteboard, file transfer, and/or remote control In Fig. 8, a routine for finding a service provider 10b, server 30 searches 150 taxonomy
60 in database 40 for one or more service providers 10b which taxonomy 60 indicates can provide the requested service Server 30 then sends 151 a response to client application 100 which indicates a failure 153 if no service provider 10b exists m database 60 for the request, or presents a list 154 of one or more service providers 10b if the search was successful
-13-
SUBSTΓΠJTE SHEET (RULE 26) If the search was successful, service requestor 10a may select 155 one of the listed service providers 10b Service providers 10b may provide their services for free or for fee In one embodiment, service providers 10b may set their rates dynamically, based on one or more factors, may set a flat fee, or any combination thereof Service requestors 10a who so request may be allowed to see service provider's 10b rate at any time including pπor to engagmg in any communication with the service provider
Referπng agam to Fig. 7c, a continuation of client request flowchart, at the conclusion of the peer-to-peer session, service requestor 10a or service provider 10b may end the peer-to-peer session 175 An automatic timeout or pause may be present at step 174 to activate whenever required, such as when there is no activity of some configurable, predetermined amount of tune In part, such a feature is used to more accurately reflect usage with respect to billing for those areas m taxonomy 60 where service requestor 10a gets directly billed or service provider 10b gets paid Additionally, peer-to-peer sessions between service requestors 10a and service providers 10b can be placed on 'hold" at step 175 rather than abandoned altogether Refernng now to Fig. 9a and Fig. 9b, flowcharts of the ranking process, when the peer-to-peer session ends, service requestor 10a may rank 180 service provider 10b after which time client application 100 terminates Service requestors 10a may therefore obtain a display of a rank dialog 200 and be allowed to provide quantitative and qualitative feedback 210 on service provider 10b Feedback may mclude knowledge, responsiveness, patience, ease of access, quality of service, and the like Additionally, client application 100, PD 32, or other processes may track other items such as actual tune online, data packet turn around, use of tools such as whiteboards, and the like One or more algoπthms 240 may then mampulate these quantitative and qualitative feedback measurements mto weightmg factors which are merged or combined with and/or otherwise replace the existmg weightmg factors 241 associated with the node m
-14-
SUBSTTTUTE SHEET (RULE 26) taxonomy 60 representing the service provider Service requestors 10a are allowed to provide quantitative and qualitative feedback on service provider 10b to server 30, mcludmg responsiveness to the service request, applicability of service provider 10b to a service requested, ease of access to and quality of responsiveness from service provider 10b, and the like Server 30 will update the history 182 of service provider 10b with ranking information and other information such as length of time spent peer-to-peer
Client application 100 may also provide an option allowing service requestors 10a to record information about one or more service providers 10b, including by way of example and not limitation biographical information, session information, histoπcal data, statistical data, and any combmation thereof Service requestors, 10a may add to a list of favoπtes and even contact service providers 10b on the favoπtes list directly Optionally, server 30 may update database 40 with information from the peer-to-peer session such as questιon(s) posed and answer(s) received Client application 100 may be responsible for maintaining state information for that client, e g logm information, favoπte service providers, and history, generatmg and routmg commumcations requests to the server, and generatmg and routmg commumcations requests to another client
In one embodiment, service requestors 10a and service providers 10b may nommate other end users or service providers to be service providers For example, service providers may be experts m one or more fields, and end users may nommate another end user as an expert. An end user may even nommate him or herself to be an expert
In an alternative embodiment, a moderator can join an end user - service provider session either passively or actively, and monitor the session In this embodiment, the moderator - which may be another end user or another service provider - may remove the first service provider from
-15-
SUBSTΪTUTE SHEET (RULE 26) the session, for example if the first service provider is being rude, unprofessional, or inadequate Accordingly, moderators may be visible or invisible to the participants
Figs. 10a, 10b, 10c, lOd and lOe illustrate the handling of the conferencing operation between a service requestor 10a and service provider 10b More particularly, Fig. 10a shows the procedure whereby the system starts a conference Service requestor 10a initiates a request, which is received 400 by the server 30 The server 30 determines if the node id to which the conference belongs is valid 405 If it is not valid, the server 30 builds a failure reply 410, and the reply is sent to the service requestor 10a If the node id is valid, the server 30 generates a umque conference id number 420, stores information about the conference 425, stores the creator of the conference 430, adds the conference id to the reference node in the knowledge space 435, builds a success reply 440, adds the conference id to the reply 445, and sends the reply 415
A procedure for joining a conference is shown in Fig. 10b Referring thereto, the server 30 receives a request 449 The server then determines if the conference id from the XML tree identifies a valid conference 450 If not, a failure reply is built 455 and sent to the service requestor 460 If the conference id is valid, the user id is added the list of participants of the conference 465, a success reply is built 470 and sent 460
Fig. 10c shows a procedure for leavmg a conference When server 30 receives a leave request 475, it determines from the XML tree if the conference id identifies a valid conference 480 If it does not, the server builds a failure reply 485 and sends the reply 490 If the conference id is valid, the user is removed from the list of participants 495, a success reply is built 496, and sent to the user 10
In Fig. lOd, responsive to a request 500, server 30 determines if the node id is a valid node id in the knowledge space 505 If it is not, a failure reply is built 510 and transmitted 515
-16-
SUBSTTTUTE SHEET (RULE 26) If the node id is valid, the list of conference id's associated with the node id is added 520. A success reply is generated 525 and sent to the user 515.
Fig. lOe depicts the routine for ending a conference. Responsive to a request 530, the server 30 determines if the conference id is valid and within a list of ongoing conferences. If it is not, a failure reply is generated 540 and transmitted 545. If the conference id is valid and ongoing, then for each node id that has the conference id associated with it, the conference id on such node is removed 550. Then, all user id's stored on the server for the conference id are removed 555, and the conference is removed from the list of ongoing conferences 560. A success reply is generated 565 and sent to the user 545. In another embodiment of the present invention, users can call for additional help if the cunent help has not satisfied the need of the user. Additionally, secure transactions are provided for by the system in a means familiar to persons of ordinary skill in the art.
It may be seen from the preceding description that an apparatus and method for selective routing of users to service providers is provided. While the invention has been described in the context of a prefened embodiment, it will be apparent to those skilled in the art that the present invention may be modified in numerous ways and may assume many embodiments other than that specifically set out and described above. Accordingly, it is intended by the appended claims to cover all modifications of the invention which fall within the true scope of the invention.
Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or element of any or all the claims. As used herein, the terms "comprises," "comprising," or any other variation
-17-
SUBSTTTUTE SHEET (RULE 26) thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.

Claims

1 A method of linking a user and a selected expert via a network of computers compπsing stoπng a core set of information for a plurality of experts in an online database, said core set of information including contact information and area of specialization of each of such plurality of experts, collecting assistance requirements from a user relating to said user's desired expert assistance, conelatmg said assistance requirements with at least some of said core set of information to identify a plurality of appropπate experts, detecting which of said appropπate experts is available to identify a subgroup of suitable experts, presentmg said user with said subgroup of experts to allow said user to select said selected expert, and establishing a real-time connection between said user and said selected expert
2 The method of linking a user and a selected expert of claim 1, wherem said assistance requirements include field of expertise selection information
3 The method of linking a user and a selected expert of claim 1 , wherem said detectmg step compnses sending an electromc message to each of said appropπate experts
4 The method of lmlαng a user and a selected expert of claim 1 , wherem said detectmg step compπses determining which of said appropπate experts is logged onto a host
5 The method of linking a user and a selected expert of claim 1, further compπsmg terminating said real-time connection upon reachmg a termination event
6 The method of linking a user and a selected expert of claim 5, further compπsmg measuring the total duration of said real-time connection
7 The method of linking a user and a selected expert of claim 6, further compπsing allocating a cost to said user based at least in part upon said total duration 8 The method of linking a user and a selected expert of claim 7, wherein said allocation step is further based at least in part upon a field of expertise of said selected expert
9 The method of linking a user and a selected expert of claim 8, wherein said allocation step is further based at least in part upon a degree of expertise of said selected expert
10 The method of linking a user and a selected expert of claim 7, wherein said allocation step is further based at least in part upon a degree of expertise of said selected expert
11 An onlme system for establishing a communications lmk between a user and a selected expert compπsing a server accessible over a network, said server having a processor and a server storage having an expert database, said expert database containmg a core set of information for a plurality of experts, said core set of information mcludmg contact information and area of specialization of each of such plurality of experts; a computer system in commumcation with said server via said network compπsmg a user, said user having assistance requirements, a display, and a data entry device for collecting said assistance requirements from said user, wherein said server conelates said assistance requirements with at least some of said core set of information to identify a plurality of appropnate experts, detects which of said appropπate experts is available to identify a subgroup of suitable experts, causes said display to present to said user a listing of said subgroup of experts to allow said user to select said selected expert, and establishes a real-time connection between said user and said selected expert
12 The system for establishing a communications link between a user and a selected expert of claim 1 1, wherein said assistance requirements include field of expertise selection information 13 The system for establishing a communications link between a user and a selected expert of claim 11 , wherem said server detects which of said appropπate experts is available to identify a subgroup of suitable experts by sending an electronic message to each of said appropπate experts
14 The system for establishing a communications link between a user and a selected expert of claim 11, wherem said detects which of said appropπate experts is available to identify a subgroup of suitable experts by determining which of said appropπate experts is logged onto a host
15 The system for establishing a communications link between a user and a selected expert of claim 11, further compnsmg terminating said real-time connection upon reaching a termination event
16 The system for establishing a communications link between a user and a selected expert of claim 15, further compπsmg measuπng the total duration of said real-time connection
17 The system for establishing a communications lmk between a user and a selected expert of claim 16, wherem said server allocates a cost to said user based at least in part upon said total duration
18 The system for establishing a commumcations lmk between a user and a selected expert of claim 17, wherem said server allocates said cost based at least in part upon a field of expertise of said selected expert
19 The system for establishing a communications lmk between a user and a selected expert of claim 18, wherem said server allocates said cost based at least in part upon a degree of expertise of said selected expert
20 The system for establishing a commumcations link between a user and a selected expert of claim 17, wherem said said server allocates said cost based at least in part upon a degree of expertise of said selected expert
PCT/US2000/030314 1999-11-05 2000-11-03 Apparatus and method for selective routing of users to experts over a network of computers WO2001035272A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU14594/01A AU1459401A (en) 1999-11-05 2000-11-03 Apparatus and method for selective routing of users to experts over a network ofcomputers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16390099P 1999-11-05 1999-11-05
US60/163,900 1999-11-05

Publications (2)

Publication Number Publication Date
WO2001035272A2 true WO2001035272A2 (en) 2001-05-17
WO2001035272A3 WO2001035272A3 (en) 2003-12-31

Family

ID=22592088

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/030314 WO2001035272A2 (en) 1999-11-05 2000-11-03 Apparatus and method for selective routing of users to experts over a network of computers

Country Status (2)

Country Link
AU (1) AU1459401A (en)
WO (1) WO2001035272A2 (en)

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1549025A1 (en) * 2003-12-23 2005-06-29 Symbol Technologies, Inc. System and method for supplying information from live experts to users in real time
FR2910206A1 (en) * 2006-12-15 2008-06-20 Jean Abboud Real or virtual assisting device controlling system, has data base storing information required for identification and authentication of assisted and consultant type agents, when base is connected to servers via terminals
US7523082B2 (en) 2006-05-08 2009-04-21 Aspect Software Inc Escalating online expert help
US7898394B2 (en) 2007-05-10 2011-03-01 Red Hat, Inc. Systems and methods for community tagging
US7936863B2 (en) 2004-09-30 2011-05-03 Avaya Inc. Method and apparatus for providing communication tasks in a workflow
US7966319B2 (en) 2007-06-07 2011-06-21 Red Hat, Inc. Systems and methods for a rating system
US8037009B2 (en) 2007-08-27 2011-10-11 Red Hat, Inc. Systems and methods for linking an issue with an entry in a knowledgebase
US8107401B2 (en) 2004-09-30 2012-01-31 Avaya Inc. Method and apparatus for providing a virtual assistant to a communication participant
US8180722B2 (en) * 2004-09-30 2012-05-15 Avaya Inc. Method and apparatus for data mining within communication session information using an entity relationship model
US8266127B2 (en) * 2007-05-31 2012-09-11 Red Hat, Inc. Systems and methods for directed forums
US8270320B2 (en) 2004-09-30 2012-09-18 Avaya Inc. Method and apparatus for launching a conference based on presence of invitees
US8356048B2 (en) 2007-05-31 2013-01-15 Red Hat, Inc. Systems and methods for improved forums
US8762313B2 (en) 2008-07-25 2014-06-24 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US8799200B2 (en) 2008-07-25 2014-08-05 Liveperson, Inc. Method and system for creating a predictive model for targeting webpage to a surfer
US8805941B2 (en) 2012-03-06 2014-08-12 Liveperson, Inc. Occasionally-connected computing interface
US8805844B2 (en) 2008-08-04 2014-08-12 Liveperson, Inc. Expert search
US8868448B2 (en) 2000-10-26 2014-10-21 Liveperson, Inc. Systems and methods to facilitate selling of products and services
US8918465B2 (en) 2010-12-14 2014-12-23 Liveperson, Inc. Authentication of service requests initiated from a social networking site
US8943002B2 (en) 2012-02-10 2015-01-27 Liveperson, Inc. Analytics driven engagement
US9350598B2 (en) 2010-12-14 2016-05-24 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US9432468B2 (en) 2005-09-14 2016-08-30 Liveperson, Inc. System and method for design and dynamic generation of a web page
US9525745B2 (en) 2005-09-14 2016-12-20 Liveperson, Inc. System and method for performing follow up based on user interactions
US9563336B2 (en) 2012-04-26 2017-02-07 Liveperson, Inc. Dynamic user interface customization
US9672196B2 (en) 2012-05-15 2017-06-06 Liveperson, Inc. Methods and systems for presenting specialized content using campaign metrics
US9767212B2 (en) 2010-04-07 2017-09-19 Liveperson, Inc. System and method for dynamically enabling customized web content and applications
US9819561B2 (en) 2000-10-26 2017-11-14 Liveperson, Inc. System and methods for facilitating object assignments
US9892417B2 (en) 2008-10-29 2018-02-13 Liveperson, Inc. System and method for applying tracing tools for network locations
US10278065B2 (en) 2016-08-14 2019-04-30 Liveperson, Inc. Systems and methods for real-time remote control of mobile applications
US10869253B2 (en) 2015-06-02 2020-12-15 Liveperson, Inc. Dynamic communication routing based on consistency weighting and routing rules
US10992772B2 (en) 2015-05-01 2021-04-27 Microsoft Technology Licensing, Llc Automatically relating content to people
US11386442B2 (en) 2014-03-31 2022-07-12 Liveperson, Inc. Online behavioral predictor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5563805A (en) * 1994-08-16 1996-10-08 International Business Machines Corporation Multimedia context-sensitive real-time-help mechanism for use in a data processing system
EP0740450A2 (en) * 1995-04-24 1996-10-30 International Business Machines Corporation Method and apparatus for skill-based routing in a call center
WO1998013765A1 (en) * 1996-09-24 1998-04-02 Intervoice Limited Partnership System and method for establishing a real-time agent pool between computer systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5563805A (en) * 1994-08-16 1996-10-08 International Business Machines Corporation Multimedia context-sensitive real-time-help mechanism for use in a data processing system
EP0740450A2 (en) * 1995-04-24 1996-10-30 International Business Machines Corporation Method and apparatus for skill-based routing in a call center
WO1998013765A1 (en) * 1996-09-24 1998-04-02 Intervoice Limited Partnership System and method for establishing a real-time agent pool between computer systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HASSLER K W ET AL: "REVOLUTIONIZING DEFINITY CALL CENTERS IN THE 1990S" AT & T TECHNICAL JOURNAL, AMERICAN TELEPHONE AND TELEGRAPH CO. NEW YORK, US, vol. 74, no. 4, 1 July 1995 (1995-07-01), pages 64-73, XP000517580 ISSN: 8756-2324 *
WOLISZ A ET AL: "Service provider selection in an open services environment" DISTRIBUTED COMPUTING SYSTEMS, 1990. PROCEEDINGS., SECOND IEEE WORKSHOP ON FUTURE TRENDS OF CAIRO, EGYPT 30 SEPT.-2 OCT. 1990, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 30 September 1990 (1990-09-30), pages 229-235, XP010021432 ISBN: 0-8186-2088-9 *

Cited By (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10797976B2 (en) 2000-10-26 2020-10-06 Liveperson, Inc. System and methods for facilitating object assignments
US9576292B2 (en) 2000-10-26 2017-02-21 Liveperson, Inc. Systems and methods to facilitate selling of products and services
US8868448B2 (en) 2000-10-26 2014-10-21 Liveperson, Inc. Systems and methods to facilitate selling of products and services
US9819561B2 (en) 2000-10-26 2017-11-14 Liveperson, Inc. System and methods for facilitating object assignments
EP1549025A1 (en) * 2003-12-23 2005-06-29 Symbol Technologies, Inc. System and method for supplying information from live experts to users in real time
US8270320B2 (en) 2004-09-30 2012-09-18 Avaya Inc. Method and apparatus for launching a conference based on presence of invitees
US7936863B2 (en) 2004-09-30 2011-05-03 Avaya Inc. Method and apparatus for providing communication tasks in a workflow
US8107401B2 (en) 2004-09-30 2012-01-31 Avaya Inc. Method and apparatus for providing a virtual assistant to a communication participant
US8180722B2 (en) * 2004-09-30 2012-05-15 Avaya Inc. Method and apparatus for data mining within communication session information using an entity relationship model
US11743214B2 (en) 2005-09-14 2023-08-29 Liveperson, Inc. System and method for performing follow up based on user interactions
US9590930B2 (en) 2005-09-14 2017-03-07 Liveperson, Inc. System and method for performing follow up based on user interactions
US9525745B2 (en) 2005-09-14 2016-12-20 Liveperson, Inc. System and method for performing follow up based on user interactions
US10191622B2 (en) 2005-09-14 2019-01-29 Liveperson, Inc. System and method for design and dynamic generation of a web page
US9948582B2 (en) 2005-09-14 2018-04-17 Liveperson, Inc. System and method for performing follow up based on user interactions
US11526253B2 (en) 2005-09-14 2022-12-13 Liveperson, Inc. System and method for design and dynamic generation of a web page
US11394670B2 (en) 2005-09-14 2022-07-19 Liveperson, Inc. System and method for performing follow up based on user interactions
US9432468B2 (en) 2005-09-14 2016-08-30 Liveperson, Inc. System and method for design and dynamic generation of a web page
US7523082B2 (en) 2006-05-08 2009-04-21 Aspect Software Inc Escalating online expert help
FR2910206A1 (en) * 2006-12-15 2008-06-20 Jean Abboud Real or virtual assisting device controlling system, has data base storing information required for identification and authentication of assisted and consultant type agents, when base is connected to servers via terminals
US7898394B2 (en) 2007-05-10 2011-03-01 Red Hat, Inc. Systems and methods for community tagging
US8266127B2 (en) * 2007-05-31 2012-09-11 Red Hat, Inc. Systems and methods for directed forums
US8356048B2 (en) 2007-05-31 2013-01-15 Red Hat, Inc. Systems and methods for improved forums
US7966319B2 (en) 2007-06-07 2011-06-21 Red Hat, Inc. Systems and methods for a rating system
US8037009B2 (en) 2007-08-27 2011-10-11 Red Hat, Inc. Systems and methods for linking an issue with an entry in a knowledgebase
US9336487B2 (en) 2008-07-25 2016-05-10 Live Person, Inc. Method and system for creating a predictive model for targeting webpage to a surfer
US8954539B2 (en) 2008-07-25 2015-02-10 Liveperson, Inc. Method and system for providing targeted content to a surfer
US9396436B2 (en) 2008-07-25 2016-07-19 Liveperson, Inc. Method and system for providing targeted content to a surfer
US8762313B2 (en) 2008-07-25 2014-06-24 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US11263548B2 (en) 2008-07-25 2022-03-01 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US8799200B2 (en) 2008-07-25 2014-08-05 Liveperson, Inc. Method and system for creating a predictive model for targeting webpage to a surfer
US11763200B2 (en) 2008-07-25 2023-09-19 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US9396295B2 (en) 2008-07-25 2016-07-19 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US9104970B2 (en) 2008-07-25 2015-08-11 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US8805844B2 (en) 2008-08-04 2014-08-12 Liveperson, Inc. Expert search
US9582579B2 (en) 2008-08-04 2017-02-28 Liveperson, Inc. System and method for facilitating communication
US9569537B2 (en) 2008-08-04 2017-02-14 Liveperson, Inc. System and method for facilitating interactions
US9563707B2 (en) 2008-08-04 2017-02-07 Liveperson, Inc. System and methods for searching and communication
US11386106B2 (en) 2008-08-04 2022-07-12 Liveperson, Inc. System and methods for searching and communication
US9558276B2 (en) 2008-08-04 2017-01-31 Liveperson, Inc. Systems and methods for facilitating participation
US10891299B2 (en) 2008-08-04 2021-01-12 Liveperson, Inc. System and methods for searching and communication
US10657147B2 (en) 2008-08-04 2020-05-19 Liveperson, Inc. System and methods for searching and communication
US9892417B2 (en) 2008-10-29 2018-02-13 Liveperson, Inc. System and method for applying tracing tools for network locations
US11562380B2 (en) 2008-10-29 2023-01-24 Liveperson, Inc. System and method for applying tracing tools for network locations
US10867307B2 (en) 2008-10-29 2020-12-15 Liveperson, Inc. System and method for applying tracing tools for network locations
US9767212B2 (en) 2010-04-07 2017-09-19 Liveperson, Inc. System and method for dynamically enabling customized web content and applications
US11615161B2 (en) 2010-04-07 2023-03-28 Liveperson, Inc. System and method for dynamically enabling customized web content and applications
US8918465B2 (en) 2010-12-14 2014-12-23 Liveperson, Inc. Authentication of service requests initiated from a social networking site
US9350598B2 (en) 2010-12-14 2016-05-24 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US10038683B2 (en) 2010-12-14 2018-07-31 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US10104020B2 (en) 2010-12-14 2018-10-16 Liveperson, Inc. Authentication of service requests initiated from a social networking site
US11050687B2 (en) 2010-12-14 2021-06-29 Liveperson, Inc. Authentication of service requests initiated from a social networking site
US11777877B2 (en) 2010-12-14 2023-10-03 Liveperson, Inc. Authentication of service requests initiated from a social networking site
US8943002B2 (en) 2012-02-10 2015-01-27 Liveperson, Inc. Analytics driven engagement
US8805941B2 (en) 2012-03-06 2014-08-12 Liveperson, Inc. Occasionally-connected computing interface
US11134038B2 (en) 2012-03-06 2021-09-28 Liveperson, Inc. Occasionally-connected computing interface
US10326719B2 (en) 2012-03-06 2019-06-18 Liveperson, Inc. Occasionally-connected computing interface
US11711329B2 (en) 2012-03-06 2023-07-25 Liveperson, Inc. Occasionally-connected computing interface
US9331969B2 (en) 2012-03-06 2016-05-03 Liveperson, Inc. Occasionally-connected computing interface
US11689519B2 (en) 2012-04-18 2023-06-27 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US11323428B2 (en) 2012-04-18 2022-05-03 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US10666633B2 (en) 2012-04-18 2020-05-26 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US11269498B2 (en) 2012-04-26 2022-03-08 Liveperson, Inc. Dynamic user interface customization
US9563336B2 (en) 2012-04-26 2017-02-07 Liveperson, Inc. Dynamic user interface customization
US10795548B2 (en) 2012-04-26 2020-10-06 Liveperson, Inc. Dynamic user interface customization
US11868591B2 (en) 2012-04-26 2024-01-09 Liveperson, Inc. Dynamic user interface customization
US9672196B2 (en) 2012-05-15 2017-06-06 Liveperson, Inc. Methods and systems for presenting specialized content using campaign metrics
US11004119B2 (en) 2012-05-15 2021-05-11 Liveperson, Inc. Methods and systems for presenting specialized content using campaign metrics
US11687981B2 (en) 2012-05-15 2023-06-27 Liveperson, Inc. Methods and systems for presenting specialized content using campaign metrics
US11386442B2 (en) 2014-03-31 2022-07-12 Liveperson, Inc. Online behavioral predictor
US10992772B2 (en) 2015-05-01 2021-04-27 Microsoft Technology Licensing, Llc Automatically relating content to people
US11638195B2 (en) 2015-06-02 2023-04-25 Liveperson, Inc. Dynamic communication routing based on consistency weighting and routing rules
US10869253B2 (en) 2015-06-02 2020-12-15 Liveperson, Inc. Dynamic communication routing based on consistency weighting and routing rules
US10278065B2 (en) 2016-08-14 2019-04-30 Liveperson, Inc. Systems and methods for real-time remote control of mobile applications

Also Published As

Publication number Publication date
AU1459401A (en) 2001-06-06
WO2001035272A3 (en) 2003-12-31

Similar Documents

Publication Publication Date Title
WO2001035272A2 (en) Apparatus and method for selective routing of users to experts over a network of computers
US6256620B1 (en) Method and apparatus for monitoring information access
US8924464B2 (en) Method and system for improving establishing of a multimedia session
US6430597B1 (en) Method and apparatus for generating agent scripts
US8180722B2 (en) Method and apparatus for data mining within communication session information using an entity relationship model
US6289333B1 (en) Methods and apparatus enabling dynamic resource collaboration when collaboration session host is distinct from resource host
US6298356B1 (en) Methods and apparatus for enabling dynamic resource collaboration
US7936863B2 (en) Method and apparatus for providing communication tasks in a workflow
US8166173B2 (en) Inviting assistant entity into a network communication session
US7000019B2 (en) Establishment of a deferred network communication session
US6988126B2 (en) Contact center system and method for specifying different service specific behavior and offering range of corresponding customer services
US7979489B2 (en) Notifying users when messaging sessions are recorded
US6442592B1 (en) Message center system
US8270320B2 (en) Method and apparatus for launching a conference based on presence of invitees
US6691159B1 (en) Web-based method and system for providing assistance to computer users
CN1794728B (en) Presence system and method for providing a multi-functional communications log
US6657990B1 (en) Method and apparatus for providing network-based interaction
GB2368246A (en) Communication session overview with user interface for an information page server
GB2368223A (en) Associating parties with communication sessions
GB2368226A (en) Helper entity for communication session
CN1398370A (en) Information service for providing help contents
US20100275124A1 (en) Managing Services on a Network
EP1199872A2 (en) Establishing network communication between parties in telephone contact
CA2359672C (en) Method-resident storage associated with collaborating computer processes
US20050125362A1 (en) Electronic commerce GUI for displaying trading partners

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AU CA CN JP MX RU US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase