The present invention is related to mobile device application and more particularly, to a methods and application for mobile device users to make audio or video call to mobile device using a readable code such as image-based bar code, QR code, or the like with a mobile device having built-in camera.
As camera price goes down dramatically in recent years, camera doorbell device such as Amazon Ring gains popularity. Devices such as Ring, serves both as the doorbell as well as a modern mechanism for home owners to inspect the person at the front door prior to opening the door. Through the Internet, a homeowner can have access to front door view even when they are at another location, e.g., work. Furthermore, the homeowner can also remotely communicate with the visitor via a speaker and microphone on the doorbell device from own mobile device. However, a typical camera doorbell device costs around $150.00 to $200.00, not to mention the cost of installation and maintenance. While such a cost is not a concern for medium to high income earners, it could be a burden for low-income earners. Presently, there is no such mechanism for people living in a building such as an apartment, condominium, townhome, etc., or gated community. People living in such a community and building still very much rely on a traditional camera-less Intercom system to communicate with visitors. As housing and rental price sky-rockets in recent years, shared living space has also become phenomenally common place, especially in crowded cities such as San Francisco and New York. The need for individual contact in such living environment has become complicated as an individual resident sharing an apartment or home may not want to bother other residents when his visitor is knocking on the door or ring the doorbell. One way to work around this issue is for a resident to post a sticker note on the door or in the lobby, in case of a condo/apartment building, for his visitors to call his/her own mobile phone instead. Yet, the dilemma is that the resident may not want to expose own mobile phone number in public place due to privacy concern. Similarly, as robot call has now become an annoying spam and damaging scam epidemic, people have become more cautious when exposing their phone number online in any forms, such as email, classified ads, e-commerce websites, etc. That, of course, is without losing the convenience that modern technology offers.
In a related development of consumer trend, the QR code is gaining in popularity all over the world for use in many applications. QR code is a cryptic image that is linked to a text message, an image or an Internet resource link (URL). Today, since Internet is readily accessible everywhere on mobile device, mobile apps are widely available to scan and link a QR code image to a specific preset information resource, e.g., a web site, a business contact, a product information, etc., or a computing operation such as processing a payment. For example, to retrieve information about a product which is tagged with a QR code, smart phone user opens the camera app, simply aims the back camera to scan the QR code image of the product, the camera app then automatically translates the QR code image to a preset weblink (URL) and launching the web browser for accessing the information on the product on the Internet. QR code image can be generated in a variety of graphic formats such as EPS or SVG vector graphic, as well as high-resolution PNG, GIF or JPEG raster graphics format and use them where they see fit, e.g., printing the image on a sticker, business card, etc., or embedding it directly on own website for visitors to retrieve contact information without exposing contact information on the web page; thus, avoiding contact information being harvested by web crawler tool for spamming. Today, QR code image comes in a variety of mediums, e.g., on leaflets, posters, business cards, web page, or products. In China, people just have to scan a QR code to purchase and make payment for a product on the shelf or on a website. As time progresses and market acceptance skyrockets, QR code will surely find its way into various practical applications.
Accordingly, the present invention comprises methods and application for mobile device users to make contact with one another without exposing own contact phone number using a QR code comprising a mobile app executing on a plurality of mobile device and call service system coupled together on a computer network such as the Internet. The said mobile app is executed on a user's mobile device to place a voice or video call or to receive and answer calls initiated from the said call service system. The said call service system further comprises a user management system and a call server that are further coupled with a backend database system, storing a user database and a call database over a computer network such as the Internet. The user database further comprises a user profile table and a group table. The said call database contains a call session table and a ping tag table. The said user profile table contains user registration data, user authentication data, abuse reports and other operation-related data collected from the user's usage pattern and user's device. The group table is used to establish group relationship among several users, e.g., members of a family or business, residents of a living community, etc. The said call session table contains list of call sessions. Each call session further contains a caller id, one or more caller id(s), call mode, call status and other call data analytic information. The said ping tag table contains list of ping tags. Ping tag is a contact tag representing a group of one or more call recipients. It contains information identifying the call recipients and other call-related options. Each ping tag entry stores various call settings and a list of one or more call recipient. The call settings specify several options such as how an incoming call will be processed by the call service system, the type of call, e.g., audio or video, security options, PIN code, time limit, etc. The QR code aforementioned is an encoded representation of a call service offered by the call service system accessible via a web resource link (URL). The said URL comes with a ping tag identifier included. The call service system will use the ping tag identifier to identify the call recipients and call processing options stored in the ping tag itself.
The above and still further features and advantages of embodiments of the present invention will become apparent upon consideration of the following detailed description of embodiments thereof, especially when taken in conjunction with the accompanying drawings, and wherein:
The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this platform, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including but not limited to. To facilitate understanding, like reference numerals have been used, where possible, to designate like elements common to the figures. Optional portions of the figures may be illustrated using dashed or dotted lines, unless the context of usage indicates otherwise.
The following description includes the preferred best mode of one embodiment of the present invention. It will be clear from this description of the invention that the invention is not limited to these illustrated embodiments, but the invention also includes a variety of modifications and embodiments thereto. Therefore, the present description should be seen as illustrative and not limiting. While the invention is susceptible to various modifications and alternative constructions, it should be understood, that there is no intention to limit the invention to the specific form disclosed, but, on the contrary, the invention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention as defined in the claims.
In any embodiment described herein, the open-ended terms “comprising,” “comprises,” and the like (which are synonymous with “including,” “having” and “characterized by”) may be replaced by the respective partially closed phrases “consisting essentially of,” consists essentially of,” and the like or the respective closed phrases “consisting of,” “consists of, the like.
As used herein, the singular forms “a”, “an”, and “the” designate both the singular and the plural, unless expressly stated to designate the singular only.
The present invention comprises a system and a call app, ‘the app’ for short, executing on mobile phone devices to allow users of the app to place a video call to one or more users of the app by scanning a QR code image. The app often comes in the form of an app pre-installed on a mobile device if the user is a registered user and have the app installed on own device or it could come in the form of a web browser script dynamically downloaded to a mobile device for execution in a web browser context should the user has not installed the app on own device. The app and the script are functionally equivalent in terms of call-making and call-receiving operations and therefore, commonly refers to as ‘the app’. The only difference is how they are executed which is depending on whether the app is installed on the user's device or not. The app and the system are coupled to each another over a computer network such as the Internet.
The system comprises a user management system (102) and a call service system (104), aka. ‘Call server’ for short. The service systems are further coupled to the backend database system over a computer network that comprises a user database (106) and a call database (108). The user management system is mainly responsible for registering and authenticating users for service as well as performing administrative user management tasks requested by the system administrator. Once registered, a globally unique user identifier (ID) and associated authentication password are issued to the user in association with a unique identifier, such as the device's phone number or user's email address, for user's identification. During the registration, the user can also input some other user profile information such as name, email address, phone number, avatar image, etc. Additionally, analytic data such as black-listed counter, user's device information, e.g., manufacturer, device type, OS version, etc., are automatically collected and recorded every time the user's logon to the service system for use in determination of operation details as well as analytics. The user information is stored in a respective user profile record of the user profile table of the user database. The call service database maintains at least a call session table, a ping tag table and a black list table.
The call session table is used to keep track of past and ongoing calls. A call session record contains information relating to a call, e.g., caller id, ping tag id, call-start and call-end timestamps, call status, list of active call participants, call management and analytic data. The ping tag id is used to retrieve tag settings for processing and call recipient list for signaling. The call participant list contains a list of caller id and qualified call recipient ids. Each participant entry maintains a call status which is either ACTIVE, i.e., join call, INACTIVE, i.e., not join, or LEFT, i.e., hang up. The LEFT status differs from INACTIVE in which it indicates the associated call participant had actually participated in the call, while INACTIVE status indicates a call participant has never participated in the call. Such fine-grained status management is useful for data analytics tool at a later time. The ping tag table contains list of ping tag record entries, each of which stores a unique ping tag id, owner's user id, call status, call-related settings and a list of one or more call recipient. In its simplest form, the call settings specify some call-related options such as how an incoming call will be processed, aka. call routing mode, and the type of call, e.g., audio or video. More options will be added to the call settings in various later embodiments. The black list table stores a list of callers who are black-listed by ping tag owners from calling them using their own ping tags. Each entry in this table contains a timestamp when the black listing event occurs, the user id of the owner of a ping tag, the user id of the black-listed caller and the ping tag id. Once a caller is black-listed against a ping tag, the caller will not be able to initiate call request from the specified ping tag. Also noted that, throughout the description, screen images of SQUAREPING app will be used as examples for easy visualization of the present invention since the app is an actual commercial implementation of the app of present invention as depicted in
However, they should not be construed as a limitation to the user interface process of the present invention. In fact, those skilled in the art should recognize that there are many ways a user interface can be presented to the users depending on preferences. Today, all mobile devices such as Apple iPhone and Android phone come with a default camera app that can be used to scan a QR code image and translate it to an executable web command (or invoke an app installed on the device) when the user taps on. The end-user mobile device is expected to subscribe to, at least, data network services from mobile phone carriers and, therefore, at minimum, is capable of establishing network access to cloud-based data services and digital video call over the Internet. Those skilled in the art should readily recognize that cloud service deployment is modern technology that enables a service to scale across multiple geographical areas for serving world-wide users with reasonable service response time. In addition to the usual connection to mobile phone network for phone service, the call app of the present invention is required to establish a persistent communication channel with the service system for sending and receiving messages when possible. The communication channel may be over a well-known transport protocol such as TCP or UDP or a message-based push notification service such as Google Cloud Messaging (GCM) or Apple Push Notification (APN) service, depending on the device operating system. By default, a unique push notification token is generated and automatically assigned to a device after a user starts the app on a device. This token is in effect during the lifetime of the logon session and used by the server to address push notification messages to the associated device. The token is recorded in the respective user's record of the user database on the service system and, therefore, retrievable using the user's id. Additionally, on startup, the call server also requests a server key from the push notification service for later use in sending notification messages to user devices. However, since the video calls are made using digital technology over data network, several technologies are available for providing support for such type of calls, from server-centric architecture, e.g., the well-known Jitsi video conference call server, to peer-to-peer video call technology, e.g., WebRTC protocol. Transport connections for data and video channels are necessary to provide support for both protocols. Additionally, the control channel for establishing peer-to-peer WebRTC call uses ad-hoc transport connections for relaying request and response messages, aka. call signals, between the caller, the callees and the call server. On the call server side, the handle of this transport connection, well-known as ‘socket’, is recorded in association with the user id and is retrievable by the call server for use in receiving and sending messages from or to call parties of a call session. Similarly, database structures and database operations such as CRUD, socket operations, API calls, call signaling, media stream construction and relinquishing, etc. are well-known prior arts. Those skilled in the art should be able to implement them with ease. Therefore, the implementation of such well-known prior arts will not be described in details in the description. Also, unless otherwise stated, all communications between the user's device with other users' device or with the said system will be carried out in secure manner using appropriate secure protocols in order to prevent middle-man attack, eavesdrop as well as data alteration while in transit on the network. Throughout the embodiments as described below, whenever the app or the service system receives a message from the other modules of the system, a validation step is automatically performed on the message to ensure given parameters are valid, e.g., the caller, callee(s), the opcode, etc., prior to message processing. This validation process also includes whether a caller is black-listed by the system or by a ping tag owner by querying the black-listed table. Furthermore, cache storage for information dynamically created during the processing of an operation is generally persistent memory unless otherwise stated. The contact list as mentioned in the embodiments is a list of contacts from the phone app contact list. Although, some of them may be registered users of the call service system of the present invention. In call setup over data network like that of the present invention, a call signal, e.g., call request, accept, reject, hang-up, etc., is delivered using either a corresponding REST API call or network request to the call server passing relevant data about the parties in the call and related call session id. Call signal is another form of short message over a data connection, which is used to convey the status of a call at a transmitting party to the call server which is tracking and maintaining the call status of a call session.
Additionally, some terms frequently used in the description of the embodiments need to be clarified here to avoid confusion, e.g., ‘mobile device’ is generally described a hand-held device capable of wireless connectivity for placing phone call and establishing data connection over the Internet, ‘caller’ refers to the user who initiates a call, ‘callee’ refers to a call recipient. ‘Call screen’, as depicted in
Ping tag is a QR code image to be printed on a print material such as sticker to be posted on an object or a digital representation of the image to be shared online. The code that is used to generate the image is a well-known web URL referencing a computer process on a cloud service system such as SQUAREPING site. An example of such URL is as below:
https://ping.squareping.com/ping/<ping-tag-id>
where ‘ping.squareping.com’ is the domain name of the site providing service. ‘ping’ is the name of the service and <ping-tag-id> is a computer-generated unique identifier to identify a specific ping tag in the system. Each ping tag is recorded in SQUAREPING system using ping tag table aforementioned of which record stores the unique identifier of a ping tag and associated operational settings.
Before a user can receive a call from a caller using the method of the present invention, s/he must set up and create a ping tag. Using the app, a user sets up desired tag options and a list of one or more call recipient, which often includes the owner of the ping tag. Once a ping tag is setup and created, a corresponding QR code image can then be generated from it and posted where appropriated for others to scan and place a call to the call recipient(s) of the tag when necessary. A call recipient should be ready to receive incoming call from the call service system of the present invention using the app of the present invention.
Entry—to be printed and applied on entry door for visitors to call resident
Pet—to be printed and applied on pet tag for calling pet's owner
Asset—to be printed and applied on personal belongings and/or business assets such as laptop, phone, computer system, printer, vehicle, bike, motorcycle, scooter, etc.
Luggage—to be printed and applied on travel luggage for recovery
Package—to be printed and applied on shipping package for recovery
ID—to be printed and applied on children's, elderly's, medical patient's identification tag
Contact—to be printed and applied on print materials such as business card, product brochure, flyer, etc. or shared online such as email, website, social networks, etc. as a means for contact in place of or in addition to phone number.
Each type of tags requires a different set of profiles. For example, refer to
It is noted that users who are added to a call recipient list of a ping tag of another user will be able to view the ping tag on their app so they are aware of their participation as a call recipient of a ping tag but they cannot edit the ping tag settings. Only the ping tag owner can change a ping tag setting. The UserIds field is a shorthand notation of one or more call recipients selected from the contact list of the user's device. Refer to
Now, refer to
Back to
https://ping.squareping.com/ping/<ping-tag-id>
It is noted that the ‘<ping-tag-id>’ denotes the ping tag id previously returned from the call service system. Those skilled in the art should easily recognize that the URL references a web-based call app on the call service system for handling the call and the ping tag id itself identifies the call destination by retrieving the list of call recipients associated with the ping tag. This URL is then used to generate the QR code image when the user needs it. Refer to
After a tag is created as aforementioned, the user can view the tag on a ping tag management screen as depicted in
Now, refer to
It is noted that the call screen displays different information for different tag type. Access code is an optional field, it is prompted for input and verification only if it was preset by the tag owner. All tag types allow the user to specify optional alternate contact information such as email, phone number, social network id, etc. for reaching out to the user by other means if necessary. The alternate contact information is only displayed on the call screen if they are specified during the tag setup process. Such pre-call call screen is designed to give the user more flexibility in designing contact arrangement for specific application. However, those skilled in the art should recognize that, for certain applications, except for prompting the user for access code, proceeding directly to placing the call may be a preferred execution in order to minimize user's interaction and therefore, the intermediate call screen display may not be desirable or necessary in those scenarios.
Now, refer to
At this juncture, only the caller entry in the participant list is marked as ACTIVE to indicate the caller has joined the call. Conversely, all call recipient entries are marked as INACTIVE. Next, the call server sets a call timeout for disconnecting the call in the event none of the callees answers the call. Lastly, the call server sets the call session status to ‘CONNECTING’ and then responds to the call request with a success code along with the call session id (1310). If there is any error occurs during the call establishment process as described above, the call server will respond to the requesting caller app with a negative response along with an appropriate error code (1302). If the caller's app receives such a negative response, it will terminate the call and display a corresponding error message on the app's call screen so the caller is aware of the call failure. Assuming that the caller app receives a positive response from the call server, the caller app then proceeds with opening a persistent socket connection to the call service system for receiving future call signals from the call server, while it is setting up a live video stream of the caller's front camera and preparing for transmitting to a callee's device once a callee picks up the call. The video stream is transmitted using a video streaming protocol, which may be a server-centric or peer-to-peer protocol as aforementioned. Refer to
In the event none of the call recipients responds to the incoming event, the call session will eventually timeout causing the call service system to end the call by sending a No Answered signal to the caller app and a Call Disconnect signal to the callee app to end the call session on both ends of the call. As the caller app receives the No Answered signal from the call server, it performs a series of actions to end the call such as terminating the live video stream and disconnects the signaling socket with the call server. Then, it displays ‘No answer’ message (1602) on the call screen as depicted in
Now, refer to
When the call server receives this signal, it looks up the call session table using the call session id, assuming the call session status is still CONNECTING, the call server changes the call session status to ‘CONNECTED’, records the call-start timestamp, marks the accepting call recipient entry in the call participant list as ACTIVE, then sends both the caller app and accepting callee app a Call Connected signal.
When the caller and callee apps receive the Call Connected signal, they both start establishing and exchanging video and audio streams for entering conversational screen. Once the call has been accepted by callee, the call server sends a Call Disconnect signal to all other callees' device and terminates the socket connections with them, effectively blocking the other callees from any further interactions. When a callee app on a callee's device receives a Call Disconnect signal, it performs a series of cleanup operations for ending the call on the device as aforementioned. In the event the callee rejects the call (1714), a Call Reject API (call-hang up signal) will be sent to the call server as below:
Upon receiving this signal, if the callee is the only call recipient, the call server changes the call status to ‘DISCONNECTED’ and then sends a CallDisconnected signal to the caller app for it to end the call (1716) as aforementioned. Otherwise, the call server will continue to wait for other call recipients' response until the call is timed out.
Back to
Upon receiving this signal, the call server adds the caller id and the ping tag id associated with the call session to the black list table, which, in effect, prevents the caller from placing call using the ping tag in the future. Next, it sends a CallDisconnected signal to the caller's device to end the call. It is noted that only the owner of the tag would have the privilege of blocking an incoming call. Back to
Refer to
to the call server who then relays the signal to the other call party, effectively forcing both ends of the call to shut down own media streams and end the call. Meanwhile, the call server updates the status of the call session as ‘DISCONNECTED’ and records a call-end timestamp for the call session.
It is noted that, as a convenience to the app user, the app will log all incoming/outgoing calls for review and redial/callback (1902) by the user when needed as depicted in
This embodiment describes a video call using a ping tag setup. At times, user may want a ping tag call being an audio call instead of video call for various reasons. Similarly, in some situations, user may prefer call to be made on mobile network instead of the Internet. Thus, in another mode of operation, a new ping tag setting, aka. Call Mode, is introduced so that the user can choose whether incoming ping calls coming from a tag is handled as an audio or video Internet call or mobile call. If the call mode of a ping tag is set to Video Call, incoming calls will be handled as previously described in the embodiment. In the event the call mode is set to Audio Call, incoming calls will be handled as an audio call only. That means the establishment and exchange of video streams for playing on the conversation screen are not needed and therefore, will be suppressed. If Call Mode is set to Mobile, the caller call will be made using the call recipient's mobile phone number instead. In this case, the call service system will provide the call recipient's phone number to the caller app for it to invoke the default phone app on the caller's mobile device passing the call recipient's phone number to it. In any cases, the preview video stream is still being played on the preview screen of the callee's device so that the callee can still peek at the caller prior to accepting an incoming call. After a callee accepts a call, the caller app will drop the live video stream to that particular callee's device, while the other callee devices continue to receive and play the preview stream until the call is either timed out, accepted or rejected.
In another mode of operation, in case the call recipient list contains more than one entry, the present invention allows a user to select a call routing mode from a new ping tag setting, aka. Ping (or Call Routing) Mode. This setting gives the user more control of how an incoming call to be processed by the call service system. Thus, in this mode of operation, the ping tag setup record is extended to allow for this setting. The call routing mode dictates how a call request is being routed by the call server to a group of call recipients and accordingly, how to process them. There are three ping modes: ‘One-on-one’, ‘Conference’, or ‘Hunt’. ‘One-on-one’ mode is as described in the previous embodiment, i.e., the call server will notify all call recipients in the call recipient list of an incoming call request; however, the first callee accepts the call will take over the call. On the other hand, the ‘Conference’ mode will give all call recipients the option whether to participate in the call. This mode of operation is often known as conference call. Call processing handling for an audio/video conference call is a well-known prior art except for the handling of the preview video stream of the present invention. In prior art video conferencing, any call recipients can join the call at any point in time during the lifetime of a call. Thus, the present invention in this mode of operation must also provide support for this traditional mode of operation. Therefore, the preview video stream of the caller would continue to play on the device of any callees who has picked up the call regardless of whether any other call recipients has joined the call or not. When a callee decides to join the call, the call server will mark the callee entry in the participant list of the call session as ACTIVE. Simultaneously, the call server also relays the CallAccept signal it received from the new participant to the existing ACTIVE participants of the call. This signal will trigger the app on the receiving device to exchange media streams with the new participant's device and, if successful, update their own conversation screen to additionally play the video stream from the new participant. Similarly, the app of the new participant also plays the video stream of other ACTIVE participant(s) on its conversation screen. Meanwhile, callee(s) who have not yet decided to join or reject the call continue to see the caller's preview video stream playing on their screen. Later, when a call participant hangs up the call, the app on the participant's device sends a Call Hang up signal to the call server. Accordingly, the server will mark the hang-up participant status as LEFT. At the same time, it also relays the Call Hang up signal to all remaining call participants' device. Upon receiving the Call Hang up signal, the app on their device will stop playing and also relinquish the corresponding media streams associated with the leading participant on their own device. It is noted that those skilled in the art should recognize that, as a call participant joins (or leaves) a call, the conversation screen would be dynamically re-partitioned to make room for showing the video stream of the new participant on the screen or reclaim the space for better view of remaining participant(s).
The ‘Hunt’ mode is also well-known telecom call routing mode, in which the call server will ‘hunt’ for the first responder sequentially in a pre-determined order instead of broadcasting the incoming call request to all call recipients at once. That is the call server first dispatches the incoming call request to the first call recipient in the list that is not engaged in any call sessions. When an in-progress call request to a callee's device is timed out, the call server disconnects the call request and automatically re-route the incoming call to the next free callee's device in the listed order and so on . . . until either a callee picks up the call or the list is exhausted. The ‘hunt’ will also stop as soon as a callee accepts the call. In the event, no callee in the call recipient list accepts the call, the call server will send a Call Unanswered signal to the caller app for it to end the call. As such, the processing of an incoming call in ‘Hunt’ mode is very much similar to ‘One-on-one’ call, i.e., allow call to be established with only one call recipient, except for the additional ‘hunting’ process implemented by the call server as described above. It is noted that if Call Mode was set to Mobile, the Ping-Mode is fixed to one-on-one as other modes are intended for Internet call only.
In some applications, such as lost & found, it may not be necessary for the call recipients to peek at the caller of an incoming call. Thus, to make user interaction simpler in such applications, in another mode of operation, the present invention extends the ping tag settings to include a setting namely, Preview Mode. Toggling this mode will enable the user to control whether an incoming call from a ping tag should precede with a live preview video stream of the caller. The call server is required to inform the caller's app whether this option is enabled in its response to a call request so that the caller's app will act accordingly. If the option is disabled, the caller's app will not attempt to construct and transmit a live video stream of the front camera of the caller's device as previously described.
As aforementioned, a ping tag record includes optional alternate contact information such as mobile phone number and/or email address. This information, if present, can be used by visitor to place a mobile call or send an email message to the tag owner instead of placing an Internet call. While the information may seem redundant, they are useful as a backup in case the Internet is inaccessible on either side of the communication channel. A drawback of using alternate means of contact is, of course, the loss of video functions such as live preview video and video call. When a caller places a call by scanning a ping tag, the first screen s/he observes is as depicted in
In the event multiple incoming calls are placed from the same ping tag, the present invention will process and handle them in parallel through the use of call session id as described in a previous embodiment, provided that the tag was set up with multiple call recipients. In this case, depending on Ping Mode setting, an incoming call will either ring on all available call recipient(s)′ device as aforementioned or hunt for an available call recipient for ringing while in-process calls are still going on. When an available call recipient picks up the call, the call is established as a new call session. Similarly, subsequent incoming calls can be established in parallel with in-progress call simply by repeating the same process, until the call recipient list is exhausted. In this case, the caller will receive a Busy signal. In another mode of operation, the incoming call will ring on all devices regardless of whether a device is in the midst of another call or not. In this case, the person on a call can temporarily put the in-progress call on-hold to accept the incoming call on another call session. Later, the call recipient can switch back and forth between the two call sessions. This mode of operation is a common practice in normal phone service. Those skilled in the art should recognize and be able to implement such a capability.
In the event an incoming call is unanswered by a user of the app of the present invention, the present invention will allow the caller to leave a message to the user. The message can come in the form of a text, a voice or video message. Since message is associated with a call, the call session record must have space reserved for storing the text message itself or, in case the message is a voice or video message, a resource link (URL) to the location of the message where it would be stored. Typically, audio and video messages are stored as multi-media files in a mass storage system such as AWS S3 storage service. When a call is unanswered, the caller will be prompted whether s/he wants to leave a message and the type of message s/he wishes to leave on the call screen. The caller can choose leaving a message of one of the three message types as aforementioned. If a text message is selected, the app will prompt the caller to enter a text message. If voice message is selected, the app will prompt the caller to speak on the microphone for recording the caller's voice message. Similarly, if the caller selects to leave a video message, the app will prompt the caller to record a video message using the front camera and microphone of the device. Once the message input or recording is complete, the app will issue an API passing along the message content to the call service system for storing in association with the unanswered call session. Upon receiving request for storing the message and message content, the call service system will examine the message type in order to properly process the message content. For text message, the message will be stored in the call session record. For multi-mediate message, the media data will be uploaded to a storage system such as AWS S3 for storing and a resource link (URL) associated with it will be stored in the call session record. Once the message is properly stored and recorded as described, the call service system will notify the user of the app by both sending an email message to the user's registered email address and issuing a push notification message to the user's device. Both notification messages will contain linkage data to enable the user to open the message for viewing simply by tapping on the link or notification message. Those skilled in the art should readily know how to setup the app to collect a user's message using one of the discussed mechanisms, store it on the call service system and allow user's access to the stored message using the methods as described as these are well-known prior arts.
The app of the present invention was in effect hiding a tag owner's phone number from exposing to unknown callers by using Internet call instead of mobile call. The drawback to this setup is that the user has to download and install the app on their device for the Internet call to be made. A simpler setup could be presented when the call is made using mobile call instead of Internet call. In this case, a web app can be provided and accessible on the cloud network to allow the user to simply enter own phone number in association with the tag. The phone number could be that of the tag owner's mobile device or even a landline number. Thus, when the caller scans the tag to place a call, when the tag's CallMode is set to Mobile, the call service system will return to call recipient's phone number to the caller app. The call app then invokes the phone app on the caller's mobile device passing the phone number to it in order to place the call over the mobile network instead of an Internet call over data network. This setup has the advantage of being simpler and may be a preferred setup for most novice users but the drawback is, as stated, the user's phone number will be exposed to the caller.
Together, the optional settings are described above will transformed the ping record as below:
For entry tag, after a ping tag with QR code image is generated, the user can print it on paper and post it at the door entry where it is visible to visitors for scanning. While this method works fine for individual residential unit, in building complex with visiting lobby such as hotel, gated community, or office, it is desirable to have a way for visitors to place a call to a resident from the lobby or from security gate. Thus, in this embodiment, the present invention introduces a common or group ping tag, aka. PingPad tag, for living community and a system for routing visitor calls to a destined user's device in similar way as the telecom PBX system. That means every resident will be assigned a unique extension, or access code, that a visitor is required to enter to reach the intended resident or member of a business. The extension (or access code) could be of any reasonable length, e.g., 4 to 6 characters, of any printable char or numeric, alphanumeric or alphabet-only string. A new tag type, aka. PingPad, is introduced to provide support for access code-based call routing function. Access code (extension) can be as simple as a unit/room number. It could be a randomly-generated unique number or based on a scheme determined by the business administrator of a business. The access code of this embodiment serves as a call routing mechanism similar to landline phone extension. Similar to Entry tag, this tag profile also includes tag-posting location and an access code. To acquire such a ping tag, a business entity is required to register for service on SQUAREPING website as depicted in
An unclaimed ping tag will have the User ID field of the ping tag will set to empty, the Group ID is set to the business (group) id, effectively assigning the business as the owner of the tag. For individual tag owner, this field is always set to empty. the TagType is set to PingPad and the Business Type field is set to the business type of the business profile. The Extension field will be set to a valid extension of the business call service for claiming by an assigned member of the business. For example, tag type Lodging is designated for temporary living space such as hotel, motel, hostel, etc., tag type Residential is designated for residential complex such as condo, apartment, townhome, gated community, mobile home park, etc., tag type Office is designated for business office in general. Finally, a PingPad QR code image could be generated from the subscription id. All other fields are set to empty for members of the business to set up with their own information and preferences. Once the Ping Pad tag image is successfully generated, the user can download (2602) the Ping Pad tag image for printing and posting at one or more desired location on the business premises. When a visitor scans the PingPad tag QR code image, the subscription id is retrieved for processing as described subsequently. It is noted that the subscription may have to go through a validation and verification process before it can be activated for use. During this time, the subscription will be suspended until explicitly approved by the system administrator either manually or automatically. This process may involve several manual and/or automated sub-processes for validating and/or verifying the provided information such as business entity, contact information, payment method, etc.
Before a member of a business, i.e. guests, residents, employees, etc., can receive incoming calls from the subscribed PingPad tag id, refer to
https://ping.squareping.com/claim/<ping-tag-id>
where the <ping-tag-id> identifies the ping tag record associated with an assigned access code. The passcode is used to confirm the identity of the claimer and thus, avoid fraudulent claim. The call recipient is required to install the app of the present invention on own mobile device and then uses the app to scan the claim QR code to start a claiming process that allows the user to setup a personal ping tag profile and associated call options. Once the user uses the app to scan this image, the encoded URL is retrieved and used to access the ping tag record from the call service system through an API call (2704). Upon receiving the request, the cal service system retrieves the ping tag record associated with the given ping tag id and, if the operation is successful, it validates whether the ping tag has already been claimed by someone else (2706). If ping tag has not been claimed, the call service system responds to the API call with a positive response and the unclaimed ping tag record to the app for claiming, i.e. setting up. Otherwise, it returns an appropriate error code to the app (2710). When the app receives the positive response from the call service system, it will proceed with prompting the user to set up the remaining unset information to claim the tag, i.e. tag profile, alternate contact information, call options and one or more call recipient (2708) as described in a previous embodiment. It is noted that the tag profile setup varies depending on various factors such as business type, tag setup policy administered by the business administrator, etc. For example, a business may want to include the business information on the tag profile, instead of that of individual member of the business, e.g., hotel. While another type of business may prefer the tag profile to reflect that of individual member of the business, e.g., an apartment. Once the call recipient finishes setting up the tag profile and call options, the app then prompts the user to enter the passcode before submitting the tag data and the passcode to the call service system using an API call for update (2712). If the provided data are valid. The call service system will set the User ID field of the ping tag to the requesting user id and finally updates the ping tag record in the database to complete the claiming process successfully (2714). Otherwise, it will return an error code to indicate the claiming process failure. The error code could be encoded to give information on the type of errors encountered. It is noted that the use of claim QR code to identify the unclaimed ping tag record is aimed to simplify the claiming process. Those skilled in the art should recognize that the same can be achieved by providing the call recipient the subscription group id and access code to identify the associated ping tag record. In this case, the call recipient is required to enter the subscription group id and access code to the app for it to retrieve the unclaimed ping tag record. It is also noted that a simpler setup without requiring the call recipient to install the app of the present invention is for the business administrator to associate a ping tag record with the phone number of a call recipient. This type of setup may be desirable for short-term lodging business such as hotel, motel, etc. where people check in and out frequently. In this case, the hotel receptionist can use an online form to enter a guest's phone number in association with an extension, e.g., room number where the guest stays. Visitor calls can later be established using mobile call procedure as described in a previous embodiment simply by entering the room number. When the guest checks out, the receptionist simply clears the phone number from the corresponding room number where they guest stayed to make it available for the next guest.
Refer to
It is noted that the access code could be automatically assigned by the system among those have not been claimed in the system instead of a manual assignment process as described in this embodiment. That is once a call recipient acquires a ping tag as described in this embodiment, the app automatically selects an unused code by communicating with the call service system and then prompts the user for acceptance. At this point, the user could have an option to personalize the access code for easy memorization by entering another code of preference. If the new code does not match any existing access codes with the same tag id in the ping tag table, the system will accept and the user can proceed with other steps to setup the ping tag. Otherwise, the app will prompt the user to try another one. Such access code selection process is well-known prior art, those skilled in the art should know how to implement such process. It is also noted that this setup will allow for multiple incoming calls destined to the same extension to be processed and handled at the same time provided that end point device was set up with multiple call recipients. Furthermore, since the claimed ping tag is unique and personal, the call recipient can generate a ping tag image from the claimed ping tag for personal use. For example, it could be posted on the call recipient's door entry for visitors to place a call directly to the call recipient.
In another embodiment, the present invention allows the user to claim a pre-printed unassigned ping tag. This process will help to relieve the users from the trouble of printing ping tag as ping tags could be economically pre-printed by professional printing shop in bulk and in long-lasting materials for order by end-users. In this case, large bulk of unassigned ping tags will be generated ahead of time. Each of the unassigned ping tags will be assigned a unique ping tag id with the tag type set to UNASSIGNED and all other fields are left empty. The generated ping tags are then stored in the ping tag table ready to be claimed by app users at a later time. The ping tag id (of the unassigned ping tag) is then used to generate a corresponding QR code image as depicted in
https://ping.squareping.com/ping/<ping-tag-id>
Now, refer to
3.2. Pre-Printed Ping Tag with Access Code
However, printing a unique QR code for every ping tag label in bulk as previously described may not be doable as many print shops are not equipped to do such printing in automated manner. Thus, this embodiment of the present invention introduces the use of a human-readable unique access code in combination with a common QR code in order to differentiate one ping tag from another as depicted in
In another embodiment, the present invention is further extended to allow ping tag QR code to be electronically stored and displayed on electronics or a smart device such as a doorbell, smart ID card, etc. Such function will make it easy for user to change an existing QR code with a new one or program a new device with a ping tag created by the app without going through the nuisance printing task. Refer to
Presently, the current standard practice for airline personnel in handling of unclaimed baggage and personal belongings left on Airplane is to report them on a lost & found system with the hope that the owners will eventually contact airline in order to claim the lost baggage/personal belongings and to initiate the recovery process. Yet, in many cases, the passengers often do not know where to contact to report baggage loss, not to mention if their stay at destination is not in the proximity of the airport and therefore, often take quite an effort to recover the lost items. Some passengers even gave up on reclaiming their baggage simply because the cost of recovery is higher than the cost of the baggage itself. In these cases, the airline industry is liable to keep the baggage for some period of time, usually 30 to 90 days, before auctioning them for recycle. Similarly, when a baggage is identified as ‘unclaimed’, airline personnel are often unable to contact the baggage owner to start the recovery process. This problem is amplified, especially, on international flights where: Passengers' baggage may arrive at destination later than the passengers themselves due to baggage mishandling on flight change and Passengers' contact information at destination is often unknown at departure check-in time. Needless to say, the problem creates extreme inconvenience and frustration on the passengers as it may take several days or even weeks for recovery of their baggage. According to Statista, the United States airline industry lost a hefty amount of $2.5 billion annually in handling, warehouse storage, refund of baggage fee and compensation of unclaimed and loss baggage.
Thus, in another embodiment, the present invention offers a solution to solve this problem by linking passenger's baggage to passenger's mobile device using the PING tag system of the present invention. In a setup for solving this problem, refer to
https://ping.squareping.com/claim/<ping-tag-id>
The <ping-tag-id> is retrieved from PING tag or returned from the API call. The ‘claim’ route element of the URL invokes the claim handler on the service system for handling the contact point claiming process. Later, when the passenger scans the claim code using the app of the present invention, this process is invoked to set the PING tag owner to the user identifier of the app, making the app of the present invention on the passenger's mobile device eligible to receive incoming calls from the associated PING tag.
If the PING tag request API call is successful, a PING tag id, the corresponding PING tag and claim code QR code images will be returned. Refer to
In another mode of operation, in the event the passenger does not want to install the app of the present invention, a web app can be used to allow the passenger to browse information associated with PING tag, update contact information and report baggage loss instead. However, in this case, the contact call initiated from the PING tag can only be made on mobile network. To invoke the web app, the passenger simply scans the claim code using own mobile device camera. Since the app user id is unknown in this case, the web app will prompt the passenger for access code to confirm the passenger identity before proceeding to gain access to passenger's contact information and check-in baggage as well as to report lost baggage or to access lost & found system in search of own lost baggage and/or personal belongings left in the airplane or around airport perimeter.
The processes as described in the embodiments above, along with the application settings and user interface design, are for the purpose of illustrating the present invention only. They should not be construed as a limit to the present invention. For example, the ping mode processing could be extended for accommodating additional call handling methods such as call forwarding, which could forward the incoming call to one or more call recipient other than the tag owner in a call recipient list. The tag types can be expanded to include additional tag types for various item categories and applications. The tag profile data can be customized to be more useful for specific applications. It is even better if the user is able to define own tag type and profile by interacting with a tag design module. Furthermore, the app of the present invention could also include an interface for controlling property's entry point, such as opening or closing the door or security gate. Technology for entrance control mechanism through wireless network, such as WIFI and the Internet, are already well-known prior art. Similarly, the app could also incorporate location sharing function to allow interacting users to quickly share location with one another. Such function is particularly useful for lost & found type of application. On the same token, functions such as logging of caller snapshot photo or preview video, call recording can be easily added for improved security, audit trail and training purposes. Those skilled in the art should readily know how to integrate the above functions and others with the app for additional functionality. As mentioned throughout the description, the call system used to demonstrate the present invention is a data call using either a peer-to-peer or server-centric protocol. However, those skilled in the art should readily recognize that the underlying call system could also be implemented using a mobile call via a VoIP system such as Asterisk VoIP system for gatewaying to PBX systems that allow incoming calls to be routed to a phone handset such as an office phone. It is also obvious to those skilled in the art that all data channels between the call parties can be setup for using one of the established industry standard end-to-end data encryption methods to enhance security and privacy of user's conversation over the call. These channels include call audio and video streams, messaging data and even location data shared over a call session. Those skilled in the art should also recognize that, although separately described in separate embodiments, the described embodiments could be selectively combined or additionally extended for enhanced user's experience, preferences and convenience. For example, a messaging function could be integrated to the app so that caller and callees can conveniently communicate and exchange information such as document, photos, videos and location data during or after a call. Such messaging function allows the user the flexibility of choosing whether a contact point, i.e., ping tag, should be conducted over a call or via messaging during a ping tag setup process. It also gives the caller the same flexibility.
Thus, it is now becoming apparent that a QR code image can be used to quickly establish an audio and/or video call between a visiting caller with the owner of the code without exposing the phone number of either side. When comparing the methods of the present invention against a camera doorbell device, the present invention has a clear advantage that it does not require additional hardware, while offering very much the same benefits as a camera doorbell device does. Furthermore, this method of the present invention also gives the users great flexibility for managing own privacy in a wide variety of situations, where a camera doorbell is not suitable. Yet, the implication of the present invention extends such benefits much further than those mentioned above as the QR code can be used to prevent exposure of user's phone numbers in many situations, especially, in online activity. On the application side, it is apparent now that QR code can be used as contact point in various applications, not necessarily limited to entry security. Examples of such applications are lost & found, online/offline contact tag, customer service tag, ID tag, etc. Thus, in this sense, the app of the present invention could be thought of as a contact management app, where the user can create many contact points, each for a different purpose. Such capability is like having multiple phone numbers on the same device without the complexity dealing with multiple SIM cards and their physical limitation. Furthermore, when coupled with access code-based call routing service as described in an embodiment, the present invention could serve as an Intercom system without the hardware and associated wiring of traditional Intercom system. Furthermore, the present invention could be applied for many order-taking and service applications where self-serve stations are in use, such as at hospital, government office, etc. in order to reduce cost, relieve long waiting line and improving service processing time all at the same time as described in a previous embodiment. While the invention has been described in connection with what is presently considered to be the most practical and various embodiments, it is to be understood that the invention is not to be limited to the disclosed embodiments, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope the invention is defined in the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements within substantial differences from the literal languages of the claims.
Number | Date | Country | |
---|---|---|---|
63295891 | Jan 2022 | US | |
63300188 | Jan 2022 | US | |
63280800 | Nov 2021 | US | |
63295891 | Jan 2022 | US | |
63300188 | Jan 2022 | US | |
63307014 | Feb 2022 | US | |
63327372 | Apr 2022 | US |