def oxe_translator_prefix_create_dpnss(host, token, dpnss_prefix): """Summary Args: host (TYPE): Description token (TYPE): Description dpnss_prefix (TYPE): Description Returns: TYPE: Description """ payload = { 'Prefix_Meaning': 'Local_Facilities', 'Local_Facility_Type': 'Pabx_address_in_network' } packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: creation = post( 'https://' + host + '/api/mgt/1.0/Node/1/Services_Access_Code/1/Prefix_Plan/' + dpnss_prefix, json=payload, headers=oxe_set_headers(token, 'POST'), verify=False) except exceptions.RequestException as e: pprint(e) return creation.status_code
def oxe_sip_proxy(host, token): """Summary Args: host (TYPE): Description token (TYPE): Description Returns: TYPE: Description """ payload = { 'SIP_min_auth_method': 'SIP_None', 'SIP_Move_To_TCP': 'false', 'ReTransNo_Invite': '4' } packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put('https://' + host + '/api/mgt/1.0/Node/1/SIP/1/SIP_Proxy/1', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_set_flex(host, token, flex_ip_address, flex_port): """Summary Args: host (TYPE): Description token (TYPE): Description flex_ip_address (TYPE): Description flex_port (TYPE): Description Returns: TYPE: Description """ packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) payload = { "Flex_Licensing_Enable": "Yes", "Flex_Server_Address": flex_ip_address, "Flex_Server_Port": flex_port, "Flex_ProductId_Discovery": "Yes" } try: response = put('https://' + host + '/api/mgt/1.0/Node/1/System_Parameters/1/Flex_Server/1', headers=oxe_set_headers(token, 'PUT'), json=payload, verify=False) except exceptions.RequestException as e: pprint(e) # todo: manage errors return response.status_code
def oxe_shelf_board_compressors_for_ip_devices(host, token, shelf_id, compressors): """Summary Args: host (TYPE): Description token (TYPE): Description shelf_id (TYPE): Description compressors (TYPE): Description Returns: TYPE: Description """ payload = {'IP_Nb_Used_Compressors': compressors} packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put('https://' + host + '/api/mgt/1.0/Node/1/Rack/' + shelf_id + '/Board/0', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_shelf_ethernet_parameters(host, token, shelf_id, mac_address): """Summary Args: host (TYPE): Description token (TYPE): Description shelf_id (TYPE): Description mac_address (TYPE): Description Returns: TYPE: Description """ payload = {'Board_Ethernet_Address': mac_address} packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put('https://' + host + '/api/mgt/1.0/Node/1/Rack/' + str(shelf_id) + '/Board/0/Ethernet_Parameters/' + str(shelf_id) + '-0', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_ip_domain_deactivate_compression_default_ip_domain(host, token): """Summary Args: host (TYPE): Description token (TYPE): Description Returns: TYPE: Description """ payload = { 'Intra_Domain_Coding_Algorithm': 'No_Compression', 'Extra_Domain_Coding_Algorithm': 'No_Compression' } packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put('https://' + host + '/api/mgt/1.0/Node/1/IP/1/IP_Domain/0', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_sip_create_default_trunk_groups(host, token, trunk_id): """Summary Args: host (TYPE): Description token (TYPE): Description trunk_id (TYPE): Description Returns: TYPE: Description """ payload = { 'Homo_Net_For_Direct_RTP': 'Yes', 'Number_Of_Digits_To_Send': '4', 'Public_Network_Category_Id': '31', 'Remote_Network': '15', 'Signalization_Variation': 'ABC_F_VARIANT', 'T2_Specificity': 'SIP', 'Trunk_Group_Name': 'SIP' } packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: creation = post('https://' + host + '/api/mgt/1.0/Node/1/Trunk_Group_Overview/' + str(trunk_id), json=payload, headers=oxe_set_headers(token, 'POST'), verify=False) except exceptions.RequestException as e: pprint(e) return creation.status_code
def oxe_create_shelf(host, token, shelf_id, rack_size): """Summary Args: host (TYPE): Description token (TYPE): Description shelf_id (TYPE): Description rack_size (TYPE): Description Returns: TYPE: Description """ payload = {'MediaServer': 'Yes', 'Rack_Size': rack_size} if id == 0 or id == 18 or id == 19: print('Error can\'t proceed to create shelf with reserved id : {}'. format(id)) exit(-1) packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: creation = post('https://' + host + '/api/mgt/1.0/Node/1/Rack/' + str(shelf_id), json=payload, headers=oxe_set_headers(token, 'POST'), verify=False) except exceptions.RequestException as e: pprint(e) return creation.status_code
def vm_create(host, token, voice_mail_number, number_accesses, voice_mail_directory_name='voicemail', voice_mail_server_index=1, voice_mail_type='embedded'): """Summary Args: host (TYPE): Description token (TYPE): Description voice_mail_number (TYPE): Description number_accesses (TYPE): Description voice_mail_directory_name (str, optional): Description voice_mail_server_index (int, optional): Description voice_mail_type (str, optional): Description Returns: TYPE: Description """ payload = { 'Directory_Name': voice_mail_directory_name, 'Number_Of_Accesses': number_accesses, 'Voice_Mail_CPU_Name': host, 'Voice_Mail_Directory_Number': voice_mail_number, 'Voice_Mail_Server_Number': voice_mail_server_index, 'Voice_Mail_Type': voice_mail_type } packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put( 'https://' + host + '/api/mgt/1.0/Node/101/Application_Configuration/1/Voice_Mail/' + voice_mail_server_index, json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_delete_user(host, token, extension, max_retries): """Summary Args: host (TYPE): Description token (TYPE): Description extension (TYPE): Description max_retries (TYPE): Description """ packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) for i in range(max_retries): response = delete('https://' + host + '/api/mgt/1.0/Node/1/Subscriber/' + str(extension), headers=oxe_set_headers(token, 'DELETE'), verify=False) # code status 200: OK if response.status_code in (200, 404): break # code status 503: retry with same requests + wait 500ms (oxe max 2r/s) elif response.status_code == 503: sleep(.500)
def oxe_create_user(host, token, extension, last_name, first_name, station_type, max_retries): """Summary Args: host (TYPE): Description token (TYPE): Description extension (TYPE): Description last_name (TYPE): Description first_name (TYPE): Description station_type (TYPE): Description max_retries (TYPE): Description """ packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) payload = { "Annu_Name": last_name, "Annu_First_Name": first_name, "Station_Type": station_type } for i in range(max_retries): response = post('https://' + host + '/api/mgt/1.0/Node/1/Subscriber/' + str(extension), headers=oxe_set_headers(token, 'POST'), json=payload, verify=False) # code status 201: CREATED if response.status_code in (201, 401): break # code status 503: retry with same requests + wait 500ms (oxe max 2r/s) elif response.status_code == 503: sleep(.500) # return response.status_code elif response.status_code == 403: print( 'Connection error, please reconnect first! mass provisioning ended on extension {}' .format(str(extension - 1))) exit(-1)
def oxe_get_json_model(host, token): """Summary Args: host (TYPE): Description token (TYPE): Description Returns: TYPE: Description """ packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) response = get('https://' + host + '/api/mgt/1.0/model', headers=oxe_set_headers(token), verify=False, stream=True) result = '' for chunk in response.iter_content(chunk_size=1024): if chunk: result += chunk.decode('utf-8') # todo: transcode false to 'false' # todo: transcode true to 'true' return result
def oxe_system_node_number(host, token, node_number): """Summary Args: host (TYPE): Description token (TYPE): Description node_number (TYPE): Description Returns: TYPE: Description """ payload = {'Node_Number': node_number} packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put('https://' + host + '/api/mgt/1.0/Node/1/System_Parameters/1', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_sip_gateway(host, token, trunk_id): """Summary Args: host (TYPE): Description token (TYPE): Description trunk_id (TYPE): Description Returns: TYPE: Description """ payload = {'SIP_Subnetwork': '15', 'SIP_Trunk_Group': trunk_id} packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put('https://' + host + '/api/mgt/1.0/Node/1/SIP/1/SIP_Gateway/1', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_create_phonebook_entry(host, token, extension, last_name, first_name, alias, max_retries): """Summary Args: host (TYPE): Description token (TYPE): Description extension (TYPE): Description last_name (TYPE): Description first_name (TYPE): Description alias (TYPE): Description max_retries (TYPE): Description """ packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) payload = { 'Annu_First_Name': first_name, 'Annu_Name': last_name, 'Phone_Book_First_Name': first_name, 'Phone_Book_Name': last_name, 'Phone_Book_Type': 'PB_Service_Number', 'UTF8_Phone_Book_First_Name': first_name, 'UTF8_Phone_Book_Name': last_name } for i in range(max_retries): response = post('https://' + host + '/api/mgt/1.0/Node/1/Phone_Book/' + str(extension) + utils.quote(',') + str(alias), oxe_set_headers(token, 'POST'), json=payload, verify=False) if response.status_code in (201, 404, 401): break # code status 503: retry with same requests + wait 500ms (oxe max 2r/s) elif response.status_code == 503: sleep(.500) pprint('\n' + str(response.status_code))
def oxe_system_accept_mu_a_laws_in_sip(host, token, mode): """Summary Args: host (TYPE): Description token (TYPE): Description mode (TYPE): Description Returns: TYPE: Description """ payload = {'T0_Mu_Law': mode} packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put( 'https://' + host + '/api/mgt/1.0/Node/1/System_Parameters/1/System_Parameters_2/1/System_/Accept_Mu_A_Laws_In_SIP', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_system_ucaas_csta_sessions_monitored(host, token, max_session): """Summary Args: host (TYPE): Description token (TYPE): Description max_session (TYPE): Description Returns: TYPE: Description """ payload = {'CSTA_Requests_monitored': max_session} packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put( 'https://' + host + '/api/mgt/1.0/Node/1/System_Parameters/1/System_Parameters_2/1/RTU_Parameters/CSTA_Requests_monitored', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code
def oxe_system_compression_type(host, token, compression_type): """Summary Args: host (TYPE): Description token (TYPE): Description compression_type (TYPE): Description Returns: TYPE: Description """ payload = {'Compression_Type': compression_type} packages.urllib3.disable_warnings( packages.urllib3.exceptions.InsecureRequestWarning) try: modification = put( 'https://' + host + '/api/mgt/1.0/Node/1/System_Parameters/1/System_Parameters_2/1/Compression_Parameters/Compression_Type', json=payload, headers=oxe_set_headers(token, 'PUT'), verify=False) except exceptions.RequestException as e: pprint(e) return modification.status_code