Introduksjon til Asterisk

2,307 views
2,175 views

Published on

Foredraget ble holdt for Bergen (BSD og) Linux User Group (BLUG), 3. mars 2006

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,307
On SlideShare
0
From Embeds
0
Number of Embeds
57
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Introduksjon til Asterisk

    1. 1. Introduksjon Asterisk, Asterisk logoene og dCap logoen er copyright Digium, og er brukt med tillatelse. Foredraget er © 2006, Magnus Espeland, Oyatel AS. Ta kontakt om du vil bruke dette til noe 
    2. 2. <ul><li>Innhold </li></ul><ul><li>Telefoni før og etter VoIP </li></ul><ul><li>Asterisk </li></ul><ul><ul><li>Intro </li></ul></ul><ul><ul><li>Oppbygning </li></ul></ul><ul><ul><li>Grensesnitt </li></ul></ul><ul><ul><li>Eksempler </li></ul></ul><ul><ul><li>Komme i gang </li></ul></ul><ul><li>Oppsummering </li></ul><ul><li>Ordliste </li></ul>
    3. 3. Magnus Espeland <ul><li>Bachelor of Network Computing Monash University, Melbourne, 2002 </li></ul><ul><li>Utviklet og driftet flere større Asterisk systemer siden høsten 2002 </li></ul><ul><li>Teknisk sjef Oyatel AS </li></ul>[email_address]
    4. 4. <ul><li>Oyatel AS </li></ul><ul><li>Etablert juni 2005 </li></ul><ul><li>Erfaring med Asterisk siden 2002 </li></ul><ul><li>Leverer konsulenttjenester, produkter og telefoni </li></ul><ul><li>Er med i BTV’s kompetanseutviklings prosjekt </li></ul><ul><li>Eid av ICT Group og de ansatte </li></ul>
    5. 5. Telefoni før og etter VoIP
    6. 6. <ul><li>Før </li></ul><ul><li>Dedikert kobber til hvert abonnement </li></ul><ul><li>Timeslots på linjene mellom sentraler </li></ul><ul><ul><li>Garantert båndbredde, timing og kvalitet </li></ul></ul>A B C A B C A B C A Vår samtale
    7. 7. <ul><li>Før </li></ul><ul><li>Lokal abo til lokal sentral </li></ul><ul><li>Routing mellom sentraler </li></ul><ul><ul><li>A -> B -> C </li></ul></ul><ul><ul><li>A -> X (dersom stor trafikk mellom disse sentralene) </li></ul></ul><ul><li>Funksjonalitet ute i nettet </li></ul><ul><li>NRDB (Norsk Referanse Database, nrdb.no) </li></ul><ul><ul><li>Routing mellom teleoperatører </li></ul></ul>
    8. 8. <ul><li>Etter </li></ul><ul><li>Ikke dedikert medium, går over IP </li></ul><ul><li>Pakke nettverk </li></ul><ul><ul><li>Ingen garanti for noe som helst </li></ul></ul><ul><ul><ul><li>Pakketap (UDP) </li></ul></ul></ul><ul><ul><ul><li>Latency </li></ul></ul></ul><ul><ul><ul><li>QoS hjelper </li></ul></ul></ul>A B A A B C A Vår samtale B B C
    9. 9. <ul><li>Etter </li></ul><ul><li>Mer sentralisert </li></ul><ul><ul><li>Må koble til sentral VoIP server </li></ul></ul>
    10. 10. Asterisk - Intro
    11. 11. <ul><li>Begynnelsen </li></ul><ul><li>I 1999 trengte Mark Spencer en liten telefonsentral til Linux Support Services. Han synes det var for dyrt å kjøpe en, så han bestemte seg for å lage en selv. Hardware fra Zapata i Mexico. Etter hvert begynte andre å bygge videre på programvaren han la ut på nettet. </li></ul>
    12. 12. <ul><li>Nå </li></ul><ul><li>Astricon, flere steder, flere ganger i året </li></ul><ul><li>Største stand på VON Spring 2006 </li></ul><ul><li>Jon ’Maddog’ Hall (Linux International) : </li></ul><ul><li>&quot;I predict that over next three years, VoIP using an open-source solution, such as Asterisk; will generate more business than the entire Linux marketplace today&quot;. </li></ul>
    13. 13. Er Asterisk klar for oppgavene? <ul><li>Begynner å bli virkelig stabilt </li></ul><ul><li>Relativt stabile interfacer </li></ul><ul><li>Forking (openpbx.org) </li></ul><ul><li>Utviklings kostnader </li></ul>
    14. 14. <ul><li>Lisens </li></ul><ul><li>Dobbel lisensiert </li></ul><ul><ul><li>GPL </li></ul></ul><ul><ul><li>Kommersiell (bla pga patenter, G.729a, SS7) </li></ul></ul><ul><li>For å få kode inn i Asterisk må man enten </li></ul><ul><ul><li>Si fra seg copyright </li></ul></ul><ul><ul><li>Gi Digium, fri tilgang til å bruke koden i sin kommersielle versjon av Asterisk, for alltid </li></ul></ul><ul><ul><li>Legge til i Asterisk-Addons </li></ul></ul>
    15. 15. Asterisk - Oppbygning <ul><li>Kjernenen / Moduler </li></ul><ul><li>Konfigurasjon </li></ul>
    16. 16. <ul><li>Kjernen </li></ul><ul><li>Bygd opp rundt en kjerne (som Linux) </li></ul><ul><li>Mange forskjellige modul klasser </li></ul><ul><ul><li>Channels (IAX, SIP, Zap) </li></ul></ul><ul><ul><li>Codec / Format </li></ul></ul><ul><ul><li>Resource / PBX </li></ul></ul><ul><ul><li>Application / Functions </li></ul></ul><ul><ul><li>CDR (Call Data Record) </li></ul></ul><ul><ul><li>(litt overlapping) </li></ul></ul>
    17. 17. <ul><li>Channels </li></ul><ul><li>Driver de forskjellige kanalene data kommer inn </li></ul><ul><li>IAX – Inter Asterisk eXhange </li></ul><ul><ul><li>En nett, liten og enkel protokoll (men best!) </li></ul></ul><ul><li>SIP – Session Initiation Protocol </li></ul><ul><ul><li>Tusenvis av sider med RFC </li></ul></ul><ul><ul><li>Varierende implementasjoner </li></ul></ul><ul><ul><li>Dessverre svært utbredt </li></ul></ul>
    18. 18. <ul><li>Channels </li></ul><ul><li>Zap – Zapata / Zaptel </li></ul><ul><ul><li>Hardware kort </li></ul></ul><ul><ul><li>Fra 1 linje (FXS/FXO) </li></ul></ul><ul><ul><li>Til 240 linjer (8 E1) </li></ul></ul><ul><li>Andre </li></ul><ul><ul><li>H.323, MGCP, Skinny, ALSA/OSS </li></ul></ul>(forts.)
    19. 19. <ul><li>Codec / Format </li></ul><ul><li>Codec er formatet på lyden som kommer fra en Channel </li></ul><ul><li>Format er formatet på lyden som kommer fra en fil </li></ul><ul><li>Støtter mange </li></ul><ul><ul><li>G.711 (aLaw/uLaw), G.723/726, G.729, GSM, iLBC, Speex, LPC10…. </li></ul></ul>
    20. 20. <ul><li>PBX / Resource </li></ul><ul><li>PBX (mer om disse seinere) </li></ul><ul><ul><li>Config og Realtime (ARA) (mer seinere) </li></ul></ul><ul><ul><li>Asterisk Extension Language (AEL) </li></ul></ul><ul><li>Resource </li></ul><ul><ul><li>Music on hold </li></ul></ul><ul><ul><li>AGI </li></ul></ul><ul><ul><li>Monitor </li></ul></ul>
    21. 21. <ul><li>Applications / Functions </li></ul><ul><li>Applications </li></ul><ul><ul><li>MeetMe, Echo kobler til andre moduler </li></ul></ul><ul><li>Functions </li></ul><ul><ul><li>MD5 </li></ul></ul><ul><ul><li>CallerID </li></ul></ul><ul><ul><li>Math </li></ul></ul><ul><li>MYE overlapping mellom disse </li></ul>
    22. 22. <ul><li>CDR </li></ul><ul><li>Call Data Records </li></ul><ul><ul><li>Billing osv, det som lagres om samtalen </li></ul></ul><ul><ul><li>CVS </li></ul></ul><ul><ul><li>Diverse SQL (ODBC, TDS, SQLite, PG) </li></ul></ul><ul><ul><li>MySQL er i Asterisk-Addons, pga MySQL lisensen </li></ul></ul>
    23. 23. <ul><li>Konfigurasjon </li></ul><ul><li>Filer </li></ul><ul><ul><li>iax.conf, sip.conf </li></ul></ul><ul><ul><li>extensions.conf </li></ul></ul><ul><ul><ul><li>Hjertet i Asterisk – dialplan </li></ul></ul></ul><ul><ul><ul><li>Mer etterpå </li></ul></ul></ul><ul><li>Asterisk Realtime Architecture (ARA) </li></ul><ul><ul><li>Dialplan, bruker og konfigurasjons database </li></ul></ul>
    24. 24. Asterisk - Grensesnitt <ul><li>CLI – Asterisk Console </li></ul><ul><li>Spool file </li></ul><ul><li>AGI – Asterisk Gateway Interface </li></ul><ul><li>AMI – Asterisk Manager Interface </li></ul><ul><li>Debugging </li></ul>
    25. 25. <ul><li>CLI </li></ul><ul><li>Konsollen til Asterisk </li></ul><ul><li>Her kan man kontrollere stort sett alt Asterisk gjør, og få mye debug info </li></ul><ul><li>Startes ved å kjøre ’asterisk –r ’ </li></ul>
    26. 26. <ul><li>Spool file </li></ul><ul><li>Den enkleste måten å la eksterne programmer bruke Asterisk </li></ul><ul><li>Kan bare brukes til å starte samtaler, og man angir begge ender av samtalen. Slik kan man gjøre en god del triks </li></ul>
    27. 27. <ul><li>AGI </li></ul><ul><li>Asterisk Gateway Inteface </li></ul><ul><li>Likt CGI for web </li></ul><ul><li>Tenk på det som at STDIN og STDOUT er koblet til CLI (Asterisk konsollet) </li></ul><ul><li>EAGI – Lar deg få raw lyd i en egen FH </li></ul><ul><li>FastAGI – Kjør AGI scriptet på ekstern server (via TCP) </li></ul>
    28. 28. <ul><li>AMI </li></ul><ul><li>Asterisk Manager Interface </li></ul><ul><li>Manageren er en TCP socket (plaintext) </li></ul><ul><li>Den dumper mange Events </li></ul><ul><li>Man kjører Actions og får Responses fra den </li></ul><ul><li>Mange ferdige pakker, både for Java, .NET, PHP og Perl (inkl POE) </li></ul>
    29. 29. <ul><li>Debugging </li></ul><ul><li>For å debugge bruker jeg disse verktøyene </li></ul><ul><ul><li>CLI: set verbose n, set debug n, iax2 debug, .. </li></ul></ul><ul><ul><li>Logfiler (feks /var/log/asterisk/messages) </li></ul></ul><ul><ul><li>AGI: Åpne filehandle til en logfil, og skrive debug info dit (vansklig å debuge AGI script via CLI) </li></ul></ul><ul><ul><li>AMI: Filtrere events, evt kjøre status kommandoer </li></ul></ul>
    30. 30. Asterisk - Eksempler <ul><li>The Dialplan! </li></ul><ul><li>Konfigurasjons (filer / ARA) </li></ul><ul><li>Eksempler på bruksområder </li></ul>
    31. 31. <ul><li>The Dialplan! </li></ul><ul><li>Det er her alt skjer (nesten) </li></ul><ul><li>Denne angir hvordan samtaler skal routes og hvilke applikasjoner som skal kjøres mot dem </li></ul><ul><li>Ligger i extensions.conf, eller lastes via ARA. Kan manipuleres via AMI. </li></ul><ul><li>Man kan skrive logikken i AEL, slik at den blir mer oversiktlig. (Asterisk Extension Language) </li></ul><ul><li>Eksempler… </li></ul>
    32. 32. <ul><li>Konfigurasjon </li></ul><ul><li>iax.conf og sip.conf angir peers, users og friends </li></ul><ul><ul><li>Peer er en vi kobler oss til </li></ul></ul><ul><ul><li>User er en som kobler til oss </li></ul></ul><ul><ul><li>Friend er begge deler </li></ul></ul><ul><li>Man angir for eksempel hvilke dialplan context samtaler skal routes til </li></ul>
    33. 33. <ul><li>Konfigurasjon </li></ul><ul><li>features.conf </li></ul><ul><li>manager.conf </li></ul>(forts.)
    34. 34. <ul><li>Basis eksempler </li></ul><ul><li>Ringe ut, se på CLI </li></ul><ul><li>Spool fil mot playback(), se på CLI </li></ul><ul><li>AMI – nc mot manager porten, se på events </li></ul><ul><li>AGI – </li></ul>
    35. 35. <ul><li>Fax to/from mail gateway </li></ul><ul><li>Fax to/from whatever gateway </li></ul><ul><li>Men dessverre: </li></ul><ul><ul><li>FoIP er ikke bra nok (timing og lydkvalitet) </li></ul></ul><ul><ul><li>Bruk kommersielle produkter med T.38 support </li></ul></ul><ul><ul><li>Spandsp + rxfax() / txfax() </li></ul></ul><ul><ul><li>IAXModem + Hylafax </li></ul></ul>Fax
    36. 36. <ul><li>IVR </li></ul><ul><li>Interactive Voice Response (tast 1 for ditt, 2 for datt) </li></ul><ul><li>Bygge enkle rett i dialplan </li></ul><ul><li>Bruke AGI til litt mer avanserte systemer </li></ul><ul><ul><li>Enklere å holde orden på mer avansert kode </li></ul></ul><ul><ul><li>Enklere å bruke mot andre systemer (DB, mail, etc) </li></ul></ul><ul><li>Bruke AMI for virkelig avanserte systemer </li></ul><ul><ul><li>Kan ta tak i samtaler og flytte dem </li></ul></ul>
    37. 37. <ul><li>Telefonkonferanser </li></ul><ul><li>Planlagte </li></ul><ul><li>Automatisk opprettet av overvåkings systemer </li></ul><ul><ul><li>Nagios </li></ul></ul><ul><li>Gode administrasjonsmuligheter </li></ul>
    38. 38. <ul><li>Voicemail </li></ul><ul><li>Bedre enn den du har? </li></ul><ul><li>Integrasjon mot dine systemer </li></ul><ul><li>Videresending til mail </li></ul><ul><li>Store muligheter for tilpassede løsninger </li></ul>
    39. 39. <ul><li>Telefonkø </li></ul><ul><li>Hjelper i peak situasjoner </li></ul><ul><li>Kombiner med IVR (’Vi har fortiden nedetid på XX, feilen utbedres’) </li></ul><ul><li>Diverse algoritmer for eksempel: </li></ul><ul><ul><li>Support personer </li></ul></ul><ul><ul><li>Junior utviklere </li></ul></ul><ul><ul><li>Senior utviklere </li></ul></ul>
    40. 40. <ul><li>Egen PBX </li></ul><ul><li>Kan livet ditt bli enklere med en? </li></ul><ul><li>Ett nummer, routing etter regler </li></ul><ul><li>Talemeny </li></ul><ul><li>Telefonsvarer </li></ul><ul><li>Konferanser </li></ul><ul><li>Køing </li></ul>
    41. 41. Service provider <ul><li>En enkel måte å teste ut Asterisk på med </li></ul><ul><li>liten risiko </li></ul><ul><li>Mulige tjenester: </li></ul><ul><li>IVR, VoIP Gateway, Fax, ... </li></ul>
    42. 42. Service provider PSTN IVR VoIP provider VoIP - Gateway
    43. 43. <ul><li>CTI (Callcenter greier) </li></ul><ul><li>Computer Telephony Interface </li></ul><ul><li>Brukes mellom applikasjon og telefonisystem (for eksempel Asterisk) </li></ul><ul><li>Trenger det egentlig å være forbeholdt callcenter lenger? NEI! </li></ul>
    44. 44. CTI Produkter <ul><li>Computer Telephony Interface (CTI) </li></ul><ul><ul><li>Asterisk Manager Interface (AMI) </li></ul></ul><ul><ul><li>AstManProxy </li></ul></ul><ul><ul><li>Asterisk Java / .NET </li></ul></ul><ul><ul><li>Asterisk-CTI </li></ul></ul><ul><ul><li>OrderlyCalls (OrderlySoftware) </li></ul></ul>
    45. 45. Filter <ul><li>Øker kapasiteten på gammelt utstyr ved å </li></ul><ul><li>flytte funksjonalitet ett lag ut </li></ul><ul><li>Mulige tjenester: </li></ul><ul><li>IVR, Køer, Fax, ... </li></ul>
    46. 46. Filter VoIP provider IVR Kø Overvåke VoIP GW PSTN VoIP - Gateway IVR
    47. 47. <ul><li>Brukere av Asterisk </li></ul><ul><li>Briiz Telecom – Bruker kun Asterisk, og er åpene om det </li></ul><ul><li>Andre mot privatmarkedet bruker SER + Asterisk (Asterisk til terminering, voicemail etc) </li></ul><ul><li>Minst en stor callcenter aktør bruker asterisk i stor skala </li></ul><ul><li>Buskerud fylkeskommune (se egen slide) </li></ul>
    48. 48. Asterisk – Komme i gang
    49. 49. <ul><li>Hvordan få tak i Asterisk </li></ul><ul><li>Subversion </li></ul><ul><ul><li>http://svn.digium.com/svn/asterisk/trunk </li></ul></ul><ul><ul><li>http://svn.digium.com/svn/asterisk/branches/1.2 </li></ul></ul><ul><li>FTP / HTTP </li></ul><ul><ul><li>http://ftp.digium.com/pub/ </li></ul></ul><ul><ul><li>ftp://ftp.digium.com/pub/ </li></ul></ul>
    50. 50. <ul><li>Asterisk@Home ( nå Trixbox ) </li></ul><ul><li>CentOS (Redhat fork) basert </li></ul><ul><li>Sett inn CD, boot, og den overskriver HD på maskinen </li></ul><ul><li>Mange features samt administrasjons verktøy </li></ul><ul><li>’ Automagisk’ installasjon av hardware </li></ul>
    51. 51. <ul><li>Andre produkter </li></ul><ul><li>Diptel </li></ul><ul><ul><li>PBX løsning, plassert lokalt hos kunde. Intel basert maskin med USB drive </li></ul></ul><ul><li>Bjørn og gjengen </li></ul><ul><ul><li>Utvikler GPL telefonsentral for bruk i det offentlige (og andre) </li></ul></ul><ul><li>Diverse internasjonale </li></ul>
    52. 52. <ul><li>Ordliste </li></ul><ul><li>AEL – Asterisk Extension Language (C-style extensions) </li></ul><ul><li>AGI – Asterisk Gateway Interface (Som CGI for web) </li></ul><ul><li>AMI – Asterisk Manager Interface (TCP socket til Asterisk) </li></ul><ul><li>ARA – Asterisk Realtime Architecture (dialplan og config i database) </li></ul><ul><li>CDR – Call Data Record (info lagret om samtaler i ettertid) </li></ul><ul><li>CLI – Command Line Interface(?) </li></ul><ul><li>CTI – Computer Telephony Interface (AMI wrapper for andre programmer) </li></ul><ul><li>G.711 – 64kbits Codec for ISDN i Norge (aLaw / uLaw) </li></ul><ul><li>G.729a – Kommersiell Codec (lite CPU, lite BW og god lydkvalitet) </li></ul><ul><li>GSM – 8kbits (?) Codec for GSM nettet </li></ul><ul><li>IAX – Inter Asterisk eXhange (bedre enn SIP) </li></ul><ul><li>PBX – Private Branch eXhange (telefonsentral i bedriften) </li></ul><ul><li>SIP – Session Initiation Protocol </li></ul><ul><li>VoIP – Voice over IP  </li></ul>
    53. 53. <ul><li>Asterisk som hussentral </li></ul><ul><li>11 kommuner på Sørlandet og Buskerud fylkeskommune skal sammen med et utvalg av bedrifter utvikle en komplett hussentralløsning basert på bl.a. Asterisk. </li></ul><ul><li>Løsningen blir fritt tilgjengelig fra www.asterisk.no </li></ul><ul><li>Info om prosjektet blir også lagt ut på asterisk.no. </li></ul>
    54. 54. <ul><li>Ledig stilling!! </li></ul><ul><li>Vi trenger mer folk! </li></ul><ul><li>Stort marked, få aktører </li></ul><ul><li>Ungt, energisk og spennende miljø </li></ul><ul><li>Mulighet for eierskap i din egen jobb </li></ul><ul><li>Spennende samarbeidspartnere! </li></ul>
    55. 55. <ul><li>Besøk til avdelingen i Oslo </li></ul><ul><li>Gjett hvem som er meg… han andre kjører bil (fort) </li></ul>
    56. 56. <ul><li>Kollega kjører rally </li></ul>
    57. 57. <ul><li>Kollega får konkuranse </li></ul>
    58. 58. <ul><li>GEEK POWER! </li></ul>
    59. 59. Spørsmål og diskusjon <ul><li>Foredraget ligger på </li></ul><ul><li>http://asterisk.no </li></ul>[email_address]

    ×