
ce1f4f38cee428f1d210484a1fd32890.ppt
- Количество слайдов: 53
Uspostava Vo. IP centrale bazirane na otvorenom kodu v 2. 0 Naslov Radojević (branko@carnet. hr) Branko prezentacije 29. 3. 2007. godine
Sadržaj Zašto tel. centrala bazirana na otvorenom kodu? Principi rada Vo. IP centrale (Asterisk) Vo. IP kodeci, SIP i IAX 2 protokol Karakteristike IP telefona Instalacija i konfiguracija Asteriska Povezivanje (interkonekcija) centrala Spoj na JGM (Javnu govornu mrežu) Projekt voop. IX – besplatni razgovori u akademskoj zajednici 2
Tradicionalne telefonske centrale zatvoreni i (s računalne strane gledano) zastarjeli sustavi (često bazirani na prastarim verzijama Windows ili Unix operativnih sustava) hardware je redovito vlastito (proprietary) rješenje pojedinih proizvođača, neopravdano je skup i nije kompatibilan s drugim proizvođačima nadogradnje sustava su komplicirane i skupe, ponekad sitne nadogradnje lančano povlače za sobom ozbiljnu nadogradnju cilj ovakvog pristupa je da ugovorima za održavanje “vežu” kupca na dulje rokove 3
Open source Vo. IP tel. centrale otvoreni i vrlo jednostavno nadogradivi sustavi koji rade na standardnim operativnim sustavima osnova centrale je standardni PC hardware s kojim se može postići osnovna funkcionalnost centrale velika baza korisnika iz cijelog svijeta koji svakodnevno rade na proširenju sustava i usklađivanju s najnovijim informatičkim i Internet trendovima koriste se standardni protokoli koji su jednostavno uskladivi s ostalim sustavima 4
Asterisk X 5
Verzije Asteriska Asterisk (Open Source verzija) Asterisk Business Edition Asterisk NOW! Linux live CD distribucija s grafičkim sučeljem 6
Što je Asterisk? Open Source software koji radi pod Unix i Windows operativnim sustavima, na standardnoj PC platformi i donosi potpunu funkcionalnost telefonske centrale (i mnogo više) podržava većinu signalizacijskih protokola danas u upotrebi (SIP, H. 323, IAX 2, MGCP, SCCP…) može raditi i bez dodatnog (specijaliziranog) hardware-a, ako se radi o zatvorenom sustavu ili se konekcija na JGM može ostvariti putem Vo. IP-a vrlo je skalabilan, tako da može biti i mali hobi telefonski sustav, ali i veliki korporativni sustav inicijalno ga je napisao Mark Spencer, sada predsjednik tvrtke Digium Inc. 7
Asterisk ugrađene mogućnosti Call Features ADSI On-Screen Menu System Alarm Receiver Append Message Authentication Automated Attendant Blacklists Blind Transfer Call Detail Records Call Forward on Busy Call Forward on No Answer Call Forward Variable Call Monitoring Call Parking Call Queuing Call Recording Call Retrieval Call Routing (DID & ANI) Call Snooping Call Transfer Call Waiting Caller ID Blocking Caller ID on Call Waiting Calling Cards Conference Bridging Database Store / Retrieve Database Integration Dial by Name Direct Inward System Access Distinctive Ring Distributed Universal Number Discovery (DUNDi™) Do Not Disturb E 911 ENUM Fax Transmit and Receive (3 rd Party OSS Package) Flexible Extension Logic Interactive Directory Listing Interactive Voice Response (IVR) Local and Remote Call Agents Macros Music On Hold Music On Transfer - Flexible Mp 3 -based System - Random or Linear Play - Volume Control Predictive Dialer Privacy Open Settlement Protocol (OSP) Overhead Paging Protocol Conversion Remote Call Pickup Remote Office Support Roaming Extensions Route by Caller ID SMS Messaging Spell / Say Streaming Media Access Supervised Transfer Talk Detection Text-to-Speech (via Festival) Three-way Calling Time and Date Transcoding Trunking Vo. IP Gateways Voicemail - Visual Indicator for Message Waiting - Stutter Dialtone for Message Waiting - Voicemail to email - Voicemail Groups - Web Voicemail Interface Zapateller 8
Komponente Asterisk sustava JGM voop. IX 9
Dimenzioniranje Asterisk poslužitelja Namjena sustava Broj kanala Preporučeni minimum Hobi <5 CPU: 400 MHz x 86 RAM: 256 MB SOHO 5 do 10 CPU: 1 GHz x 86 RAM: 512 MB Mali sustav < 15 CPU: 3 GHz x 86 RAM: 1 GB Srednji i veliki sustavi > 15 Više procesora ili više poslužitelja 10
Što utječe na performanse poslužitelja? broj paralelnih konekcija količina Vo. IP prometa koja zahtjeva intenzivan rad DSP, npr. upotreba kodeka visoke kompresije konferencijske veze više korisnika echo cancellation pozivanje vanjskih programa unutar skripti drugi procesi koji se izvršavaju na istom poslužitelju, npr. baze podataka optimizirani kernel sustava problem IRQ-a kod korištenja internih PC kartica 11
Instalacija Asteriska (1) instalacijska platforma je debian linux 3. 1 r 2 linux kernel verzija: 2. 4. 27 -2 (radi i na 2. 6) nakon instalacije je trebalo instalirati slijedeće dodatne pakete: tftpd libncurses 5 -dev joe 0. 17 -12 5. 4 -4 3. 1 -0. 2 (nije obvezno) za logiranje na sustav koristiti user : root pass : asterisk 12
Instalacija Asteriska (2) instalacijska datoteka se nalazi u /home/asterisk cd /home/asterisk tar xvzf asterisk-1. 4. 2. tar. gz cd asterisk-1. 4. 2. /configure make install make samples Asterisk se instalira u direktorij /usr/sbin konfiguracijske datoteke se nalaze u /etc/asterisk 13
Pokretanje Asteriska Pokretanje asterisk Ulazak u Asterisk CLI asterisk –r Izlazak iz Asteriska asterisk*CLI> quit Restart Asteriska (iz CLI-a) asterisk*CLI> restart now asterisk*CLI> restart when convenient Postavljanje nivoa logiranja podataka asterisk*CLI> core set verbose n 14
IP adresna shema 1 10. 1. 0. 2 7 2 10. 7. 0. 2 90 6 3 10. 90. 0. 2 10. 3. 0. 2 10. 6. 0. 2 5 4 10. 5. 0. 2 10. 4. 0. 2 15
IP adresna shema (2) Generalno pravilo Za mrežu 90 IP mreža 10. x. 0. 0 10. 90. 0. 0 Netmask 255. 0 IP gateway DHCP/NTP server 10. x. 0. 1 10. 90. 0. 1 SIP proxy TFTP server 10. x. 0. 2 10. 90. 0. 2 IP telefoni (DHCP) 10. x. 0. 10 - 254 10. 90. 0. 10 - 254 16
Asterisk IP telefoni (hardware) Većina SIP / MGCP / IAX 2 / SCCP / H. 323 telefona Aastra, Sayson, Atcom, Blackberry, Polycom, Cisco, GNET, Grandstream, Linksys, Mitel, Nortel, Siemens, Shore. Tel (Giant Electronics Ltd. ), Swissvoice, Snom, Soyo, Sipura, Siptronic, Thomson, Uniden, Pulverinnovations, Zultys, Zyxel … 17
Asterisk IP telefoni (softphone) Većina SIP / MGCP / IAX 2 / SCCP / H. 323 telefona X-lite (SIP) IDEFISK (IAX 2) 18
Cisco 7940 (7960) IP phone (SIP software) 19
Cisco 7940 (7960) konektori 2 x ethernet port (Switch s napajanjem + PC) vanjsko napajanje AUX 2 x slušalice (standardna + naglavna) 20
Cisco 7940 karakteristike Podržani kodeci: g 729 g 711 ulaw g 711 alaw Podržani protokoli: SCCP (standadno) SIP MGCP Ostalo: 2 telefonske linije (6 kod 7960) napajanje sa Po. E switcha Ugrađeni 3 -portni switch VLAN podrška za Cisco Auto QOS NTP (sinkronizacija vremena) ugrađen speakerphone voicemail svjetlosni identifikator 21
Kodeci (voice coders-decoders) G. 711 (alaw/ulaw) 64 87. 2 G. 726 32 55. 2 G. 726 24 47. 2 G. 728 16 31. 5 i. LBC 13. 3 N/A GSM 13. 2 N/A G. 729 8 31. 2 G. 723. 1 6. 4 21. 9 G. 723. 1 5. 3 20. 8 LOW Bandwidth (Kbps) COMPEXITY Bit Rate (Kbps) HIGH Codec 22
Kodeci u Asterisku core show codecs asterisk*CLI> core show codecs Disclaimer: this command is for informational purposes only. It does not indicate anything about your configuration. INT BINARY HEX TYPE NAME DESC ----------------------------------------1 (1 << 0) (0 x 1) audio g 723 (G. 723. 1) 2 (1 << 1) (0 x 2) audio gsm (GSM) 4 (1 << 2) (0 x 4) audio ulaw (G. 711 u-law) 8 (1 << 3) (0 x 8) audio alaw (G. 711 A-law) 16 (1 << 4) (0 x 10) audio g 726 aal 2 (G. 726 AAL 2) 32 (1 << 5) (0 x 20) audio adpcm (ADPCM) 64 (1 << 6) (0 x 40) audio slin (16 bit Signed Linear PCM) 128 (1 << 7) (0 x 80) audio lpc 10 (LPC 10) 256 (1 << 8) (0 x 100) audio g 729 (G. 729 A) 512 (1 << 9) (0 x 200) audio speex (Spee. X) 1024 (1 << 10) (0 x 400) audio ilbc (i. LBC) 2048 (1 << 11) (0 x 800) audio g 726 (G. 726 RFC 3551) 4096 (1 << 12) (0 x 1000) audio g 722 (G 722) 23
Kodeci u Asterisku (2) (. . . ) 65536 131072 262144 524288 1048576 2097152 (1 (1 (1 << << << 16) (0 x 10000) 17) (0 x 20000) 18) (0 x 40000) 19) (0 x 80000) 20) (0 x 100000) 21) (0 x 200000) image video jpeg png h 261 h 263 p h 264 (JPEG image) (PNG image) (H. 261 Video) (H. 263+ Video) (H. 264 Video) 24
SIP (Session Initiation Protocol) SIP je kontrolni (signalizacijski) protokol aplikacijske razine koji se koristi za: Uspostava (creating) Promjena (modifying) Prekid (terminating) multimedijskih sesija s jednim iil više sudionika. Originalno napisan za potrebe Internet 2 projekta krajem ’ 90 godina za uspostavu konferencija, naknadno je ustanovljeno da je vrlo primjenljiv i za uspostavu point-to-point poziva RFC 2543, novija verzija RFC 3261 Trenutno postoje 45 prijedloga proširenja standarda 25
SIP (2) SIP uređaji mogu komunicirati putem: unicast multicast unicast mesh relacije kombinacijom prije navedenih mogućnosti putem IPv 4 i/ili IPv 6 okruženja putem: UDP TCP SCTP ili TLS over TCP i to per-hop SIP uređaju. 26
SIP metode (poruke) INVITE – korisnik je pozvan u sesiju ACK – potvrda prethodne poruke BYE – kraj sesije CANCEL – odustajanje od prethodne poruke OPTIONS – provjera mogućnosti poslužitelja REGISTER – registracija na SIP proxy poslužitelj Dodatne: INFO, PRACK, SUBSCRIBE, NOTIFY, UPDATE MESSAGE, REFERER, PUBLISH 27
SIP odgovori (responses) 1 xx – Informacijski (100 Trying, 180 Ringing, …) 2 xx – Potvrda (200 OK, 202 Acceptable, …) 3 xx – Redirekcija (301 Move Permanently, …) 4 xx – Klijentska greška (401 Unauthorized, …) 5 xx – Poslužiteljska greška (502 Bad gateway, …) 6 xx – Generalna greška (600 Busy Everywhere, …) Sve SIP poruke i odgovori su u tekstualnom obliku. Oblik i sadržaj poruka su posuđene iz HTTP protokola (koji je “posudio” oblik poruka od SMTP poslužitelja) 28
SIP uspostava poziva (bez poslužitelja) Alice poziva Bob Alice Signalizacijski dio INVITE 180 Ringing UDP TCP SCTP 200 OK TLS over TCP Prijenos ACK RTP UDP 29
SIP uspostava poziva (s poslužiteljem) Pretpostavlja se da Alice ne zna Bobovu IP adresu Bob Alice Signalizacijski dio INVITE UDP 100 Trying 180 Ringing TCP SCTP 180 Ringing 200 OK TLS over TCP Prijenos ACK RTP UDP 30
SIP INVITE poruka INVITE sip: 38520445801@192. 168. 2. 73: 5060 SIP/2. 0 Via: SIP/2. 0/UDP 192. 168. 2. 10: 5060; branch=z 9 h. G 4 b. K 125 b 24 b 6 From: "Radojevic Branko" <sip: 686@192. 168. 2. 10>; tag=16984467 To: <sip: 38520445801@192. 168. 2. 73> Date: Wed, 28 Feb 2007 15: 37: 11 GMT Call-ID: 8 cf 9 f 300 -1 dc 1 e 544 -ee 1 f-a 02 a 8 c 0@192. 168. 2. 10 Supported: timer Min-SE: 1800 User-Agent: Cisco-CCM 4. 1 Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK CSeq: 101 INVITE Max-Forwards: 70 Remote-Party-ID: "Radojevic Branko" <sip: 686@192. 168. 2. 10>; party=calling; screen=no; privacy=off Contact: <sip: 686@192. 168. 2. 10: 5060> Expires: 180 Allow-Events: telephone-event Content-Type: application/sdp Content-Length: 227 v=0 o=Cisco. Systems. CCM-SIP 2000 1000 IN IP 4 192. 168. 2. 10 s=SIP Call c=IN IP 4 192. 168. 2. 10 t=0 0 m=audio 26124 RTP/AVP 0 101 a=sendrecv a=rtpmap: 0 PCMU/8000 a=ptime: 20 a=rtpmap: 101 telephone-event/8000 a=fmtp: 101 0 -15 31
IAX 2 (Inter-Asterisk Exchange) IAX 2 je kontrolni (signalizacijski) i media protokol pisan primarno za razmjenu prometa među Asterisk centralama, a u zadnje vrijeme i na IP telefonima Za signalizacijski i media dio koristi UDP protokol i samo jedan port (4569) Kako koristi samo jedan statički port, nema problema s NATom koji se pojavljuju kod SIP i H 323 protokola Podržava trunkiranje (povezivanje) više poziva u jedan protok (stream) podataka Napisan od strane Marka Spencera, autora Asteriska Očekuje se uskoro RFC, postoji draft 32
Cisco 7940 konfiguracija (SIP) ručna automatska DHCP (IP adresa, gw-ip, tftp-ip) dhcp option 66 (tftp server – stariji software) dhcp option 150 (tftp server – noviji software) Konfiguracijske datoteke na TFTP poslužitelju ( /home/phones direktorij) OS 79 XX. TXT P 0 S 3 -07 -3 -00. bin SIPDefault. cnf SIP 0012803 AF 172. cnf 33
Cisco 7940 konfiguracija (2) SIPDefault. cnf proxy 1_address: 10. x. 0. 2; sntp_server: 10. x. 0. 1; Ova datoteka vrijedi za sve Cisco 7940 ili 7960 telefone na centrali sa SIP verzijom firmwarea. 34
Cisco 7940 konfiguracija (3) SIP 0012803 AF 172. cnf line 1_name : 101 line 1_shortname : 101 0012803 AF 172 je MAC adresa telefona. Zapisana je na naljepnici s donje strane uređaja a do nje se može doći i kroz menije na telefonu (tipka MENU + 3). Navedenu datoteku trebate kreirati za svaki telefon posebno. 35
Asterisk SIP konfiguracija /etc/asterisk/sip. conf [101] type=friend host=dynamic callerid=Branko Radojevic <101> context=default canreinvite=no progressinband=no dtmfmode=inband nat=no asterisk*CLI> sip reload 36
Provjera SIP konfiguracije sip show peers asterisk*CLI> sip show peers Name/username Host Dyn Nat ACL Port Status 101/101 10. 90. 0. 10 D 5060 Unmonitored 1 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 0 offline] 37
Prvi poziv ! ugrađene demo mogućnosti u Asterisku ekstenzija 500 – demo (nije moguće u potpunosti ostvariti poziv jer u predavaonici nema direktne veze na Internet) ekstenzija 600 – echo test (u potpunosti je funkcionalna) 38
Ekstenzije i konteksti (1) definiraju se u datoteci extensions. conf konteksti nam omogućuju definiranja pravila za kontrolu poziva koji prolaze kroz Asterisk ekstenzije se definiraju unutar pojedinih konteksta konteksti mogu sadržavati (uključivati) i druge kontekste jedna od primjena konteksta je dodjeljivanje prava pojedinim korisnicima za ostvarivanje poziva kroz Asterisk (npr. ograničavanje odlaznih poziva po pojedinim korisnicima na lokalne, županijske, mobilne i međunarodne) 39
Ekstenzije i konteksti (2) definicija ekstenzija 500 i 600 iz prošlog primjera exten ; exten => => 500, 1, Playback(demo-abouttotry) 500, n, Dial(IAX 2/guest@misery. digium. com/s@default) 500, n, Playback(demo-nogo) 500, n, Goto(s, 6) => => 600, 1, Playback(demo-echotest) 600, n, Echo 600, n, Playback(demo-echodone) 600, n, Goto(s, 6) 40
Ekstenzije i konteksti (3) tipovi ekstenzija eksplicitne (za pojedine telefonske brojeve, npr. za brojeve 500 i 600 u prethodnom primjeru) exten => 500, 1, Cmd (attr) grupne (za veći broj telefonskih brojeva koji se mogu povezati u jednu grupu ili niz, a mogu se opisati zajedničkim obilježjem (pattern matching)) exten => _5 XX, 1, Cmd (attr) (brojevi 500, 501, 502, 503 … 599) exten => _5 XX. , 1, Cmd (attr) (brojevi koji počinju sa znamenkama 500, 501 … 599, npr. 500, 50000, 500000, itd. ) X=(0 -9), Z=(1 -9), N=(2 -9) 41
Lokalna ekstenzija za brojeve 100 -199 da bi se lokalni telefoni prijavljeni na našu centralu mogli između sebe pozivati potrebno je definirati ekstenziju unutar obuhvaćenog konteksta koja će omogućavati pozivanje lokalnih brojeva [default] exten => _1 XX, 1, Dial(SIP/${EXTEN}, 30, rt. T) exten => _1 XX, n, Hangup asterisk*CLI> dialplan reload 42
Uspostava poziva među centralama za interkonekciju (međuspoj) između centrala koristit ćemo IAX 2 signalizaciju na način da ćemo definirati trunkove prema centralnoj lokaciji (Centrala 90) da bi se isti telefonski brojevi razlikovali na različitim centralama proširit ćemo numeraciju s 3 na 6 znamenki (lokalno brojevi ostaju isti) Centrala br. 1 Centrala br. 2 Centrala br. 3 … Centrala br. 90 100 -XXX 200 -XXX 300 -XXX 100 -101 200 -101 300 -101 900 -XXX 900 -101 43
Uspostava IAX 2 trunkovi definiraju se unutar datoteke iax. conf [centrala 90] type=friend host=10. 90. 0. 2 notransfer=yes ; secret=moofoo context=default ; permit=0. 0/0. 0 disallow=all allow=ulaw asterisk*CLI> iax 2 reload 44
Ekstenzija za “vanjske” dolazne pozivi koji budu dolazili s drugih centrala bit će upućeni prema šesteroznamenkastoj numeraciji, pa je potrebno maknuti prve tri znamenke i napraviti novu ekstenziju za takve brojeve [default] exten => _900 XXX, 1, Dial(SIP/${EXTEN: -3}, 30, rt. T) exten => _900 XXX, n, Hangup VAŽNO!!! Broj 9 u prethodnom primjeru trebate zamijeniti sa svojim brojem centrale 45
Ekstenzija za “vanjske” odlazne pozive Sve šesteroznamenkaste brojeve treba uputiti prema glavnoj centrali (Centrala 90) putem već definiranog IAX 2 trunka [default] exten => _XXXXXX, 1, Dial(IAX 2/centrala 90/${EXTEN}@default, 30, rt. T) exten => _XXXXXX, n, Hangup asterisk*CLI> dialplan reload 46
Priključak na Javnu govornu mrežu Većina SIP / MGCP / IAX 2 / SCCP / H. 323 uređaja Interne kartice u poslužitelju 4 x. ISDN BRI 4 x. ISDN PRI 2 x. ISDN PRI 4 x GSM 6 x ANALOG 47
voop. IX – Besplatni telefonski razgovori između CARNet članica Baziran na DUNDi protokolu istog autora kao i Asterisk koji omogućava distribuiranu peer-to-peer objavu (razmjenu) telefonskih brojeva Podrška je ugrađena u Asterisk Automatski se gradi cache pojedinih upita kako bi se optimizirao broj upita Krajnji korisnik nije svjestan da li je poziv ostvaren putem voop. IX-a ili putem JGM-a U CARNet-u je izgrađen na pet distribuiranih poslužitelja (Zagreb, Split, Rijeka, Osijek i Dubrovnik) Trenutno pet ustanova sudjeluje u ovoj fazi projekta 48
voop. IX (2) etfos: Telefonska numeracija 031/224 -600 do 799 unidu: Telefonska numeracija: 020/445 -700 do 999 u voop. IX-u se objavljuje: 38520445[7 -9]XX ZG OS RI izbirani broj: 031224605 pretvara se u: 38531224605 Takav se upit šalje u voop. IX, koji unutar par milisekundi odgovara da je broj u ovom slučaju pronađen, te se dinamički kreira IAX 2 kanal direktno prema etfos-u. u voop. IX-u se objavljuje: etfos 38531224[6, 7]XX izbirani broj: 0021365584 pretvara se u: 38521365584 Takav se upit šalje u voop. IX, koji unutar par milisekundi odgovara da li je taj broj pronađen. U ovom slučaju broj nije pronađen i poziv se ostvaruje kroz javnu govornu mrežu ST DU unidu 49
Spoj članice na voop. IX bez Asteriska voop. IX Ethernet SIP, H 323, MGCP PBX Klasična, analogna tel. linija ili ISDN BRI, PRI Klasične, analogne tel. linije 50
Spoj članice na voop. IX s Asteriskom voop. IX Asterisk PBX Ethernet DUNDi+IAX 2 Klasična, analogna tel. linija ili ISDN BRI, PRI Klasične, analogne tel. linije 51
Zanimljive adrese www. asterisk. org www. digium. com www. dundi. com www. voip-info. org www. asteriskguru. com (IDEFISK) www. counterpath. com (x-lite) 52
Pitanja? 53
ce1f4f38cee428f1d210484a1fd32890.ppt