User interfaces for customer relationship management (CRM) applications and other applications have traditionally been text-based, including those applications that operate within a web browser. Communication applications, such as texting applications, have recently been integrated with the text-based interface of CRM applications, but such texting applications do not resemble texting applications of a mobile computing device that a user is familiar with. Such integrated texting applications typically require training to use, and are not intuitive for users.
The accompanying drawings, which are included to provide a further understanding of the disclosed subject matter, are incorporated in and constitute a part of this specification. The drawings also illustrate implementations of the disclosed subject matter and together with the detailed description explain the principles of implementations of the disclosed subject matter. No attempt is made to show structural details in more detail than can be necessary for a fundamental understanding of the disclosed subject matter and various ways in which it can be practiced.
Various aspects or features of this disclosure are described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In this specification, numerous details are set forth in order to provide a thorough understanding of this disclosure. It should be understood, however, that certain aspects of disclosure can be practiced without these specific details, or with other methods, components, materials, or the like. In other instances, well-known structures and devices are shown in block diagram form to facilitate describing the subject disclosure.
Implementations of the disclosed subject matter provide a combined virtual mobile phone with a text-based application to form an integrated user interface (UI) to be displayed in a browser. The virtual mobile device may be emulated, and may have one or more functions such as text messaging, voice dialing, video calling, email messaging, and the like, which may mirror those of a hardware mobile device. The integrated interface may reduce the amount of time to train users on application user interfaces (UIs).
Present systems provide applications which have generic text messaging interfaces that only mimic a texting interface of a mobile device (e.g., a smart phone). Users of such applications must typically receive training to use such interfaces, as they are not similar enough to the interfaces of mobile devices. The present invention provides a full emulation and/or virtualization of a mobile device within a web-based application.
Implementations of the disclosed subject matter may display an obtained customer name on a virtual mobile device portion of an integrated interface in association with a communication from a mobile device of a customer. In some implementations, an enterprise name may be transmitted to a mobile device of a customer to be displayed in association with a communication between the virtual mobile device and the mobile device of a customer.
The integrated interface may include a text-based interface for an application, such as interface 300 shown in
The interface of the virtual mobile device may display a customer name based on a communication from a customer, such as shown in arrangement 400a of
The communication and/or the name of the customer may be provided to the enterprise server 404. The enterprise server 404 may retrieve one or more records associated with the customer name from the enterprise database 406. The interface of the virtual mobile device 402 may display the name of the customer initiating the communication. The text-based portion of the integrated interface (e.g., text-based interface 300 shown in
Implementations of the disclosed subject matter provide advantages over conventional CNAM (Caller Name delivery), used in telephone networks to provide name identification of the calling party. Interface 450 of
In some implementations, the hardware mobile device may be any mobile device and/or computing device that may execute an operating system version of the hardware mobile device (e.g., a smartphone or the like). The mobile device and/or computing device may be a tablet device, wearable computing device, or the like.
At operation 120, the server may receive an indication of a communication from a mobile device (e.g., customer device 520a shown in
At operation 130, the server may obtain a customer name associated with the mobile device based on at least one of a certificate that includes the customer name retrieved by the server from a third party server, and a database record that includes the customer name that is retrieved by the server from a database.
For example, the enterprise server 502 shown in
At operation 140, the obtained customer name may be displayed on the virtual mobile device portion of the integrated interface in association with the communication from the mobile device of the customer. For example, as shown in
The user interface emulated by the virtual mobile device may be different based on the specific type of hardware mobile device and/or a specific type of operating system version of the hardware mobile device. For example, different hardware mobile devices may operate differently, and may have different operating system versions. Applications that are executed by the hardware mobile device may have different user interfaces based on the operating system version and/or hardware mobile device. The operations emulated by the virtual mobile device may be different, based on the specific type of hardware mobile device and/or the specific operating system version of the hardware mobile device.
In some implementations, the server may receive a selection for a specific type of hardware mobile device and/or a specific type of operating system version of a hardware mobile device from a plurality of hardware mobile devices. For example, a user may make a selection in the integrated interface (e.g., integrated interface 320 shown in
At operation 210, the server (e.g., enterprise server 502 shown in
At operation 220, the server may receive an indication of a selection from the integrated interface of the browser for one or more communication operations (e.g., a texting operation, a phone operation, a video communication, an email operation, or the like) of the virtual mobile device to transmit a communication from the virtual mobile device to a mobile device of a customer (e.g., customer mobile device 520 shown in
At operation 230, the server may obtain an enterprise name to be displayed on the mobile device of the customer (e.g., enterprise name 525 displayed on customer mobile device 520 shown in
At operation 240, the obtained enterprise name may be transmitted to the mobile device of the customer (e.g., customer mobile device 520 shown in
In some implementations of method 200, the user interface emulated by the virtual mobile device may be different based on the specific type of hardware mobile device, the specific type of operating system version of the hardware mobile device, and/or the operations emulated by the virtual mobile device may be different based on the specific type of hardware mobile device. For example, the interface for the virtual mobile device 504 shown in
In some implementations, the server (e.g., enterprise server 502 shown in
The log 608 may be a database to log one or more communications between the virtual mobile device 602 and, for example, customer mobile devices (e.g., the customer's mobile device 520 shown in
Interconnects may provide interconnection such as dedicated communications lines, data paths, application programming interfaces (APIs), or the like to interface with a telecommunications provider, over-the-top (OTT) service provider, or the like.
Implementations of the presently disclosed subject matter may be implemented in and used with a variety of component and network architectures.
As discussed in further detail herein, the device 700 may be a single device, such as a mobile computing device, in a network of multiple computers. In some implementations, the device 700, 900 may be used to request data from one or more services, processing received data, and/or displaying a monitoring report from enterprise server 800. As shown in
If the enterprise server is communicatively coupled to a multitenant system (e.g., database 406 shown in
The device 700 may include a bus 710 which interconnects major components of the computer 700, such as a central processor 740, a memory 770 (typically RAM, but which can also include ROM, flash RAM, or the like), an input/output controller 780, a user display 720, such as a display or touch screen via a display adapter, a user input interface 760, which may include one or more controllers and associated user input or devices such as a touchscreen, a keyboard, mouse, Wi-Fi/cellular radios, microphone/speakers and the like, and may be communicatively coupled to the I/O controller 780, fixed storage 730, such as a flash storage, stolid state memory, and the like, and a removable media component 750.
The bus 710 may enable data communication between the central processor 740 and the memory 770, which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted. The RAM may include the main memory into which the operating system, development software, testing programs, and application programs are loaded. The ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components. Applications resident with the device 700 may be stored on and accessed via a computer readable medium, such as a storage medium 730, 750, 770.
The fixed storage 730 can be integral with the device 700 or can be separate and accessed through other interfaces. A network interface 790 can provide a direct connection to a remote server via a telephone link, to the Internet via an internet service provider (ISP), or a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence) or other technique. The network interface 790 can provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like. For example, the network interface 790 may enable the computer to communicate with other computers and/or storage devices via one or more local, wide-area, or other networks.
Many other devices or components (not shown) may be connected in a similar manner (e.g., data cache systems, application servers, communication network switches, firewall devices, authentication and/or authorization servers, computer and/or network security systems, and the like). Conversely, all the components shown in
Device 900 may be similar to device 700, and may be a mobile device, a computer, or the like that may be communicatively coupled to enterprise server 800. Device 900 may be used by an agent, representative, associate, or the like. Device 900 may display the integrated interface 320 shown in
One or more of the database systems 1200a-d may include at least one storage device. For example, the storage can include memory, fixed storage, removable media, or the like. The tenant can have tenant data stored in an immutable storage of the at least one storage device associated with a tenant identifier.
In some implementations, the one or more servers shown in
The systems and methods of the disclosed subject matter can be for single tenancy and/or multitenancy systems. Multitenancy systems can allow various tenants, which can be, for example, developers, users, groups of users, and/or organizations, to access their own records (e.g., tenant data and the like) on the server system through software tools or instances on the server system that can be shared among the various tenants. The contents of records for each tenant can be part of a database containing that tenant. Contents of records for multiple tenants can all be stored together within the same database, but each tenant can only be able to access contents of records which belong to, or were created by, that tenant. This may allow a database system to enable multitenancy without having to store each tenants' contents of records separately, for example, on separate servers or server systems. The database for a tenant can be, for example, a relational database, hierarchical database, or any other suitable database type. All records stored on the server system can be stored in any suitable structure, including, for example, a log structured merge (LSM) tree.
Further, a multitenant system can have various tenant instances on server systems distributed throughout a network with a computing system at each node. The live or production database instance of each tenant may have its transactions processed at one computer system. The computing system for processing the transactions of that instance may also process transactions of other instances for other tenants.
Some portions of the detailed description are presented in terms of diagrams or algorithms and symbolic representations of operations on data bits within a computer memory. These diagrams and algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “transmitting,” “outputting,” “receiving,” “transmitting,” “displaying.” “emulating,” or the like refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
More generally, various implementations of the presently disclosed subject matter can include or be implemented in the form of computer-implemented processes and apparatuses for practicing those processes. Implementations also can be implemented in the form of a computer program product having computer program code containing instructions implemented in non-transitory and/or tangible media, such as hard drives, solid state drives, USB (universal serial bus) drives, CD-ROMs, or any other machine readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter. Implementations also can be implemented in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing implementations of the disclosed subject matter. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits. In some configurations, a set of computer-readable instructions stored on a computer-readable storage medium can be implemented by a general-purpose processor, which can transform the general-purpose processor or a device containing the general-purpose processor into a special-purpose device configured to implement or carry out the instructions. Implementations can be implemented using hardware that can include a processor, such as a general purpose microprocessor and/or an Application Specific Integrated Circuit (ASIC) that implements all or part of the techniques according to implementations of the disclosed subject matter in hardware and/or firmware. The processor can be coupled to memory, such as RAM, ROM, flash memory, a hard disk or any other device capable of storing electronic information. The memory can store instructions adapted to be executed by the processor to perform the techniques according to implementations of the disclosed subject matter.
The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit implementations of the disclosed subject matter to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described to explain the principles of implementations of the disclosed subject matter and their practical applications, to thereby enable others skilled in the art to utilize those implementations as well as various implementations with various modifications as can be suited to the particular use contemplated.
Number | Name | Date | Kind |
---|---|---|---|
5477263 | O'Callaghan | Dec 1995 | A |
5570241 | Nielsen | Oct 1996 | A |
5594492 | O'Callaghan | Jan 1997 | A |
5635979 | Kostreski | Jun 1997 | A |
8694031 | Lew | Apr 2014 | B2 |
8918085 | Lew | Dec 2014 | B2 |
9271129 | Lew | Feb 2016 | B2 |
9356907 | Lew | May 2016 | B2 |
9532197 | Lew | Dec 2016 | B1 |
9854415 | Lew | Dec 2017 | B2 |
10064049 | Lew | Aug 2018 | B1 |
10187761 | Lew | Jan 2019 | B2 |
10348671 | Lew | Jul 2019 | B2 |
10360309 | Chisholm | Jul 2019 | B2 |
10439895 | Lew | Oct 2019 | B2 |
10455377 | Lew | Oct 2019 | B2 |
10505889 | Lew | Dec 2019 | B2 |
10715522 | Lew | Jul 2020 | B2 |
10819635 | Lew | Oct 2020 | B2 |
20020116496 | Lew | Aug 2002 | A1 |
20020116655 | Lew | Aug 2002 | A1 |
20020116721 | Dobes | Aug 2002 | A1 |
20020138561 | Chatfield | Sep 2002 | A1 |
20030105763 | Chatfield | Jun 2003 | A1 |
20090086947 | Vendrow | Apr 2009 | A1 |
20090209298 | Abeta | Aug 2009 | A1 |
20120221962 | Lew | Aug 2012 | A1 |
20120226759 | Lew | Sep 2012 | A1 |
20130117742 | Newell | May 2013 | A1 |
20130310089 | Gianoukos | Nov 2013 | A1 |
20140198796 | Lew | Jul 2014 | A1 |
20150163654 | Lew | Jun 2015 | A1 |
20150382263 | Jain | Dec 2015 | A1 |
20160073243 | Lew | Mar 2016 | A1 |
20160112875 | Kasravi | Apr 2016 | A1 |
20160127358 | Engelking | May 2016 | A1 |
20160255041 | Lew | Sep 2016 | A1 |
20170039037 | Howett | Feb 2017 | A1 |
20170104959 | Bracken | Apr 2017 | A1 |
20180097756 | Lew | Apr 2018 | A1 |
20190007355 | Lew | Jan 2019 | A1 |
20200026966 | Nagarajan | Jan 2020 | A1 |
20200036674 | Lew | Jan 2020 | A1 |
20200220837 | Lew | Jul 2020 | A1 |
20200252303 | Lew | Aug 2020 | A1 |
20200252379 | Lew | Aug 2020 | A1 |
20200252447 | Lew | Aug 2020 | A1 |
20200296098 | Lew | Sep 2020 | A1 |
Entry |
---|
Old Guy Geek (Microsoft Your Phone App—Make Cell Phone Calls From Your Desktop or Laptop, published on YouTube Oct. 10, 2019) (Year: 2019). |
AsoftClick (Make and Receive Phone Calls on your Windows 10 PC [with Your Phone app], published on YouTube on Mar. 17, 2020) (Year: 2020). |
Microsoft Teams (How to Make a Phone Call and How To Receive Calls, published Jun. 3, 2020) (Year: 2020). |
Number | Date | Country | |
---|---|---|---|
20220004403 A1 | Jan 2022 | US |