Linux súkromne i pracovne v2.0 (15. časť): SIP (Session Initiation Protocol)

0

Je priam neuveriteľné, aké množstvo užitočných informácií a faktov súvisiacich s IP telefóniou (VoIP) sa skrýva za takou jednoduchou skratkou, ako je SIP. Nejde pritom iba o protokol, ale o mnoho ďalších aplikácií a nástrojov, ktoré tento protokol využívajú. SIP je ďalšia z tém, ktorá by mohla byť náplňou samostatného seriálu. V tomto krátkom článku preto rozoberieme iba tie najzákladnejšie softvérové komponenty komunikačného kanála bez uvádzania detailov. V úvode opíšeme protokol, následne vám predstavíme SIP Proxy server Kamailio vrátane jeho GUI Siremis a článok ukončíme krátkou charakteristikou aplikácie Jitsi.

SIP

Signalizačný protokol SIP bol vyvinutý v roku 1996 (rfc2543 – aktualizovaný v roku 2002 – rfc3261) združením IETF. Pracuje na aplikačnej vrstve modelu OSI, kde iniciuje, spravuje a ukončuje sedenia (sessions) určené na prenos hlasu, videa (videokonferencií), krátkych textových správ, súborov či rôznych druhov multimédií vrátane podpory streamovania a on-line hier. SIP je textovo orientovaný protokol využívajúci prvky protokolov HTTP a SMTP. Z transportnej vrstvy využíva protokoly TCP a UDP, a to na štandardnom porte 5060. SIP pracuje na princípe zasielania požiadaviek a príjmu odpovedí (requests-responses), pričom má schopnosť presmerovať (redirect) správy. Účastník sa teda môže nachádzať na akomkoľvek mieste v sieti. Je identifikovaný pomocou SIP URI, pričom už sám protokol umožňuje detekciu jeho prítomnosti (presence). SIP dokáže vytvárať dvojbodové (point-to-point – unicast), ale aj viacbodové (point-to-multipoint – multicast) spoje. Jeho významná vlastnosť je nezávislosť od typu prenášaných údajov. Po vytvorení spoja ním možno posielať text, hlas alebo obraz, a to protokolom RTP/RTCP (Real Time Transport Protocol). Vlastnosti vytvoreného spoja opisuje protokol SDP (Session Description Protocol).

Kamailio (kamailio.org)

Protokol SIP nie je používateľský nástroj, ale je to štandard, ktorý dodržiavajú softvérové balíky, ako je napr. SER (SIP Express Router) server, resp. SIP Proxy Kamailio. Tento open source server je oproti podobnej technológii B2BUA (Back to Back User Agent) oveľa rýchlejší. Hoci nepodporuje prevod kodekov, protokolov, textu na reč, resp. rozpoznávanie hlasu, je podstatne efektívnejší v prípade NAT, prevode nekompatibilných verzií SIP a pri správe vytvoreného spoja (z dôvodu textového formátu vymieňaných správ).

Kamailio a jeho moduly sú naprogramované v jazyku C a nie sú nútené využívať iné programovacie jazyky ani skripty. Napriek tomu, že Kamailio priamo nepodporuje služby súvisiace s médiami (hlasová pošta, rozpoznávanie hlasu...), dokáže tieto služby nadviazať pomocou externých tzv. media serverov, ako je napr. Asterix alebo FreeSWITCH. Služby týchto serverov dokáže využiť aj v prípade vytvorenia spojov SIP-to-PSTN, resp. pobočkových ústrední (IP PBX).

Inštalácia

Server Kamailio môžeme nainštalovať kompiláciou a zostavením zdrojových súborov napr. pomocou postupu uvedeného na stránke kamailio.org/wiki/install/4.0.x/git. Veľmi dôležitá podmienka je pritom inštalácia všetkých závislých balíčkov. Pri presnom dodržaní všetkých procesných krokov server nainštalujeme za pár minút vrátane konfigurácie a inštalácie modulov. Získame tak skupinu nástrojov:

kamailio

Kamailio SIP server

kamdbctl

Skript určený na vytvorenie a správu databáz

kamctl

Skript určený na správu a kontrolu SIP servera

sercmd

Nástroj CLI určený na prístup k SIP serveru

 

Server spustíme príkazom kamailio start a pomocou príkazu kamctl add meno_účastníka heslo_účastníka vytvoríme SIP účastníkov (v našom prípade Jozef a Nina). Štandardné heslo určené na úpravu databázy Kamailio v prípade pridania nového účastníka je kamailiorw.


Obr. 1 Web GUI Siremis s výpisom zoznamu SIP účastníkov

Siremis (siremis.asipto.com)

Softvérové rozhranie Siremis najvýstižnejšie charakterizuje výraz uvedený na domovskej stránke jeho materskej spoločnosti Asipto (asipto.com), a síce: „Siremis je webové rozhranie určené na manažment Kamailio (OpenSER) SIP servera.“

Inštalácia je pomerne priamočiara a je detailne opísaná na stránke http://kb.asipto.com/siremis:install42x:main. V podstate ide o integráciu novej webovej stránky k doterajším stránkam servera Apache. V prípade, ak webový server nemáme nainštalovaný, musíme tak urobiť hneď v úvode inštalácie. Tá pokračuje doplnením modulov php5, php5-mysql, php5-gd, php5-curl. Následne stiahneme a rozbalíme inštalačný balíček rozhrania Siremis a v súlade s návodom doplníme nami vygenerovaný text do konfiguračného skriptu /etc/apache2/sites-available/...default.conf.

Siremis používa databázu MySQL, a preto v ďalšom kroku umožníme novému, resp. existujúcemu používateľovi prístup k tejto databáze. Ak ešte nemáme vytvorenú databázu pre server Kamailio, môžeme tak urobiť pomocou príkazu kamdbctl create.

Inštaláciu dokončíme v rámci rozhrania Web GUI. Úvodné prihlasovacie údaje sú: meno=admin, heslo=admin. Nosná časť konfigurácie je sprístupnenie databáz rozhrania Siremis a servera Kamailio.

Jitsi (jitsi.org)

Komunikátor Jitsi dopĺňa balík, pomocou ktorého uskutočníme telefonický hovor v IT prostredí. Z jeho najzákladnejších funkcií spomenieme realizáciu telefonických hovorov, videohovorov, zasielanie krátkych správ (čet), zdieľanie pracovnej plochy a interné zabezpečenie prenosov. Ide o multiplatformový nástroj, ktorý pohodlne nainštalujeme pomocou manažéra balíčkov.

Po spustení zadáme náš SIP ID v tvare „meno_účastníka@názov_domény“, resp. iba „meno_účastníka“ a príslušné heslo. V časti Connection je veľmi dôležité zadať názov tzv. Registrar servera, ktorým môže byť napr. IP adresa počítača, na ktorom máme nainštalovaný a spustený Kamailio server. Všetky ďalšie kroky vedúce k uskutočneniu hlasového volania či videohovoru, resp. zaslaniu krátkej správy sú veľmi intuitívne a nepotrebujú ďalší komentár.


Obr. 2 Volanie účastníka Jozef účastníčkou Nina

 

Zobrazit Galériu

Marek Sopko

Všetky autorove články
Linux

Pridať komentár

Mohlo by vás zaujímať

Mohlo by vás zaujímať