asterisk : going deeper

21
February 27, 2007 © 2007 Sun Microsystems 1 Asterisk : Going Deeper Stephen Uhler Sun Microsystems Laboratories

Upload: others

Post on 18-Dec-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 1

Asterisk : Going Deeper

Stephen UhlerSun Microsystems Laboratories

Page 2: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 2

Outline

• Intro: how I got into the phone business• Running Asterisk in a Corporate

environment• Running a phone system when you have a

day job• Stuff for me• Asterisk on Solaris

Page 3: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 3

Page 4: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 4

Asterisk Beginnings at SUN

Page 5: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 5

How I Got into the Phone Business

Page 6: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 6

You Want What?

T1/PRI

Page 7: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 7

Phone-y ExpectationsThe good-old days, whenhanging-up on someoneactually meant something

“Can you hear me now?”

Page 8: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 8

*

*

Internet

DMZ

SlabNet *

*

OfficePhones

Home-officephones

SIP/IAX

SIP/IAXVSP

Main PBXtest PBX

SUNPBX

“T1”

SunlabsVOIPTelephonyArchitecture T1 gateway

IAX

SIPIAXHTTPS

Voicemail

HTTPSremotemanagement

firewalls

Safe Firewall Traversal

Page 9: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 9

Sunlabs phonesystem

MainPBX

LegacyPBX *

Gateway*

SparcSolaris

*Conference Server

*

SIPIAX

ISDN/PRI

*Asterisk

HTTP

Page 10: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 10

Auto-provisioning

• No fuss phone distribution

Page 11: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 11

Auto-provisioning: the Pieces• DHCP server• FTP boot/configuration

server• Corporate LDAP

authentication service• Asterisk

– IVR (extensions.conf)– Provisioning (AGI)

Page 12: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 12

Web Services Interface

Page 13: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 13

Batch control using theManager Interface

• Keeping *’s in sync– SIP registrations– DUNDI– DB entries

• Additional phoneservices

AMIManager

Page 14: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 14

SunrayServer

SunrayServer

WEBServices

Admin

smartcard usersunray location

PSTN

PBX(telephone switch)

smartca

rd su

nray

Follow-me Sunray Phone System

user location

Page 15: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 15

Portable “soft” phone

• Simple, lightweight,and functional

• Uses the IAXprotocol

• Runs on Solaris,Sunray, Windows,Linux, and Mac

• Easily customizableGUI

Page 16: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 16

Screen-based Auto Dial

• Watch the clipboardand cut buffer

• Look for phonenumbers

• Place the call– Use web services

interface– Use soft phone

Page 17: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 17

Batch AMI service: Conference Monitor

• Watch Conference“joins” and “leaves”

• Send text messages to“smart” phones– Add “conference”

menu for GUIconference controls

– Display joins andleaves

Page 18: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 18

ConMan Conference FeaturesUser Administration

Creation &Management

Selection

Monitoring & control

Page 19: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 19

Asterisk on Solaris

Page 20: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 20

Asterisk on Big Iron

Page 21: Asterisk : Going Deeper

February 27, 2007 © 2007 Sun Microsystems 21

A Modest Example:1000 Calls

1 call = 8000B/sec @ 20ms/pkt = ~200B/pkt1000 calls = 50,000 pkts/sec = 10,000,000 B/sec

Poll() [schedule] [schedule] write() read()

100,000 thread schedules150,000 system calls