Presentation is loading. Please wait.

Presentation is loading. Please wait.

Uspostava VoIP centrale bazirane na otvorenom kodu v2.0 Branko Radojević 29.3.2007. godine.

Similar presentations


Presentation on theme: "Uspostava VoIP centrale bazirane na otvorenom kodu v2.0 Branko Radojević 29.3.2007. godine."— Presentation transcript:

1 Uspostava VoIP centrale bazirane na otvorenom kodu v2.0 Branko Radojević godine

2 2/53 Sadržaj Zašto tel. centrala bazirana na otvorenom kodu? Principi rada VoIP centrale (Asterisk) VoIP kodeci, SIP i IAX2 protokol Karakteristike IP telefona Instalacija i konfiguracija Asteriska Povezivanje (interkonekcija) centrala Spoj na JGM (Javnu govornu mrežu) Projekt voopIX – besplatni razgovori u akademskoj zajednici

3 3/53 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

4 4/53 Open source VoIP 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

5 5/53 Asterisk X

6 6/53 Verzije Asteriska Asterisk (Open Source verzija) Asterisk Business Edition Asterisk NOW! Linux live CD distribucija s grafičkim sučeljem

7 7/53 Š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, IAX2, 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 VoIP-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.

8 8/53 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 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 E911 ENUM Fax Transmit and Receive (3rd 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 Mp3-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 VoIP Gateways Voic - Visual Indicator for Message Waiting - Stutter Dialtone for Message Waiting - Voic to - Voic Groups - Web Voic Interface Zapateller

9 9/53 Komponente Asterisk sustava JGM voopIX

10 10/53 Dimenzioniranje Asterisk poslužitelja Namjena sustavaBroj kanalaPreporučeni minimum Hobi< 5 CPU: 400 MHz x86 RAM: 256 MB SOHO5 do 10 CPU: 1 GHz x86 RAM: 512 MB Mali sustav< 15 CPU: 3 GHz x86 RAM: 1 GB Srednji i veliki sustavi> 15 Više procesora ili više poslužitelja

11 11/53 Što utječe na performanse poslužitelja? broj paralelnih konekcija količina VoIP 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

12 12/53 Instalacija Asteriska (1) instalacijska platforma je debian linux 3.1r2 linux kernel verzija: (radi i na 2.6) nakon instalacije je trebalo instalirati slijedeće dodatne pakete: tftpd libncurses5-dev5.4-4 joe (nije obvezno) za logiranje na sustav koristiti user : root pass : asterisk

13 13/53 Instalacija Asteriska (2) instalacijska datoteka se nalazi u /home/asterisk cd /home/asterisk tar xvzf asterisk tar.gz cd asterisk /configure make make install make samples Asterisk se instalira u direktorij /usr/sbin konfiguracijske datoteke se nalaze u /etc/asterisk

14 14/53 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

15 15/53 IP adresna shema

16 16/53 IP adresna shema (2) Generalno praviloZa mrežu 90 IP mreža10.x Netmask IP gateway DHCP/NTP server 10.x SIP proxy TFTP server 10.x IP telefoni (DHCP)10.x

17 17/53 Asterisk IP telefoni (hardware) Većina SIP / MGCP / IAX2 / SCCP / H.323 telefona Aastra, Sayson, Atcom, Blackberry, Polycom, Cisco, GNET, Grandstream, Linksys, Mitel, Nortel, Siemens, ShoreTel (Giant Electronics Ltd.), Swissvoice, Snom, Soyo, Sipura, Siptronic, Thomson, Uniden, Pulverinnovations, Zultys, Zyxel …

18 18/53 Asterisk IP telefoni (softphone) Većina SIP / MGCP / IAX2 / SCCP / H.323 telefona X-lite (SIP)IDEFISK (IAX2)

19 19/53 Cisco 7940 (7960) IP phone (SIP software)

20 20/53 Cisco 7940 (7960) konektori 2x ethernet port (Switch s napajanjem + PC) vanjsko napajanje AUX 2x slušalice (standardna + naglavna)

21 21/53 Cisco 7940 karakteristike Podržani kodeci: g729 g711 ulaw g711 alaw Podržani protokoli: SCCP (standadno) SIP MGCP Ostalo: 2 telefonske linije (6 kod 7960) napajanje sa PoE switcha Ugrađeni 3-portni switch VLAN podrška podrška za Cisco Auto QOS NTP (sinkronizacija vremena) ugrađen speakerphone voic svjetlosni identifikator

22 22/53 Kodeci (voice coders-decoders) CodecBit Rate (Kbps)Bandwidth (Kbps) G.711 (alaw/ulaw) G G G iLBC13.3N/A GSM13.2N/A G G G LOW HIGH COMPEXITY

23 23/53 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 << 0) (0x1) audio g723 (G.723.1) 2 (1 << 1) (0x2) audio gsm (GSM) 4 (1 << 2) (0x4) audio ulaw (G.711 u-law) 8 (1 << 3) (0x8) audio alaw (G.711 A-law) 16 (1 << 4) (0x10) audio g726aal2 (G.726 AAL2) 32 (1 << 5) (0x20) audio adpcm (ADPCM) 64 (1 << 6) (0x40) audio slin (16 bit Signed Linear PCM) 128 (1 << 7) (0x80) audio lpc10 (LPC10) 256 (1 << 8) (0x100) audio g729 (G.729A) 512 (1 << 9) (0x200) audio speex (SpeeX) 1024 (1 << 10) (0x400) audio ilbc (iLBC) 2048 (1 << 11) (0x800) audio g726 (G.726 RFC3551) 4096 (1 << 12) (0x1000) audio g722 (G722)

24 24/53 Kodeci u Asterisku (2) (...) (1 << 16) (0x10000) image jpeg (JPEG image) (1 << 17) (0x20000) image png (PNG image) (1 << 18) (0x40000) video h261 (H.261 Video) (1 << 19) (0x80000) video h263 (H.263 Video) (1 << 20) (0x100000) video h263p (H.263+ Video) (1 << 21) (0x200000) video h264 (H.264 Video)

25 25/53 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 Internet2 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

26 26/53 SIP (2) SIP uređaji mogu komunicirati putem: unicast multicast unicast mesh relacije kombinacijom prije navedenih mogućnosti putem IPv4 i/ili IPv6 okruženja putem: UDP TCP SCTP ili TLS over TCP i to per-hop SIP uređaju.

27 27/53 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

28 28/53 SIP odgovori (responses) 1xx – Informacijski (100 Trying, 180 Ringing, …) 2xx – Potvrda (200 OK, 202 Acceptable, …) 3xx – Redirekcija (301 Move Permanently, …) 4xx – Klijentska greška (401 Unauthorized,…) 5xx – Poslužiteljska greška (502 Bad gateway,…) 6xx – 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)

29 29/53 SIP uspostava poziva (bez poslužitelja) Alice Bob Alice poziva Boba INVITE 180 Ringing 200 OK ACK RTP Signalizacijski dio Prijenos UDP TCP SCTP TLS over TCP UDP

30 30/53 SIP uspostava poziva (s poslužiteljem) Alice Bob Pretpostavlja se da Alice ne zna Bobovu IP adresu INVITE 100 Trying 200 OK ACK RTP Signalizacijski dio Prijenos UDP TCP SCTP TLS over TCP UDP INVITE 180 Ringing 200 OK

31 31/53 SIP INVITE poruka INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=z9hG4bK125b24b6 From: "Radojevic Branko" ;tag= To: Date: Wed, 28 Feb :37:11 GMT Call-ID: Supported: timer Min-SE: 1800 User-Agent: Cisco-CCM4.1 Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK CSeq: 101 INVITE Max-Forwards: 70 Remote-Party-ID: "Radojevic Branko" ;party=calling;screen=no;privacy=off Contact: Expires: 180 Allow-Events: telephone-event Content-Type: application/sdp Content-Length: 227 v=0 o=CiscoSystemsCCM-SIP IN IP s=SIP Call c=IN IP t=0 0 m=audio RTP/AVP a=sendrecv a=rtpmap:0 PCMU/8000 a=ptime:20 a=rtpmap:101 telephone-event/8000 a=fmtp:

32 32/53 IAX2 (Inter-Asterisk Exchange) IAX2 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 H323 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

33 33/53 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) OS79XX.TXT P0S bin SIPDefault.cnf SIP AF172.cnf

34 34/53 Cisco 7940 konfiguracija (2) SIPDefault.cnf proxy1_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.

35 35/53 Cisco 7940 konfiguracija (3) SIP AF172.cnf line1_name : 101 line1_shortname : AF172 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 ). Navedenu datoteku trebate kreirati za svaki telefon posebno.

36 36/53 Asterisk SIP konfiguracija /etc/asterisk/sip.conf [101] type=friend host=dynamic callerid=Branko Radojevic context=default canreinvite=no progressinband=no dtmfmode=inband nat=no asterisk*CLI> sip reload

37 37/53 Provjera SIP konfiguracije sip show peers asterisk*CLI> sip show peers Name/username Host Dyn Nat ACL Port Status 101/ D 5060 Unmonitored 1 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 0 offline]

38 38/53 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)

39 39/53 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)

40 40/53 Ekstenzije i konteksti (2) definicija ekstenzija 500 i 600 iz prošlog primjera exten => 500,1,Playback(demo-abouttotry) exten => exten => 500,n,Playback(demo-nogo) exten => 500,n,Goto(s,6) ; exten => 600,1,Playback(demo-echotest) exten => 600,n,Echo exten => 600,n,Playback(demo-echodone) exten => 600,n,Goto(s,6)

41 41/53 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 => _5XX,1,Cmd (attr) (brojevi 500, 501, 502, 503 … 599) exten => _5XX.,1,Cmd (attr) (brojevi koji počinju sa znamenkama 500, 501 … 599, npr. 500, 5000, 50000, , itd.) X=(0-9), Z=(1-9), N=(2-9)

42 42/53 Lokalna ekstenzija za brojeve 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 => _1XX,1,Dial(SIP/${EXTEN},30,rtT) exten => _1XX,n,Hangup asterisk*CLI> dialplan reload

43 43/53 Uspostava poziva među centralama za interkonekciju (međuspoj) između centrala koristit ćemo IAX2 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.1100-XXX Centrala br.2200-XXX Centrala br.3300-XXX … Centrala br XXX

44 44/53 Uspostava IAX2 trunka IAX2 trunkovi definiraju se unutar datoteke iax.conf [centrala90] type=friend host= notransfer=yes ;secret=moofoo context=default ;permit= / disallow=all allow=ulaw asterisk*CLI> iax2 reload

45 45/53 Ekstenzija za “vanjske” dolazne pozive 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 => _900XXX,1,Dial(SIP/${EXTEN:-3},30,rtT) exten => _900XXX,n,Hangup VAŽNO!!! Broj 9 u prethodnom primjeru trebate zamijeniti sa svojim brojem centrale

46 46/53 Ekstenzija za “vanjske” odlazne pozive [default] exten => exten => _XXXXXX,n,Hangup Sve šesteroznamenkaste brojeve treba uputiti prema glavnoj centrali (Centrala 90) putem već definiranog IAX2 trunka asterisk*CLI> dialplan reload

47 47/53 Priključak na Javnu govornu mrežu Većina SIP / MGCP / IAX2 / SCCP / H.323 uređaja Interne kartice u poslužitelju 4xISDN BRI 4xISDN PRI 2xISDN PRI 4x GSM 6x ANALOG

48 48/53 voopIX – 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 voopIX-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

49 49/53 voopIX (2) ZG OS RI DU ST etfos unidu etfos: Telefonska numeracija 031/ do 799 u voopIX-u se objavljuje: [6,7]XX izbirani broj: pretvara se u: Takav se upit šalje u voopIX, 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 unidu: Telefonska numeracija: 020/ do 999 u voopIX-u se objavljuje: [7-9]XX izbirani broj: pretvara se u: Takav se upit šalje u voopIX, koji unutar par milisekundi odgovara da je broj u ovom slučaju pronađen, te se dinamički kreira IAX2 kanal direktno prema etfos-u.

50 50/53 Spoj članice na voopIX bez Asteriska voopIX PBX Klasične, analogne tel. linije Klasična, analogna tel. linija ili ISDN BRI, PRI Ethernet SIP, H323, MGCP

51 51/53 Spoj članice na voopIX s Asteriskom voopIX PBX Klasične, analogne tel. linije Klasična, analogna tel. linija ili ISDN BRI, PRI Ethernet DUNDi+IAX2 Asterisk

52 52/53 Zanimljive adrese (IDEFISK) (x-lite)

53 53/53 Pitanja?


Download ppt "Uspostava VoIP centrale bazirane na otvorenom kodu v2.0 Branko Radojević 29.3.2007. godine."

Similar presentations


Ads by Google