Capturing legacy voicemail - cannot use google voice - google-apps-script

is it possible to dial a voicemail line, enter passcode, listen to first voice mail , record the audio to a file, transcribe the audio, capture the metadata (caller id and #) and timestamp,
My wife has to listen to 30-50 voice mails each day at the school where she works. It is an older phone system and you have to use touch tones (DTMF) - once phone answers you hit *1111#1 to listen to first voice mail, listen, repeat for next voicemail.
I would like to automate this for her and pull these into a google sheet
Timestamp CallerId Phone# MP3file transcript
the problem - I have all the pieces working EXCEPT dialing the voicemail line and navigating the tree, capturing the recording(s). There will be 30-50 recordings each morning and a few throughout the day - I can use a trigger to autodial every hour or so.
I believe Twilio Studio will get me there - but not working. Ideas, articles, pointers most welcome
(everything else works great - I can hit a twilio endpoint to start the call and if I could get the recording, I can pull the recording, transcript, and metadata into google sheets (or even email /sms it to my self)

Related

Automatically sending text messages from an online form

Good Afternoon all,
I've hit a major rock at the moment in developing my e form. Just to give you a brief I've designed a e form for delivery drivers to scan barcodes of items and get receipients to sign off deliveries out in the field.
I currently have the option to navigate using the using
I have the function at the moment to send sms which is < a href:"sms+44111111;?&body=Hi">Send Message works perfectly, however, I want to send the message without the user opening the messages on the android phone.So once they click send message, it essentially does, without viewing it prior? Is this just an add on to this code? I can't seem to find any answers on the web?
Any help on this matter is much appreciated
Software, that can send text messages (SMS) without allowing the user to review and potentially cancel them is malware. I assume, this is not what you want to develop.
The usual options are:
Send the message from the server via a suitabe SMS gateway (either a commercial API or roll your own)
Allow the user to review and potentially cancel the SMS (i.e. make it non-mission-critical)

Quiz with countdown enabled upon opening

How can I implement an online application which sends emails to selected users. The email contains a link which is available for 3 days after the email was sent. If the user clicks the link before it expires, then they will open a new browser window/tab with the user specific questions and a countdown timer that begins on window load. Starting from that moment, with no pause permitted, they have exactly 1 hour to answer the questions.
The quiz will be submitted by user or automatically with all the answers after the timer reaches 60 minutes.
The user can see the time remaining (updating real time somewhere in the UI).
If possible I would like to implement it in a way that if user accidentally closes the tab, he can open it again with all the answers saved.
We are currently working with Java/Spring Boot(REST API - backend), ReactJS(frontend) + MySQL database.
We do not know exactly how we should search the keywords needed for that email-link-expiration logic. The login method, creation of the quiz and the sending of it to a user along with the database structure is clear for us.
We appreciate any help or implementation ideas (or even technologies)
The ideea was to generate each quizz with a specific random token, like this:
04e69b43-f6e2-4a6b-835b-dd58c95e41810
Then, send the email to the specific person myapp.com/quizz?token=token.
A CRON job in backend will check the creation date of the quizz and check if 3 days have passed without being assessed for the first time and mark the quizz as expired if so(of course, when the link will be assessed and the quizz is expired, an error message will be displayed).
If the quizz is not expired and user clicks, automatically start the quiz and save in the database firstClickTime and expirationTime = firstClick + 1h.The frontend will send each minute a JSON with everything he has written so far to prevent any lost answers if he closes the tab.
Of course there are also some other small details, but this is the whole idea.

Sharepoint Online scripting similar to Google Apps Script?

For several years we've had a Google Site setup on a non-profit G-Suite domain. This site is used once a year for a conference we hold with about 200 deleagates. The site is used by delegates for some simple stuff like reading documents, but there is a much more complex part of it too.
I've used Google apps script to write a system where users can do voting, speaker queueing, elections, and a daily checkin/rollcall. How it looks to users is they goto a page, and they see a "Vote Yes", "Vote No", and "Abstain" button. These are embedded Google apps script applets on the Google site page. Similar for the speaker queue and other functions.
On the backend, when a user clicks "Yes" or "No", the script submits a Google form on their behalf, with that answer. The form is tied to a Google sheet. Originally we had it directly append a line to a google sheet, but found with 200 people voting at the same time, we ran into performance issues and limitations with Google sheets.
The script then does stuff like de-deuplicate the results (incase someone voted multiple times), tabulates the results, and displays the results. This is all done on another page on the site that the officers running the conference can see.
For speaker queue, users basically click a button to say "I want to speak", and their names get added to a google sheet. The officers running the conference then call them up when it's their turn to speak. Users can also click a button to see where they are in the queue, and they'll get a response on the page like "You are currently number 3 of 27 users in the queue". They can also click a different button to remove themselves from the queue.
With that all explained, we're looking at potentially switching away from Google Sites, and considering Microsoft Sharepoint Online. The reason for this is we're using "old" Google sites, which Google has said will be shutdown at some point. "New" google sites currently does not support any scripting or API's at all, so it's impossible to redo our site in that system currently. They say API's are coming, but no details on what will and won't be available.
We have access to a free non-profits domain on Office365 (E1 tier) which gives us sharepoint online, active directory online, and $5k for free Azure credits.
So I'm asking you all here if there is some similar system available with O365/Sharepoint online. I'd want to change where all the data is stored to an SQL database, as storing stuff in sheets isn't ideal from any viewpoint, it's just the best option we had at the time. Ideally, the code for this would all live in the cloud like it does with Google. If I have to write code in Visual studio and upload it then I'm OK with that, but for maintenance purposes it would be really nice to have it all stored in the cloud and not need to install a thick app to work on it.
Basically we need the ability for users to login to a sharepoint site with their o365 account (we issue them the account), be able to interact with the site to send and receive data from SQL (which is running in Azure on same domain).
Can anyone point me in the right direction? It seems much more complex on the MS side, with way more potential methods for doing it (Graph, Sharepoint Addons, etc).
A couple photos:
Thanks!
I would like to provide a no coding solution here. If we want to code, then we can use SharePoint Add-in to do almost everything, such as collect user input and display data.
I've used Google apps script to write a system where users can do voting, speaker queueing, elections, and a daily checkin/rollcall. How it looks to users is they goto a page, and they see a "Vote Yes", "Vote No", and "Abstain" button. These are embedded Google apps script applets on the Google site page. Similar for the speaker queue and other functions.
On the backend, when a user clicks "Yes" or "No", the script submits a Google form on their behalf, with that answer. The form is tied to a Google sheet. Originally we had it directly append a line to a google sheet, but found with 200 people voting at the same time, we ran into performance issues and limitations with Google sheets.
I think we can create a Microsoft Form or Microsoft PowerApps to get user response. And then Store the data to a SharePoint list.
The script then does stuff like de-deuplicate the results (incase someone voted multiple times), tabulates the results, and displays the results. This is all done on another page on the site that the officers running the conference can see.
We can use Microsoft Flow to process the data, such as remove duplicated data. On the other hand, we can display results in PowerApps.
For speaker queue, users basically click a button to say "I want to speak", and their names get added to a google sheet. The officers running the conference then call them up when it's their turn to speak. Users can also click a button to see where they are in the queue, and they'll get a response on the page like "You are currently number 3 of 27 users in the queue". They can also click a different button to remove themselves from the queue.
We can do it in PowerApps.

Polling status of Google Speech to Text

It appears that I have correctly connected the system to the audio recording (.flac). It sent me back the ok 200 code and the name:ID # however I am trying to check the status. I am using the Google API for hits. Can you help me out? The gcloud ml speech operations describe with my ID number isnt working.

GMail and POP3 RETR problem - switch to IMAP?

When I'm accessing GMail inbox using POP3 protocol, it seems that after fetching given email using RETR command, after QUIT-ting and reconnecting, previously RETR-ieved email is not listed anymore when calling LIST.
Then, after going to: GMail settings//Forwarding and POP/IMAP and setting "Enable POP for all mail (even mail that's already been downloaded)", on next login all emails are being LIST-ed again, but if I RETR any of them, it again disappears from LIST after re-logging..
I can then go to GMail settings again and repeat the whole process, but it's a show-stopper for me as I'm writing a script that should work without any manual actions.
Am I missing something, or only IMAP can help here?
(EDIT: RFC http://www.ietf.org/rfc/rfc1939.txt doesn't say a word about RETR command deleting messages)
This is intended behaviour of Gmail. According to this question, "[a]ll messages may be downloaded to another computer once; after downloading mail, it will not download again."
There's also a 'recent mode', in which the last 30 days of mail are fetched, regardless of whether it's been sent to another POP client already.
That said, don't try to fetch all your mail by different computer in a short period of time, as Gmail may block your account for 24 hours.
I strongly suggest using IMAP.
Gmail’s POP3 configuration maybe sometimes confusing. You can find Gmail POP3 behavior here.
Switching to IMAP is very good solution.
This is a common problem, unfortunately, it does not always have the easiest solution. Hopefully, this information will help you and others arrive at the best implementation that suits your needs. Disclaimer: if you have the option or capability to add IMAP to your pop3, it certainly makes things more manageable.
Gmail has its own Pop3 implementation, and with that said, not all of this is relevant to other pop3 providers
Here is the lifecycle of the issue and some information that can help you manage it:
You connect to the pop3 server either in NORMAL mode or RECENT mode. This puts the "session" on the pop server into a "transaction state".
Recent mode is used by prefixing the username on connection with "recent:" + Username. Recent mode will return the last 30 days of email on the server. Note* this will supersede the UIDL command which I will touch on below. I.e. recent mode will return all 30 days worth of email if they have not been removed. Since it always returns the last 30 days, if you have multiple clients, they will all receive the same information in recent mode.
Normal mode is the default. Normal mode will respect the limitations of the commands you choose to use. UIDL will return a chunk of roughly 250 of the oldest emails on the server. If you have 500 emails on the server, and you do not remove any, UIDL will return the id and Unique Identifier for those first 250 emails regardless, so you may not be aware of the new 250. The caveat here is as follows, GMAIL has an option on the web console where you configure pop, to "Enable pop from now on". By selecting that and saving, the timestamp at that moment will be used by the pop server to "refresh" the oldest time. Therefore UIDL will start returning messages back you from that point on up until you reach the 250 mark again (assuming you have not removed them).
It is important to note that the transaction state exists until you issue the QUIT command. Upon issuing that command the server enters the "Update" state, where it will begin issuing the updates you requested, like DELETE commands, or popping them after they have been downloaded. Until QUIT is issued successfully, nothing will be deleted and the server state does not change.
STAT command will show you the number of emails in the pop3 stack, that are on your server.
RETR command will retrieve, or download the email, but it is not marked as downloaded until you successfully end the session
UIDL which many developers use to retrieve the message numbers and unique identifiers is very useful if you maintain the state of the server and pop the email. UIDL will only ever return the oldest 250-ish (I have seen 251-255) emails. If you are constantly polling for new email, this is dangerous if email hasn't been removed. ALSO! if you need to delete email, make sure the GMAIL setting to, Keep a copy in my inbox, is configured in the web console, so that you have access to those emails as a backup.
LIST command would solve your problem in normal mode for getting more than 250 emails back, (note: you still need to maintain an id file locally to cross-check incoming mail in order to know that it is new or old)... HOWEVER: this command also returns mail from the SENT box, which for many, is not a viable solution.
Hints:
If you are managing the inbox quickly and effectively and do not believe 250 to be a limiting factor in your process, UIDL and RETR will work.
If you will not be able to keep your inbox below 250 but also need access to new email, AND you do not expect the inbox to grow to outrageous size and the performance is not concerning, RECENT mode should work.