{ "info": { "author": "Ralf Schlatterbeck", "author_email": "rsc@runtux.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: Telecommunications Industry", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "License :: OSI Approved :: Python Software Foundation License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.4", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Communications :: Internet Phone", "Topic :: Communications :: Telephony", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "pyst: A Python Interface to Asterisk\n====================================\n\nPyst consists of a set of interfaces and libraries to allow programming of\nAsterisk from python. The library currently supports AGI, AMI, and the parsing\nof Asterisk configuration files. The library also includes debugging facilities\nfor AGI.\n\nA note on maintenance and forks:\nThe current maintainer is Ralf Schlatterbeck. I've contacted maintainers\nof forks to try to join forces. For any questions, please contact me via\nrsc@runtux.com or my sourceforge user.\n\nDownload from `Sourceforge project page`_.\n\n.. _`Sourceforge project page`: http://sourceforge.net/projects/pyst/\n\nInstallation is the standard python install::\n\n tar xvf pyst.tar.gz\n cd pyst\n python setup.py install --prefix=/usr/local\n\nDocumentation is currently only in python docstrings, you can use\npythons built-in help facility::\n\n import asterisk\n help (asterisk)\n import asterisk.agi\n help (asterisk.agi)\n import asterisk.manager\n help (asterisk.manager)\n import asterisk.config\n help (asterisk.config)\n\nSome notes on platforms: We now specify \"platforms = 'Any'\" in\n``setup.py``. This means, the manager part of the package will probably\nrun on any platform. The agi scripts on the other hand are called\ndirectly on the host where Asterisk is running. Since Asterisk doesn't\nrun on windows platforms (and probably never will) the agi part of the\npackage can only be run on Asterisk platforms.\n\nCredits\n-------\n\nThanks to Karl Putland for writing the original package. \nThanks to Matthew Nicholson for maintaining the package for some years\nand for handing over maintenance when he was no longer interested.\n\nThanks also to the people in the sourceforge project and those who just\nreport bugs:\nAntoine Brenner,\nMax Nesterov,\nSven Uebelacker\n\n... and to unnamed contributors to earlier releases.\n\nThings to do for pyst\n---------------------\n\nThis is the original changelog merged into the readme file. I'm not so\nsure I really want to change all these things (in particular the\nthreaded implementation looks good to me). I will maintain a section\nsummarizing the changes in this README, the ChangeLog won't be\nmaintained any longer. Detailed changes will be available in the version\ncontrol tool (currently svn).\n\n* ChangeLog:\n The ChangeLog needs to be updated from the monotone logs.\n\n* Documentation:\n All of pyst's inline documentation needs to be updated.\n\n* manager.py:\n This should be converted to be single threaded. Also there is a race\n condition when a user calls manager.logoff() followed by\n manager.close(). The close() function may still call logoff again if\n the socket thread has not yet cleared the _connected flag.\n\n A class should be made for each manager action rather than having a\n function in a manager class. The manager class should be adapted to\n have a send method that know the general format of the classes.\n\nMatthew Nicholson writes on the mailinglist (note that I'm not sure I'll do\nthis, I'm currently satisfied with the threaded implementation):\n\n For pyst 0.3 I am planning to clean up the manager.py. There are\n several know issues with the code. No one has actually reported these\n as problems, but I have personally had trouble with these. Currently\n manager.py runs in several threads, the main program thread, a thread to\n read from the network, and an event distribution thread. This causes\n problems with non thread safe code such as the MySQLdb libraries. This\n design also causes problems when an event handler throws an exception\n that causes the event processing thread to terminate.\n\n The second problem is with the way actions are sent. Each action has a\n specific function associated with it in the manager object that takes\n all possible arguments that may ever be passed to that action. This\n makes the api somewhat rigid and the Manager object cluttered.\n\n To solve these problems I am basically going to copy the design of my\n Astxx manager library (written in c++) and make it more python like.\n Each action will be a different object with certain methods to handle\n various tasks, with one function in the actual Manager class to send the\n action. This will make the Manager class much smaller and much more\n flexible. The current code will be consolidated into a single threaded\n design with hooks to have the library process events and such. These\n hooks will be called from the host application's main loop.\n\n\nUpgrading from older versions\n-----------------------------\n\nIf upgrading from...\n\n* 0.2:\n\n - ``get_header()`` methods in ``manager.py`` now work like\n ``dict.get()`` instead of ``dict[key]``\n\n\n* 0.1.0:\n\n - ``agi.get_variable`` no longer throws an exception, instead it\n returns an empty string when a channel variable is not set.\n - ``manager.quit()`` has be renamed to ``manager.close()``\n\nSource Code Repository Access\n-----------------------------\n\nThe current versions are kept in a Subversion repository on Sourceforge.\nYou can check out the trunk with::\n\n svn co svn://svn.code.sf.net/p/pyst/svn/pyst/trunk pyst\n \n\nThere is also a 0.2 branch in::\n\n svn://svn.code.sf.net/p/pyst/svn/pyst/branches/0.2\n\nwhich contains unreleased changes after 0.2 (which have been merged into\ntrunk *after* changing how manager commands to asterisk are parsed).\n\nReleased versions are in::\n\n https://pyst.svn.sourceforge.net/svnroot/pyst/pyst/tags\n\nFor versions prior to the 0.2 release when Matthew Nicholson was\nmaintaining pyst, the changes are kept in a `monotone`_ repository\n(monotone is a free distributed version control system). Please contact\nMatthew via Sourceforge if you're interested in intermediate versions.\n\n.. _`monotone`: http://monotone.ca/\n\nprior to that the sources are in the CVS repository on sourceforge.\n\n\nChanges\n-------\n\nVersion 0.6: Minor feature enhancements\n\nThe asterisk management interface emulator asterisk/astemu now can be\nused for unit-tests of applications using asterisk.manager. We're using\nthis in the regression test (see test directory). But this way it is\nusable by others.\n\n - Factor asterisk emulator from regression test into own module\n\nVersion 0.5: Small install change\n\nFix setup.py to include download_url. This makes it installable using\nintall tools like pip.\n\n - Add download_url to setup.py\n - Fix svn url after SourceForge upgrade\n\nVersion 0.4: Minor feature enhancements\n\nSmall feature extensions to AGI and Manager modules. Add a regression\ntest which now covers some aspects of the manager API.\n\n - Handle events with several fields with the same name (e.g. 'Variable'\n in the 'AgentCalled' event. Thanks to Max Nesterov for the\n suggestion, implementation differs from the suggestion in SF patch\n 3290869. For a use-case see the give SF patch and the regression test\n case test_agent_event.\n - Allow to use AGI module in FastAGI way via TCP connection.\n This change allows you to specify the socket streams instead\n sys.stdin/sys.stdout streams. Thanks to Max Nesterov for the patch.\n Applies SF patch 3047290.\n - Add regression test framework and some test cases for manager API.\n - The generated ActionID for the manager interface now includes the\n process-ID, this allows several concurrent processes using the\n manager API.\n\nVersion 0.3: Minor feature enhancements\n\nNew maintainer Ralf Schlatterbeck, this is my first release, please\nreport any problems via the Sourceforge Bug-Tracker or email me\ndirectly. Thanks to Karl Putland for writing the original package. \nThanks to Matthew Nicholson for maintaining the package for some years\nand for handing over maintenance when he was no longer interested.\nThe parsing of answers from asterisk was completely rewritten. This\nshould fix problems people were having with commands returning embedded\n'/' or empty lines. Some new manager commands added.\n\n - Add playdtmf manager command\n - add sippeers and sipshowpeer manager commands\n - rewritten manager communication\n - should no longer choke on '/' in answers returned from a manager\n command (fixes SF Bug 2947866)\n - should now correctly parse multi-line output with embedded empty\n lines, e.g. ``mgr.command('dialplan show')``\n - Bug-fix for list manipulation in ``event_dispatch``, thanks to Jan\n Mueller, see mailinglist comment from 2008-04-18\n - Merge unreleased changes from repository of Matthew Nicholson\n in particular a typo in ``agi.py`` for ``set_autohangup``, and change\n of ``get_header`` methods (see Upgrading instructions). The fixed\n ``manager.command`` support is already in (with a different\n solution). The unreleased changes are also on the 0.2 branch in the\n subversion repository in case somebody is interested.\n\nSee the ChangeLog for older changes.", "description_content_type": null, "docs_url": null, "download_url": "http://downloads.sourceforge.net/project/pyst/pyst/0.6.50/pyst-0.6.50.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.sourceforge.net/projects/pyst/", "keywords": null, "license": "Python Software Foundation License, GNU Library or Lesser General Public License (LGPL)", "maintainer": null, "maintainer_email": null, "name": "pyst", "package_url": "https://pypi.org/project/pyst/", "platform": "Any", "project_url": "https://pypi.org/project/pyst/", "project_urls": { "Download": "http://downloads.sourceforge.net/project/pyst/pyst/0.6.50/pyst-0.6.50.tar.gz", "Homepage": "http://www.sourceforge.net/projects/pyst/" }, "release_url": "https://pypi.org/project/pyst/0.6.50/", "requires_dist": null, "requires_python": null, "summary": "A Python Interface to Asterisk", "version": "0.6.50" }, "last_serial": 777140, "releases": { "0.3.22": [], "0.4.38": [], "0.5.41": [], "0.5.42": [], "0.6.50": [] }, "urls": [] }