FOSDEM 2007 Brussels, Belgium. Daniel Pocock B.CompSc(Melbourne) www.readytechnology.co.uk



Similar documents
How to make free phone calls and influence people by the grugq

3.1 SESSION INITIATION PROTOCOL (SIP) OVERVIEW

SIP: Protocol Overview

internet technologies and standards

EDA095 Audio and Video Streaming

Session Initiation Protocol (SIP) The Emerging System in IP Telephony

Session Initiation Protocol (SIP) 陳 懷 恩 博 士 助 理 教 授 兼 計 算 機 中 心 資 訊 網 路 組 組 長 國 立 宜 蘭 大 學 資 工 系 TEL: # 340

Internet Technology Voice over IP

NTP VoIP Platform: A SIP VoIP Platform and Its Services

Voice over IP & Other Multimedia Protocols. SIP: Session Initiation Protocol. IETF service vision. Advanced Networking

Session Initiation Protocol (SIP) Chapter 5

For internal circulation of BSNL only

Session Initiation Protocol and Services

MOHAMED EL-SHAER Teaching Assistant. Room TASK Exercises Thu., Nov. 17, 2014 CONTENT

Voice over IP (SIP) Milan Milinković

TSIN02 - Internetworking

Session Initiation Protocol (SIP)

Integrating Voice over IP services in IPv4 and IPv6 networks

A Comparative Study of Signalling Protocols Used In VoIP

SIP Introduction. Jan Janak

Internet Voice, Video and Telepresence Harvard University, CSCI E-139. Lecture #5

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme

VoIP Phreaking Introduction to SIP Hacking. Hendrik Scholz 22C3, Berlin, Germany

Internet Services & Protocols Multimedia Applications, Voice over IP

Internet Services & Protocols Multimedia Applications, Voice over IP

SIP Session Initiation Protocol

NTP VoIP Platform: A SIP VoIP Platform and Its Services 1

Session Initiation Protocol

Multimedia & Protocols in the Internet - Introduction to SIP

Telecommunication Services Engineering (TSE) Lab. Chapter V. SIP Technology For Value Added Services (VAS) in NGNs

An outline of the security threats that face SIP based VoIP and other real-time applications

SIP Essentials Training

An Introduction to VoIP Protocols

EE4607 Session Initiation Protocol

IP Office Technical Tip

SIP Basics. CSG VoIP Workshop. Dennis Baron January 5, Dennis Baron, January 5, 2005 Page 1. np119

Media Gateway Controller RTP

VoIP LAB. 陳 懷 恩 博 士 助 理 教 授 兼 所 長 國 立 宜 蘭 大 學 資 訊 工 程 研 究 所 TEL: # 255

VoIP. What s Voice over IP?

Voice over IP Fundamentals

The use of IP networks, namely the LAN and WAN, to carry voice. Voice was originally carried over circuit switched networks

Voice-Over-IP. Daniel Zappala. CS 460 Computer Networking Brigham Young University

SIP for Voice, Video and Instant Messaging

ARCHITECTURES TO SUPPORT PSTN SIP VOIP INTERCONNECTION

NAT Traversal in SIP. Baruch Sterman, Ph.D. Chief Scientist David Schwartz Director, Telephony Research

Part II. Prof. Ai-Chun Pang Graduate Institute of Networking and Multimedia, Dept. of Comp. Sci. and Info. Engr., National Taiwan University

Formación en Tecnologías Avanzadas

This specification this document to get an official version of this User Network Interface Specification

802.11: Mobility Within Same Subnet

SIP Security. ENUM-Tag am 28. September in Frankfurt. Prof. Dr. Andreas Steffen. Agenda.

Sangheon Pack, EunKyoung Paik, and Yanghee Choi

SHORT DESCRIPTION OF THE PROJECT...3 INTRODUCTION...4 MOTIVATION...4 Session Initiation Protocol (SIP)...5 Java Media Framework (JMF)...

Design, implementation and analysis of a large scale audio conferencing system using SIP

SIP PBX TRUNKING WITH SIP-DDI 1.0

IP-Telephony SIP & MEGACO

Application Notes for Configuring SIP Trunking between McLeodUSA SIP Trunking Solution and an Avaya IP Office Telephony Solution 1.

Improving Quality in Voice Over Internet Protocol (VOIP) on Mobile Devices in Pervasive Environment

Request for Comments: August 2006

VoIP and IP Telephony

SIP RFC (3261) explained, LIGHT 3.2 (1/2011) -

Session Initiation Protocol (SIP)

TECHNICAL SUPPORT NOTE. 3-Way Call Conferencing with Broadsoft - TA900 Series

AGILE SIP TRUNK IP-PBX Connection Manual (Asterisk)

SIP and ENUM. Overview DENIC. Introduction to SIP. Addresses and Address Resolution in SIP ENUM & SIP

Chapter 2 Voice over Internet Protocol

Grandstream Networks, Inc. GXP2130/2140/2160 Auto-configuration Plug and Play

Session Initiation Protocol (SIP)

Analysis of a VoIP Attack

The VoIP Vulnerability Scanner

Multimedia Conferencing with SIP

SIP Tutorial. VoIP Workshop Terena 2005 Poznan Poland. By Stephen Kingham

VIDEOCONFERENCING. Video class

SIP - QUICK GUIDE SESSION INITIATION PROTOCOL - INTRODUCTION

V o I P. VoIP What it can do for you. John Ferlito johnf@inodes.org

Integration of GSM Module with PC Mother Board (GSM Trunking) WHITE/Technical PAPER. Author: Srinivasa Rao Bommana

Voice Over IP. Priscilla Oppenheimer

Denial of Services on SIP VoIP infrastructures

SIP Trunking and Voice over IP

Chapter 10 Session Initiation Protocol. Prof. Yuh-Shyan Chen Department of Computer Science and Information Engineering National Taipei University

Encapsulating Voice in IP Packets

Contents. Specialty Answering Service. All rights reserved.

White paper. SIP An introduction

Computer Networks. Voice over IP (VoIP) Professor Richard Harris School of Engineering and Advanced Technology (SEAT)

How to Configure the Allworx 6x, 24x and 48x for use with Integra Telecom SIP Solutions

How To Configure. VoIP Survival. with. Broadsoft Remote Survival

Three-Way Calling using the Conferencing-URI

NAT TCP SIP ALG Support

SIP Trunking & Peering Operation Guide

WHAT S BEHIND YOUR SMARTPHONE ICONS? A brief tour of behind-the-scenes signaling for multimedia services

VoIP with SIP. Session Initiation Protocol RFC-3261/RFC

TECHNICAL CHALLENGES OF VoIP BYPASS

SIP OVER NAT. Pavel Segeč. University of Žilina, Faculty of Management Science and Informatics, Slovak Republic

SIP : Session Initiation Protocol

Res iprocate S IP S tack

SIPping from the Open Source Well. Matthew Bynum UC Architect

How To Send A Connection From A Proxy To A User Agent Server On A Web Browser On A Pc Or Mac Or Ipad (For A Mac) On A Network With A Webmail Web Browser (For Ipad) On An Ipad Or

A Scalable Multi-Server Cluster VoIP System

Secure High Definition Video Conferencing

Implementing Multimedia Sessions. using SIP Architecture

How To Use Sip On A Pc Or Mac Or Ipod (For A Premium) For Free On A Sim Sims Or Ipo (For Free) For A Long Distance Connection (For Psp) For Your Ipo Or Ipos

Transcription:

Open Source VoIP on Debian FOSDEM 2007 Brussels, Belgium Daniel Pocock B.CompSc(Melbourne) www.readytechnology.co.uk

Overview User expectations How it works Survey of available software Overview of resiprocate sipdial example with resiprocate Security analysis SIP REFER Conclusions

User expectations and behaviour Convenient e.g. address book dialing on mobile Free e.g. Skype, MSN `Never' miss a call - mobile, any time, anywhere (library, restaurant, restroom) As developers, we must seek to deliver solutions that meet the needs and expectations of the user

How it works - overview Audio and video streams transmitted using RTP, which is encapsulated in UDP Call setup and related control activities executed with SIP (or H.323 or MGCP) We will focus exclusively on SIP, it is easy to understand, widespread and best positioned to challenge Skype, MSN, etc

How it works audio streams 8kHz, 16bit unsigned linear audio samples are typical, just like ISDN Samples are compressed using a codec Frames of compressed data are embedded in RTP packets RTP packets embedded in UDP/IP and transmitted across network

How it works codec comparison Codec Input Frames/seco nd G.711U/A 16bit, 8kHz unsigned G.729 16bit, 8kHz unsigned G.723.1 ilbc GSM 16bit, 8kHz unsigned 16bit, 8kHz unsigned 16bit, 8kHz unsigned Frame size (bytes) Bitrate (raw, kbps) Bitrate (with headers, kbps) Assume 1 frame per packet Bitrate (with headers, kbps) Assume 2 frames per packet Notes 100 80 64 80 72 Same as ISDN 100 10 8 24 14.4 Patented, good quality, low bandwidth 33 1/3 24 20 6.3 5.3 11.7 10.7 9.1 8.0 Patented, robotic sound Patented, more robotic 33 1/3 50 13.3 18.7 17.3 Patent free, more CPU than G.729, less support in phones 50 32.5 13 21.2 17 More widely supported than ilbc, but not as good under packet loss T.38 fax `codec' Used for sending faxes. Not quite like other codecs, it deals with transmission of compressed image data rather than audio data, and it uses it's own transport mechanism rather than RTP in UDP. About 40kbps needed in one direction only.

How it works - SIP SIP = IETF Session Initiation Protocol Provides a means of starting and stopping calls Transmits information about caller (CLI), callee (e.g. phone number or username) Uses headers similar to HTTP and SMTP, embedded in UDP packets on port 5060. Therefore, easy for us to use our existing skills.

How it works - SIP SIP defines these entities: User Agent (UA) client or server Proxy stateless Proxy - stateful Registration Server Some applications/devices implement a combination of the above entities A proxy can only `relay' SIP packets, while a UA or Registration server can create new requests and responses

How it works - SIP bob +----+ UA +----+ 3)INVITE carol@chicago.com chicago.com +--------+ V +---------+ 2)Store Location 4)Query +-----+ Registrar =======> Service <======= Proxy sip.chicago.com +---------+ +--------+=======>+-----+ A 5)Resp 1)REGISTER +----+ UA <-------------------------------+ cube2214a 6)INVITE +----+ carol@cube2214a.chicago.com carol Diagram courtesy of RFC 3261 Figure 2: REGISTER example

How it works - SIP URIs are used, e.g. sip:daniel@lvdx.com, sip:442071357000@lvdx.com Each UDP message is a `request' or a `response', much like HTTP Typical requests are INVITE, REFER, BYE, MESSAGE, REGISTER Typical responses are 180 Ringing, 200 OK, 486 Busy, 503 Service Unavailable Digest auth scheme similar to HTTP auth

How it works - SIP INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hg4bk776asdhds Max-Forwards: 70 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.atlanta.com CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Content-Type: application/sdp Content-Length: 142 (Alice's SDP not shown) SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hg4bknashds8;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hg4bk77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hg4bk776asdhds ;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.atlanta.com CSeq: 314159 INVITE Contact: <sip:bob@192.0.2.4> Content-Type: application/sdp Content-Length: 131 (Bob's SDP not shown) SIP Dialog identification The `From tag', `To tag' and `Call ID' form a tuple (the `Dialog ID') which uniquely identifies a `dialog'. From tag: 1928301774 To tag: 1928301774 Call ID: a84b4c76e66710@pc33.atlanta.com The SIP `dialog' is similar to a HTTP `Session', the `Dialog ID' is similar to a unique session cookie.

Survey of available software Category Name Language License Debian packages Description PBX/Proxy/Server repro C++ Vovida (like BSD) Highly scalable and extensible proxy for SIP, part of resiprocate project PBX/Proxy/Server SER OpenSER C GPL or private GPL Y Y Highly scalable and configurable proxy for SIP OpenSER extends upon SER PBX/Proxy/Server Asterisk C GPL or private Y Popular PBX, acts as a UA rather than a SIP proxy, so it has less scalability but more features. PBX/Proxy/Server OpenPBX C GPL Y Spin off of Asterisk, by developers who believe less dependence on Digium is important PBX/Proxy/Server YATE C++ GPL Y Extensible telephony architecture Softphone ekiga C GPL Y Softphone with V4L2 webcam support Softphone GnomeMeeti ng C GPL Y Softphone Softphone linphone C GPL Y Softphone Softphone kphone C GPL Y Softphone Softphone Softphone wengophon e C GPL Y Softphone SIP Java GPL Java softphone - multi-platform Communicat or Library resiprocate C++ Vovida Very thorough C++ implementation of SIP, multiplatform Library exosip C GPL Y Implements SIP Library ccrtp C++ GPL Y Provides classes for handling RTP streams

Overview of resiprocate rutil/* - provides basic classes across all platforms, e.g. Data, Thread resip/stack/* - for parsing SIP messages and SDP, typical classes are SipMessage, SdpContents, Uri, NameAddr resip/dum/* - for managing SIP dialogs from start to finish, typical classes are DialogUsageManager, InviteSessionHandler

Using DialogUsageManager Create subclass of InviteSessionHandler Create subclass of ServerAuthManager if needed Create instance of SipStack and DialogUsageManager Loop, calling SipStack::process() and DialogUsageManager::process() Respond to events inside MyInviteSessionHandler

Using DialogUsageManager resiprocate will call methods on MyInviteSessionHandler to tell us when important things are happening. class MyInviteSessionHandler : public resip::invitesessionhandler { //... virtual void onfailure(resip::clientinvitesessionhandle cis, const resip::sipmessage& msg); virtual void onconnected(resip::clientinvitesessionhandle, const resip::sipmessage& msg); virtual void onreferaccepted(resip::invitesessionhandle, resip::clientsubscriptionhandle, const resip::sipmessage& msg); virtual void onreferrejected(resip::invitesessionhandle, const resip::sipmessage& msg); virtual void onnewsession(resip::clientinvitesessionhandle cis, resip::invitesession::offeranswertype oat, const resip::sipmessage& msg); virtual void onterminated(resip::invitesessionhandle is, resip::invitesessionhandler::terminatedreason reason, const resip::sipmessage* msg); }; //...

An example - sipdial gconf Firefox sipdial libresip libdum libsipdial linking gconf DialerConfiguration *dc = new DialerConfiguration(); ifstream in(config_filename); dc->loadstream(in); DBus Your app DialInstance di(*dc, Uri( tel:+442071357000 )); di.execute();

An example - demo sipdial works with Linksys, Cisco and Polycom, probably others too Linksys has donated SPA-941 and other devices to demo and give away at FOSDEM

Security analysis SIP REFER Can be sent mid-dialog, most phones will use their credentials when following REFER Who is at fault? sipdial ask for confirmation? proxy filter `nasty' REFERs? SIP protocol should the sender of REFER be responsible for call charges somehow? handset confirm before following REFER?

Conclusions Many apps will soon integrate with telephony and SIP Traditional telecommunications will be eroded by SIP. This is already happening in both the enterprise markets and the consumer markets. This is the ideal time for OPEN SOURCE and OPEN STANDARDS to establish themselves as the dominant paradigm.

Where to next? For free phone numbers, SIP services and links: www.opentelecoms.org For resiprocate: www.resiprocate.org For Linksys resellers: www.linksys.com