Towards Junking the PBX: Deploying IP Telephony Wenyu Jiang, Jonathan Lennox, Henning Schulzrinne and Kundan Singh Columbia University {wenyu,lennox,hgs,kns10}@cs.columbia.edu We describe our departmental IP telephony installation Outline • • • • • • Introduction to IP telephony System architecture Call flows System configuration Security Scalability 6/26/2001 Columbia University, Deploying IP Telephony 2 Traditional Telecommunication Infrastructure 7040 External line 7041 Corporate/Campus 7042 Private Branch Exchange 212-8538080 Telephone switch Another switch 7043 Corporate/Campus LAN 6/26/2001 Internet Columbia University, Deploying IP Telephony 3 What is IP Telephony ? 7040 Corporate/Campus Another campus 8151 External line 8152 7041 PBX PBX 8153 7042 7043 LAN VoIP Gateway VoIP Gateway Internet 8154 LAN IP Phone Client 6/26/2001 Columbia University, Deploying IP Telephony 4 IP Telephony Protocols audio over RTP Call “bob@office.com” SIP server home.com office.com Session Initiation Protocol - SIP Real time Transport Protocol - RTP 6/26/2001 • Contact “office.com” asking for “bob” • Locate Bob’s current phone and ring • Bob picks up the ringing phone • Send and receive audio packets Columbia University, Deploying IP Telephony 5 Architecture rtspd SNMP RTSP media server sipconf SIP conference server Telephone Telephone switch T1/E1 RTP/SIP sipd SIP proxy, redirect server RTSP RTSP clients sipum SIP/RTSP Unified messaging Web based configuration Web server 3Com SQL database Cisco 2600 gateway sipc Quicktime Cisco 7960 e*phone Hardware Internet (SIP) phones Pingtel NetMeeting sip323 Software SIP user agents 6/26/2001 SIPH.323 convertor Columbia University, Deploying IP Telephony H.323 6 Example Call (IP only) • Bob signs up for the service from the web as “bob@cs.columbia.edu” • sipd canonicalizes the destination to sip:bob@cs.columbia.edu • sipd rings both e*phone and sipc • He registers from multiple phones • Alice tries to reach Bob INVITE sip:Bob.Wilson@cs.columbia.edu • Bob accepts the call from sipc and starts talking Web based configuration sipd SIP proxy, redirect server Call Bob Web server SQL database e*phone Hardware Internet (SIP) phones sipc cs.columbia.edu Software SIP user agents 6/26/2001 Columbia University, Deploying IP Telephony 7 Canonicalization Bob.Wilson canonicalize bob@cs 6/26/2001 Columbia University, Deploying IP Telephony 8 Other Services • Programmable servers – Time-of-day, caller identification – CPL, SIP CGI • Unified messaging – Centralized voice mail – SIP, RTSP • Conferencing – Dial-in bridges; centralized audio mixing – Audio, video and chat 6/26/2001 Columbia University, Deploying IP Telephony 9 PSTN to IP Call (Direct Inward Dial) PBX PSTN External T1/CAS 1 Call 9397134 713x is called a part of Coordinated Dial Plan (CDP) in a Nortel PBX Gateway Internal T1/CAS (Ext:7130-7139) 2 Call 7134 Ethernet 5 Regular phone (internal) 3 SIP server • DID - direct and simple • No-DID - dial extension, supports more users 6/26/2001 sipc Bob’s phone Columbia University, Deploying IP Telephony SQL database sipd 4 7134 => bob 10 IP to PSTN Call PBX PSTN External T1/CAS 5 Call 5551212 Gateway (10.0.2.3) Internal T1/CAS 4 Call 85551212 3 Ethernet 5551212 Regular phone (internal, 7054) Note: In this direction there is no distinction between DID and nonDID calls. 6/26/2001 1 Bob calls 5551212 SIP server sipc 2 SQL database sipd Use sip:85551212@10.0.2.3 Columbia University, Deploying IP Telephony 11 T1 Line Configuration (From the PBX Side) • Electrical/physical settings – T1 type: Channelized, PRI – Characteristics: line coding - AMI, B8ZS; framing - D4, ESF • Trunk type: DID, TIE • Channel type: Data, Voice-only, Data/Voice • Access permissions: adjust NCOS for internal T1 trunk and CDP routing entry (713x) 6/26/2001 Columbia University, Deploying IP Telephony 12 VoIP Configuration in the Gateway: Dial Peers • Dial Peer for PSTN to IP calls: dial-peer voice 1 voip destination-pattern 713. voice-class codec 1 session protocol sipv2 session target ipv4:128.59.19.141 • Dial Peer for IP to PSTN calls: dial-peer voice 1000 pots destination-pattern ((70..)|(71[0-24-9].)) no digit-strip port 1/0:1 • Regular expressions to avoid ambiguity 6/26/2001 Columbia University, Deploying IP Telephony 13 Dial Peers for non-DID calls • Example for a mix of DID and non-DID translation-rule 7138 rule 1 71381.% 1 ANY abbreviated dial-peer voice 1 voip destination-pattern 713[0-79] … dial-peer voice 2 voip destination-pattern 7138T translate-outgoing called 7138 … • Caller dial 939-7138, then punch in a 3digit extension of the form 1xx. 6/26/2001 Columbia University, Deploying IP Telephony 14 VoIP Configuration in sipd: Dial Plan • PSTN to IP call • IP to PSTN call sip:7134@sipd-host sip:5551212@sipd-host canonicalize using dial plan canonicalize using dial plan tel:+12129397134 Find tel: uid in SQL Primary User Table Locate user’s contact information sip:bob@sipd-host 6/26/2001 tel:+12125551212 Verify caller’s privilege Locate proper gateway sip:85551212@gw Columbia University, Deploying IP Telephony 15 Example Dial Plan • Dial plan mapping for IP to PSTN calls # Intra-department calls 7[01]?? tel:+1212939$ # Local (same area code) calls ??????? tel:+1212$ # Remove dial-out prefix ‘8’ (8)??????? tel:+1212$ # International numbers (011)* tel:+$ (8011)* tel:+$ 6/26/2001 Columbia University, Deploying IP Telephony 16 Security • Goal: prevent unauthorized users from making certain (e.g., long-distance) calls • Where to put authentication modules: – In the gateway (requires vendor’s support) – Or, its associated SIP proxy server • Prevent direct calls that bypasses the proxy • Enforce signaling path using IOS access control • SIP authentication – Digest, Basic, PGP 6/26/2001 Columbia University, Deploying IP Telephony 17 Gateway Selection and Privileges • Approaches – RFC 2916: ENUM, E.164 based on DNS – RFC 2871: TRIP, allows optimization – Static routing file, used in sipd (+1212939)7[01]?? full,guest sip:$@gw.office.com – full and guest are user’s gateway classes – The server may terminate the call if caller has no sufficient privileges. 6/26/2001 Columbia University, Deploying IP Telephony 18 Sample Access Control List (ACL) • Configure NIC to use ACL 101 (in packets) interface FastEthernet0/0 ip address 128.59.19.28 255.255.248.0 ip access-group 101 in • Definition of ACL 101 access-list 101 permit ip host 128.59.19.141 any access-list 101 permit udp 128.59.16.0 0.0.7.255 \ range biff 65535 host 128.59.19.28 neq 5060 • SIP requests (destination port 5060) allowed from only the designated proxy host • Multimedia (RTP) packets treated otherwise 6/26/2001 Columbia University, Deploying IP Telephony 19 CINEMA: Columbia InterNet Extensible Multimedia Architecture • Web interface – Administration – User configuration • Unified Messaging – Notify by email – rtsp or http • Portal Mode – 3rd party IpTelSP 6/26/2001 Columbia University, Deploying IP Telephony 20 Scalability via DNS SRV • A simple load balancing scheme example.com _sip._udp 0 40 a.example.com 0 40 b.example.com 0 20 c.example.com 1 0 backup.somewhere.com • a and b each receives 40% of total request • c receives remaining 20% • backup server for fault tolerance 6/26/2001 Columbia University, Deploying IP Telephony 21 Scalability Continued • 2-stage load balancing based on DNS SRV • Stage 1: stateless routing based on hashing • Stage 2: – Hashed clusters – Stateful proxy • Redirect feature 6/26/2001 Columbia University, Deploying IP Telephony 22 Scalability of Media Servers • Media packets => more load than signaling • rtspd: multiple server selection: static/dynamic • sipconf: tree structure • Bandwidth savings similar to multicast • Added packetization and playout delay 6/26/2001 Columbia University, Deploying IP Telephony 23 Scalability of Gateway and LAN • 1 T1 line = maximum 24 voice channels – Multiple T1 lines or gateways – IP Centrex service by carrier PBX with ethernet • LAN bandwidth limitations (gateway calls) Codec Bit-rate Net bandwidth Gross (IP/RTP/UDP) PCM µ-law 64 kb/s G.729, 20ms 8 G.729, 40ms .. 3.072 Mb/s 384 kb/s .. 3.84 Mb/s 1.152 Mb/s 768 kb/s • Silence Suppression: 40-45% activity factor • Faster Ethernet interface (10 => 100 Mb/s) 6/26/2001 Columbia University, Deploying IP Telephony 24 SNMP Support in sipd • sipd status • Details of active transactions • User contact info 6/26/2001 Columbia University, Deploying IP Telephony 25 Detailed SNMP MIBs • User contact info • Details of active transactions 6/26/2001 Columbia University, Deploying IP Telephony 26 Future Work • Additional services – – – – PIN numbers for telephone users Automated, electronic billing Instant messaging VoiceXML (e.g., email access via PSTN) • Performance and scalability: – sipd, rtspd, sipconf – SQL main-memory vs. disk database • Firewall/NAT interoperability • Details of system to appear in Tech Report 6/26/2001 Columbia University, Deploying IP Telephony 27 Conclusion • Initial field test experience with deploying IP telephony in a campus environment • The architecture and installation experience can be used at other organizations • Issues raised for further study: – – – – Service availability/reliability Quality of Service (QoS) Privacy/encryption Electronic billing policies 6/26/2001 Columbia University, Deploying IP Telephony 28