Inspiration

One day, we had a GenMath midterm. As I arrived there, I looked all over the class, and my friend, Frasineanu, wasn't there!... Fast forward 6 hours later, a sad guy, with wet hair, and raspy voice asked me for a cigarette. It was my friend. Apparently, he overslept because the phone didn't wake him up. But then I thought - we can make calls to our landline phones in our rooms! They will call you, and call you, until you answer. If you answer, you will get a math question to wake you up. Thus, the solution was found.

What it does

It is a server to call your room at any desired hours, insist if you don't answer and also ask you questions. Also, the user will be able to delete/add alarms. This is useful iff the landline phone is away from the bed.

How I built it

We used Go because of it's simplicity with concurrent functions (goroutines). The HTTP server communicates with the SIP client-server. Thus, we can add logged users (using our campus' campusnet credentials/api) into a list, check their token, add calls to a list. Also, it implements XML reading and writing into a file in case the SIP client-server crashes. The SIP server will also send to the client (jWakeup) DTMF tones which will represent the answer given by the called person.

Challenges I ran into

Securing go-channels, writing cookies (I still have to figure out what I have been doing wrong), actually reading some RFC files from top to bottom to learn some protocols, debugging UDP traffic.

Accomplishments that I'm proud of

Writing something extensive in a such period of time - multitasking, server communication, learning protocols.

What I learned

To prepare extensively before any task, and the fact that the start is one of the most important elements. Also, to get technical - SIP protocol, SDP protocol, RTP, DTMF tones, how to properly use gochannels, basic website structure.

What's next for jWakeup

Actually make it work. I will make it a service available in our campus, which will actually call our rooms (SIPp was used for server emulating), with question-asking, and answering. People to whom we've talked were very happy about the idea, and many agreed that they would like to see it implemented in the campus.

Built With

Share this project:

Updates