IP Telephony – TSMN 6350 Spring 2015 corner of Main St & Osborne St, a few blocks West of Kendall Square T stop • Instructors: Elliot Eichen (e.eichen@neu.edu), and Jim Obrien (j.obrien@neu.edu) • Classroom: Shillman Rm 320. • TAs: TBD • Lab: 9H Hayden Hall (basement). • Time: Tuesday 13 January – 21 April, 6:00 PM to midnight • Class Web Site: http://www1.coe.neu.edu/~eeichen/spring_2015/index.html Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Class Mechanics • Instructors bio, contact info, non-textbook • Grading & Fine Dining Policy – Midterm, Final, and Lab Project are are 30% each, Teacher Evaluation is 10% – Subject to change: Instructors reserves the right to modify this • Do you really want to take this class? One Prof is old, grumpy, and feels like NEU is taking advantage of him. Other Prof is young and demanding, will make you work really hard and probably give you a lousy grade. Projects require lots of work w/o much support or enough equipment, class is too big => lab will be crowded, you will get little help/attention from Proj. . Look at previous student evaluations (on the web site), many students don’t like this class. • Lab and Project: – Lab: Protocol debugs, SIP registration, VoIP client configuration (PC/smartphone, VoIP desk phone.) You can do this at home (check out a phone/hub), or in the lab. This is the table stakes/baseline level of expertise needed for the class. – Project: Probably the most important part of the class. • 5 Member Teams (+/-). Max of 2 teams per project. Teams assigned at random. • Start NOW - Project groups assignments available today and 1st cut at project ideas and descriptions are due next week! • Rant and Rave on Cheating: We am not kidding about this .. • Alternate day for class will be Friday, in case it’s needed. Policy on auditing is no project, no exams, persona non grata status. Copyright 2005-2015 © by Elliot Eichen. All rights reserved. Prerequisites • Familiarity with PSTN and IP Networks: basic architectures & concepts • Comfortable with UNIX & IP Protocols – telnet, ssh, perhaps vi or emacs, grep, awk, dig/nslookup, etc. … – Layer2/Layer 3 protocols (UDP, TCP, DNS/BIND, DHCP, ARP, etc.) – IP debug tools (netstat, ngrep, snoop or tcdump, etc.). You can pick up wireshark, ngrep etc. during the class. • Broadband access of some sort (or use the lab). Administrative access to download applications (voip client, debugging tools, etc.) for your PC. Personal laptop for the labs really helps. • Some ability to write simple code in the flavor of your choice (Java, C, C++, Perl, Cobol, whatever ..) is very helpful. • Enthusiasm, work hard without lots of hand holding. • Ability to sight sing & read music extremely helpful (c.f. Bach BWV 147). • Formal TSM prerequisites: TSM G320 and TSM G330. • Permission from your mom. Copyright 2005-2015 © by Elliot Eichen. All rights reserved. • TSMN 6350 Spring 2015: Schedule January 13 – – – – • January 20 – – – – • What is VoIP - architectures and protocols Example of a ladder diagram Lab #1 (can be completed at home, or in the lab. If at home, you can check out a hub from the lab TA) Project Groups should meet this week. Pick project, start working on project description January 27 – – – • Class Intro Review of Classical Telephony Design Problem: Simple Enterprise Sample Project Description and Lists (handout) Introduction to SIP Complete 1st Lab. First cut project descriptions due, beginning of the class. One page: Title, Who, What (2 paragraphs max), Resources (what’s needed). February 3 – – – Class picture at beginning of class. More SIP: various use cases and debugs Second cut a project description due (if necessary) at beginning of the class. After lecture, meet to iron out all remaining issues. By the end of class, all groups should have a clear projection description. Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Schedule • February 10 – – – – • February 17 - • All lab sections available for projects Catch up – first 6 classes In class review selected questions from previous Midterms (2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2013, 2014). March 3 - Midterm • • • All lab sections available for projects Finish webRTC QoS, Echo (if time). February 24 – – – • All lab sections available for projects Design Problem #3: Border element and metro Ethernet service NATs, Firewalls, Border Elements (SBCs) Intro to webRTC All lab sections available for projects March 10 – Spring Break March 17 – – – Review Midterm Exam All lab sections available for projects Begin IMS Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Schedule • March 24 - • March 31 – – • – Review of Selected Problems from Previous Final Exams (2003.2005, 2007, 2008, 2009, 2010, 2011,13, 2014) Final Lab Project: Pitches! April 14 – • IMS IMS Design Problem April 7 – • Guest Lecture: Dan Sahar, co-founder and VP of product marketing, Qwilt.com. Final Lab Projects: Pitches! April 21 – Final Exam (note: graded final exams can be picked up from Professor O'Reilly) Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Projects • Start immediately. It's 30% of your grade, and it's probably where you will learn the most. Should take at least 10/hrs-week throughout the semester! Lab TA’s will post lab hours and/or access policy. In some cases, you can work against AWS and never show up in the lab. • Make sure your group has the requisite skill set. Not everyone needs to be able to write code ... but if the project requires it make sure 2 people do. • Random assignment of groups. You must have an approved project by Feb 3. • Everyone must participate. Teams CAN vote to nominate someone off the island by a majority vote. Professors will judge the extent of the penalty • Grading will take into account the level of difficulty. • Lab TAs will provide server login/passwords based to lab resources if needed. Lab TAs are responsible for lab administration (equipment, network, etc.) • Grading is either: – Pitch as if to VC (probably the “America’s Got Talent” model) – Paper/conference submission Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Project Resources • Northeastern has an IP Telephony Lab. Components from this lab are available for all teams to build services: • Lab offers IP connectivity to the public internet as well as private IP space. • Lab Virtual Machine Hosts can be setup to provide teams with virtual machines for building servers required for each project. • Lab Acme SBC can be used by provide teams / shared amongst projects. • Lab PSTN Gateway can be used by provide teams / shared amongst projects. • Lab DIDs are a scarce resource. • This is fine, but the world is your oyster… Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Project Resources • Student groups can also leverage Cloud Resources for their projects. • Students should consider leveraging free Amazon EC2 instances for linux/other servers where they might need to host applications. Each person can sign up for a instance for free for 1 year. The experience of learning about Cloud Computing services while setting this up and using this is a benefit in of itself. Students even might want to keep their project alive to demonstrate to potential employers. (No Cost here) • Student groups should consider leveraging VoIP and Messaging services when building their project. These services can be very low cost. • Some services offer API capabilities, messaging capabilities not available in the Northeastern lab. • Lab TAs will provide server login/passwords based on group needs. Lab TAs are responsible for lab administration (Virtual Machines, PCs, Network equipment, Hubs, etc.) Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Some Public Services Short Sample List of Providers: https://www.twilio.com/ - Voice, SMS, and MMS via API, Voice via SIP trunk https://www.plivo.com/ - Voice and SMS via API http://voxeo.com/ Voice and SMS. Voice XML, Hosted IVRs http://www.callcentric.com/ - SIP provider - By the Minute http://www.phonebooth.com/ - SIP Provider - Unlimited per Month model http://www.vitelity.com/ - SIP by the minute, hosted PBX per month Some Sample Pricing from Twillio (https://www.twilio.com/) $0.008 per minute termination minute SIP Trunking or API $0.0045 per minute origination minute SIP Trunking or API $0.0075 to send or receive a text $0.001 to receive a picture .002 to send. $1.00 per DID for voice or sms/mms Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Sample Projects • Build a service that already exists • Grand Central (now Google Voice) – Follow-me Find-me Service. Give each user a phone number that when others call there is some call screening, some capability to call the user directly over VoIP, and some capability to call the user on their hidden mobile phone number. Write an android or iOS application to make a server call the user and then call a 3rd party. Provide a voicemail service with speech to text or voicemail to SMS. • Build a Session Border Controller. Using open source software, build your own SBC. Show how it works to help devices make calls from behind different NAT types and networks. Requires real deep understanding of NAT types and traversal. This is not a ‘setup a asterisk and you are done project.’ You’ll need some kind of simple SIP application server behind this or included in this. Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Sample Projects • Build a service that already exists • Grand Central (now Google Voice) – Follow-me Find-me Service. Give each user a phone number that when others call there is some call screening, some capability to call the user directly over VoIP, and some capability to call the user on their hidden mobile phone number. Write an android or iOS application to make a server call the user and then call a 3rd party. Provide a voicemail service with speech to text or voicemail to SMS. • Build a Session Border Controller. Using open source software, build your own SBC. Show how it works to help devices make calls from behind different NAT types and networks. Requires real deep understanding of NAT types and traversal. This is not a ‘setup a asterisk and you are done project.’ You’ll need some kind of simple SIP application server behind this or included in this. Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Sample Projects • Build something new • Do you care about something? Build an app for it that in some way involves telecommunications. Build an application that will watch sports scores and SMS you when certain conditions are met. Or that you can call and ask for certain things. That will get you prices from Amazon. That will search craigslist and MMS you the picture of kittens available for sale in your area. • Mash up some existing services. So many public services offer APIs to developers and users today. Make a SIP phone or server that tweets every time you make or receive a phone call. Build an application to MMS yourself everything a friend puts on instagram. Call into a IVR to listen to yelp reviews based on a voice search. • Use WebRTC to build communications into a existing (even if you just make it up) web page. Tell a story that you that you might be able to show a prospective employer. Copyright 2005-2015 © by Elliot Eichen. All rights reserved. TSMN 6350 Spring 2015: Sample Projects • Go very deep • SIP call ladder diagram builder – Create a website that allows users to paste in a SIP call trace or upload a wireshark file and provide back to them a ladder diagram of their call. Offer downloads of the ladder diagram as a picture. Offer a download of a wav file constructed from the RTP packets in a trace. • Listen to other people’s phone calls – Put together a set of tools that you can use to look at (Traces) and listen to people’s VoIP calls on open wifi networks. Demonstrate this live to the class. • Find a real company, Build a real phone or messaging system – Maybe an on campus organization. Maybe a local small business. Find real requirements from a real customer and meet or exceed them. Build a cloud phone system with SIP connectivity and SIP smartphone applications? SMS ordering application for a Pizza shop? Copyright 2005-2015 © by Elliot Eichen. All rights reserved. Textbook and Resources • No real textbook: use recommended books, config guides, & the web. • Recommended Books: – Internet Communications Using SIP, H. Sinnreich & A. Johnston, Wiley 06. This used to be the class textbook, but it’s out of date, and is too lightweight. I still recommend that you take a look at it. – Securing VoIP Networks, P.Thermos & A.Takanen, Addison-Wesley 07. Very nice discussion of VoIP security, worth reading. – WiFi Telephony, P.Chandra and D.Lide, Newwnes 2007. – IP Telephony, Hersent, Petit, and Gurle, Wiley 2006. More architecture, higher level, less sip. Probably the best textbook per codec design. Also out of date. – Fixed Mobile Convergence, A.Shneyderman & A.Casati, McGraw-Hill, 08 – Internet Multimedia Communications Using SIP: A Modern Approach Including Java® Practice, Rogelio Martínez Perea, Elsevier, 2008. Looks interesting, have not had a chance to look at it. – IMS Application Developer's Handbook: Creating and Deploying Innovative IMS Applications, Noldus, R. et.al., Academic Press 2011. Folks in my group like this book, it has a good description of IMS and RCS (Rich Communications Suite). • Articles from various sources: trade journals, white papers, IEEE referred publications, IETF Drafts (better than over the counter sleep aids) Copyright 2005-2015 © by Elliot Eichen. All rights reserved. Syllabus & Instructor Bio • Detailed Syllabus: default to the class web site. • Elliot’s Bio: www.coe.neu.edu/~eeichen/ • Jim’s Bio: http://www.counterpath.com/jim-obrien