Betriebsaufwand reduzieren mit Cisco Unified Communications
XML Layer API optimiert Rollout und Management
TU Chemnitz, Universitätsrechenzentrum, Ronald Schmidt
24. Oktober 2006 - Dorint Novotel Dresden
Sachsenstammtisch
Angenda
- VoIP an der TU Chemnitz
- Managementaufgaben VoIP
- Schnittstellen Cisco Callmanager
- Cisco XML Layer API und pyAXL
- konkrete Beispiele
- Gegenüberstellung Betriebsaufwand
|
VoIP an der TU Chemnitz
- vollständiges Cisco-Netz "VOIP-Ready"
- Access:
- 128 Cisco 3750-XX-PS
- 20 Cisco 3750 ohne PoE
- ca. 100 andere Cisco-Switches
- Cisco Callmanager 4.1
- 1 Publisher, 4 Subscriber an vier Standorten
- 2228 Cisco Telefone online, 438 Analogports
- 4 Gateways Cisco 2821 mit je zwei E1
- 3 Gateways Cisco 2811 für SRST
- Flächendeckend Extension Mobility
- Persönliche Rufnummern, Organigrammrufnummern
- 3 Fedora Directory Server (Multi-Master)
- UMS (Ferrari Officemaster)
- Vermittlungssystem (Netwise)
- Asterisk-Server via SIP-Trunk am Callmanager
Managementaufgaben VoIP
- seit 18.08.2006: 579 Tickets; im Durchschnitt 12 pro Tag
| Anzahl | Task |
| 13+x | Berechtigungsänderungen |
| 14 | Vorzimmerschaltungen |
| 17 | Labornummern |
| 25 | Rufnummernbeantragungen |
| 46 | Privatgespräche |
| 39 | Fax, Analog |
| 50 | Mehrbenutzerprofile |
| 58 | Rollout, Umsetzungen |
| 116 | Störungsmeldungen |
| 201 | formlose Anforderungen |
- Einbinden neuer Telefone, Monitoring
- Telefonbuch-Datenbank pflegen, ...
Beispiel Vorzimmerschaltung
| Chef |
Sekretärin |
 |
 |
- Daten zusammensuchen (2x Nummer, 2x Name)
- 1x Profil anlegen
- 1x Partition erstellen
- ggf. 1x Phonebuttontemplate anlegen
- 3 Lines konfigurieren (Name, Ring, Rechte, ...)
- 1 Speeddial setzen
- 3 Services konfigurieren
- einem Nutzer zuordnen
- Chef informieren
- Nummer im LDAP aktualisieren
|
- Daten zusammensuchen
- 1x Profil anlegen
- ggf. 1x Phonebuttontemplate anlegen
- 4 Lines konfigurieren (Name, Ring, Rechte, ...)
- 1 Speeddial setzen
- 3 Services konfigurieren
- einem Nutzer zuordnen
- Chef informieren
- Nummer im LDAP aktualisieren
|
Dauer: zwischen 20 und 45 Minuten, hohe Fehleranfälligkeit
Schnittstellen Cisco Callmanager (1)
- Webschnittstelle
- Bulk Administration Tool
- LDAP-Anbindung
- AXL SOAP API
Schnittstellen Cisco Callmanager (2) - 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) - Beispiel
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: $ ./TraceDN.py 35555
2: 35555/p-intern 'Otto Nörmälverbraucher' [css-intern-otto]
-> 983848 ( SEP00170E43AE19 team_35555_otto_7960 user_35555_
otto test_35555_otto_a team_35555_otto )
3: 983848/p-intern 'Raum Na62/B204' [css-intern] -> ADP0017954A
4EFF SEP0017954A4EFF
4:
5: SEP0017954A4EFF -> Na62/B204;1B/204-17/18 (l)
6: ADP0017954A4EFF -> Na62/B204;1B/204-17/18 (l)
7: SEP00170E43AE19 -> Na62/B204;1B/204-15/16 (l)
- 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 )
- 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
- XML-Service "Mensaspeiseplan" aktivieren
1: $ ./enableSpeiseplan.py otto
2: ==> user_35555_otto 35555
3: activating
4: ==> team_35555_otto 35555
5: activating
1: $ ./EnableAnalogportNG.py 23449
2: FILTER vg2-3t-003-1/43
3: ==> vg2-3t-003-1/43
4: ---------------------------------------------------------
5: 1251 -> VGC1647668D8343 @vg2-3t-003-1
6: DN auf Endpoint: 23449
7: Weiterleitungen an 23449 : ['2349', '800075']
8: CreateDN 23449 p-intern
9: 2349 -> 23449
10: CreateDN 2349 p-intern
11: 800075 -> 23449
12: CreateDN 800075 p-intern
Automatisierung Chef/Sek-Profile
Workflow
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: ...
11: { 'type' : 'sd',
12: 'dn' : '13410',
13: 'name' : '->Sek. URZ GF',},
14: ...
15: ],
16: 'nkz': 'lke',
17: 'profilename': 'team_31552_lke',
18: 'type': '7961G-GE'}
Konfiguration Spezialkonfigurationen
- 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',
},
|
|
|
Weitere Möglichkeiten
- 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 (Stimmt der Rufnummernplan? ...)
- zuordnen eines Standortes einer Person anhand der Anmeldung
- komplexe zeitgesteuerte Konfigurationen möglich
- sehr einfaches Auslagern von Aufgaben (z.B. an ZUV)
Auslagerung von Aufgaben per Web
Berechtigungsänderung ausschließlich im Dezernat für Haushalt
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
- extrem hohe Senkung des Aufwands beim Daily Business
- Verteilen von Managementaufgabe an ungeschulte Kollegen
- Urlaubsvertretung sehr einfach umsetzbar
- keine Tippfehler, homogenes Profillayout
- Reaktionszeit (für Standardfälle) wurde extrem verkürzt
- Massenänderungen möglich
- Nächster Schritt: Vollautomatisierung
Das Ganze ist nur möglich durch:
- homogene Infrastruktur (Stichwort CDP, Voice-VLAN, IOS)
- Flexibilität von VOIP (Extension Mobility)
- offene bzw. dokumentierte Schnittstellen
- exzellente Doku und Beispiele von Cisco
- hoher "Integrationswille" von Cisco Unified Communications
Ende
Danke für die Aufmerksamkeit
Fragen?