Nasazení serveru OpenSER

OpenSER na Ostravské univerzitě v Ostravě

Telefonní síť OsU

Telefonní struktura OU je napojena na síť IP telefonie CESNETu. Brána k IP telefoní síti CESNETu je realizována na směrovači Cisco 1751, který je spojen s centrální ústřednou OU (Siemens Hicom300) dvěmi ISDN BRI linkami.

V telefonní síti OU je dále pro podporu telefonních přístrojů Cisco nasazen Cisco Call Manager a několik dalších Cisco routerů (1760) umístěných vždy u ústředny a propojených s ní linkou E1.

Centrální telefonní ústředna OU je napojena přímo do veřejné telekomunikační sítě přostřednictvím operátorů GTS a T-Mobile linkou E1. Přístup do sítí operátorů Vodafone a O2 je realizován pomocí GSM bran.

TS OU

Schéma IPt OU

Tarifikace telefonních hovorů a kategorizace poboček v telefonní síti OsU

Účtování telefonních hovorů uskutečňovaných mimo telefonní síť OU pomocí pevných spojení, GSM bran a pomocí IP telefonie lze rozdělit na dva druhy:

  • tarifikace na vrub útvaru
  • tarifikace na vrub volajícího

Před vytočením čísla uživatel volí, zda bude využívat volání pomocí PINu (hovor je tarifikován uživateli, se kterým je sepsána dohoda o srážce ze mzdy) nebo tzv. „přes nulu“ tj. vytočí před volaným (tarifikovaným) číslem symbol „0“ (hovor je tarifikován na vrub útvaru, ke kterému uživatel náleží).

Oprávnění pro volání z telefonních klapek je rozděleno na 7 typů. Oprávnění pro volání z pevných klapek je nastavováno na ústředně individuálně pro každou klapku, příp. serii klapek.

Typ oprávnění Označení Rozsah spojení
Místní 1 místní hovory v budově i mimo budov v rámci síťových ústředen havarijní čísla 112, 150, 155, 156, 158
Kraj 2 místní hovory a volání v rámci kraje (Moravskoslezský kraj) - bez mobilních telefonů, zelené linky (800…)
ČR 3 hovory v rámci ČR včetně mobilních sítí (bez 906), žluté linky (900xxxxxx)
ČR + SR 4 hovory v rámci ČR i SR včetně mobilních sítí (bez 906)
Evropa 5 ovory omezené na evropský rámec (bez 906)
Svět s omezením 6 celý svět (bez 906)
Svět bez omezení 7 celý svět bez omezení

Nasazení SIP serveru OpenSER v prostředí telefonní sítě OsU

Hardware a software

SIP server OU (sip.osu.cz) je nainstalován ve virtuálním prostředí XEN na operačním systému CentOS 4.5 v mateřském prostředí CentOS 5.

[root@sip ~]# cat /proc/cpuinfo
processor       : 0,1
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Xeon(TM) MP CPU 2.20GHz
stepping        : 6
cpu MHz         : 2200.364
cache size      : 2048 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu tsc msr pae mce cx8 apic mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips        : 4390.91
[root@sip ~]# uname -a
Linux sip.osu.cz 2.6.9-55.0.12.plus.c4xenU #1 SMP Fri Nov 2 11:01:44 EDT 2007 i686 i686 i386 GNU/Linux

Softwarová část řešení je provozována na serveru OpenSER ve verzi 1.2.x. Aktuálně používané zkompilované balíky pro operační systém Centos 4.5 a 5 je možné stáhnou z webové adresy https://sip.osu.cz/balicky.

[root@sip ~]# openser -V
version: openser 1.2.2-tls (i386/linux)
flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, DISABLE_NAGLE, USE_MCAST, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
svnrevision: unknown
@(#) $Id: main.c 2304 2007-05-25 16:36:07Z bogdan_iancu $
main.c compiled on 13:27:14 Nov  7 2007 with gcc 3.4.6

Jako databázové pozadí je použito MySQL Ver 14.12 Distrib 5.0.48.

Z důvodu umístění routeru (spojeného přímo s ústřednou linkou E1) na neveřejné adrese je nutné směrovat hovory z a na tento router pomocí RTPProxy ve verzi 0.3.

Stejně tak i mnozí klienti mohou být umístěni za NATem, proto byl také nainstalován STUN server mystun ve verzi 1.0.

Oprávnění pro volání

Všechna čísla určená pro SIP IP telefonii OU mají v centrální ústředně nastavena oprávnění 7 (nejvyšší). Přístup k volání do PSTN, pomocí ENUMu nebo jen lokální volání je řešen na OpenSERu, kde je v avp páru určeno, zda uživatel má nebo nemá povoleno volání do PSTN, resp. volání pomocí ENUM nebo lokální volání.

ENUM

SIP server OU podporuje vyhledávání čísla pomocí systému ENUM a stejně tak i všechna telefonní čísla OU jsou dosažitelná v tomto systému.

Pokud je vyhledáno číslo z bloků OU, je směrováno vždy v následujícím pořadí: s prioritou 50 je číslo směrováno protokolem SIP do domény OSU.CZ, dále s prioritou 100 a protokolem SIP do domény CESNET.CZ a jako poslední je s prioritou 200 vyhledána H.323 adresa v doméně CESNET.CZ.

Více informací o ENUMu naleznete zde

DNS SRV záznamy

V doméně OSU.CZ jsou zaneseny tyto SRV záznamy:

_sip._udp	SRV 100 10 5060 sip.osu.cz.
_sip._tcp	SRV 100 10 5060 sip.osu.cz.
_stun._udp	SRV 100 10 3478 stun.osu.cz.

Konfigurace OpenSERu

…anebo na co je potřeba poukázat

sip:wizard - The OpenSER Configuration Generator

K základní konfiguraci OpenSERu na OU byl použit generátor konfigurace ze stránky http://www.sipwise.com/wizard/ při výběru možností nebyla zatrženy volby nat-mediaproxy, offnet-enum-odp a xmlrpc.

Úpravy ve vygenerované konfiguraci

route 'acc-failure' – ukládání zmeškaných hovorů do tabulky missed_calls

# acc_db_request("404", "acc");
acc_db_request("404", "missed_calls");

route 'base-route-invite' – vygenerovaná konfigurace umožňuje „příjem“ požadavků z internetu pouze z předem definovaných IP adres. Příchozí logika byla upravena:

if(from_gw() || !is_domain_local("$fd"))
{
  $avp(s:caller_uuid) = "0";
  setflag(23);
}

route 'normalize-e164' – konfigurátor počítá s tím, že národní prefix je dlouhý 2 čísla – je potřeba upravit všechny příkazy strip pro prefix 420 na 3.

route 'invite-to-external' - zjištění, zda uživatel má možnost volat do PSTN

if(uri =~ "^sip:[0-9]+@")
{
  avp_db_load("$avp(s:caller_uuid)", "*");
  avp_copy("$avp(s:acl_ven)", "$avp(s:caller_acl_ven)/d");
  if (!avp_check("$avp(s:caller_acl_ven)", "eq/ANO"))
  {
     xlog("L_ERR", "PSTN termination unavailable by A
     sl_send_reply("503", "PSTN Termination Forbidden by ACL");
     exit;
  }
Údaje v databázi

Sip:wizard primárně ukládá veškerá data do databáze, proto je také nutné provést úpravy, které jsou v komentářích na začátku vygenerované konfigurace.

INSERT INTO `domain` (`domain`) VALUES
('osu.cz'),
('78.128.136.36'),
('xx.xx.xx.xx'),
('xx.xx.xx.xx');

-- Poznámka: IP adresy jsou zde kvůli Cisco produktům, které povětšinou s doménami nepracují (nebo pro práci s nimi nejsou nakonfigurovány).

INSERT INTO `gw` (`gw_name`, `grp_id`, `ip_addr`, `port`, `uri_scheme`, `transport`, `strip`, `prefix`) VALUES
('CIT-GW', 1, 'xx.xx.xx.xx', 5060, 1, 1, 5, ''),
('OU-GW', 1, 'xx.xx.xx.xx', 5060, 1, 1, 0, ''),
('OU-GW-VEN', 2, 'xx.xx.xx.xx', 5060, 1, 1, 0, ''),
('OU-CCM', 1, 'xx.xx.xx.xx', 5060, 1, 1, 5, '');
('OU-CCM-VEN', 2, 'xx.xx.xx.xx', 5060, 1, 1, 0, '');

--Poznámka: routery a CCM pro vnitřní volání přijímjí pouze 4 číslice; pro vnější celé číslo i s „0“ nebo „79“

INSERT INTO `gw_grp` (`grp_id`, `grp_name`) VALUES
(1, 'Vnitrni GW'),
(2, 'PSTN GW');

INSERT INTO `lcr` (`id`, `prefix`, `from_uri`, `grp_id`, `priority`) VALUES
(2, '73851', '', 1, 1),
(1, '59709', '', 1, 1),
(3, '0', '', 2, 1),
(4, '79', '', 2, 1);

INSERT INTO `usr_preferences` (`uuid`, `username`, `domain`, `attribute`, `type`, `value`, `last_modified`) VALUES
('mdvorak1', 'mdvorak1', 'osu.cz', 'acl_ven', 0, 'ANO', '2007-09-05 15:49:56'),
('mdvorak1', 'mdvorak1', 'osu.cz', 'cli', 0, 'sip:597095005@osu.cz', '2007-09-05 15:49:56'),

Konfigurace Cisco prvků a ústředny Siemens

Ústředna Siemens HiCom300


ab-date;
AB-DATE;
H500:  AMO DATE  GESTARTET
                         +---------------------------+                          
                         | FREITAG                   |                          
                         | DATUM:           UHRZEIT: |                          
                         | 2007-10-05       14:02:34 |                          
                         |                           |                          
                         | LAUFENDE TAGESNUMMER: 278 |                          
                         +---------------------------+

ABFRAGEN DURCHGEFUEHRT;
  <reg-wabe:5000&5199;hicom
#G0REG-WABE:5000&5199;
H500:  AMO WABE  GESTARTET
EINRICHTEN-WABE: 5000             ,   ,   , TLN     , NEIN,,,,                  
                ,    ,   ,     ,         ;
EINRICHTEN-WABE: 5199             ,   ,   , TLN     , NEIN,,,,                  
                ,    ,   ,     ,         ;
AENDERN-WABE: 5000             ,   5,,   ;
AENDERN-WABE: 5199             ,   5,,   ;

REGENERIEREN DURCHGEFUEHRT;
  <

Cisco Unified CallManager

verze 5.02 běžící na Linuxu

Trunk Configuration

Trunk configuration

Route Pattern Configuration

Route pattern configuration

Router do VoIP sítě CESNET2 - Cisco 1751

Cisco Internetwork Operating System Software
IOS (tm) C1700 Software (C1700-SPSERVICESK9-M), Version 12.3(23), RELEASE SOFTWARE (fc5)
cisco 1751-V (MPC860P) processor (revision 0x200) with 55706K/9830K bytes of memory.
X.25 software, Version 3.0.0.
Basic Rate ISDN software, Version 1.1.
1 FastEthernet/IEEE 802.3 interface(s)
2 ISDN Basic Rate interface(s)
4 Voice NT or TE BRI interface(s)
32K bytes of non-volatile configuration memory.
32768K bytes of processor board System flash (Read/Write)


voice service voip
 sip
  no call service stop
voice class codec 9999
 codec preference 1 g711alaw
 codec preference 2 g711ulaw
dial-peer voice 21 pots
 destination-pattern 59709....
 progress_ind setup enable 3
 progress_ind alert enable 8
 progress_ind progress enable 8
 progress_ind connect enable 8
 direct-inward-dial
 port 1/0					<<<< 2. ISDN
dial-peer voice 21 pots
 destination-pattern 59709....
 progress_ind setup enable 3
 progress_ind alert enable 8
 progress_ind progress enable 8
 progress_ind connect enable 8
 direct-inward-dial
 port 1/1					<<<< 2. ISDN

Vnitřní VoIP Router - Cisco 1760

Cisco Internetwork Operating System Software
IOS (tm) C1700 Software (C1700-SV8Y7-M), Version 12.3(22), RELEASE SOFTWARE (fc2)
Primary Rate ISDN software, Version 1.1.
1 FastEthernet/IEEE 802.3 interface(s)
31 Serial network interface(s)
1 Channelized E1/PRI port(s)
32768K bytes of processor board System flash (Read/Write)

voice service voip
 modem passthrough nse codec g711ulaw
 sip
  no call service stop
voice class codec 1
 codec preference 1 g711ulaw
 codec preference 2 g711alaw
voice class codec 5000
 codec preference 1 g711alaw
 codec preference 2 g711ulaw
 codec preference 3 g726r32
 codec preference 4 g726r24
 codec preference 5 g726r16
 codec preference 6 g728
 codec preference 7 g729r8
 codec preference 8 g729br8
 codec preference 9 g723r63
 codec preference 10 g723ar63
 codec preference 11 g723r53
 codec preference 12 g723ar53
controller E1 0/0
 pri-group timeslots 1-31
interface FastEthernet0/0
 ip address xx.xx.xx.xx 255.255.0.0
 speed auto
 h323-gateway voip interface
interface Serial0/0:15				<<<< qsig hicom
 no ip address
 encapsulation hdlc
 no logging event link-status
 isdn switch-type primary-qsig
 isdn overlap-receiving
 isdn protocol-emulate network
 isdn incoming-voice voice
 no isdn T309-enable
 isdn sending-complete
 no cdp enable
voice-port 0/0:15
 output attenuation -6
 cptone DE
 timeouts interdigit 2
dial-peer voice 1000 pots				<<<< ustredna – default destination
 destination-pattern [0-9]...T
 progress_ind setup enable 3
 progress_ind alert enable 8
 progress_ind progress enable 8
 progress_ind connect enable 8
 no digit-strip
 direct-inward-dial
 port 0/0:15
dial-peer voice 5000 voip				<<<< sip.osu.cz
 destination-pattern 5[01]..
 voice-class codec 5000
 session protocol sipv2
 session target ipv4:78.128.136.36:5060
 dtmf-relay h245-alphanumeric

Webové rozhraní SIP IP telefonie OsU - POSERA

https://sip.osu.cz

Při řešení nasazení OpenSERu byl kladen důraz na možnost co nejkomfortnějšího přístupu uživatelů k nastavení jejich SIP IP telefonního účtu. Při vyhodnocování situace se ukázalo, že prozatím neexistuje uživatelsky přívětivá webová administrace uživatelské části serveru nastavení účtů pro OpenSER. Bylo tedy v jazyce PHP vyvinuto jednoduché webové rozhraní (PHP OpenSER Administrator – POSERA) se stejným stylem jaký má Web OU, aby se uživatelům co nejvíce usnadnila práce s jejich účty.

Uživatelé komunikují s webovým rozhraním SIP serveru vždy zabezpečeným protokolem HTTPS. Autentizace uživatelů je navázána na LDAPu OU.

Pokud je uživatel úspěšně přihlášen, získává přístup ke svému účtu, resp. registraci SIP IP telefonního účtu (čísla).

Na webovém rozhraní SIP IP telefonie OU je umístěna sekce Pomoc a návody, kde mohou uživatelé získat odpovědi na nejčastěji kladené dotazy, je zde popsáno detailní nastavení několika SW a HW klientů včetně seznamu všech testovaných klientů.

Registrace SIP IP telefonního účtu

Z důvodu omezeného rozsahu telefonních čísel využitelných pro SIP IP telefonii mají prozatím možnost registrace SIP IP telefonního účtu pouze zaměstnanci univerzity. Studentům je po úspěšném přihlášení do systému zobrazeno následující hlášení:

Hlášení studentům

Zaměstnanci je nabídnut základní formulář, kde si může vybrat volné SIP IP telefonní číslo a musí odsouhlasit možné srážky ze mzdy zatrhnutím políčka.

Registrace čísla

Pokud již uživatel má zřízený SIP IP telefonní účet, je na toto upozorněn a následně mu je umožněno již jeho LDAP jménem a heslem se přihlásit do webového rozhraní.

Práce s uživatelským rozhraním SIP IP telefonního účtu

Po přihlášení získává uživatel přístup k osobním informacím, k informacím o zmeškaných a uskutečněných hovorech, o přihlášených uživatelích a v neposlední řadě také k nastavení svého účtu.

Přihlášení do uživatelské části

přihlášení

Úvodní obrazovka

úvodní obrazovka

Zmeškané hovory

zmeškané hovory

Přijaté a volané hovory

přijaté a volané

Uživatelé on-line

onlinisti

Odhlášení uživatele

odhlášení

Administrátorské rozhraní

Administrace - přihlášení uživatelé

prihlaseni

Administrace - zobrazení všech uživatelů

uzivatele

Administrace - zobrazení konkrétního uživatele i s možností spravovat účet

konkretni

Administrace - sestavy

sestavy

cs/implementace/ser.txt · Poslední úprava: 2010/02/03 10:53 autor: mirecek@cesnet.cz
Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0