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)

VoIP an der TU Chemnitz (2)

Managementaufgaben VoIP (1)



"heiße Phase" - Rollout Betrieb

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

Management an der TUC

Paradigmen

Cisco Callmanager SOAP/AXL


 1: <axl:getLine    ...  >
 2: <pattern>31377</pattern>
 3: <routePartitionName>p-intern</routePartitionName>
 4: <routeFilterId></routeFilterId>      
 5: </axl:getLine>

pyAXL (1)

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

VoIP-Administration an der TUC (2)

 1: $ ./addUser.py oba
 2: oba 36565 Otto Bäshtester user_36565_oba
 3: send to oba ( otto.bashtester@hrz.tu-chemnitz.de )

VoIP-Administration an der TUC (3)

 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)




Chef 1 2x Sek. Chef 2

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)

 1: ...
 2: std_static1('29562','IBF Labor Ergonomie C106',             
            sep='SEP0017594f0556' ),
 3: ...
{'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)

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

Ende



Danke für die Aufmerksamkeit

Fragen?