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