Č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í
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’
http://localhost/phpmyadmin
/etc/init.d/apache2 start /etc/init.d/apache2 restart
mysql -p -u root openserDB < /usr/share/openser/mysql/standard-create.sql
mysql -p -u root openserDB < /usr/share/openser/mysql/cpl-create.sql
Pre konfiguráciu a správny beh
CPL
služby je potrebné doinštalovať nasledujúce balíčky:
libxml2 libxml2-dev
apt-get install meno_balíka
Konfigurácia OpenSER-u
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")
if (method=="REGISTER") { cpl_process_register(); save("location"); exit; };
if(method=="INVITE")
{
if(!cpl_run_script("incoming","is_stateless"))
{
# script execution failed
t_reply("500","CPL script execution failed");
};
};
/etc/init.d/openser start