Žilinská univerzita > Fakulta riadenia a informatiky > Katedra informačných sietí

Konfigurácia OpenSER na podporu CPL

 

Článok založený na semestrálnych prácach z predmetu AS, autori: Marek Trnovszký, Marián Chlapečka, Miloš Januška, Jozef Kvasničák, Michal Staš

Súčasť úlohy: Navrhnite a zrealizujte CPL službu nad OpenSER s použitím a modifikovaním CPLEd. V prípade potreby modifikujte CPLEd editor podľa CPL špecifikácie.


Použité systémové technológie

  • Operačný systém linuxového typu, Kernel 2.6.18
  • SIP server OpenSER 1.4
  • Databáza MySQL 5.0
  • phpMyAdmin 2.91
  • CPLEd 0.4

Inštalácia súčastí

 

Na inštaláciu OpenSER-u sme použili operačný systém Debian GNU/Linux Kernel 2.6.18. Najskôr si nainštalujeme OpenSER, CPL modul pre OpenSER, Mysql, MYSQL modul pre OpenSER, phpmyadmin použitím príkazu:
apt-get install openser openser-cpl-module openser-mysql-module mysql-server-5.0 phpmyadmin

Skôr než sa prihlásime cez phpMyAdmin nastavíme heslo pre prístup k MySQL databáze nasledujúcim príkazom:

            mysqladmin –u root password ‘heslo’
Po inštalácií phpMyAdmin by mala byť táto služba prístupná vo webovom prehliadači štandardne na adrese:
            http://localhost/phpmyadmin
Ak sa nám spomínaná stránka nezobrazí, spustíme, prípadne reštartujeme Apache server nasledujúcimi príkazmi:
/etc/init.d/apache2 start
/etc/init.d/apache2 restart
 
Cez stránku sa prihlásime a vytvoríme si novú databázu, potrebnú pre inštaláciu CPL modulu, ktorú nazveme napr. openserDB. Dôležité je nastaviť kódovanie utf8_unicode_ci. V tejto databáze si vytvoríme 2 tabuľky spustením vytvorených skriptov:
mysql -p -u root openserDB < /usr/share/openser/mysql/standard-create.sql
mysql -p -u root openserDB < /usr/share/openser/mysql/cpl-create.sql
Vytvoríme nového užívateľa s menom openserUser a heslom openserPass a pridelíme mu privilégia na túto databázu.
 

Pre konfiguráciu a správny beh

CPL

služby je potrebné doinštalovať nasledujúce balíčky:

libxml2
libxml2-dev
cez príkaz:
            apt-get install meno_balíka

Konfigurácia OpenSER-u

 
Pred samotným spustením OpenSER-u je nutné vykonať jeho konfiguráciu pomocou editovania súboru /etc/openser/openser.cfg.

Načítanie modulov

Keďže používame databázu je potrebné ako prvý zaviesť modul pre konektivitu s databázovým serverom (u nás MySQL):

loadmodule "mysql.so"

Ďalej nasledujú moduly, ktoré musia byť zavedené pred modulom cpl-c a sú :

loadmodule "sl.so" - modul na posielanie odpovedí
loadmodule "tm.so" - transakčný modul
loadmodule "usrloc.so" - modul lokácie užívateľa
 

Až teraz môžeme zaviesť modul pre CPL :

loadmodule "cpl-c.so"

Ďalej je potrebné nastaviť parametre pre jednotlivé použité moduly a pre modul cplc.so sa musia nastaviť tieto parametre inak sa openser nespustí:
1. db_url - url musí byť zadaná do modulu, aby sa vedelo, kde je v databáze uložená tabuľka s cpl skriptami. Ak je to potrebné, užívateľské meno a heslo môžu byť špecifikované pre umožnenie modulu na pripojenie sa k databázovému serveru.

modparam("cpl-c","db_url","mysql://openserUser:openserPass@localhost/openserDB"")

a logovanie

modparam("cpl-c", "log_dir", "/var/log/openser/cpl")

2. cpl_table - indikuje názov tabuľky, ktorá obsahuje cpl skripty. Táto tabuľka sa musí nachádzať v databáze špecifikovanej „db_url“ parametrom

modparam("cpl-c","cpl_table","cpl")

3. cpl_dtd_file - názov DTD súbor popisujúci CPL gramatiku. Názov súboru môže zahŕňať tiež cestu k nemu. Nasledujúci modul je použiteľný ak používateľ nakopíruje súbor cpl.dtd do priečinku /etc/openser,  pretože sa v štandardnej inštalácii nenachádza.

modparam("cpl-c","cpl_dtd_file","/etc/openser/cpl-06.dtd")

 

Aby CPL modul dokázal spracovávať scripty, musíme ešte do smerovacej logiky pridať niektoré príkazy. Nájdeme blok if (method=="REGISTER") a do tela doplníme príkaz cpl_process_register(); nasledovne:
if (method=="REGISTER") {
cpl_process_register();
save("location");
exit;
};
Pod hore uvedený blok doplníme nasledujúci kód:
 
if(method=="INVITE")
{
  if(!cpl_run_script("incoming","is_stateless"))
    {
      # script execution failed
      t_reply("500","CPL script execution failed");
    };
};
 
Týmto by sme mali ukončenú konfiguráciu OpenSER-u, ktorý spustíme pomocou príkazu:
            /etc/init.d/openser start
 
Je vhodné skontrolovať log súbor, či nám pri spustení OpenSER-u nenastali žiadne chyby. Štandardne sú OpenSER hlásenia zapisované do systémového logu, pokiaľ nie je nastavené inak.

 

Groups: