FreeSWITCH

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
FreeSWITCH
software
Siglă
Tip Voice over IP
Dezvoltator Mai mulți dezvoltatori
Ultima versiune 1.10.6 (25 martie 2021)
Sistem de operare Linux
Limba C.
Licență Licență publică Mozilla (MPL)
( licență gratuită )
Site-ul web freeswitch.com

FreeSWITCH este un server open source gratuit pentru comunicații în timp real prin WebRTC și VoIP .

Software-ul este distribuit pentru sistemele de operare Linux , Windows , macOS și FreeBSD . Este folosit pentru a construi sisteme PBX , servicii IVR , servicii de videoconferință cu partajare de chat și ecran , servicii de rutare cu cel mai mic cost , Session Border Controller (SBC) și dispozitive de comunicații încorporate . Are suport complet pentru criptare , ZRTP , DTLS și SIPS . Poate acționa ca o poartă între rețeaua telefonică generală , SIP , WebRTC și multe alte protocoale de comunicații . Biblioteca sa principală, libfreeswitch , poate fi încorporată în alte proiecte.

Este licențiat sub licența publică Mozilla , o licență de software gratuit .

Istorie

Proiectul FreeSWITCH a fost anunțat pentru prima dată în ianuarie 2006 la conferința ETEL a O'Reilly Media . [1]

În iunie 2007, FreeSWITCH a fost selectat de Truphone pentru a fi implementat în serviciile sale [2], iar în august 2007 Gaboogie a anunțat că a ales FreeSWITCH ca platformă de conferință. [3]

Prima versiune oficială a FreeSWITCH 1.0.0 (Phoenix) a fost lansată publicului pe 26 mai 2008. [4] Patch 1.0.1 a fost lansat pe 24 iulie 2008. [5]

La ClueCon 2012, Anthony Minessale a anunțat lansarea FreeSWITCH 1.2.0 [6] [7] și că echipa de dezvoltare FreeSWITCH va crea o ramură software separată stabilă (versiunea 1.2) și de dezvoltare (versiunea 1.3).

FreeSWITCH 1.4, lansat la începutul anului 2014, este prima versiune care acceptă protocolul SIP prin Websocket și WebRTC.

FreeSWITCH 1.6 a adăugat suport pentru transcodare video și videoconferință, protocolul Verto pentru WebRTC și toate codecurile și standardele WebRTC.

FreeSWITCH 1.8 a fost lansat la ClueCon 2018 cu noi actualizări și îmbunătățiri ale stabilității proiectului.

SignalWire Inc a fost fondată în 2018 pentru a oferi servicii comerciale de telecomunicații în cloud folosind un nucleu elastic FreeSWITCH și pentru a oferi un sponsor comercial permanent pentru proiectul open source controlat de fondatorii FreeSWITCH. Compania a achiziționat ulterior FreeSWITCH Solutions. [8]

Proiecta

Potrivit designerului principal, Anthony Minessale, [9] FreeSWITCH este conceput pentru a fi un comutator softs construit pe un miez compact, acționat de o mașină de stat. [10] Obiectivele declarate ale proiectului includ stabilitatea, scalabilitatea și abstractizarea .

Pentru a reduce complexitatea bazei de cod , FreeSWITCH folosește biblioteci software disponibile gratuit care îndeplinesc unele dintre funcțiile necesare. Unele dependențe sunt: [11]

  • Apache Portable Runtime (APR și APR-Util)
  • SQLite : o implementare ușoară a unui motor SQL
  • PCRE - expresii regulate compatibile cu limbajul Perl
  • Sofia-SIP - un agent de utilizator SIP open source
  • libspeex - Speex DSP (înlocuiește libreample din versiunea 1.0.3)
  • mod_spandsp pentru gateway fax sau passthrough T.38
  • libSRTP - o implementare open source a SRTP

Nu toate aceste dependențe software sunt necesare pentru a construi aplicația principală freeswitch , dar sunt dependențe ale diferitelor module externe, cum ar fi codecurile. FreeSWITCH este o aplicație modulară, unde modulele își pot extinde funcționalitatea, dar stratul de abstractizare previne dependența între module. Scopul este de a vă asigura că încărcarea unui formular nu este necesară pentru a încărca un alt formular. [12]

Funcționalitate

FreeSWITCH include mai multe module care oferă o multitudine de aplicații de telefonie, cum ar fi:

FreeSWITCH oferă un API care expune primitivele de control al apelurilor și funcționalitatea IVR . Aplicațiile care utilizează API-urile pot fi scrise în C , C ++ , Python , Perl , Lua , JavaScript , Java și Microsoft.NET prin Microsoft CLR sau prin Mono . [14]

Aplicațiile de control al apelurilor pot utiliza Event Socket , o funcție de comunicare bazată pe socket-ul de internet din FreeSWITCH care oferă o interfață independentă de limbă. Biblioteca Event Socket (ESL) și „ESL-wrappers” sunt disponibile pentru Erlang , JavaScript , Lua , Perl , PHP , Python și Ruby .

Începând cu versiunea 1.4 FreeSWITCH acceptă protocolul WebRTC . [15]

FreeSWITCH 1.6 a adăugat suport pentru muxing video și suport complet pentru WebRTC , wss, dtls, SIP.js, Verto.js, Opus 48kHz la 8kHz, rezistent până la 40% pierderi de pachete.

Caracteristici cheie ale FreeSWITCH 1.6:

  • Suport pentru protocolul WebRTC
  • Director / domeniu utilizator centralizat (directory.xml)
  • Granularitatea CDR în nanosecunde
  • Înregistrare apel (în apelant stereo / apelat stânga / dreapta)
  • Motor multi-filet de înaltă performanță
  • Configurare prin utilitarul cURL printr-o interfață HTTP (mod_xml_curl)
  • Fișier de configurare XML pentru o analiză ușoară
  • Protocolul agnostic
  • Suport ZRTP pentru schimb de chei transparente bazate pe RTP și criptare
  • RFC 2833 tip sarcină utilă configurabil
  • Generarea și detectarea DTMF în bandă.
  • Conferințe bazate pe software (fără cerințe hardware)
  • Conferințe în bandă largă
  • Mod media / fără suport media
  • Compoziție corectă ENUM / ISN integrată
  • CDR detaliate în XML
  • Radius CDR
  • Server de abonament
  • Prezența liniilor partajate
  • Prezența liniilor cu pod
  • Motor de evenimente la nivel de întreprindere / transportator. (Evenimente XML, Evenimente Value Name, Evenimente Multicast)
  • Formate de fișiere încărcabile și streaming
  • Transmiteți și redați din Shoutcast și Icecast
  • Interfață de expresie vocală multilingvă
  • Suport ASR / TTS (nativ și prin MRCP)
  • Funcționalitate de bază IP / PBX
  • Operator automat
  • Tonuri de apel personalizate (Media timpurie)
  • Suport XML-RPC
  • CDR cu mai multe formate acceptate
  • SQL Engine oferă persistența sesiunii
  • Izolarea firelor
  • Vânătoare în paralel
  • Vânătoare în serie

Suport WebRTC [16]

  • FreeSWITCH este un gateway WebRTC, capabil să accepte suporturi criptate din browsere, să le convertească și să le schimbe cu alte rețele de comunicații, care utilizează codecuri și cifrări diferite, de exemplu: PSTN, operatori de telefonie mobilă, sisteme vechi etc. FreeSWITCH poate fi poarta de acces între rețeaua SIP și aplicațiile și browserele de pe desktopuri, tablete și smartphone-uri.
  • FreeSWITCH este un server de aplicații WebRTC, capabil să furnizeze direct servicii native browserelor, cum ar fi videoconferința, IVR, Call Center, fără ajutorul vreunui gateway sau terță parte. FreeSWITCH poate furniza direct servicii prin Secure WebSocket (WSS), SRTP și DTLS, protocoalele WebRTC native.
  • FreeSWITCH pune la dispoziție un plan de semnalizare suplimentar, deoarece browserele Verto pot iniția sau primi un apel vocal sau un apel video în cel mai simplu mod și pot conversa prin chat, partaja ecranul, primi și trimite date în timp real către aplicațiile back-end. Verto este o alternativă la XMPP sau SIP în Javascript. FreeSWITCH poate servi în paralel și, în același timp, aceeași aplicație pentru clienții care utilizează semnalizarea SIP și Verto.

Suport pentru conferințe video [17]

FreeSWITCH a fost întotdeauna o platformă de conferințe puternică, născută acum mulți ani ca o punte de conferințe audio extrem de scalabilă. Într-o descoperire la ClueCon 2015 din Chicago, Illinois, creatorul FreeSWITCH Anthony Minessale II a anunțat suport pentru transcodarea video, amestecarea, manipularea și funcționalitatea Unității de control multipunct (MCU). FreeSWITCH are acum cele mai avansate și mature funcții de conferință video:

  • Suport și transcodare a mai multor codecuri video
  • Aspecte video multiple
  • Ecranul se desparte
  • Imagine în imagine
  • Partajarea ecranului
  • Suprapunere video (subtitrări, sigle etc.)
  • Mixare video
  • Efecte video și manipulare în timp real
  • Chroma-Key (videoclip care amestecă un fundal)
  • Participanți SIP, WebRTC, VERTO, ISDN

Codecuri acceptate

FreeSWITCH acceptă o varietate de codecuri audio și video: [18]

G.723.1, H263 și H264 sunt acceptate în modul de trecere. Deoarece datele brute comprimate sunt transmise între apelanți fără nicio procesare, acest lucru permite asistență pentru unele codecuri care nu pot fi furnizate gratuit din cauza brevetelor sau a altor probleme de licențiere.

Software-ul acceptă carduri de transcodare hardware, cum ar fi cele fabricate de Sangoma. [20] Acestea implementează codecuri în hardware, reducând utilizarea procesorului de server. Unele dintre aceste codecuri sunt complet licențiate, oferind o alternativă la opțiunile de trecere de mai sus.

Protocoale acceptate [21]

  • SIP cu mod_sofia
    • Transporturile UDP, TCP, SCTP și TLS pentru o conformitate SIP completă
    • Transporturile XiWS și WSS asigură respectarea completă a WebRTC
    • SIP v.2.0 (RFC 3261)
    • Suport IPv6
    • Cronometru sesiune SIP
    • Cronometru RTP
    • RFC 3263 (SRV și NAPTR)
    • RFC 3325
    • RFC 4694
    • SRTP prin SDES (funcționează cu Polycom, Snom, Linksys și Grandstream)
    • Înregistrare SIP orb
    • Suport STUN
    • Jitter tampon
    • Suport NAT
    • Înregistrări SIP distribuite
    • Negocierea tardivă a codecurilor
    • Înregistrări SIP multiple pe cont de utilizator
    • Multitenancy - Multiple UA SIP
    • SIP reinvită
    • Poate acționa ca SBC (Session Border Controller)
    • Gestionați prezența
    • SIP / SIMPLE (poate comuta la alte protocoale de chat)
    • Suport pentru pagers SIP multicast pentru Linksys și Snom
    • Suport interfon / răspuns automat
    • Funcții de apel, cum ar fi Apel în așteptare (Re-INVITARE), Blind Transfer (REFERENȚĂ), Redirecționare apel (302) etc.
  • mod_skinny - Skinny Call Control Protocol (SCCP)
  • mod_verto - Protocol de semnalizare VERTO WebRTC

Aplicații acceptate [21]

  • Mesageria vocală
    • Multitenancy - configurație Enterprise / Carrier
    • Salutări din timpul zilei
    • Etichetarea mesajelor urgente
    • Livrare prin e-mail
    • Redați și reînregistrați mesajele înainte de livrare
    • Cheile sunt șabloane pe care le puteți rearanja pentru a se potrivi nevoilor dvs.
    • Suport pentru returnarea apelurilor din mesageria vocală
    • Podcast de mesagerie vocală (RSS)
    • Indicator de mesaj în așteptare (MWI)
  • Suport la coadă (prin mod_fifo sau mod_callcenter)
  • Parcare (prin mod_fifo)
  • Conferinţă
    • Conferințe bazate pe software fără cerințe hardware
    • Conferințe în bandă largă
    • Conferințe multiple la cerere sau programate cu anunțuri de intrare / ieșire
    • Redați fișiere în conferință sau într-un singur membru
    • Relaţii
    • Integrare TTS
    • Transferuri
    • Apeluri efecutate
    • Tasta configurabilă
    • Volum, câștig și nivel de energie pe apel
    • Tranziția de la pod la conferință
    • Compoziție de ieșire multipartită
    • Conferința RFC 4579 SIP CC pentru UA
    • Înregistrare automată sau la cerere
  • Cititor RSS
  • Punct final de fax, modul gateway și passthrough
    • T.30 (G.711) Fax audio (prin mod_spandsp) cunoscut anterior sub numele de mod_fax.
    • Fax T.38 (gateway, punct final și passthrough)

Metode de criptare acceptate

Suport pentru sinteza vorbirii și recunoașterea automată a vorbirii

  • Cepstral
  • Flite
  • PocketSphinx
  • MRCP

Sisteme de operare acceptate

  • Debian Linux este sistemul de operare la alegere, deoarece oferă cel mai larg suport în bibliotecile sale necesare pentru a rula FreeSWITCH fără constrângeri de licență
  • Alte sisteme Linux, cum ar fi RHEL și CentOS
  • Solaris 10 UNIX (Solaris Studio)
  • FreeBSD (gmake)
  • macOS (gmake)
  • Windows (nativ)

Comparație cu alte programe de telefonie

FreeSWITCH ocupă un decalaj între comutatoarele pure care pur și simplu redirecționează apelurile, cum ar fi Kamailio și OpenSIPS , și cele care oferă în principal funcționalități PBX sau IVR , cum ar fi Asterisk și derivatele sale. FreeSWITCH oferă elemente de bază din care aplicații, cum ar fi un PBX, un sistem de mesagerie vocală , un sistem de conferințe sau o cartelă de apel , pot fi create folosind oricare dintre limbile acceptate. [22]

Produse derivate

FreeSWITCH este o componentă cheie în multe produse PBX comerciale în cutie și proiecte open-source. Unele dintre produsele comerciale sunt pachete hardware și software, pentru care producătorul acceptă și lansează software-ul ca open source.

Notă

  1. ^ conference.oreillynet.com , http://conferences.oreillynet.com/cs/etel2006/view/e_sess/8270 .
  2. ^ Truphone selectează FreeSWITCH și TelcoBridges pentru a activa apelurile VoIP prin WiFi pe telefoanele mobile , pe prweb.com , Truphone, 5 iunie 2007.
  3. ^ Copie arhivată , pe prleap.com . Adus la 15 septembrie 2020 (arhivat din original la 8 septembrie 2008) .
  4. ^ freeswitch.org , http://www.freeswitch.org/node/122 .
  5. ^ freeswitch.org , http://www.freeswitch.org/node/130 .
  6. ^ Copie arhivată , pe cluecon.com . Adus la 15 septembrie 2020 (Arhivat din original la 8 iunie 2012) .
  7. ^ freeswitch.org , http://freeswitch.org/node/410 .
  8. ^ signalwire.com , https://www.crunchbase.com/acquisition/signalwire-acquires-freeswitch--ce31a076 .
  9. ^ Kathleen Gallagher, Flipping the FreeSWITCH - Brookfield găzduiește software revoluționar , Milwaukee Journal Sentinel, 18 octombrie 2009 (arhivat din original la 22 octombrie 2009) .
  10. ^ oreillynet.com , http://www.oreillynet.com/pub/a/etel/2006/07/25/an-interview-with-the-creator-of-freeswitch.html?CMP=ILC-FV7511446129&ATT=1837 .
  11. ^ O listă completă a dependențelor poate fi găsită în secțiunea de pagină a dependențelor din documentația FreeSWITCH.
  12. ^ FreeSWITCH Wiki , https://freeswitch.org/confluence/display/FREESWITCH/Introduction .
  13. ^ freeswitch.org , https://freeswitch.org/confluence/display/FREESWITCH/Modules .
  14. ^ freeswitch.org , https://freeswitch.org/confluence/display/FREESWITCH/Client+and+Developer+Interfaces .
  15. ^ freeswitch.org , http://www.freeswitch.org/node/455 .
  16. ^ Minessale, Anthony, II și Collins, Michael (Michael S.) ,, Carte de bucate FreeSWITCH 1.6: peste 45 de rețete practice pentru a vă împuternici cu cele mai recente caracteristici FreeSWITCH 1.6 , ediția a doua, ISBN 978-1-78528-437-3 ,OCLC 918902800 . Adus la 15 septembrie 2020 .
  17. ^ Minessale, Anthony, Mastering FreeSWITCH: stăpânește arta comunicării avansate VolP și WebRTC cu cel mai dinamic server de aplicații, FreeSWITCH , ISBN 978-1-78439-555-1 ,OCLC 957278991 . Adus la 15 septembrie 2020 .
  18. ^ Audio Codecs - FreeSWITCH - Confluence , pe freeswitch.org . Adus la 15 septembrie 2020 .
  19. ^ Copie arhivată , la freeswitch.org . Adus la 23 noiembrie 2010 (arhivat din original la 23 noiembrie 2010) .
  20. ^ http://wiki.sangoma.com/sangoma-media-transcoding#sng_freeswitch_usage Arhivat 5 iulie 2013 la Internet Archive .
  21. ^ a b Specificații - FreeSWITCH - Confluence , la freeswitch.org . Adus la 15 septembrie 2020 .
  22. ^ freeswitch.org , https://freeswitch.org/confluence/display/FREESWITCH/Specifications .

linkuri externe