pip install ciscoaxl
from ciscoaxl import axl
cucm = '10.10.20.1'
username = 'axluser'
password = 'axlpassword'
version = '12.5'
ucm = axl(username=cucm_username,password=cucm_password,cucm=cucm,cucm_version=version)
for user in ucm.get_users():
print(user.firstName)
user = ucm.get_user(user_id='mscott')
print(user.email)
ucm.add_user(user_id='jlevensailor', last_name='Levensailor', first_name='Jeff')
ucm.delete_user(user_id='jlevensailor')
ucm.update_user(user_id='jlevensailor', password='Lagavulin16', pin='5432')
for phone in ucm.get_phones():
print(phone.name)
phone = ucm.get_phone(name='SEP001122445566')
print(phone.name)
ucm.add_phone(
name='SEP0023AF482340',
description='Robert - 1102',
product='Cisco 8861',
device_pool='RTP_DP',
location='RTP_LOC',
phone_template='Standard 8861 SIP',
protocol='SIP',
css='AVST-CSS',
subscribe_css='AVST-CSS',
lines=[
('1102', 'ABQ_PT', 'Robert Smith', 'Robert Smith', 'Robert Smith - 1102', '+1408202XXXX')
]
)
ucm.delete_phone('SEP004433220043')
for trans in ucm.get_translations():
detailed = ucm.get_translation(uuid=trans.uuid)
print(detailed.description)
trans = ucm.get_translation(pattern='2XXX', partition='xlates-pt')
print(trans.description)
ported = ['12324625544', '12324625545', '12324625546']
for num in ported:
ucm.add_translation(pattern=num, partition='pstn_pt',calledPartyTransformationMask='1102', callingSearchSpaceName='GW_CSS')
ucm.delete_translation(pattern='34567', partition='xlates-pt')
ucm.update_translation(pattern='1234', partition='xlates-pt', newPattern='4567')
for dp in ucm.get_device_pools():
print(dp.name)
dp = ucm.get_device_pool(name='RTP_DP')
print(dp.name)
ucm.add_device_pool(device_pool='Hollywood_DP')
ucm.delete_device_pool(device_pool='Hollywood_DP')
ucm.update_device_pool(name='RTP_DP', regionName='G711_RGN')
for css in ucm.get_calling_search_spaces():
print(css.name)
css = ucm.get_calling_search_space(calling_search_space='pstn-css')
print(css.name)
ucm.add_calling_search_space(
calling_search_space='VIP_CSS',
description='Very Important Stuff'
members=['losfeliz-pt','silverlake-pt','pstn-pt']
)
ucm.update_calling_search_space(calling_search_space='VIP_CSS')
ucm.delete_calling_search_space(calling_search_space='VIP_CSS')
for pt in ucm.get_partitions():
print(pt.name)
pt = ucm.get_partition(partition='pstn-pt')
print(pt.name)
ucm.add_partition(partition='VIP_PT', description='Very Important Peep')
ucm.delete_partition(name='VIP_PT')
for reg in ucm.get_regions():
print(reg.uuid)
reg = ucm.get_region(region='losfeliz_reg')
print(reg.name)
ucm.add_region(region='Hollywood-REG')
ucm.delete_region(region='Hollywood-REG')
for loc in ucm.get_locations():
print(loc.name)
loc = ucm.get_location(name='Shadow')
print(loc.name)
ucm.add_location(location='Hollywood-LOC')
ucm.delete_location(location='Hollywood-LOC')
for dn in ucm.get_directory_numbers():
print(dn.uuid)
dn = ucm.get_directory_number(directory_number='2888',partition='losfeliz-pt')
print(dn.uuid)
ucm.add_directory_number(
pattern='1102',
partition='ABQ_PT'
)
ucm.delete_directory_number(uuid='{0B0CDC93-EC9C-7255-1B09-40A3CE727D5A}')
for udp in ucm.get_device_profiles():
print(udp.name)
udp = ucm.get_device_profile(profile='udp-bsimpson')
print(udp.name)
ucm.add_device_profile(
profile='UDP_MScott',
description='Michael Scott - 2901',
product='Cisco 8861',
phone_template='Standard 8861 SIP',
protocol='SIP',
lines=[
('2901', 'losfeliz-pt', 'Michael Scott', 'Michael Scott', 'Michael Scott - 2901', '+1408202XXXX'),
('2902', 'losfeliz-pt', 'Pam Beesley', 'Pam Beesley', 'Pam Beesley - 2902', '+1408202XXXX')
]
)
ucm.delete_device_profile('UDP_Mscott')
for cti in ucm.get_cti_route_points():
print(cti.name)
cti = ucm.get_cti_route_point(cti_route_point='AutoAttendant')
print(cti.name)
ucm.add_cti_route_point(
cti_route_point='aa-pilot',
description='pilot to unity',
device_pool='LosFeliz_DP',
css='allphone-css',
lines=[
('2908', 'losfeliz-pt'),
('2909', 'losfeliz-pt')
]
)
ucm.delete_cti_route_point(name='OneArch')
nums = ['19197016707', '19197016712', '19197016713', '19197016706', '191970167016']
for num in nums:
for route in ucm.list_route_plan(num):
print(route.dnOrPattern)
for route in ucm.list_route_plan('2901'):
print(route.uuid)
for rg in ucm.get_route_groups():
print(rg.name)
rg = ucm.get_route_group(route_group='losfeliz-rg')
print(rg.uuid)
ucm.add_route_group(
route_group='hollywood-rg',
distribution_algorithm='Circular',
members=[('america-online-sip'), ('h323')])
ucm.delete_route_group(route_group='hollywood-rg')
for rl in ucm.get_route_lists():
print(rl.name)
rl = ucm.get_route_list(route_list='stdloc-rl')
print(rl.description)
ucm.add_route_list(
route_list='hollywood-rl',
description='hollywood',
run_on_all_nodes='true',
cm_group_name='Default',
members=[
('losfeliz-rg'),
('silverlake-rg')
])
ucm.delete_route_list(route_list='hollywood-rl')
for rp in ucm.get_route_patterns():
print(rp.pattern)
rp = ucm.get_route_pattern(pattern='911')
print(rp.description)
ucm.add_route_pattern(
pattern='999',
partition='losfeliz-pt',
description='Movie Times',
route_list='stdloc-rl'
)
ucm.delete_route_pattern(pattern='999', partition='losfeliz-pt')
for sql in ucm.execute_sql_query('select * from device where description like "Bart%"'):
print(sql.name)
for ldap in ucm.get_ldap_dir():
ucm.do_ldap_sync(uuid=ldap.uuid)
ucm.do_device_reset(device='SEP001100220033')
ucm.do_device_login(device='SEP001100220033', userId='bsimpson')
ucm.do_device_logout(device='SEP001100220033', userId='bsimpson')