思科CUCMRIS图书馆。使用简单。
ciscoris的Python项目详细描述
中科院
使用实时信息服务(RIS)在CUCM上捕获Cisco IP电话的注册状态 https://developer.cisco.com/docs/sxml/#risport70-api-reference
使用pip或clone repo安装
pip install ciscoris
导入RIS、LogCollection或其他类
fromciscorisimportris
指定您的CUCM详细信息
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')
实例化RIS对象
ris=ris(username=risuser,password=rispass,cucm=cucm,cucm_version=version)
输入一组电话
phones=['SEPF8A5C59E0F1C','SEP1CDEA78380DE','SEP01CD4EF58980']
输入一个或多个运行CallManager服务的“流程节点”数组
subs=['sub1','sub2','sub3']
您可以通过api使用相关的库抓取进程节点。
defgetSubs():nodes=axl.listProcessNodes()ifnodes['success']:returnnodes['response']subs=getSubs()
将电话分组为1000,并检查每个组的注册情况
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)
subs=['sub1','sub2','sub3']
您可以通过api使用相关的库抓取进程节点。
defgetSubs():nodes=axl.listProcessNodes()ifnodes['success']:returnnodes['response']subs=getSubs()
将电话分组为1000,并检查每个组的注册情况
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)