US20220141161A1 - Bot proxy for group communication service - Google Patents

Bot proxy for group communication service Download PDF

Info

Publication number
US20220141161A1
US20220141161A1 US17/578,997 US202217578997A US2022141161A1 US 20220141161 A1 US20220141161 A1 US 20220141161A1 US 202217578997 A US202217578997 A US 202217578997A US 2022141161 A1 US2022141161 A1 US 2022141161A1
Authority
US
United States
Prior art keywords
bot
proxy node
group
command
message
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US17/578,997
Inventor
Greg Albrecht
Jesse Robbins
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orion Labs Inc
Original Assignee
Orion Labs 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 Orion Labs Inc filed Critical Orion Labs Inc
Priority to US17/578,997 priority Critical patent/US20220141161A1/en
Assigned to ORION LABS, INC. reassignment ORION LABS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ROBBINS, Jesse, ALBRECHT, GREG
Publication of US20220141161A1 publication Critical patent/US20220141161A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • H04L67/28
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Definitions

  • Group communication services can facilitate secure communications between multiple user nodes in a distributed communication environment.
  • Members of a communication group can send messages that are broadcast to multiple other members of the group through personal communication devices in approximately real-time, over communication networks such as the internet.
  • These communication groups allow teams or friends to stay connected even when far apart and on the move.
  • a bot within a selected group of a group communication service may receive a message from a user of the selected group.
  • the bot may transmit, to a bot proxy node within a secured local network, information related to the message that is relevant to executing a selected command.
  • the bot proxy node may transmit an application programming interface (API) instruction to perform the selected command to a target server within the secured local network.
  • API application programming interface
  • the bot may send a response message, via the group communication service, to at least one user from the selected group based on a result of the selected command.
  • FIG. 1 is a diagram of a system including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure
  • FIG. 2 is a diagram of a system including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure
  • FIG. 3 is a method flow diagram of a system including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure
  • FIG. 4 is a flow diagram for a method of using a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure
  • FIG. 5 is a flow diagram for a method of using a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure.
  • FIG. 6 is a diagram of a system including a bot proxy for a group communication service in accordance with certain embodiments of the present disclosure.
  • the methods and functions described herein may be implemented as one or more software programs running on one or more computer processors or controllers.
  • Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays, and other hardware devices can likewise be constructed to implement the methods and functions described herein.
  • Methods and functions may be performed by modules, which may include one or more physical components of a computing device (e.g., logic, circuits, processors, etc.) configured to perform a particular task or job, or may include instructions that, when executed, can cause a processor to perform a particular task or job, or any combination thereof.
  • the methods described herein may be implemented as a computer readable storage medium or memory device including instructions that, when executed, cause a processor to perform the methods.
  • FIG. 1 depicts a diagram of a system 100 including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure.
  • the system 100 may include a group communications service (GCS) 102 (which may also be referred to as a group messaging service), a network 104 , a bot service local area network (LAN) 106 , and a plurality of user nodes 108 A- 108 E.
  • GCS group communications service
  • LAN bot service local area network
  • the network 104 may be a wide area network (WAN), such as the internet, connecting computing devices over a large geographical area.
  • WAN wide area network
  • the GCS 102 may include one or more computers, servers, or other systems to facilitate communication between user nodes 108 A- 108 E.
  • the GCS 102 may permit communications between user nodes 108 in the form of audio messages transmitted via an over-the-top (OTT) communication service, which may use one or more networks 104 , such as the internet, thereby bypassing telecommunications platforms.
  • OTT over-the-top
  • the GCS 102 may allow user nodes 108 A- 108 E to join or be added to one or more communication groups, such as group 1 110 and group 2 112 .
  • Communication groups may include selected groupings of a subset of users less than all users of the GCS 102 .
  • User nodes within a group may be able to communicate with other user nodes within the same group, via network 104 and GCS 102 .
  • Access to a group may be restricted based on receiving an invitation from a creator or an administrator for the group, based on entering a secure password for a group, or other access-restriction methods.
  • group 1 110 may include only employees of a particular company, allowing teams of employees to stay in communication with each other while working.
  • a group may be established for fans of a particular television series so that the fans can discuss the series as a group.
  • the GCS 102 may transmit communications from a user node 108 within a group to all other user nodes 108 within the same group, in a general broadcast.
  • the GCS 102 may also permit a user node 108 to transmit a private message to a selected one or more users of a group to which the transmitting user node 108 is a member.
  • User communications may be in the form of audio messages, which may be transmitted from the user node 108 over the network 104 to the GCS 102 , and then broadcast from the GCS 102 , over the network 104 , to all other user nodes 108 in the same group as the broadcasting user node.
  • a user of user node A 108 A may speak a message, which may be captured and transmitted as an audio transmission over network 104 to GCS 102 , which may in turn broadcast the message to user node B 108 B and user node C 108 C in approximately real-time.
  • the GCS 102 may maintain a user group database 114 .
  • the user group database 114 may store information regarding all established user groups, and may include identifying information for which user nodes 108 are included in each group.
  • the user group database 114 may include a listing for group 1 110 that includes user or device identifiers for user node A 108 A, user node B 108 B, and user node C 108 C, and a listing for group 2 112 that includes identifiers for user node C 108 C, user node D 108 D, and user node E 108 E.
  • a user node may be a member of multiple groups, as with user node C 108 C being a member of both group 1 110 and group 2 112 .
  • messages from that user node may be broadcast to only users of a selected group identified by the transmitting user node 108 C (e.g. only broadcast to Group 1 110 ), or the message may be broadcast to all groups to which the user node is a member.
  • Each user node 108 may include a transmission device 112 capable of connecting to the network 104 , such as a mobile phone, computer, smart watch, or similar device.
  • a user node 108 may also include one or more personal devices 116 that can link to the transmission device 112 , such as via wired or wireless connections, including Wi-Fi Bluetooth®, and Bluetooth low energy (BLE).
  • the personal device 116 may be configured to receive and send messages to and from the user of the user node 108 by way of the transmission device 112 .
  • the personal device 116 may include a wearable speaker and microphone, such as a wearable pendant or headset, which can receive messages from a user (e.g. recording audio messages to transmit when a ‘transmit’ button on the personal device 116 is held down) and broadcast messages received from other users of a participant group.
  • the GCS 102 may also allow for one or more bots 118 to be added to a communication group.
  • a bot 118 may be a software application configured to execute commands in response to messages from users of a group to which the bot has been added.
  • a bot 118 may be added to group 1 110 , being included in the group database 114 as either a user or special bot participant of group 1 110 .
  • a user node 108 within a group to which a bot 118 has been added may transmit a message including a trigger phrase that activates functionality of the bot 118 .
  • user node A 108 A may send a message, “Weatherbot, what is the forecast for Tuesday?”.
  • a participant bot 118 within group 1 110 may respond to the trigger phrase “Weatherbot” and may identify a request within the message to retrieve a weather forecast for Tuesday. In response, the bot 118 may send Tuesday's forecast to members of group 1 110 .
  • Bots 118 may be in the form of computer executable code stored to a memory and which, when executed, causes one or more computer processors to perform the bot's operations. Bots 118 may be stored and executed externally to the GCS 102 , for example being run at a bot service LAN 106 or another computer such as a transmission device 112 . Externally hosted bots 118 may be added to group(s) through the user group database 114 as a normal user node, with group messages sent to and received from the computer running the bot 118 via the network 104 .
  • bots 118 may be stored to and executed by a computer system of the GCS 102 .
  • the GCS 102 may maintain a bot library 116 of bots hosted or executed by the GCS 102 , such as bots A, B, and C 118 .
  • An administrator for a group or the GCS 102 may add a bot as a participant of a group through the user group database 114 .
  • the GCS may look up the group 1 participants in the database 114 and determine whether a bot 118 is a member of group 1 110 . If so, the GCS 102 may perform operations on the message according to the program code for the participant bot(s) 118 .
  • a program may be stored at and executed by the GCS 102 that scans user messages for trigger phrases for a bot 118 . If a trigger phrase is detected, the GCS 102 may send the message to a computing device external to the GCS 102 that executes the code for the respective bot 118 .
  • Other embodiments are also possible for managing bot integration into a group through the GCS 102 .
  • the bot service LAN 106 may include one or more computers or servers 120 , which can store information that can be accessed by a bot 118 , or which can perform calculations or operations on behalf of a bot 118 .
  • the bot service LAN 106 may include a weather service, with a server 120 storing weather information for various geographical regions.
  • the bot service LAN 106 may include a hotel, with a server 120 having software and data of a work flow system for the hotel staff, including rooms to be cleaned or items to be delivered to hotel patrons.
  • An administrator for the hotel bot service LAN 106 may request that a hotel workflow bot 118 be added to the bot library 116 , so that the hotel workflow bot 118 can be added to a communication group limited to staff for the hotel.
  • Hotel staff may send communications through the GCS 102 to the hotel workflow bot 118 to access or update data at the hotel server 120 to determine jobs to be performed or to report when a task has been completed.
  • Computers 120 located within a bot service LAN 106 may include sensitive information that should be protected from unauthorized accesses over the network 104 .
  • the bot service LAN 106 may include a firewall 108 to protect computers 120 within the bot service LAN 106 .
  • the firewall 108 may be a network security system in the form of computers or software that filters traffic to or from bot service LAN 106 over the network 104 .
  • the bot service LAN 106 may include a bot proxy interface (I/F) node 122 .
  • the bot proxy I/F node 122 (sometimes referred to herein as simply a bot proxy or bot proxy node) may include software running on a computer or server 120 of the bot service LAN 106 , or may include a dedicated computing device configured to perform the operations of the bot proxy described herein.
  • the bot proxy 122 may be configured to receive all access requests or commands from a bot 118 to the bot service LAN 106 , process the requests, and transmit messages from the bot service LAN 106 to the bot 118 . Messages to and from the bot proxy 122 may pass through the firewall 108 , or may optionally bypass ( 124 ) the firewall 108 .
  • the bot proxy node may be configured to shield computers 120 of the bot service LAN 106 from direct internet access, and may prevent unauthorized communications (e.g. communications not received from an authorized bot 118 ) from reaching secured servers 120 within the bot service LAN 106 .
  • the bot 118 associated with the bot proxy 122 may be configured to encrypt or digitally sign messages to the bot proxy 122 with a private key or another encryption method, so that only messages using the appropriate encryption can be decoded by the bot proxy 122 and allowed access to other computers 120 within the bot service LAN 106 .
  • the bot proxy 122 may be configured to format requests or commands from the bot 118 into a particular format, such as by generating an application program interface (API) instruction recognized or accepted by a target server 120 in order to instruct the server 120 to execute the command.
  • the bot proxy 122 may perform other operations on messages received from the bot 118 , such as load balancing (e.g. distributing requests among multiple servers 120 to prevent overloading or delays at any particular server), routing commands to a target server 120 from multiple servers based on which bot-requested operations each server is configured to execute, compressing or decompressing data messages, caching recently or frequently accessed data from the servers 120 , or performing other processing operations.
  • load balancing e.g. distributing requests among multiple servers 120 to prevent overloading or delays at any particular server
  • compressing or decompressing data messages caching recently or frequently accessed data from the servers 120 , or performing other processing operations.
  • FIG. 2 depicts a diagram of a system 200 including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure.
  • System 200 may correspond to system 100 of FIG. 1 , and reference may be made to elements from system 100 via corresponding identifier numbers.
  • the system 200 may include a group 202 of at least one user nodes, a group communication service (GCS) 102 executing a bot C 218 , and a bot service LAN 106 including a bot proxy I/F node 122 .
  • GCS group communication service
  • FIG. 2 depicts an example implementation by which bot functionality may be invoked via the group communication server 102 and used to access the bot service LAN 106 via the bot proxy 122 .
  • a user message 204 may be sent (e.g. over network 104 ) from a user node of group 202 to the GCS 102 .
  • the user message 204 may be generated by a user device (e.g. transmission device 112 or personal device 116 ) of a user node 108 .
  • a personal device 116 may capture audio data from a spoken message from a user.
  • the audio data may be encoded, compressed, or otherwise processed at a device of the user node 108 , and may be included with other identifying information in the user message 204 to transmit to the GCS 102 .
  • Identifying information that may be included with the user message 204 may include a group identifier (ID) for the group to which the message is being transmitted, a user ID associated with the user node sending the message, a message ID for the user message 204 , other identifying information, or any combination thereof.
  • ID group identifier
  • the user message 204 may be split into one or more data packets sent over the network 104 to the GCS 102 .
  • the user message 204 may be received at the GCS 102 and undergo message processing, for example at message processing module 206 .
  • Message processing 206 may include extracting information from user message 204 , such as identifying information and audio data.
  • Message processing 206 may also include performing data compression or decompression, error correction for corrupted data packets or other problems, audio data adjustments to balance sound levels or message clarity, speech-to-text conversion, other processing operations, or any combination thereof.
  • the GCS 102 may extract the group ID from the user message 204 , and access the communication groups database 114 to determine other user nodes within the group 202 to which to send the user message 204 .
  • the groups database 114 includes a first listing 212 A of member user nodes and bots of group 1, and a second listing 212 B for member user nodes and bots of a group 2, as well as listings for other communication groups.
  • Each listing 212 may include identifying information for users and bots within the group. For example, each user node or bot may have a unique identifier, an internet protocol (IP) address to which messages should be sent, or other identifying information.
  • IP internet protocol
  • the listing 212 may also identify whether a member bot is hosted at and should be processed by the GCS 102 , or that the bot is hosted externally to the GCS 102 .
  • Particular users or bots may be included in multiple groups. For example, user C and bot C may be included in the listings for group 1 212 A and group 2 212 B. If a bot is included in more than one group, such as bot C 218 , a different unique instance of the bot C 218 may be included in each group, or a single bot instance may handle messages from all groups to which the bot C 218 is a member.
  • a bot instance may be a distinct processing thread that operates independently of other processing threads for the same bot.
  • bot C 218 may include a first instance 208 A for processing messages from group 1, and a second instance 208 B for processing messages from group 2.
  • the GCS 102 may forward or transmit the user message 204 to other user nodes 108 within the group 202 , such as to all member user nodes of the group 202 or to specific target user nodes identified in the user message 204 . If the GCS 102 determines that the group 202 includes one or more bots hosted by the GCS 102 , the GCS 102 may invoke the bot(s) based on receiving the user message 204 . For example, group 202 may include bot C 218 , and so the GCS 102 may send user message 204 to bot C 218 .
  • the audio data may be scanned by the message processing node 206 or the bot C 218 software for one or more trigger phrases. Trigger phrases may include a name for bot C 218 , or a specific command that bot C 218 recognizes (e.g. “what is the weather?”).
  • the audio data may be scanned for a trigger phrase directly (e.g. by searching the audio data for a recognized audial data sequence), or by first converting the audio data to another format. For example, the audio data may undergo speech-to-text conversion during message processing 206 or by the bot C 218 to generate a text version of the audio data, and then the text may be scanned for a trigger phrase.
  • the processor or computer executing bot C 218 may run or maintain multiple instances of bot C 218 for handling messages from different groups, such as instance 1 208 A and instance 2 208 B.
  • a user message 204 may be provided to the instance corresponding to the group from which the user message 204 was received.
  • Bot C 218 may execute program code or method 500 A based on receiving a message, where 500 A may correspond to the method flow diagram 500 A of FIG. 5 .
  • Bot C 218 may process the user message 204 , which may include converting the audio data into a text message or other parsable format, and then scanning the audio or text data to determine a particular function or command for bot C 218 to execute. If bot C 218 determines that the message does not invoke functionality of bot C 218 , or includes a command that bot C 218 does not recognize, it may disregard the message or sent a response message 210 that indicates that no command was recognized.
  • a response message 210 may be generated by bot C 218 with result information for a user command in audio format, or in a text format that may be converted to an audio format by message processing node 206 of the GCS 102 .
  • the response message 210 may also include information or metadata identifying a target group or user node to which the message should be sent via the GCS 102 .
  • bot C 218 may generate a bot message 214 to send to the bot proxy node 122 .
  • Bot message 214 may include various identifying information or metadata, such as a bot ID for bot C 218 (which may include a unique identifier for a particular bot instance 208 ), a message ID for the bot message 214 , a type of command to be executed at the bot service LAN 106 , and one or more variables to define the parameters of the command type.
  • a command type may include a request to send items to a particular room, where the variables may include one or more items to deliver, the room number, and a priority level.
  • the type of command and relevant variables may be extracted by bot C 218 from the audio data of the user message 204 .
  • bot C 218 may format the command type and variables into an API format that can be processed by a target server of the bot service LAN 106 .
  • Bot C 218 may maintain addressing information, encryption information, or other information that can be used to generate the bot message 214 and send it across network 104 , so that it will be received and accepted at the bot proxy node 122 .
  • Bot proxy node 122 may receive the bot message 214 and perform command processing instructions 220 , which may include executing program code or method 500 B, where 500 B may correspond to the method flow diagram 500 B of FIG. 5 .
  • the bot proxy 122 may verify the source or authenticity of the bot message 214 , including performing decryption or digital signature verification.
  • the bot proxy 122 may also determine a target server from a plurality of servers of the bot service LAN 106 based on the command or other metadata included in the bot message 214 .
  • bot service LAN 106 may include a bot service server 1 216 A, bot service server 2 216 B, and bot service server 3 216 C.
  • Each bot service server may be configured to service or perform different types of commands, may be configured to distribute a processing load of incoming commands, or otherwise may be configured to work together or independently to service incoming commands from one or more bots.
  • bot service server 1 216 A may handle reservation requests for a hotel
  • bot service server 2 216 B may handle maintenance and cleaning requests from hotel staff
  • bot service server 3 216 C may handle service requests from hotel patrons.
  • the different command types may originate from different bots, different instances of a same bot in different origin groups, or all from a single bot in a single group.
  • the bot proxy 122 may identify a target server 216 based on a command type, bot ID, server load distribution, other factors, or any combination thereof.
  • the bot proxy 122 may store or access LAN addressing information 222 to determine where to send each message to reach the determined target server 216 .
  • Command processing instructions 220 may also direct the bot proxy 122 to generate an API instruction or command based on the received bot message 214 and the target server 216 .
  • different servers 216 may accept commands in different API formats, and the bot proxy 122 includes instructions 220 on which API format to use based on the target server.
  • the bot message 214 may include a pre-formatted API instruction for the bot proxy to forward to the target server 216 .
  • the bot proxy 122 may wait to receive a response from the target server 216 , including a result or acknowledgement for the command.
  • the bot proxy 122 may generate a response message 224 , which may include a target bot ID, message ID, and a response data payload indicating the results from the target server 216 .
  • the bot C 218 may receive the response 224 , and may generate a response message 210 to send to one or more user nodes 108 of group 202 in response to the user message 204 .
  • the result information in the response message 210 may be converted from a text format to an audio format by bot C 218 , by message processing node 206 , or may be sent to group 202 in a text format.
  • Response message 210 may be encoded for transmission by message procession module 206 of GCS 102 .
  • the response message 210 may be received at transmission devices 112 of user nodes 108 in group 202 , and may be presented as an audio or text message at transmission device 112 or personal device 116 .
  • An example method flow diagram for system 200 is discussed in regard to FIG. 3 .
  • FIG. 3 is a method flow diagram of a system including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure.
  • the method flow diagram illustrates information sent between and operations performed at elements of system 200 , such as group 202 , GCS 102 , bot 218 , bot interface proxy 122 , and bot service server(s) 216 .
  • the method flow may proceed from the top to the bottom of FIG. 3 , although some elements may be performed in a different order from that depicted, omitted, or additional elements may be performed that are not illustrated.
  • a user node included in group 202 may send a message to GCS 102 .
  • GCS 102 may process the message, such as performing decryption, error correction, decompression, data extraction, speech-to-text conversion, trigger phrase searches, other operations, or any combination thereof.
  • the GCS 102 may identify members of group 202 , including bot 218 , for example by accessing a user groups database.
  • the GCS 102 may then transmit the user message, or data from the user message, to bot 218 .
  • the message may be transmitted over a network if bot 218 is not hosted or executed at the GCS 102 , or the message may be passed to an instance of the bot executing on a GCS 102 server, computer, or processor.
  • the GCS 102 may determine whether the user message includes a trigger phrase that invokes bot 218 before sending the message to the bot 218 .
  • the bot 218 may receive and perform processing on the message. Processing may include converting the message from speech to text format, or parsing the message to determine whether the message includes one or more trigger phrases to invoke an operation of the bot 218 . If the message does invoke functionality of the bot 218 , the bot 218 may extract information relevant to the bot operation from the message, such as a command type and variable information that may be used to execute the bot functionality. Processing the message may also include generating and sending a message to the bot proxy 122 , which message may include a command type, variables, a target server, an API instruction or command, other information, or any combination thereof. The bot 218 may encrypt or digitally sign the message to authenticate the message to the bot proxy 122 .
  • the bot proxy 122 may receive the message from bot 218 , and may perform processing on the message, such as decrypting the message, extracting a command type and variables data from the message, determining a target bot service server 216 for the command, generating an API command for execution at the sever 216 , performing other processing, or any combination thereof.
  • the bot proxy 122 may determine an address of the target server within the secured LAN that includes the bot proxy 122 and bot servers 216 , and transmit an API command to the target protected server 216 .
  • the bot service server 216 may execute the command and return a result to the bot proxy 122 .
  • the bot proxy 122 may generate a message to return the result to the bot 218 , encrypt or otherwise encode the message, and transmit the message to the bot 218 (e.g. based on addressing or bot ID information included in the message received from the bot 218 ).
  • Bot 218 may receive the result from the bot proxy 122 , and process the result. Processing may include extracting result information, generating a result message to send to one or more users of group 202 , performing text-to-speech conversion, other processing, or any combination thereof. The bot 218 may send the result message to the GCS 102 for broadcasting to one or more member user nodes of group 202 .
  • the GCS 102 may process the result message, such as by converting a text result message to an audio format using a text-to-speech converting service or system, and putting the result message in a format suitable for transmission over the network 104 .
  • the GCS 102 may identify one or more target members of group 202 , for example by looking up addresses of user nodes in group 202 based on a group ID included with the result message from the bot 218 .
  • the result message may be transmitted to only a subset of members of group 202 , which may be based on user node identifiers included with the original user message or the result message from the bot 218 .
  • the result message may only be sent to the user node that transmitted the message including the bot trigger phrase.
  • the GCS 102 may transmit the result message to the identified recipient(s) from group 202 .
  • FIG. 4 illustrates a flowchart for another method of using a bot proxy for group communication services as described herein.
  • FIG. 4 is a flow diagram for a method 400 of using a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure.
  • the method 400 may be performed by components of a group messaging architecture, such as group communication service 102 , bot C 218 , and bot proxy I/F node 122 of system 200 .
  • the method 400 may include adding a bot as a member of a communication group, at 402 .
  • an administrator for a communication group, or of the GCS can use an interface portal (such as a website or mobile app) to add a bot as a member of the communication group.
  • An administrator may select the bot to add from a library of pre-existing bots stored at and executed by the GCS.
  • a new bot may be uploaded to the library of bots for hosting at the GCS.
  • an IP address or other addressing information may be provided for a bot hosted remotely from the GCS.
  • a message may be received from a communication group in which the bot is a participant.
  • the message may be processed into a parsable format, at 406 , such as by converting audio speech data into a text format.
  • the parsable data may be analyzed to determine whether the message invokes a function of the bot, at 408 .
  • the message data may be searched for one or more trigger phrases or keywords to invoke a bot response. If the message does not invoke bot functionality, the method 400 may include disregarding the message, at 410 .
  • the method 400 may include transmitting a bot request, including data relevant to the invoked bot function, from a bot to a bot proxy node, at 412 .
  • a command type, one or more command variables, a bot ID, group ID, user node ID, message ID, or other information may be sent to the bot proxy.
  • the method 400 may include determining a target protected server of a bot service LAN to service the bot request. The target protected server may be selected based on a command type, a group ID, a bot ID, server processing loads, other information, or a combination thereof.
  • Method 400 may include generating an API command based on the relevant data from the bot request and the target server, at 416 , and transmitting the API command to the target server, at 418 .
  • a response may be received from the target server, and the response may be transmitted to the bot.
  • the response may then be formatted into a communication message for submission to one or more user nodes of the group that sent the message invoking the bot functionality, at 422 .
  • a result from the target server may be incorporated into a natural-language message, and a spoken audio form of the result message may be generated for transmission to user nodes.
  • the method 400 may include transmitting the communication message to the communication group in which the bot is a participant member.
  • various steps of the methods disclosed herein may be omitted.
  • some bot operations may not result in a response message being sent to the group.
  • a user command to have the bot update a database may be performed by the bot silently, without the need to relay a response from a bot service server to members of the group.
  • steps 420 through 424 may be omitted.
  • FIG. 5 depicts another a flow diagram for a method of using a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure.
  • the method of FIG. 5 may be conceptually divided into method steps 500 A, which may be performed by a bot, and method steps 500 B, which may be performed by a bot proxy I/F node.
  • the method of FIG. 5 may be performed by components of a group messaging architecture, such as bot C 218 and bot proxy I/F node 122 of system 200 .
  • a bot may receive a message from a user in a group in which the bot is a member or participant.
  • the bot may convert the message from an audio data format to a text format, for example using a speech-to-text converter.
  • the bot may process the message to detect a trigger phrase, at 506 .
  • the bot may search the user message for one or more keywords that triggers a response from the bot.
  • Trigger phrases may include a “name” for the bot, or a command phrasing that the bot is configured to recognize.
  • the bot may identify a selected command based on the trigger phrase, or based on employing language parsing algorithms after a trigger phrase is detected, at 508 .
  • the bot may transmit information relevant to the selected command to a bot proxy node associated with the bot, at 510 .
  • the bot proxy node may receive the transmission from the bot, and may determine a target server from a plurality of servers within a secured LAN based on the selected command, at 512 .
  • the bot proxy may generate an API instruction based on the information from the bot, the target server, other factors, a combination thereof, at 514 .
  • the bot proxy may transmit the API instruction to the target server, and may receive a response from the target server at 518 .
  • the bot proxy may transmit result information to the bot based on the response, at 520 .
  • the bot may receive the result information from the bot proxy, and generate a response message based on the result information, at 522 .
  • the bot may format the response message into a natural language sentence or phrase configured to communicate the results of the selected command to a human recipient.
  • the bot may send the response message to the participant group, or to a subset of the user nodes of the recipient group, via a GCS.
  • An example computing system configured to perform the methods and operations described herein is discussed in regard to FIG. 6 .
  • FIG. 6 is a diagram of a system 600 including a bot proxy for a group communication service in accordance with certain embodiments of the present disclosure.
  • the computing system 600 may be one or more devices configured to perform the operations for a group communication service and bot proxy, including operations of the method flow diagram of FIG. 3 , the method of FIG. 4 , and the method of FIG. 5 .
  • the computing system 600 may include or be an example of one or more user devices 112 or 116 , one or more computers operating at the group communication service (GCS) 102 , one or more computers running a bot instance, one or more computers of a bot proxy I/F node 122 , one or more servers 216 of a bot service LAN 106 , or other computing devices of a group communication system architecture.
  • GCS group communication service
  • the computing system 600 may include a processing system 602 , a storage system 604 , a communication interface (I/F) system 606 , and a user I/F system 608 .
  • the one or more of the components of the computing system 600 may be included on a single integrated circuit (e.g. a system on a chip, SoC), may be distributed among several circuits or hardware components, may be implemented as firmware or software modules executed by microprocessors, or in other configurations.
  • SoC system on a chip
  • the processing system 602 may include one or more microprocessors or integrated circuits, such as application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other processor designs.
  • the processing system 602 may include associated memory such as random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), or other volatile or nonvolatile memory.
  • RAM random access memory
  • SRAM static RAM
  • DRAM dynamic RAM
  • the processing system 602 may load instructions, executable code, or pending commands to the memory during operation.
  • the storage system 604 may include one or more nonvolatile data storage devices, such as hard disk drives, NAND Flash memory drives, read only memory (ROM), or other memory devices.
  • the storage system 605 may store computer-readable instructions in the form of software or firmware code, which can be loaded into a memory of the processing system 602 and executed to cause a processor to perform a method according to the instructions.
  • the storage system 604 may store instructions for a bot proxy process 400 , which may correspond to one or more steps of the method 400 of FIG. 4 .
  • the storage system may also store other information, such as communication group databases, bot-accessible databases or software systems, or other information or software instructions.
  • Communication I/F system 606 may include one or more wired or wireless communication I/F circuits allowing the computing system 600 to communicate with other devices over a network or other remote connection.
  • communication I/F system 600 may include an Ethernet port, a Wi-Fi transceiver, a Bluetooth transceiver, or other interface protocol elements.
  • User I/F system 608 may include one or more systems with which a user can interact, or which allow user interface devices to be connected to computing system 600 .
  • user I/F system 608 may include a display screen or monitor, a touch screen interface, a pointer device such as a mouse or trackpad, a keyboard, a speaker, a microphone, other devices, or a port that allows such devices to connect to the computing system 600 , such as a universal serial bus (USB) port.
  • USB universal serial bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Methods, systems, and software are disclosed herein for secured system access by means of a bot proxy for a bot within a group communication service. In an example embodiment, a bot within a selected group of a group communication service may receive a message from a user of the selected group. The bot may transmit, to a bot proxy node within a secured local network, information related to the message that is relevant to executing a selected command. The bot proxy node, in turn, may transmit an application programming interface (API) instruction to perform the selected command to a target server within the secured local network. The bot may send a response message, via the group communication service, to at least one user from the selected group based on a result of the selected command.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • The present application is a continuation of and claims priority to pending U.S. patent application, application Ser. No. 17/000,161, filed Aug. 21, 2020, entitled “BOT PROXY FOR GROUP COMMUNICATION SERVICE”; and to U.S. provisional patent applications Ser. No. 62/890,241, filed Aug. 22, 2019, entitled “BOT PROXY FOR GROUP COMMUNICATION SERVICE,” the contents of which are hereby incorporated by reference in their entirety.
  • BACKGROUND
  • Group communication services can facilitate secure communications between multiple user nodes in a distributed communication environment. Members of a communication group can send messages that are broadcast to multiple other members of the group through personal communication devices in approximately real-time, over communication networks such as the internet. These communication groups allow teams or friends to stay connected even when far apart and on the move.
  • As individuals grow accustomed to easy and quick access to information, a way to integrate data access capabilities into a communication group would improve the robustness and appeal of group communication services. Further, allowing employees of a company to access the data and software of the company while the employees are on the move, by way of a group communication service, could improve work efficiency. However, the data and the computer systems on which the data and software are stored are valuable assets, and these assets must be protected from unauthorized access and tampering through the internet. Therefore data and computer systems may be located within a secured local network, behind protective systems such as firewalls that may interfere with access to these assets by users through a group communication service.
  • OVERVIEW
  • Technology is disclosed herein for integration of a bot application into a group communication service, which bot can access a protected network through a bot proxy interface node in response to messages from users of the group communication service. In an example embodiment, a bot within a selected group of a group communication service may receive a message from a user of the selected group. The bot may transmit, to a bot proxy node within a secured local network, information related to the message that is relevant to executing a selected command. The bot proxy node, in turn, may transmit an application programming interface (API) instruction to perform the selected command to a target server within the secured local network. The bot may send a response message, via the group communication service, to at least one user from the selected group based on a result of the selected command.
  • This Overview is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. It may be understood that this Overview is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Many aspects of the disclosure may be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. While several embodiments are described in connection with these drawings, the disclosure is not limited to the embodiments disclosed herein. On the contrary, the intent is to cover all alternatives, modifications, and equivalents.
  • FIG. 1 is a diagram of a system including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure;
  • FIG. 2 is a diagram of a system including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure;
  • FIG. 3 is a method flow diagram of a system including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure;
  • FIG. 4 is a flow diagram for a method of using a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure;
  • FIG. 5 is a flow diagram for a method of using a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure; and
  • FIG. 6 is a diagram of a system including a bot proxy for a group communication service in accordance with certain embodiments of the present disclosure.
  • DETAILED DESCRIPTION
  • In the following detailed description of certain embodiments, reference is made to the accompanying drawings which form a part hereof, and which are shown by way of illustration of example embodiments. It is also to be understood that features of the embodiments and examples herein can be combined, exchanged, or removed, other embodiments may be utilized or created, and structural changes may be made without departing from the scope of the present disclosure.
  • In accordance with various embodiments, the methods and functions described herein may be implemented as one or more software programs running on one or more computer processors or controllers. Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays, and other hardware devices can likewise be constructed to implement the methods and functions described herein. Methods and functions may be performed by modules, which may include one or more physical components of a computing device (e.g., logic, circuits, processors, etc.) configured to perform a particular task or job, or may include instructions that, when executed, can cause a processor to perform a particular task or job, or any combination thereof. Further, the methods described herein may be implemented as a computer readable storage medium or memory device including instructions that, when executed, cause a processor to perform the methods.
  • FIG. 1 depicts a diagram of a system 100 including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure. The system 100 may include a group communications service (GCS) 102 (which may also be referred to as a group messaging service), a network 104, a bot service local area network (LAN) 106, and a plurality of user nodes 108A-108E. The network 104 may be a wide area network (WAN), such as the internet, connecting computing devices over a large geographical area.
  • The GCS 102 may include one or more computers, servers, or other systems to facilitate communication between user nodes 108A-108E. The GCS 102 may permit communications between user nodes 108 in the form of audio messages transmitted via an over-the-top (OTT) communication service, which may use one or more networks 104, such as the internet, thereby bypassing telecommunications platforms.
  • The GCS 102 may allow user nodes 108A-108E to join or be added to one or more communication groups, such as group 1 110 and group 2 112. Communication groups may include selected groupings of a subset of users less than all users of the GCS 102. User nodes within a group may be able to communicate with other user nodes within the same group, via network 104 and GCS 102. Access to a group may be restricted based on receiving an invitation from a creator or an administrator for the group, based on entering a secure password for a group, or other access-restriction methods. In an example, group 1 110 may include only employees of a particular company, allowing teams of employees to stay in communication with each other while working. In another example, a group may be established for fans of a particular television series so that the fans can discuss the series as a group.
  • In some examples, the GCS 102 may transmit communications from a user node 108 within a group to all other user nodes 108 within the same group, in a general broadcast. The GCS 102 may also permit a user node 108 to transmit a private message to a selected one or more users of a group to which the transmitting user node 108 is a member. User communications may be in the form of audio messages, which may be transmitted from the user node 108 over the network 104 to the GCS 102, and then broadcast from the GCS 102, over the network 104, to all other user nodes 108 in the same group as the broadcasting user node. For example, a user of user node A 108A may speak a message, which may be captured and transmitted as an audio transmission over network 104 to GCS 102, which may in turn broadcast the message to user node B 108B and user node C 108C in approximately real-time.
  • The GCS 102 may maintain a user group database 114. The user group database 114 may store information regarding all established user groups, and may include identifying information for which user nodes 108 are included in each group. For example, the user group database 114 may include a listing for group 1 110 that includes user or device identifiers for user node A 108A, user node B 108B, and user node C 108C, and a listing for group 2 112 that includes identifiers for user node C 108C, user node D 108D, and user node E 108E. As shown, a user node may be a member of multiple groups, as with user node C 108C being a member of both group 1 110 and group 2 112. When a user node is a member of multiple groups, messages from that user node may be broadcast to only users of a selected group identified by the transmitting user node 108C (e.g. only broadcast to Group 1 110), or the message may be broadcast to all groups to which the user node is a member.
  • Each user node 108 may include a transmission device 112 capable of connecting to the network 104, such as a mobile phone, computer, smart watch, or similar device. A user node 108 may also include one or more personal devices 116 that can link to the transmission device 112, such as via wired or wireless connections, including Wi-Fi Bluetooth®, and Bluetooth low energy (BLE). The personal device 116 may be configured to receive and send messages to and from the user of the user node 108 by way of the transmission device 112. In an example embodiment, the personal device 116 may include a wearable speaker and microphone, such as a wearable pendant or headset, which can receive messages from a user (e.g. recording audio messages to transmit when a ‘transmit’ button on the personal device 116 is held down) and broadcast messages received from other users of a participant group.
  • The GCS 102 may also allow for one or more bots 118 to be added to a communication group. A bot 118 may be a software application configured to execute commands in response to messages from users of a group to which the bot has been added. For example, a bot 118 may be added to group 1 110, being included in the group database 114 as either a user or special bot participant of group 1 110. A user node 108 within a group to which a bot 118 has been added may transmit a message including a trigger phrase that activates functionality of the bot 118. For example, user node A 108A may send a message, “Weatherbot, what is the forecast for Tuesday?”. A participant bot 118 within group 1 110 may respond to the trigger phrase “Weatherbot” and may identify a request within the message to retrieve a weather forecast for Tuesday. In response, the bot 118 may send Tuesday's forecast to members of group 1 110.
  • Bots 118 may be in the form of computer executable code stored to a memory and which, when executed, causes one or more computer processors to perform the bot's operations. Bots 118 may be stored and executed externally to the GCS 102, for example being run at a bot service LAN 106 or another computer such as a transmission device 112. Externally hosted bots 118 may be added to group(s) through the user group database 114 as a normal user node, with group messages sent to and received from the computer running the bot 118 via the network 104.
  • In another example, bots 118 may be stored to and executed by a computer system of the GCS 102. For example, the GCS 102 may maintain a bot library 116 of bots hosted or executed by the GCS 102, such as bots A, B, and C 118. An administrator for a group or the GCS 102 may add a bot as a participant of a group through the user group database 114. When a message is received at the GCS 102 from a user node 108 of, e.g. group 1 110, the GCS may look up the group 1 participants in the database 114 and determine whether a bot 118 is a member of group 1 110. If so, the GCS 102 may perform operations on the message according to the program code for the participant bot(s) 118.
  • In another example, a program may be stored at and executed by the GCS 102 that scans user messages for trigger phrases for a bot 118. If a trigger phrase is detected, the GCS 102 may send the message to a computing device external to the GCS 102 that executes the code for the respective bot 118. Other embodiments are also possible for managing bot integration into a group through the GCS 102.
  • Functionality or information for a bot 118 may be provided by a service external to the GCS 102, such as at bot service LAN 106. For example, the bot service LAN 106 may include one or more computers or servers 120, which can store information that can be accessed by a bot 118, or which can perform calculations or operations on behalf of a bot 118. For example, the bot service LAN 106 may include a weather service, with a server 120 storing weather information for various geographical regions. In another example, the bot service LAN 106 may include a hotel, with a server 120 having software and data of a work flow system for the hotel staff, including rooms to be cleaned or items to be delivered to hotel patrons. An administrator for the hotel bot service LAN 106 may request that a hotel workflow bot 118 be added to the bot library 116, so that the hotel workflow bot 118 can be added to a communication group limited to staff for the hotel. Hotel staff may send communications through the GCS 102 to the hotel workflow bot 118 to access or update data at the hotel server 120 to determine jobs to be performed or to report when a task has been completed.
  • Computers 120 located within a bot service LAN 106 may include sensitive information that should be protected from unauthorized accesses over the network 104. To this end, the bot service LAN 106 may include a firewall 108 to protect computers 120 within the bot service LAN 106. The firewall 108 may be a network security system in the form of computers or software that filters traffic to or from bot service LAN 106 over the network 104.
  • In order to facilitate communication and data access to computers 120 of the bot service LAN by an associated bot 118, the bot service LAN 106 may include a bot proxy interface (I/F) node 122. The bot proxy I/F node 122 (sometimes referred to herein as simply a bot proxy or bot proxy node) may include software running on a computer or server 120 of the bot service LAN 106, or may include a dedicated computing device configured to perform the operations of the bot proxy described herein.
  • The bot proxy 122 may be configured to receive all access requests or commands from a bot 118 to the bot service LAN 106, process the requests, and transmit messages from the bot service LAN 106 to the bot 118. Messages to and from the bot proxy 122 may pass through the firewall 108, or may optionally bypass (124) the firewall 108. The bot proxy node may be configured to shield computers 120 of the bot service LAN 106 from direct internet access, and may prevent unauthorized communications (e.g. communications not received from an authorized bot 118) from reaching secured servers 120 within the bot service LAN 106. For example, the bot 118 associated with the bot proxy 122 may be configured to encrypt or digitally sign messages to the bot proxy 122 with a private key or another encryption method, so that only messages using the appropriate encryption can be decoded by the bot proxy 122 and allowed access to other computers 120 within the bot service LAN 106.
  • The bot proxy 122 may be configured to format requests or commands from the bot 118 into a particular format, such as by generating an application program interface (API) instruction recognized or accepted by a target server 120 in order to instruct the server 120 to execute the command. The bot proxy 122 may perform other operations on messages received from the bot 118, such as load balancing (e.g. distributing requests among multiple servers 120 to prevent overloading or delays at any particular server), routing commands to a target server 120 from multiple servers based on which bot-requested operations each server is configured to execute, compressing or decompressing data messages, caching recently or frequently accessed data from the servers 120, or performing other processing operations. An example implementation of the system 100 is discussed in greater detail in regards to FIG. 2.
  • FIG. 2 depicts a diagram of a system 200 including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure. System 200 may correspond to system 100 of FIG. 1, and reference may be made to elements from system 100 via corresponding identifier numbers. The system 200 may include a group 202 of at least one user nodes, a group communication service (GCS) 102 executing a bot C 218, and a bot service LAN 106 including a bot proxy I/F node 122. FIG. 2 depicts an example implementation by which bot functionality may be invoked via the group communication server 102 and used to access the bot service LAN 106 via the bot proxy 122.
  • A user message 204 may be sent (e.g. over network 104) from a user node of group 202 to the GCS 102. The user message 204 may be generated by a user device (e.g. transmission device 112 or personal device 116) of a user node 108. For example, a personal device 116 may capture audio data from a spoken message from a user. The audio data may be encoded, compressed, or otherwise processed at a device of the user node 108, and may be included with other identifying information in the user message 204 to transmit to the GCS 102. Identifying information that may be included with the user message 204 may include a group identifier (ID) for the group to which the message is being transmitted, a user ID associated with the user node sending the message, a message ID for the user message 204, other identifying information, or any combination thereof. The user message 204 may be split into one or more data packets sent over the network 104 to the GCS 102.
  • The user message 204 may be received at the GCS 102 and undergo message processing, for example at message processing module 206. Message processing 206 may include extracting information from user message 204, such as identifying information and audio data. Message processing 206 may also include performing data compression or decompression, error correction for corrupted data packets or other problems, audio data adjustments to balance sound levels or message clarity, speech-to-text conversion, other processing operations, or any combination thereof.
  • During message processing 206, the GCS 102 may extract the group ID from the user message 204, and access the communication groups database 114 to determine other user nodes within the group 202 to which to send the user message 204. In the depicted example embodiment, the groups database 114 includes a first listing 212A of member user nodes and bots of group 1, and a second listing 212B for member user nodes and bots of a group 2, as well as listings for other communication groups. Each listing 212 may include identifying information for users and bots within the group. For example, each user node or bot may have a unique identifier, an internet protocol (IP) address to which messages should be sent, or other identifying information. The listing 212 may also identify whether a member bot is hosted at and should be processed by the GCS 102, or that the bot is hosted externally to the GCS 102. Particular users or bots may be included in multiple groups. For example, user C and bot C may be included in the listings for group 1 212A and group 2 212B. If a bot is included in more than one group, such as bot C 218, a different unique instance of the bot C 218 may be included in each group, or a single bot instance may handle messages from all groups to which the bot C 218 is a member. A bot instance may be a distinct processing thread that operates independently of other processing threads for the same bot. In an example, bot C 218 may include a first instance 208A for processing messages from group 1, and a second instance 208B for processing messages from group 2.
  • The GCS 102 may forward or transmit the user message 204 to other user nodes 108 within the group 202, such as to all member user nodes of the group 202 or to specific target user nodes identified in the user message 204. If the GCS 102 determines that the group 202 includes one or more bots hosted by the GCS 102, the GCS 102 may invoke the bot(s) based on receiving the user message 204. For example, group 202 may include bot C 218, and so the GCS 102 may send user message 204 to bot C 218. In some embodiments, all user messages from a group in which bot C 218 is a member will be sent to bot C 218, while in other embodiments only messages that invoke the functionality of bot C 218 may be sent to bot C 218. To identify whether the user message 204 invokes bot C 218, the audio data may be scanned by the message processing node 206 or the bot C 218 software for one or more trigger phrases. Trigger phrases may include a name for bot C 218, or a specific command that bot C 218 recognizes (e.g. “what is the weather?”). The audio data may be scanned for a trigger phrase directly (e.g. by searching the audio data for a recognized audial data sequence), or by first converting the audio data to another format. For example, the audio data may undergo speech-to-text conversion during message processing 206 or by the bot C 218 to generate a text version of the audio data, and then the text may be scanned for a trigger phrase.
  • As explained above, the processor or computer executing bot C 218 may run or maintain multiple instances of bot C 218 for handling messages from different groups, such as instance 1 208A and instance 2 208B. A user message 204 may be provided to the instance corresponding to the group from which the user message 204 was received.
  • Bot C 218 may execute program code or method 500A based on receiving a message, where 500A may correspond to the method flow diagram 500A of FIG. 5. Bot C 218 may process the user message 204, which may include converting the audio data into a text message or other parsable format, and then scanning the audio or text data to determine a particular function or command for bot C 218 to execute. If bot C 218 determines that the message does not invoke functionality of bot C 218, or includes a command that bot C 218 does not recognize, it may disregard the message or sent a response message 210 that indicates that no command was recognized.
  • A response message 210 may be generated by bot C 218 with result information for a user command in audio format, or in a text format that may be converted to an audio format by message processing node 206 of the GCS 102. The response message 210 may also include information or metadata identifying a target group or user node to which the message should be sent via the GCS 102.
  • If bot C 218 does recognize a command in the user message 204, bot C 218 may generate a bot message 214 to send to the bot proxy node 122. Bot message 214 may include various identifying information or metadata, such as a bot ID for bot C 218 (which may include a unique identifier for a particular bot instance 208), a message ID for the bot message 214, a type of command to be executed at the bot service LAN 106, and one or more variables to define the parameters of the command type. For example, for a hotel management bot C 218, a command type may include a request to send items to a particular room, where the variables may include one or more items to deliver, the room number, and a priority level. The type of command and relevant variables may be extracted by bot C 218 from the audio data of the user message 204. In some embodiments, bot C 218 may format the command type and variables into an API format that can be processed by a target server of the bot service LAN 106. Bot C 218 may maintain addressing information, encryption information, or other information that can be used to generate the bot message 214 and send it across network 104, so that it will be received and accepted at the bot proxy node 122.
  • Bot proxy node 122 may receive the bot message 214 and perform command processing instructions 220, which may include executing program code or method 500B, where 500B may correspond to the method flow diagram 500B of FIG. 5. The bot proxy 122 may verify the source or authenticity of the bot message 214, including performing decryption or digital signature verification. The bot proxy 122 may also determine a target server from a plurality of servers of the bot service LAN 106 based on the command or other metadata included in the bot message 214. For example, bot service LAN 106 may include a bot service server 1 216A, bot service server 2 216B, and bot service server 3 216C. Each bot service server may be configured to service or perform different types of commands, may be configured to distribute a processing load of incoming commands, or otherwise may be configured to work together or independently to service incoming commands from one or more bots. For example, bot service server 1 216A may handle reservation requests for a hotel, bot service server 2 216B may handle maintenance and cleaning requests from hotel staff, and bot service server 3 216C may handle service requests from hotel patrons. In some embodiments, the different command types may originate from different bots, different instances of a same bot in different origin groups, or all from a single bot in a single group. The bot proxy 122 may identify a target server 216 based on a command type, bot ID, server load distribution, other factors, or any combination thereof. The bot proxy 122 may store or access LAN addressing information 222 to determine where to send each message to reach the determined target server 216.
  • Command processing instructions 220 may also direct the bot proxy 122 to generate an API instruction or command based on the received bot message 214 and the target server 216. For example, different servers 216 may accept commands in different API formats, and the bot proxy 122 includes instructions 220 on which API format to use based on the target server. Alternately, the bot message 214 may include a pre-formatted API instruction for the bot proxy to forward to the target server 216.
  • After sending a command to a target server 216, the bot proxy 122 may wait to receive a response from the target server 216, including a result or acknowledgement for the command. The bot proxy 122 may generate a response message 224, which may include a target bot ID, message ID, and a response data payload indicating the results from the target server 216. The bot C 218 may receive the response 224, and may generate a response message 210 to send to one or more user nodes 108 of group 202 in response to the user message 204. The result information in the response message 210 may be converted from a text format to an audio format by bot C 218, by message processing node 206, or may be sent to group 202 in a text format. Response message 210 may be encoded for transmission by message procession module 206 of GCS 102. The response message 210 may be received at transmission devices 112 of user nodes 108 in group 202, and may be presented as an audio or text message at transmission device 112 or personal device 116. An example method flow diagram for system 200 is discussed in regard to FIG. 3.
  • FIG. 3 is a method flow diagram of a system including a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure. The method flow diagram illustrates information sent between and operations performed at elements of system 200, such as group 202, GCS 102, bot 218, bot interface proxy 122, and bot service server(s) 216. The method flow may proceed from the top to the bottom of FIG. 3, although some elements may be performed in a different order from that depicted, omitted, or additional elements may be performed that are not illustrated.
  • A user node included in group 202 may send a message to GCS 102. GCS 102 may process the message, such as performing decryption, error correction, decompression, data extraction, speech-to-text conversion, trigger phrase searches, other operations, or any combination thereof. Based on information extracted from the user message, the GCS 102 may identify members of group 202, including bot 218, for example by accessing a user groups database. The GCS 102 may then transmit the user message, or data from the user message, to bot 218. The message may be transmitted over a network if bot 218 is not hosted or executed at the GCS 102, or the message may be passed to an instance of the bot executing on a GCS 102 server, computer, or processor. In some embodiments, the GCS 102 may determine whether the user message includes a trigger phrase that invokes bot 218 before sending the message to the bot 218.
  • The bot 218 may receive and perform processing on the message. Processing may include converting the message from speech to text format, or parsing the message to determine whether the message includes one or more trigger phrases to invoke an operation of the bot 218. If the message does invoke functionality of the bot 218, the bot 218 may extract information relevant to the bot operation from the message, such as a command type and variable information that may be used to execute the bot functionality. Processing the message may also include generating and sending a message to the bot proxy 122, which message may include a command type, variables, a target server, an API instruction or command, other information, or any combination thereof. The bot 218 may encrypt or digitally sign the message to authenticate the message to the bot proxy 122.
  • The bot proxy 122 may receive the message from bot 218, and may perform processing on the message, such as decrypting the message, extracting a command type and variables data from the message, determining a target bot service server 216 for the command, generating an API command for execution at the sever 216, performing other processing, or any combination thereof. The bot proxy 122 may determine an address of the target server within the secured LAN that includes the bot proxy 122 and bot servers 216, and transmit an API command to the target protected server 216. The bot service server 216 may execute the command and return a result to the bot proxy 122. The bot proxy 122 may generate a message to return the result to the bot 218, encrypt or otherwise encode the message, and transmit the message to the bot 218 (e.g. based on addressing or bot ID information included in the message received from the bot 218).
  • Bot 218 may receive the result from the bot proxy 122, and process the result. Processing may include extracting result information, generating a result message to send to one or more users of group 202, performing text-to-speech conversion, other processing, or any combination thereof. The bot 218 may send the result message to the GCS 102 for broadcasting to one or more member user nodes of group 202.
  • The GCS 102 may process the result message, such as by converting a text result message to an audio format using a text-to-speech converting service or system, and putting the result message in a format suitable for transmission over the network 104. The GCS 102 may identify one or more target members of group 202, for example by looking up addresses of user nodes in group 202 based on a group ID included with the result message from the bot 218. In some embodiments, the result message may be transmitted to only a subset of members of group 202, which may be based on user node identifiers included with the original user message or the result message from the bot 218. For example, the result message may only be sent to the user node that transmitted the message including the bot trigger phrase. The GCS 102 may transmit the result message to the identified recipient(s) from group 202. FIG. 4 illustrates a flowchart for another method of using a bot proxy for group communication services as described herein.
  • FIG. 4 is a flow diagram for a method 400 of using a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure. The method 400 may be performed by components of a group messaging architecture, such as group communication service 102, bot C 218, and bot proxy I/F node 122 of system 200.
  • The method 400 may include adding a bot as a member of a communication group, at 402. For example, an administrator for a communication group, or of the GCS, can use an interface portal (such as a website or mobile app) to add a bot as a member of the communication group. An administrator may select the bot to add from a library of pre-existing bots stored at and executed by the GCS. A new bot may be uploaded to the library of bots for hosting at the GCS. Alternately, an IP address or other addressing information may be provided for a bot hosted remotely from the GCS.
  • At 404, a message may be received from a communication group in which the bot is a participant. The message may be processed into a parsable format, at 406, such as by converting audio speech data into a text format. The parsable data may be analyzed to determine whether the message invokes a function of the bot, at 408. For example, the message data may be searched for one or more trigger phrases or keywords to invoke a bot response. If the message does not invoke bot functionality, the method 400 may include disregarding the message, at 410.
  • If the message does invoke bot functionality, the method 400 may include transmitting a bot request, including data relevant to the invoked bot function, from a bot to a bot proxy node, at 412. For example, a command type, one or more command variables, a bot ID, group ID, user node ID, message ID, or other information may be sent to the bot proxy. At 414, the method 400 may include determining a target protected server of a bot service LAN to service the bot request. The target protected server may be selected based on a command type, a group ID, a bot ID, server processing loads, other information, or a combination thereof. Method 400 may include generating an API command based on the relevant data from the bot request and the target server, at 416, and transmitting the API command to the target server, at 418.
  • At 420, a response may be received from the target server, and the response may be transmitted to the bot. The response may then be formatted into a communication message for submission to one or more user nodes of the group that sent the message invoking the bot functionality, at 422. For example, a result from the target server may be incorporated into a natural-language message, and a spoken audio form of the result message may be generated for transmission to user nodes. At 424, the method 400 may include transmitting the communication message to the communication group in which the bot is a participant member.
  • In some embodiments, various steps of the methods disclosed herein may be omitted. For example, some bot operations may not result in a response message being sent to the group. In an exemplary embodiment, a user command to have the bot update a database may be performed by the bot silently, without the need to relay a response from a bot service server to members of the group. In such an embodiment, steps 420 through 424 may be omitted.
  • FIG. 5 depicts another a flow diagram for a method of using a bot proxy for a group communication service, in accordance with certain embodiments of the present disclosure. The method of FIG. 5 may be conceptually divided into method steps 500A, which may be performed by a bot, and method steps 500B, which may be performed by a bot proxy I/F node. The method of FIG. 5 may be performed by components of a group messaging architecture, such as bot C 218 and bot proxy I/F node 122 of system 200.
  • Beginning at 502 of method 500A, a bot may receive a message from a user in a group in which the bot is a member or participant. At 504, the bot may convert the message from an audio data format to a text format, for example using a speech-to-text converter. The bot may process the message to detect a trigger phrase, at 506. For example, the bot may search the user message for one or more keywords that triggers a response from the bot. Trigger phrases may include a “name” for the bot, or a command phrasing that the bot is configured to recognize. The bot may identify a selected command based on the trigger phrase, or based on employing language parsing algorithms after a trigger phrase is detected, at 508. The bot may transmit information relevant to the selected command to a bot proxy node associated with the bot, at 510.
  • In method 500B, the bot proxy node may receive the transmission from the bot, and may determine a target server from a plurality of servers within a secured LAN based on the selected command, at 512. The bot proxy may generate an API instruction based on the information from the bot, the target server, other factors, a combination thereof, at 514. At 516, the bot proxy may transmit the API instruction to the target server, and may receive a response from the target server at 518. The bot proxy may transmit result information to the bot based on the response, at 520.
  • Resuming in method 500A, the bot may receive the result information from the bot proxy, and generate a response message based on the result information, at 522. The bot may format the response message into a natural language sentence or phrase configured to communicate the results of the selected command to a human recipient. At 524, the bot may send the response message to the participant group, or to a subset of the user nodes of the recipient group, via a GCS. An example computing system configured to perform the methods and operations described herein is discussed in regard to FIG. 6.
  • FIG. 6 is a diagram of a system 600 including a bot proxy for a group communication service in accordance with certain embodiments of the present disclosure. The computing system 600 may be one or more devices configured to perform the operations for a group communication service and bot proxy, including operations of the method flow diagram of FIG. 3, the method of FIG. 4, and the method of FIG. 5. In some examples, the computing system 600 may include or be an example of one or more user devices 112 or 116, one or more computers operating at the group communication service (GCS) 102, one or more computers running a bot instance, one or more computers of a bot proxy I/F node 122, one or more servers 216 of a bot service LAN 106, or other computing devices of a group communication system architecture.
  • The computing system 600 may include a processing system 602, a storage system 604, a communication interface (I/F) system 606, and a user I/F system 608. The one or more of the components of the computing system 600 may be included on a single integrated circuit (e.g. a system on a chip, SoC), may be distributed among several circuits or hardware components, may be implemented as firmware or software modules executed by microprocessors, or in other configurations.
  • The processing system 602 may include one or more microprocessors or integrated circuits, such as application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other processor designs. The processing system 602 may include associated memory such as random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), or other volatile or nonvolatile memory. The processing system 602 may load instructions, executable code, or pending commands to the memory during operation.
  • The storage system 604 may include one or more nonvolatile data storage devices, such as hard disk drives, NAND Flash memory drives, read only memory (ROM), or other memory devices. The storage system 605 may store computer-readable instructions in the form of software or firmware code, which can be loaded into a memory of the processing system 602 and executed to cause a processor to perform a method according to the instructions. For example, the storage system 604 may store instructions for a bot proxy process 400, which may correspond to one or more steps of the method 400 of FIG. 4. The storage system may also store other information, such as communication group databases, bot-accessible databases or software systems, or other information or software instructions.
  • Communication I/F system 606 may include one or more wired or wireless communication I/F circuits allowing the computing system 600 to communicate with other devices over a network or other remote connection. For example, communication I/F system 600 may include an Ethernet port, a Wi-Fi transceiver, a Bluetooth transceiver, or other interface protocol elements.
  • User I/F system 608 may include one or more systems with which a user can interact, or which allow user interface devices to be connected to computing system 600. For example, user I/F system 608 may include a display screen or monitor, a touch screen interface, a pointer device such as a mouse or trackpad, a keyboard, a speaker, a microphone, other devices, or a port that allows such devices to connect to the computing system 600, such as a universal serial bus (USB) port.
  • The illustrations of the embodiments described herein are intended to provide a general understanding of the structure of the various embodiments. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatuses and systems that utilize the structures or methods described herein. Many other embodiments may be apparent to those of skill in the art upon reviewing the disclosure. Other embodiments may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. Moreover, although specific embodiments have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar purpose may be substituted for the specific embodiments shown.
  • This disclosure is intended to cover any and all subsequent adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the description. Additionally, the illustrations are merely representational and may not be drawn to scale. Certain proportions within the illustrations may be exaggerated, while other proportions may be reduced. Accordingly, the disclosure and the figures are to be regarded as illustrative and not restrictive.

Claims (20)

What is claimed is:
1. A method comprising:
receiving, at a box proxy node within a secured local network, command transmissions from multiple instances of a bot external to the secured local network, each instance of the bot being active in a different group of users of a group communication service, the command transmissions from the multiple instances including an identifier for a respective bot instance to which to transmit a response;
transmitting, from the bot proxy node to a target server within the secured local network, an application programming interface (API) instruction to perform a selected command from the command transmissions;
receiving, at the box proxy node from the target server, a response to the selected command; and
transmitting the response from the box proxy node to a selected instance of the bot based on the identifier associated with the selected command.
2. The method of claim 1 wherein:
the bot proxy node is a computing device connected to the secured local network and located behind a firewall of the secured local network;
the bot proxy node communicates with the multiple instances of the bot via the internet; and
the bot proxy node is configured to shield the target server from direct internet access.
3. The method of claim 1 further comprising:
the bot proxy node is connected to a plurality of servers within the secured local network; and
the method further comprises determining, at the bot proxy node, the target server from the plurality of servers based on the selected command.
4. The method of claim 3 wherein:
different servers from the plurality of servers are configured to execute different types of commands from the bot; and
the bot proxy node determines the target server by matching the selected command with a command processing functionality of the target server.
5. The method of claim 3 further comprising:
determining the target server from the plurality of servers based on a processing load at the plurality of servers, to perform load balancing.
6. The method of claim 1 further comprising generating, at the bot proxy node, the API instruction based on information received in the selected command.
7. The method of claim 1 further comprising:
performing decryption on the command transmissions at the bot proxy node; and
transmitting the API instruction from the bot proxy node to the target server only for command transmissions that were successfully decrypted.
8. The method of claim 1 further comprising:
caching a copy of the response at the bot proxy node; and
transmitting the copy of the response from the bot proxy node in reply to a subsequent command transmission without sending the API instruction to the target server.
9. The method of claim 1 further comprising:
receiving, at the selected instance of the bot active in a selected group of users of the group communication service, a message from a user in the selected group, the selected instance of the bot comprising a software application configured to execute commands in response to messages from users of the selected group;
transmitting a command transmission from the selected instance of the bot to the bot proxy node;
receiving the response at the selected instance of the bot from the bot proxy node; and
sending, from the selected instance of the bot via the group communication service, a response message to at least one user of the selected group based on the response.
10. A communication system comprising:
a first computing device within a secured local network configured to execute a bot proxy node to:
exchange communications via the internet between the secured local network and a bot executed at a second computing device external to the secured local network,
wherein the bot is active in a selected group of users in a group communication service;
wherein the first computing device is located behind a firewall of the secured local network and configured to shield a target server in the secured local network;
receive a command transmission from the bot;
transmit an application programming interface (API) instruction to the target server to perform a selected command based on the command transmission; and
transmit a response from the target server to the bot responsive to the command transmission.
11. The communication system of claim 10 comprising the bot proxy node further configured to:
receive command transmissions from multiple instances of the bot, each instance of the bot being active in a different group of users of the group communication service; and
command transmissions from the multiple instances include an identifier for a respective bot instance to which to transmit the response.
12. The communication system of claim 10 further comprising:
the bot proxy node is connected to a plurality of servers within the secured local network; and
the bot proxy node further configured to determine the target server from the plurality of servers based on the command transmission.
13. The communication system of claim 12 wherein:
different servers from the plurality of servers are configured to execute different types of commands from the bot; and
the bot proxy node is further configured to determine the target server by matching the selected command with a command processing functionality of the target server.
14. The communication system of claim 12 comprising the bot proxy node further configured to determine the target server from the plurality of servers based on a processing load at the plurality of servers, to perform load balancing.
15. The communication system of claim 10 comprising the bot proxy node further configured to:
perform decryption on the command transmission; and
transmit the API instruction to the target server only when the command transmission is successfully decrypted.
16. The communication system of claim 10 comprising the bot proxy node further configured to:
cache a copy of the response at the bot proxy node; and
transmit the copy of the response in reply to a subsequent command transmission without sending the API instruction to the target server.
17. The communication system of claim 10 further comprising:
the second computing device executing the bot, the bot comprising a software application configured to execute commands in response to messages from the users of the selected group, the bot configured to:
receive a message from a user in the selected group;
transmit information related to the message that is relevant to execute the selected command as the command transmission; and
sending, from the bot via the group communication service, a response message to at least one user of the selected group based on the response to the selected command from the bot proxy node.
18. A method comprising:
receiving, at a bot proxy node within a secured local network, a command transmission from a bot external to the secured local network,
wherein the bot proxy node is connected to a plurality of servers within the secured local network configured to execute different types of commands, and
wherein the bot is active in a selected group of users in a group communication service;
determining, at the bot proxy node, a target server from the plurality of servers based by matching a selected command associated with the command transmission to a command processing functionality of the target server;
transmitting, from the bot proxy node to the target server, an instruction to perform the selected command; and
transmitting, via the bot proxy node, a response to the selected command from the target server to the bot.
19. The method of claim 18 further comprising:
the bot proxy node is a computing device connected to the secured local network and located behind a firewall of the secured local network;
the bot proxy node communicates with the bot via the internet; and
the bot proxy node is configured to shield the target server from direct internet access.
20. The method of claim 18 further comprising:
receiving, at the bot, a message from a user in the selected group of users, the bot comprising a software application configured to execute commands in response to messages from users of the selected group;
transmitting the command transmission from the bot to the bot proxy node based on the message from the user;
receiving the response at the bot from the bot proxy node; and
sending from the bot via the group communication service, a response message to at least one user of the selected group based on the response.
US17/578,997 2019-08-22 2022-01-19 Bot proxy for group communication service Abandoned US20220141161A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/578,997 US20220141161A1 (en) 2019-08-22 2022-01-19 Bot proxy for group communication service

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962890241P 2019-08-22 2019-08-22
US17/000,161 US11258731B2 (en) 2019-08-22 2020-08-21 Bot proxy for group communication service
US17/578,997 US20220141161A1 (en) 2019-08-22 2022-01-19 Bot proxy for group communication service

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US17/000,161 Continuation US11258731B2 (en) 2019-08-22 2020-08-21 Bot proxy for group communication service

Publications (1)

Publication Number Publication Date
US20220141161A1 true US20220141161A1 (en) 2022-05-05

Family

ID=74646129

Family Applications (2)

Application Number Title Priority Date Filing Date
US17/000,161 Active US11258731B2 (en) 2019-08-22 2020-08-21 Bot proxy for group communication service
US17/578,997 Abandoned US20220141161A1 (en) 2019-08-22 2022-01-19 Bot proxy for group communication service

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US17/000,161 Active US11258731B2 (en) 2019-08-22 2020-08-21 Bot proxy for group communication service

Country Status (1)

Country Link
US (2) US11258731B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11258731B2 (en) * 2019-08-22 2022-02-22 Orion Labs, Inc. Bot proxy for group communication service

Citations (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259969B1 (en) * 1997-06-04 2001-07-10 Nativeminds, Inc. System and method for automatically verifying the performance of a virtual robot
US6301609B1 (en) * 1999-07-07 2001-10-09 Lucent Technologies Inc. Assignable associate priorities for user-definable instant messaging buddy groups
US6314410B1 (en) * 1997-06-04 2001-11-06 Nativeminds, Inc. System and method for identifying the context of a statement made to a virtual robot
US6363301B1 (en) * 1997-06-04 2002-03-26 Nativeminds, Inc. System and method for automatically focusing the attention of a virtual robot interacting with users
US6430602B1 (en) * 2000-08-22 2002-08-06 Active Buddy, Inc. Method and system for interactively responding to instant messaging requests
US20030131061A1 (en) * 2001-11-28 2003-07-10 Active Buddy, Inc. Transparent proxy server for instant messaging system and methods
US6604090B1 (en) * 1997-06-04 2003-08-05 Nativeminds, Inc. System and method for selecting responses to user input in an automated interface program
US6629087B1 (en) * 1999-03-18 2003-09-30 Nativeminds, Inc. Methods for creating and editing topics for virtual robots conversing in natural language
US20030220972A1 (en) * 2002-05-23 2003-11-27 Ivan Montet Automatic portal for an instant messaging system
US6907571B2 (en) * 2000-03-01 2005-06-14 Benjamin Slotznick Adjunct use of instant messenger software to enable communications to or between chatterbots or other software agents
US7146404B2 (en) * 2000-08-22 2006-12-05 Colloquis, Inc. Method for performing authenticated access to a service on behalf of a user
US7287057B2 (en) * 2001-11-15 2007-10-23 International Business Machines Corporation Accessing information using an instant messaging system
US20070294229A1 (en) * 1998-05-28 2007-12-20 Q-Phrase Llc Chat conversation methods traversing a provisional scaffold of meanings
US7454469B2 (en) * 2003-12-22 2008-11-18 International Business Machines Corporation Method and system for instant messaging Bots specification using state transition methodology and XML
US7603413B1 (en) * 2005-04-07 2009-10-13 Aol Llc Using automated agents to facilitate chat communications
US7630986B1 (en) * 1999-10-27 2009-12-08 Pinpoint, Incorporated Secure data interchange
US7702665B2 (en) * 2005-06-14 2010-04-20 Colloquis, Inc. Methods and apparatus for evaluating semantic proximity
US7783486B2 (en) * 2002-11-22 2010-08-24 Roy Jonathan Rosser Response generator for mimicking human-computer natural language conversation
US7861252B2 (en) * 2001-03-21 2010-12-28 Andrzej Uszok Intelligent software agent system architecture
US8019383B2 (en) * 2007-01-17 2011-09-13 Nokia Corporation Techniques to increase coverage of push-to-talk wireless networks
US8086850B2 (en) * 2006-06-23 2011-12-27 Honeywell International Inc. Secure group communication among wireless devices with distributed trust
US8224906B2 (en) * 2006-10-16 2012-07-17 Tieto Oyj Interacting with a user of a messaging client
US8341221B2 (en) * 2006-10-05 2012-12-25 Verizon Patent And Licensing Inc. Instant messenger location buddy
US8438233B2 (en) * 2011-03-23 2013-05-07 Color Labs, Inc. Storage and distribution of content for a user device group
US8775529B2 (en) * 2009-05-08 2014-07-08 Raytheon Company Bridging communications between communication services using different protocols
US20140279050A1 (en) * 2008-05-21 2014-09-18 The Delfin Project, Inc. Dynamic chatbot
US20150023342A1 (en) * 2013-07-17 2015-01-22 Electronics And Telecommunications Research Institute Method for operating of peer aware communication network
US9064278B2 (en) * 2010-12-30 2015-06-23 Futurewei Technologies, Inc. System for managing, storing and providing shared digital content to users in a user relationship defined group in a multi-platform environment
US9118462B2 (en) * 2009-05-20 2015-08-25 Nokia Corporation Content sharing systems and methods
US9219744B2 (en) * 2010-12-08 2015-12-22 At&T Intellectual Property I, L.P. Mobile botnet mitigation
US9503866B2 (en) * 2004-08-16 2016-11-22 Qualcomm Incorporated Methods and apparatus for managing group membership for group communications
US9661445B2 (en) * 2014-05-02 2017-05-23 Qualcomm Incorporated Methods and apparatus for integrating bluetooth devices into neighbor aware networks
US9680658B2 (en) * 2011-12-07 2017-06-13 Qualcomm Incorporated Collaborative group communication method involving a context aware call jockey
US9705840B2 (en) * 2013-06-03 2017-07-11 NextPlane, Inc. Automation platform for hub-based system federating disparate unified communications systems
US20170289070A1 (en) * 2016-03-30 2017-10-05 Microsoft Technology Licensing, Llc Making a Dialogue Available To an Autonomous Software Agent
US9936010B1 (en) * 2015-05-19 2018-04-03 Orion Labs Device to device grouping of personal communication nodes
US20180278555A1 (en) * 2017-03-27 2018-09-27 Orion Labs Shared and per-user bot group messaging method
US20180278557A1 (en) * 2017-03-27 2018-09-27 Orion Labs Bot group messaging method
US20180309805A1 (en) * 2017-03-27 2018-10-25 Orion Labs Bot group messaging using bot-specific voice libraries
US10116596B2 (en) * 2014-09-29 2018-10-30 International Business Machines Corporation Personalizing data system components and data sources as chatbots in a group chat session
US10164930B2 (en) * 2014-03-12 2018-12-25 Tencent Technology (Shenzhen) Company Limited Method and device for controlling peripheral devices via a social networking platform
US10165017B2 (en) * 2014-03-12 2018-12-25 Tencent Technology (Shenzhen) Company Limited Method and device for controlling peripheral devices via a social networking platform
US10223432B2 (en) * 2014-09-29 2019-03-05 International Business Machines Corporation Interactive social media access to data systems
US20190141486A1 (en) * 2016-07-05 2019-05-09 Huawei Technologies Co., Ltd. Service processing method, device, and system
US10305686B2 (en) * 2015-10-02 2019-05-28 Orion Labs Encrypted group communications
US10321166B2 (en) * 2016-06-07 2019-06-11 Orion Labs Supplemental audio content for group communications
US20190188590A1 (en) * 2017-12-15 2019-06-20 Microsoft Technology Licensing, Llc Chatbot Integrating Derived User Intent
US10360611B2 (en) * 2010-07-23 2019-07-23 Ebay Inc. Instant messaging robot to provide product information
US10404794B2 (en) * 2016-06-21 2019-09-03 Orion Labs Discovery and formation of local communication group
US10410107B2 (en) * 2016-07-26 2019-09-10 Salesforce.Com, Inc. Natural language platform for database system
US10419489B2 (en) * 2017-05-04 2019-09-17 International Business Machines Corporation Unidirectional trust based decision making for information technology conversation agents
US10425774B2 (en) * 2014-10-31 2019-09-24 Orion Labs Group communication device management
US10447711B2 (en) * 2012-10-18 2019-10-15 White Ops Inc. System and method for identification of automated browser agents
US10462620B2 (en) * 2016-10-11 2019-10-29 Orion Labs Group communication forwarding to a secondary service
US10673787B2 (en) * 2017-10-03 2020-06-02 Servicenow, Inc. Virtual agent conversation service
US10687178B2 (en) * 2017-03-03 2020-06-16 Orion Labs, Inc. Phone-less member of group communication constellations
US10798028B2 (en) * 2016-09-20 2020-10-06 Google Llc Bot interaction
US20200372909A1 (en) * 2019-05-24 2020-11-26 Orion Labs Integrating logic services with a group communication service and a voice assistant service
US20210012774A1 (en) * 2019-07-09 2021-01-14 Schlumberger Technology Corporation Integrated virtual assistant in oil gas domain applications
US10897433B2 (en) * 2017-03-27 2021-01-19 Orion Labs Bot group messaging using general voice libraries
US10923125B2 (en) * 2018-05-25 2021-02-16 Orion Labs, Inc. Integrating logic services with a group communication service
US10929485B1 (en) * 2016-08-25 2021-02-23 Amazon Technologies, Inc. Bot search and dispatch engine
US20210064643A1 (en) * 2018-04-16 2021-03-04 British Gas Trading Limited Natural language interface for a data management system
US11258731B2 (en) * 2019-08-22 2022-02-22 Orion Labs, Inc. Bot proxy for group communication service

Patent Citations (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6604090B1 (en) * 1997-06-04 2003-08-05 Nativeminds, Inc. System and method for selecting responses to user input in an automated interface program
US6314410B1 (en) * 1997-06-04 2001-11-06 Nativeminds, Inc. System and method for identifying the context of a statement made to a virtual robot
US6363301B1 (en) * 1997-06-04 2002-03-26 Nativeminds, Inc. System and method for automatically focusing the attention of a virtual robot interacting with users
US6259969B1 (en) * 1997-06-04 2001-07-10 Nativeminds, Inc. System and method for automatically verifying the performance of a virtual robot
US20070294229A1 (en) * 1998-05-28 2007-12-20 Q-Phrase Llc Chat conversation methods traversing a provisional scaffold of meanings
US6629087B1 (en) * 1999-03-18 2003-09-30 Nativeminds, Inc. Methods for creating and editing topics for virtual robots conversing in natural language
US6301609B1 (en) * 1999-07-07 2001-10-09 Lucent Technologies Inc. Assignable associate priorities for user-definable instant messaging buddy groups
US7630986B1 (en) * 1999-10-27 2009-12-08 Pinpoint, Incorporated Secure data interchange
US6907571B2 (en) * 2000-03-01 2005-06-14 Benjamin Slotznick Adjunct use of instant messenger software to enable communications to or between chatterbots or other software agents
US6430602B1 (en) * 2000-08-22 2002-08-06 Active Buddy, Inc. Method and system for interactively responding to instant messaging requests
US6993555B2 (en) * 2000-08-22 2006-01-31 Conversagent, Inc. Method and system for interactively responding to instant messaging requests
US7146404B2 (en) * 2000-08-22 2006-12-05 Colloquis, Inc. Method for performing authenticated access to a service on behalf of a user
US7266585B2 (en) * 2000-08-22 2007-09-04 Colloquis, Inc. Method and system for using screen names to customize interactive agents
US7861252B2 (en) * 2001-03-21 2010-12-28 Andrzej Uszok Intelligent software agent system architecture
US7287057B2 (en) * 2001-11-15 2007-10-23 International Business Machines Corporation Accessing information using an instant messaging system
US20030131061A1 (en) * 2001-11-28 2003-07-10 Active Buddy, Inc. Transparent proxy server for instant messaging system and methods
US20030220972A1 (en) * 2002-05-23 2003-11-27 Ivan Montet Automatic portal for an instant messaging system
US7783486B2 (en) * 2002-11-22 2010-08-24 Roy Jonathan Rosser Response generator for mimicking human-computer natural language conversation
US7454469B2 (en) * 2003-12-22 2008-11-18 International Business Machines Corporation Method and system for instant messaging Bots specification using state transition methodology and XML
US9503866B2 (en) * 2004-08-16 2016-11-22 Qualcomm Incorporated Methods and apparatus for managing group membership for group communications
US7603413B1 (en) * 2005-04-07 2009-10-13 Aol Llc Using automated agents to facilitate chat communications
US7702665B2 (en) * 2005-06-14 2010-04-20 Colloquis, Inc. Methods and apparatus for evaluating semantic proximity
US7877349B2 (en) * 2005-06-14 2011-01-25 Microsoft Corporation Methods and apparatus for evaluating semantic proximity
US8086850B2 (en) * 2006-06-23 2011-12-27 Honeywell International Inc. Secure group communication among wireless devices with distributed trust
US8341221B2 (en) * 2006-10-05 2012-12-25 Verizon Patent And Licensing Inc. Instant messenger location buddy
US8224906B2 (en) * 2006-10-16 2012-07-17 Tieto Oyj Interacting with a user of a messaging client
US8019383B2 (en) * 2007-01-17 2011-09-13 Nokia Corporation Techniques to increase coverage of push-to-talk wireless networks
US20140279050A1 (en) * 2008-05-21 2014-09-18 The Delfin Project, Inc. Dynamic chatbot
US8775529B2 (en) * 2009-05-08 2014-07-08 Raytheon Company Bridging communications between communication services using different protocols
US9118462B2 (en) * 2009-05-20 2015-08-25 Nokia Corporation Content sharing systems and methods
US10360611B2 (en) * 2010-07-23 2019-07-23 Ebay Inc. Instant messaging robot to provide product information
US9219744B2 (en) * 2010-12-08 2015-12-22 At&T Intellectual Property I, L.P. Mobile botnet mitigation
US10783503B2 (en) * 2010-12-30 2020-09-22 Futurewei Technologies, Inc. System for managing, storing and providing shared digital content to users in a user relationship defined group in a multi-platform environment
US9064278B2 (en) * 2010-12-30 2015-06-23 Futurewei Technologies, Inc. System for managing, storing and providing shared digital content to users in a user relationship defined group in a multi-platform environment
US8438233B2 (en) * 2011-03-23 2013-05-07 Color Labs, Inc. Storage and distribution of content for a user device group
US9680658B2 (en) * 2011-12-07 2017-06-13 Qualcomm Incorporated Collaborative group communication method involving a context aware call jockey
US10447711B2 (en) * 2012-10-18 2019-10-15 White Ops Inc. System and method for identification of automated browser agents
US9705840B2 (en) * 2013-06-03 2017-07-11 NextPlane, Inc. Automation platform for hub-based system federating disparate unified communications systems
US20150023342A1 (en) * 2013-07-17 2015-01-22 Electronics And Telecommunications Research Institute Method for operating of peer aware communication network
US10165017B2 (en) * 2014-03-12 2018-12-25 Tencent Technology (Shenzhen) Company Limited Method and device for controlling peripheral devices via a social networking platform
US10164930B2 (en) * 2014-03-12 2018-12-25 Tencent Technology (Shenzhen) Company Limited Method and device for controlling peripheral devices via a social networking platform
US9661445B2 (en) * 2014-05-02 2017-05-23 Qualcomm Incorporated Methods and apparatus for integrating bluetooth devices into neighbor aware networks
US10116596B2 (en) * 2014-09-29 2018-10-30 International Business Machines Corporation Personalizing data system components and data sources as chatbots in a group chat session
US10223432B2 (en) * 2014-09-29 2019-03-05 International Business Machines Corporation Interactive social media access to data systems
US10425774B2 (en) * 2014-10-31 2019-09-24 Orion Labs Group communication device management
US9936010B1 (en) * 2015-05-19 2018-04-03 Orion Labs Device to device grouping of personal communication nodes
US10305686B2 (en) * 2015-10-02 2019-05-28 Orion Labs Encrypted group communications
US20170289070A1 (en) * 2016-03-30 2017-10-05 Microsoft Technology Licensing, Llc Making a Dialogue Available To an Autonomous Software Agent
US10321166B2 (en) * 2016-06-07 2019-06-11 Orion Labs Supplemental audio content for group communications
US10862961B2 (en) * 2016-06-21 2020-12-08 Orion Labs, Inc. Discovery and formation of local communication group
US10404794B2 (en) * 2016-06-21 2019-09-03 Orion Labs Discovery and formation of local communication group
US20190141486A1 (en) * 2016-07-05 2019-05-09 Huawei Technologies Co., Ltd. Service processing method, device, and system
US10410107B2 (en) * 2016-07-26 2019-09-10 Salesforce.Com, Inc. Natural language platform for database system
US10929485B1 (en) * 2016-08-25 2021-02-23 Amazon Technologies, Inc. Bot search and dispatch engine
US10798028B2 (en) * 2016-09-20 2020-10-06 Google Llc Bot interaction
US10462620B2 (en) * 2016-10-11 2019-10-29 Orion Labs Group communication forwarding to a secondary service
US10687178B2 (en) * 2017-03-03 2020-06-16 Orion Labs, Inc. Phone-less member of group communication constellations
US20180278557A1 (en) * 2017-03-27 2018-09-27 Orion Labs Bot group messaging method
US20180309805A1 (en) * 2017-03-27 2018-10-25 Orion Labs Bot group messaging using bot-specific voice libraries
US10965623B2 (en) * 2017-03-27 2021-03-30 Orion Labs, Inc. Shared and per-user bot group messaging method
US20180278555A1 (en) * 2017-03-27 2018-09-27 Orion Labs Shared and per-user bot group messaging method
US20210075835A9 (en) * 2017-03-27 2021-03-11 Orion Labs Bot group messaging using bot-specific voice libraries
US10897433B2 (en) * 2017-03-27 2021-01-19 Orion Labs Bot group messaging using general voice libraries
US10419489B2 (en) * 2017-05-04 2019-09-17 International Business Machines Corporation Unidirectional trust based decision making for information technology conversation agents
US10673787B2 (en) * 2017-10-03 2020-06-02 Servicenow, Inc. Virtual agent conversation service
US20190188590A1 (en) * 2017-12-15 2019-06-20 Microsoft Technology Licensing, Llc Chatbot Integrating Derived User Intent
US20210064643A1 (en) * 2018-04-16 2021-03-04 British Gas Trading Limited Natural language interface for a data management system
US10923125B2 (en) * 2018-05-25 2021-02-16 Orion Labs, Inc. Integrating logic services with a group communication service
US20200372909A1 (en) * 2019-05-24 2020-11-26 Orion Labs Integrating logic services with a group communication service and a voice assistant service
US20210012774A1 (en) * 2019-07-09 2021-01-14 Schlumberger Technology Corporation Integrated virtual assistant in oil gas domain applications
US11258731B2 (en) * 2019-08-22 2022-02-22 Orion Labs, Inc. Bot proxy for group communication service

Also Published As

Publication number Publication date
US11258731B2 (en) 2022-02-22
US20210058346A1 (en) 2021-02-25

Similar Documents

Publication Publication Date Title
EP4120166A1 (en) Blockchain message processing method and apparatus, computer and readable storage medium
KR102161681B1 (en) Device identifier dependent operation processing of packet based data communication
US10333904B2 (en) Voice access and control
US20190172282A1 (en) Blockchain managed storage
WO2021047193A1 (en) Voice processing method and apparatus, device, and computer storage medium
US10171410B2 (en) Cross-mode communiation
JP7427016B2 (en) dynamic translation
CN108287894B (en) Data processing method, device, computing equipment and storage medium
KR20180091705A (en) Authentication of packetized audio signals
US20160314115A1 (en) Cross-platform messaging application
US20220141161A1 (en) Bot proxy for group communication service
WO2021047197A1 (en) Speech processing method, apparatus and device, and computer storage medium
US11457046B2 (en) Distributed network resource security access management system and user portal
US10942039B2 (en) Methods and systems for managing communication sessions
US8826026B2 (en) Systems and methods for tracking electronic files in computer networks using electronic signatures
WO2023231681A1 (en) Account creation method, internet of things multi-tenant system, device, program, and medium
US20220109665A1 (en) Method and system for capturing data from an external cloud computing platform
US20220200962A1 (en) Method and system for providing an enterprise software distribution platform
US11687640B2 (en) Method and apparatus for automating process of receiving verification documentation
US11379596B2 (en) Method and system for ensuring authentication compatibility
US10848469B1 (en) Dynamic multi-device authentication and access control system
KR102461836B1 (en) Apparatus and method for connecting chatbot
US9094439B2 (en) End network decider
US20120002794A1 (en) System and method for voicemail to text conversion
US11822690B1 (en) Data egress validation

Legal Events

Date Code Title Description
AS Assignment

Owner name: ORION LABS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ALBRECHT, GREG;ROBBINS, JESSE;SIGNING DATES FROM 20200807 TO 20200916;REEL/FRAME:058795/0796

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE