Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

published

ciscoris

Uses Realtime Information Service (RIS) to capture registration status of Cisco IP Phones on CUCM https://developer.cisco.com/docs/sxml/#risport70-api-reference

Install with pip or clone repo

pip install ciscoris

import ris, logcollection or other classes

fromciscorisimportris

specify your CUCM details

cucm=os.getenv('cucm', '10.10.10.10')
version=os.getenv('version', '11.5')
risuser=os.getenv('risuser', 'risadmin')
rispass=os.getenv('rispass', 'p@ssw0rd')

instanciate your RIS object

ris=ris(username=risuser,password=rispass,cucm=cucm,cucm_version=version)

input an array of phones

phones= ['SEPF8A5C59E0F1C', 'SEP1CDEA78380DE', 'SEP01CD4EF58980']

input an array of "process nodes" or nodes which run Callmanager service

subs= ['sub1', 'sub2', 'sub3']

you can use the related ciscoaxl library grab process nodes via API.

defgetSubs():
nodes=axl.listProcessNodes()
ifnodes['success']:
returnnodes['response']
subs=getSubs()

group phones into 1000 and check registrations per group

limit=lambdaphones, n=1000: [phones[i:i+n] foriinrange(0, len(phones), n)]
groups=limit(phones)
forgroupingroups:
registered=ris.checkRegistration(group, subs)
user=registered['LoginUserId']
regtime=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(registered['TimeStamp']))
foriteminregistered['IPAddress']:
ip=item[1][0]['IP']
foriteminregistered['LinesStatus']:
primeline=item[1][0]['DirectoryNumber']
name=registered['Name']
print('name: '+name)
print('user: '+user)
print('primary dn: '+primeline)
print('ip address: '+ip)
print('registration time: '+regtime)

About

Python SDK for Cisco CUCM RIS API

Topics

Resources

Stars

10 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages