46. DFN-Betriebstagung - 27. Februar 2007
Rollout und Management optimieren mit Python-AXL
TU Chemnitz, Universitätsrechenzentrum, Ronald Schmidt
27. Februar 2007
Agenda
- Überblick: VOIP-Setup an der TUC
Schwerpunkt: Management (Betrieb, Monitoring)
- Anforderungen an das Management
- Managementaufgaben "TK-Anlage"
- Lösungen zur Optimierung des Aufwands
- Cisco XML Layer API und pyAXL
- Überblick: Management an der TU Chemnitz
- Fazit: Gegenüberstellung Betriebsaufwand
|
VoIP an der TU Chemnitz (1)
- vollständiges Cisco-Netz "VOIP-Ready" (8700 Dosenports)
- Access: hauptsächlich 3750 (mit PoE)
- Grund der Ablösung: SEL 5630 mit 1TR6
- VoIP-Projekt: Dezember 2005 - 22.2.2007
- Cisco Callmanager 4.1 (1 Publisher, 4 Subscriber)
- 2300 Cisco Telefone online, 450 Analogports
- 4 Gateways Cisco 2821 mit je zwei E1 = 240 Kanäle
- 3 Gateways Cisco 2811 für SRST an Außenstandorten
VoIP an der TU Chemnitz (2)
- Flächendeckend Extension Mobility
= Anmeldung an einem beliebigen Telefon
- UMS: Ferrari Officemaster
- Auskunft: Netwise
- SIP: Asterisk
- Billing: Aurenz
- Chef/Sek: teilweise Andphone von Andtek
- Basis: Fedora Directory Server Cluster (Multi-Master)
Managementaufgaben VoIP (1)
"heiße Phase" - Rollout
- 20.4.2006 - 18.8.2006: 1676 Tickets 21 Wochen = 15.92 pro Tag
Betrieb
- 18.08.2006 bis heute: 1360 Tickets 23 Wochen = 11.82 pro Tag
Managementaufgaben VoIP (2)
| Anzahl | Auftrag |
| 5% | Labornummern |
| 5% | Rufnummernbeantragungen |
| 5% | Vorzimmerschaltungen |
| 5% | UMS |
| 5% | Anklopfsperre |
| 5% | individuelles Setup |
| 10% | Berechtigungsänderungen |
| 10% | Privatgespräche |
| 10% | Fax, Analog |
| 10% | Mehrbenutzerprofile |
| 10% | Rollout, Umsetzungen |
| 20% | Störungsmeldungen |
Managementaufgaben VoIP (3)
Beispiel Vorzimmerschaltung
| Chef |
Sekretärin |
 |
 |
- Daten zusammensuchen (2x Nummer, 2x Name)
- 1x Profil anlegen
- 1x Partition erstellen
- 3 Lines konfigurieren (Name, Ring, Rechte, ...)
- 1 Speeddial setzen
- 3 Services konfigurieren
- ...
|
- Daten zusammensuchen
- 1x Profil anlegen
- ggf. 1x Phonebuttontemplate anlegen
- 4 Lines konfigurieren (Name, Ring, Rechte, ...)
- 1 Speeddial setzen
- 3 Services konfigurieren
- ...
|
Dauer: zwischen 20 und 45 Minuten, hohe Fehleranfälligkeit
Anforderungen Management
| pro Auftrag nur wenige Sekunden | |
| Einfachheit | |
| konsistente Konfigurationen und Labels | |
| Dokumentation der Tätigkeit | |
| nutzerbezogene Konfiguration | |
| rollenbasierte Aufgabenverteilung | |
| ortsunabhängiges Management | |
| schnelles Rollback | |
| Tool-Konzept | |
| ich will alle Features | |
Lösungsansätze
- Webschnittstelle Cisco Callmanager
hohe Lernkurve, Fehleranfälligkeit, langwierig
- BAT-Schnittstelle Cisco Callmanager
- VisionOSS Business Voice Services Manager solution (BVSM)
hierarchisch, rollenbassiert, kostenintensiv, feststehende Features
- TOMAS Fa. FROX
- Scripte mit CCM-Schnittstelle AXL/SOAP
Python-AXL: kostenlos, flexibel, Tool-Konzept
Management an der TUC
Paradigmen
- Trennung zwischen Gerät, Person und Standort
(Geräte sind Telefonzellen, Personen haben n+1 Telefonprofile)
- Funktion über Telefonprofile Bereitstellen
(Einzelnutzer-, Mehrbenutzer- Teamprofile)
- intensive Nutzung der AXL/SOAP-Schnittstelle
(Management-Scripte, Cron-Jobs, ...)
- keine händige Dateineingabe
(Anbindung an Datenbanken, LDAP und Co.)
Cisco Callmanager SOAP/AXL
- SOAP-Schnittstelle (Anfrage und Ergebnis via XML)
- ca 200 Funktionen
- implementiert (fast) vollständig alle Konfigurationsmöglichkeiten
- sehr gut und vollständig dokumentiert
- Nachhaltigkeit: auch in CCM5 enthalten und weiter ausgebaut
1: <axl:getLine ... >
2: <pattern>31377</pattern>
3: <routePartitionName>p-intern</routePartitionName>
4: <routeFilterId></routeFilterId>
5: </axl:getLine>
pyAXL (1)
- Python - API für AXL
- Abstraktion in Klassen (Device, Line, Service, Profile)
- Autor: Sebastian Kratzert und TU Chemnitz/URZ
- Lizenz: frei nutzbar (GPL)
- Python: einfach zu erlernende Scriptsprache (Linux/Windows)
pyAXL (2)
1: from pyAXL import *
2:
3: # Device-Objekt erzeugen
4: device=CCMDevice(name="SEP0015F960531E",model="7961")
5:
6: # Directory-Number im Callmanager anlegen
7: dirn=CCMDirNumber(dn_pattern="31377",partition="p-intern")
8: dirn.set_alertingName("Ronald Schmidt, URZ")
9: dirn.update()
10:
11: # Line konfigurieren
12: line=CCMLine(label="Ronald Schmidt 31377")
13: line.set_dirn(dirn)
14: line.set_ringSetting("Ring")
15: line.set_display("Ronald Schmidt")
16:
17: # Line an erste Stelle im Device konfigurieren
18: device.set_line(1,line)
19:
20: # Device im CCM erstellen
21: device.update()
VoIP-Administration an der TUC (1)
Benefiz beim Rollout
- Erstellung Gerätekonfiguration
- Rollout persönlicher Profile
- schnelles "Ausprobieren" von Schaltungen
- Scripte für Migration von analogen Rufnummern
- Monitoring Rolloutzustand und Anmeldezustand
VoIP-Administration an der TUC (2)
- neues Einzelnutzerprofil erstellen
1: $ ./addUser.py oba
2: oba 36565 Otto Bäshtester user_36565_oba
3: send to oba ( otto.bashtester@hrz.tu-chemnitz.de )
- wir vollautomatisch durch IDM erstellt
VoIP-Administration an der TUC (3)
- Privatgespräche erlauben
1: $ ./enablePrivatgespraech.py otto
2: + user_35555_otto 35555
3: activating
4: + team_35555_otto 35555
5: activating
6: send to otto.normalverbraucher@hrz
VoIP-Administration an der TUC (4)
1: $ /usr/local/voip/Scripts/EnableAnalogportNG.py 13409
2: DEVICE= VGC15C647A71B28
3: ---------------------------------------------------------
4: 13409 -> VGC15C647A71B28 @vg2-1-045a-1
5: CreateDN 13409 p-intern
6:
VoIP-Administration an der TUC (5)
VoIP-Administration an der TUC (6)
1: spec={ 'lines': [{ 'type' : 'line',
2: 'dn' : '31552',
3: 'part' : 'p-intern',
4: 'label' : 'Lothar Kempe 31552',
5: 'name' : 'Lothar Kempe',
6: 'ring' : 'on'},
7: { 'type' : 'line',
8: 'dn' : '13410',
9: 'label' : 'URZ GF 13410', ...
10: { 'type' : 'sd',
11: 'dn' : '13410',
12: 'name' : '->Sek. URZ GF',}, ...
13: ],
14: 'nkz': 'lke',
15: 'profilename': 'team_31552_lke',
16: 'type': '7961G-GE'}
VoIP-Administration an der TUC (7)
- Konfiguration von Labornummern
1: ...
2: std_static1('29562','IBF Labor Ergonomie C106',
sep='SEP0017594f0556' ),
3: ...
- Sonderkonfigurationen ausschließlich mit ProfilCreator
{'lines': [
{
'dn': '19100',
'name': 'Fa. Götz',
'part': 'p-intern',
'ring': 'on',
'type': 'line'},
{
'dn': '44111',
'name': 'Uni.Notruf/Wache',
'part': 'p-intern',
'ring': 'on',
'type': 'line'},
],
'profilename': 'static_19100',
'type': '7941',
'phone':'2220',
'dn': '19100',
},
|
|
|
VoIP-Administration an der TUC (8)
Berechtigungsänderung ausschließlich im Dezernat für Haushalt
VoIP-Administration an der TUC (9)
1: $ ./TraceDN.py 31377
2: 998015 -> 31377
3: 31377/p-intern 'Ronald Schmidt, ZUV, URZ' [css-national] ->
4: SEP0017B0BD6016 -> Cisco 7960 ';'
5: user_31377_ronsc -> Cisco 7961G-GE 'user_31377_ronsc
'
6: SEP0015F960531E -> Cisco 7940 'Na62/B302A;DT 1B/302
A-5/6 (r)' user_31377_ronsc
7:
VoIP-Administration an der TUC (10)
1: $ ./ShowUser.py ronsc
2: nkz ronsc
3: == user_31377_ronsc
4: (Cisco 7961G-GE) [SEP0015F960531E Cisco 7940 Na62/B302A;DT 1
B/302A-5/6 (r)] lldddd
5: 1: L 31377 'Ronald Schmidt'
6: 2: L 998021 'Testanruf URZ'
7: 3: D 'joerg ' ->33013
8: 4: D 'günther ' ->31361
9: 5: D 'jen ' ->32677
10: 6: D
11:
VoIP-Administration an der TUC (11)
- nächtliches Update der Telefone
- Raumbezeichnung der Line im abgemeldeten Zustand
- automatische Zuordnung zu Devicepools (und SRST)
- angemeldetes Profil Re-Login
- ca. 30 Prüfscripte NumPlanStatus.txt
- zuordnen eines Standortes einer Person anhand der Anmeldung
- komplexe zeitgesteuerte Konfigurationen möglich
- sehr einfaches Auslagern von Aufgaben (z.B. an ZUV)
Gegenüberstellung Betriebsaufwand
| Task | herkömmlich | Cisco CCM + pyAXL |
| Berechtigungsänderungen | bis zu 5 Min | 10 Sek |
| Vorzimmerschaltungen | bis zu 45 Min | 10 Sek |
| Labornummern | bis zu 10 min | 10 Sek |
| Rufnummernbeantragungen | bis zu 10 min | 0-10 Sek |
| Privatgespräche | bis zu 5 Min | 10 Sek |
| Fax, Analog | bis zu 5 Min | 0 Sek |
| Mehrbenutzerprofile | bis zu 10 Min | 10 Sek |
| Nutzer bearbeiten | bis zu 5 Min | kein Aufwand |
| neues Telefon | bis zu 10 Min | 10 Sek |
extrem hohe Senkung des Aufwands beim "Daily Business"
Fazit (1)
| pro Auftrag nur wenige Sekunden | (bei 80% der Tickets) |
| Einfachheit | |
| konsitente Konfigurationen und Labels | |
| Dokumentation der Tätigkeit | |
| nutzerbezogene Konfiguration | |
| Rollenbasierte Aufgabenverteilung | |
| Ortsunabhängiges Management | |
| schnelles Rollback | (teilweise) |
| Tool-Konzept | |
| ich will alle Features | |
Fazit (2)
Nächster Schritt: Vollautomatisierung
Potenzial
- komplexe Web- und Telefon-Dienste möglich
(persönliches Adressbuch, Cron-gesteuerte Schaltungen)
- schnelle Einführung neuer Features
(z.b neue Features vom CCM 5 ausrollen)
- mandantenfähiges Management
- ...
Ende
Danke für die Aufmerksamkeit
Fragen?