{ "info": { "author": "Maximilian Ebert", "author_email": "max.ebert@me.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "|MIT license| |Version| |Unstable|\n\npython-voipms\n=============\n\nPython client for v1 of voip.ms REST API using requests >= 2.7.0.\n\nGetting Started\n---------------\n\nInstallation\n~~~~~~~~~~~~\n\nThis client is hosted at PyPi under the name ``voipms``, to install it,\nsimply run\n\n``pip install voipms``\n\nHistory\n~~~~~~~\n\n- Version 0.2.3 from 05.04.2017\n\n - First alpha version of this API\n - Up to date with features listed through 20.02.2017\n - TODO:\n\n - Code cleanup\n - Cleanup of inner references to functions\n - Testing all functions\n - More validations of input and streamlining how to input dids\n (only digits or also dids with seperators)\n\nInitialization\n~~~~~~~~~~~~~~\n\nGo to your the voip.ms customer portal go to the API config page (Main\nMenu > SOAP and REST/JSON API) - ``YOUR_USERNAME`` is your voip.ms\nusername - Set ``YOUR_PASSWORD`` - Activate the API - Set the IP address\nof your development server\n\n::\n\n from voipms import VoipMs\n\n client = VoipMs('YOUR_USERNAME', 'YOUR_PASSWORD')\n\nExamples\n~~~~~~~~\n\n::\n\n # return allowed IPs\n client.general.get.ip()\n\n # returns a specific allowed codec\n client.accounts.get.allowed_codecs(codec=\"ulaw\")\n\nAPI Structure\n-------------\n\nAll endpoints follow the structure listed in the official voip.ms API v1\ndocumentation. The structure will be listed below and then the\nindividual methods available after.\n\n::\n\n VoipMs\n +- General\n | +- Get\n +- Accounts\n | +- Create\n | +- Delete\n | +- Get\n | +- Set\n +- Calls\n | +- Get\n +- Clients\n | +- Add\n | +- Get\n | +- Set\n +- Dids\n | +- Back_order\n | +- Cancel\n | +- Connect\n | +- Delete\n | +- Get\n | +- Order\n | +- Search\n | +- Send\n | +- Set\n | +- Unconnect\n +- Fax\n | +- Cancel\n | +- Delete\n | +- Get\n | +- Mail\n | +- Move\n | +- Order\n | +- Search\n | +- Send\n | +- Set\n +- Voicemail\n | +- Create\n | +- Delete\n | +- Get\n | +- Mark\n | +- Move\n | +- Send\n | +- Set\n\nGeneral\n~~~~~~~\n\nGet\n^^^\n\n::\n\n client.general.get.balance(advanced=False)\n client.general.get.countries(country=None)\n client.general.get.ip()\n client.general.get.languages(language=None)\n client.general.get.servers_info(server_pop=None)\n client.general.get.transaction_history(date_from, date_to)\n\nAccounts\n~~~~~~~~\n\nCreate\n^^^^^^\n\n::\n\n client.accounts.create.sub_account(username, password, protocol, auth_type, device_type,\n lock_international, international_route, music_on_hold,\n allowed_codecs, dtmf_mode, nat, **kwargs)\n\nDelete\n^^^^^^\n\n::\n\n client.accounts.delete.sub_account(account_id)\n\nGet\n^^^\n\n::\n\n client.accounts.get.allowed_codecs(codec=None)\n client.accounts.get.auth_types(auth_type=None)\n client.accounts.get.device_types(device_type=None)\n client.accounts.get.dtmf_modes(dtmf_mode=None)\n client.accounts.get.lock_international(lock_international=None)\n client.accounts.get.music_on_hold(music_on_hold=None)\n client.accounts.get.nat(nat=None)\n client.accounts.get.protocols(protocol=None)\n client.accounts.get.registration_status(account)\n client.accounts.get.report_estimated_hold_time(time_type=None)\n client.accounts.get.routes(route=None)\n client.accounts.get.sub_accounts(account=None)\n\nSet\n^^^\n\n::\n\n client.accounts.set.sub_account(account_id, password, auth_type, device_type,\n lock_international, international_route, music_on_hold,\n allowed_codecs, dtmf_mode, nat, **kwargs)\n\nCalls\n~~~~~\n\nGet\n^^^\n\n::\n\n client.calls.get.call_accounts(client=None)\n client.calls.get.call_billing(self)\n client.calls.get.call_types(client=None)\n client.calls.get.cdr(date_from, date_to, timezone,\n answered=False, noanswer=False, busy=False,\n failed=False, **kwargs)\n client.calls.get.rates(package, query)\n client.calls.get.termination_rates(route, query)\n client.calls.get.reseller_cdr(date_from, date_to, client, timezone,\n answered=False, noanswer=False, busy=False,\n failed=False, **kwargs)\n\nClients\n~~~~~~~\n\nAdd\n^^^\n\n::\n\n client.clients.add.charge(client, charge, description=None, test=False)\n client.clients.add.client(firstname, lastname, address, city, state, country,\n zip_code, phone_number, email, confirm_email, password,\n confirm_password, **kwargs)\n client.clients.add.payment(client, payment, description=None, test=False)\n\nGet\n^^^\n\n::\n\n client.clients.get.balance_management(balance_management=None)\n client.clients.get.charges(client)\n client.clients.get.client_packages(client)\n client.clients.get.clients(client=None)\n client.clients.get.client_threshold(client)\n client.clients.get.deposits(client)\n client.clients.get.packages(package=None)\n client.clients.get.reseller_balance(client)\n\nSet\n^^^\n\n::\n\n client.clients.set.client(client, email, password, firstname,\n lastname, phone_number, **kwargs)\n client.clients.set.client_threshold(client, threshold, email=None)\n\nDids\n~~~~\n\nBack\\_order\n^^^^^^^^^^^\n\n::\n\n client.dids.back_order.did_can(quantity, province, ratecenter, routing, \n pop, dialtime, cnam, billing_type, **kwargs)\n client.dids.back_order.did_usa(quantity, state, ratecenter, routing, pop, \n dialtime, cnam, billing_type, **kwargs)\n\nCancel\n^^^^^^\n\n::\n\n client.dids.cancel.did(did, **kwargs)\n\nConnect\n^^^^^^^\n\n::\n\n client.dids.connect.did(did, account, monthly, setup, minute, **kwargs)\n\nDelete\n^^^^^^\n\n::\n\n client.dids.delete.callback(callback)\n client.dids.delete.caller_id_filtering(filtering)\n client.dids.delete.client(client)\n client.dids.delete.disa(disa)\n client.dids.delete_sms(sms_id)\n client.dids.delete.forwarding(forwarding)\n client.dids.delete.ivr(ivr)\n client.dids.delete.phonebook(phonebook)\n client.dids.delete.queue(queue)\n client.dids.delete.recording(recording)\n client.dids.delete.ring_group(ringgroup)\n client.dids.delete.sip_uri(sipuri)\n client.dids.delete.static_member(member, queue)\n client.dids.delete.time_condition(timecondition)\n\nGet\n^^^\n\n::\n\n client.dids.get.callbacks(callback=None)\n client.dids.get.caller_id_filtering(filtering=None)\n client.dids.get.did_countries(international_type, country_id=None)\n client.dids.get.carriers(carrier=None)\n client.dids.get.dids_can(province, ratecenter=None)\n client.dids.get.dids_info(client=None, did=None)\n client.dids.get.dids_international_geographic(country_id)\n client.dids.get.dids_international_national(country_id)\n client.dids.get.dids_international_toll_free(country_id)\n client.dids.get.dids_usa(state, ratecenter=None)\n client.dids.get.disas(disa=None)\n client.dids.get.forwardings(forwarding=None)\n client.dids.get.international_types(international_type=None)\n client.dids.get.ivrs(ivr=None)\n client.dids.get.join_when_empty_types(join_type=None)\n client.dids.get.phonebook(phonebook=None, name=None)\n client.dids.get.portability(did)\n client.dids.get.provinces()\n client.dids.get.queues(queue=None)\n client.dids.get.rate_centers_can(province)\n client.dids.get.rate_centers_usa(state)\n client.dids.get.recordings(recording=None)\n client.dids.get.recording_file(recording)\n client.dids.get.ring_groups(ringgroup=None)\n client.dids.get.ring_strategies(strategy=None)\n client.dids.get.sip_uris(sipuri=None)\n client.dids.get.sms(**kwargs)\n client.dids.get.states()\n client.dids.get.static_members(queue, member=None)\n client.dids.get.time_conditions(timecondition=None)\n client.dids.get.voicemail_setups(voicemailsetup=None)\n client.dids.get.voicemail_attachment_formats(email_attachment_format=None)\n\nOrder\n^^^^^\n\n::\n\n client.dids.order.did(did, routing, pop, dialtime, cnam, billing_type, **kwargs)\n client.dids.order.did_international_geographic(location_id, quantity, routing,\n pop, dialtime, cnam, billing_type, **kwargs)\n client.dids.order.did_international_national(location_id, quantity, routing,\n pop, dialtime, cnam, billing_type, **kwargs)\n client.dids.order.did_international_toll_free(location_id, quantity, routing, pop,\n dialtime, cnam, billing_type, **kwargs)\n client.dids.order.did_virtual(digits, routing, pop, dialtime, cnam, billing_type, **kwargs)\n client.dids.order.toll_free(did, routing, pop, dialtime, cnam, billing_type, **kwargs)\n client.dids.order.vanity(did, routing, pop, dialtime, cnam, billing_type, carrier, **kwargs)\n\nSearch\n^^^^^^\n\n::\n\n client.dids.search.dids_can(search_type, query, province=None)\n client.dids.search.dids_usa(search_type, query, state=None)\n client.dids.search.toll_free_can_us(search_type=None, query=None)\n client.dids.search.toll_free_usa(search_type=None, query=None)\n client.dids.search.vanity(search_type, query)\n\nSend\n^^^^\n\n::\n\n client.dids.send.sms(did, dst, message)\n\nSet\n^^^\n\n::\n\n client.dids.set.callback(description, number, delay_before, response_timeout, digit_timeout, **kwargs)\n client.dids.set.caller_id_filtering(callerid, did, routing, **kwargs)\n client.dids.set.did_billing_type(did, billing_type)\n client.dids.set.did_info(did, routing, pop, dialtime, cnam, billing_type, **kwargs)\n client.dids.set.did_pop(did, pop)\n client.dids.set.did_routing(did, routing)\n client.dids.set.did_voicemail(did, voicemail=None)\n client.dids.set.disa(name, pin, digit_timeout, **kwargs)\n client.dids.set.forwarding(phone_number, **kwargs)\n client.dids.set.ivr(name, recording, timeout, language, voicemailsetup, choices, ivr=None)\n client.dids.set.phonebook(name, number, **kwargs)\n client.dids.set.queue(queue_name, queue_number, queue_language, priority_weight, report_hold_time_agent,\n join_when_empty, leave_when_empty, ring_strategy, ring_inuse, **kwargs)\n client.dids.set.recording(file, name, recording=None)\n client.dids.set.ring_group(name, members, voicemail, **kwargs)\n client.dids.set.sip_uri(uri, **kwargs)\n client.dids.set.sms(did, enable, **kwargs)\n client.dids.set.static_member(queue, member_name, priority, **kwargs)\n client.dids.set.time_condition(name, routing_match, routing_nomatch, starthour, startminute,\n endhour, endminute, weekdaystart, weekdayend, timecondition=None)\n\nUnconnect\n^^^^^^^^^\n\n::\n\n client.dids.unconnect.did(did)\n\nFax\n~~~\n\nCancel\n^^^^^^\n\n::\n\n client.fax.cancel.fax_number(fax_id, test=None)\n\nDelete\n^^^^^^\n\n::\n\n client.fax.delete.fax_message(fax_id, test=None)\n client.fax.delete.email_to_fax(fax_id, test=None)\n client.fax.delete.fax_folder(folder_id, test=None)\n\nGet\n^^^\n\n::\n\n client.fax.get.fax_provinces(province=None)\n client.fax.get.fax_states(state=None)\n client.fax.get.fax_rate_centers_can(province)\n client.fax.get.fax_rate_centers_usa(state)\n client.fax.get.fax_numbers_info(did=None)\n client.fax.get.fax_numbers_portability(did)\n client.fax.get.fax_messages(**kwargs)\n client.fax.get.fax_message_pdf(fax_id)\n client.fax.get.fax_folders()\n client.fax.get.email_to_fax(fax_id=None)\n\nMail\n^^^^\n\n::\n\n client.fax.mail.fax_message_pdf(fax_id, email)\n\nMove\n^^^^\n\n::\n\n client.fax.move_fax_message(fax_id, folder_id, test=None)\n\nOrder\n^^^^^\n\n::\n\n client.fax.order.fax_number(location, quantity, **kwargs)\n\nSet\n^^^\n\n::\n\n client.fax.search.fax_area_code_can(area_code)\n client.fax.search.fax_area_code_usa(area_code)\n\nSend\n^^^^\n\n::\n\n client.fax.send.fax_message(to_number, from_name, from_number, file, **kwargs)\n\nSet\n^^^\n\n::\n\n client.fax.set.fax_folder(name, **kwargs)\n client.fax.set.email_to_fax(auth_email, from_number_id, security_code, **kwargs)\n client.fax.set.fax_number_info(did, **kwargs)\n client.fax.set.fax_number_email(did, **kwargs)\n client.fax.set.fax_number_url_callback(did, **kwargs)\n\nVoicemail\n~~~~~~~~~\n\nCreate\n^^^^^^\n\n::\n\n client.voicemail.create.voicemail(digits, name, password, skip_password, attach_message, delete_message,\n say_time, timezone, say_callerid, play_instructions, language, **kwargs)\n\nDelete\n^^^^^^\n\n::\n\n client.voicemail.delete.messages(mailbox, **kwargs)\n client.voicemail.delete.voicemail(mailbox)\n\nGet\n^^^\n\n::\n\n client.voicemail.get.play_instructions(play_instructions=None)\n client.voicemail.get.timezones(timezone=None)\n client.voicemail.get.voicemails(mailbox=None)\n client.voicemail.get.voicemail_folders(folder=None)\n client.voicemail.get.voicemail_message_file(mailbox, folder, message_num)\n client.voicemail.get.voicemail_messages(mailbox, **kwargs)\n\nMark\n^^^^\n\n::\n\n client.voicemail.mark.listened_voicemail_message(mailbox, folder, message_num, listened)\n client.voicemail.mark.urgent_voicemail_message(mailbox, folder, message_num, urgent)\n\nMove\n^^^^\n\n::\n\n client.voicemail.move.folder_voicemail_message(mailbox, folder, message_num, new_folder)\n\nSend\n^^^^\n\n::\n\n client.voicemail.send.voicemail_email(mailbox, folder, message_num, email_address)\n\nSet\n^^^\n\n::\n\n client.voicemail.set.voicemail(mailbox, name, password, skip_password, attach_message, delete_message,\n say_time, timezone, say_callerid, play_instructions, language, **kwargs)\n\nSupport\n-------\n\nIf you are having issues, please let us know or submit a pull request.\n\nLicense\n-------\n\nThe project is licensed under the MIT License.\n\nSpecial Thanks\n--------------\n\nI was highly inspired by the mailchim3 API at\nhttps://github.com/charlesthk/python-mailchimp/. Thanks for your nice\ncode layout!\n\n.. |MIT license| image:: https://img.shields.io/badge/licence-MIT-blue.svg\n.. |Version| image:: https://img.shields.io/badge/version-0.2-orange.svg\n.. |Unstable| image:: https://img.shields.io/badge/status-unstable-red.svg", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/4doom4/python-voipms", "keywords": "voip.ms,voips,api,client,wrapper", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "voipms", "package_url": "https://pypi.org/project/voipms/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/voipms/", "project_urls": { "Homepage": "https://github.com/4doom4/python-voipms" }, "release_url": "https://pypi.org/project/voipms/0.2.3/", "requires_dist": null, "requires_python": "", "summary": "Complete REST API for the voip.ms service", "version": "0.2.3" }, "last_serial": 2755566, "releases": { "0.2.3": [ { "comment_text": "", "digests": { "md5": "198b13f485e1ebd2176265cb4a6f85f6", "sha256": "01a6133d46399b0b5033f3c997dc18ab1b4ac6cfff5c4da2d08ad647c2b65db1" }, "downloads": -1, "filename": "voipms-0.2.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "198b13f485e1ebd2176265cb4a6f85f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 79673, "upload_time": "2017-04-05T17:04:35", "url": "https://files.pythonhosted.org/packages/62/a9/17160b1d0693a82ce03c182e86324406bdc7db21589dbac2df17313584e4/voipms-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c7f5e8950206207c927279d3e07e606", "sha256": "302866522dfea88232d6b957c23f935e8c53108e8c6bda195d941cebb2e95566" }, "downloads": -1, "filename": "voipms-0.2.3.tar.gz", "has_sig": true, "md5_digest": "3c7f5e8950206207c927279d3e07e606", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50133, "upload_time": "2017-04-05T17:04:40", "url": "https://files.pythonhosted.org/packages/f4/4e/b9fe4774dec0268f69da5badacab1c3914462508e86f58ecaf19f9baeb92/voipms-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "198b13f485e1ebd2176265cb4a6f85f6", "sha256": "01a6133d46399b0b5033f3c997dc18ab1b4ac6cfff5c4da2d08ad647c2b65db1" }, "downloads": -1, "filename": "voipms-0.2.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "198b13f485e1ebd2176265cb4a6f85f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 79673, "upload_time": "2017-04-05T17:04:35", "url": "https://files.pythonhosted.org/packages/62/a9/17160b1d0693a82ce03c182e86324406bdc7db21589dbac2df17313584e4/voipms-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c7f5e8950206207c927279d3e07e606", "sha256": "302866522dfea88232d6b957c23f935e8c53108e8c6bda195d941cebb2e95566" }, "downloads": -1, "filename": "voipms-0.2.3.tar.gz", "has_sig": true, "md5_digest": "3c7f5e8950206207c927279d3e07e606", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50133, "upload_time": "2017-04-05T17:04:40", "url": "https://files.pythonhosted.org/packages/f4/4e/b9fe4774dec0268f69da5badacab1c3914462508e86f58ecaf19f9baeb92/voipms-0.2.3.tar.gz" } ] }