{ "info": { "author": "Randall Degges", "author_email": "r@rdegges.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: Telecommunications Industry", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Communications :: Internet Phone", "Topic :: Communications :: Telephony", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "pyst2: A Python Interface to Asterisk\n=====================================\n\n.. image:: https://img.shields.io/pypi/v/pyst2.svg\n :alt: pyst2 Release\n :target: https://pypi.python.org/pypi/pyst2\n\n.. image:: https://img.shields.io/pypi/dm/pyst2.svg\n :alt: pyst2 Downloads\n :target: https://pypi.python.org/pypi/pyst2\n\n.. image:: https://img.shields.io/travis/rdegges/pyst2.svg\n :alt: pyst2 Build\n :target: https://travis-ci.org/rdegges/pyst2\n\n.. image:: https://github.com/rdegges/pyst2/raw/master/assets/snake-sketch.jpg\n :alt: Snake Sketch\n\nProject Documentation\n---------------------\n\nhttp://pyst2.readthedocs.io\n\n\nMeta\n----\n\n- Author: Randall Degges\n- Email: r@rdegges.com\n- Site: http://www.rdegges.com\n- Status: *looking for maintainer*, active\n\n**NOTE**: This project is now mantained by Francesco Rana. \nPlease be patient because I'm not used to the job yet, but I'll do my best.\nMany and infinite thanks to Randall Degges for his wonderful work. I'm actually using the\nlibrary in some project of mine, so I'm more than happy to help and push it further if I can.\nI'm happy to accept pull requests and cut releases as needed.\nIf you want to contribute to the project, please do!\n\n\nPurpose\n-------\n\npyst2 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\nThis project has been forked from pyst (http://sf.net/projects/pyst/) because\nit was impossible for me to contact the project maintainer (after several\nattempts), and I'd like to bring the project up-to-date, fix bugs, and make\nit more usable overall.\n\nMy immediate plans include adding full documentation, re-writing some\nof the core routines, adding a test suite, and accepting pull requests.\n\nIf you are one of the current maintainers, and would like to take over the\nfork, please contact me: r@rdegges.com, so we can get that setup!\n\n\nInstallation\n------------\n\nTo install ``pyst2``, simply run:\n\n.. code-block:: console\n\n $ pip install pyst2\n\nThis will install the latest version of the library automatically.\n\n\nDocumentation\n-------------\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\nFastAGI\n-------\n\nFastAGI support is a python based raw SocketServer, To start the server\npython fastagi.py should start it listening on localhost and the default\nasterisk FastAGI port. This does require the newest version of pyst2.\nThe FastAGI server runs in as a Forked operation for each request, in\nan attempt to prevent blocking by a single bad service. As a result the\nFastAGI server may consume more memory then a single process. If you need\nto use a single process simply uncomment the appropriate line. Future versions\nof this will use a config file to set options.\n\nCredits\n-------\n\nThanks to Karl Putland for writing the original package.\n\nThanks to Matthew Nicholson for maintaining the package for some years\nand for handing over maintenance when he was no longer interested.\n\nThanks to Randall Degges for maintaining this for and accepting\npull requests.\n\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. Detailed changes will be\navailable in the version control tool (currently git).\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\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rdegges/pyst2", "keywords": "python asterisk agi ami telephony telephony sip voip", "license": "Python Software Foundation License / GNU Library or Lesser General Public License (LGPL) / UNLICENSE", "maintainer": "", "maintainer_email": "", "name": "pyst2", "package_url": "https://pypi.org/project/pyst2/", "platform": "Any", "project_url": "https://pypi.org/project/pyst2/", "project_urls": { "Homepage": "https://github.com/rdegges/pyst2" }, "release_url": "https://pypi.org/project/pyst2/0.5.1/", "requires_dist": [ "six (>=1.9.0)" ], "requires_python": "", "summary": "A Python Interface to Asterisk", "version": "0.5.1" }, "last_serial": 5645389, "releases": { "0.4": [ { "comment_text": "", "digests": { "md5": "00fcc5c417a0828bbc0fdfabcd3bbce7", "sha256": "11cd480e90e28c2bdf689cca7e5159b01d5040730ecd4d17a05119e4639790fb" }, "downloads": -1, "filename": "pyst2-0.4.tar.gz", "has_sig": false, "md5_digest": "00fcc5c417a0828bbc0fdfabcd3bbce7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20046, "upload_time": "2011-06-01T02:25:28", "url": "https://files.pythonhosted.org/packages/7d/fe/4b3fa93b69aca336e00bb90ec00c6d209f4813bc3ab6f7c07eb5e1ca279a/pyst2-0.4.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "a532edfb169c7dd591c77633e41c077e", "sha256": "d12ea6870749785d40702c9596047819a9a83e256a71e60b895a8688f401f2bd" }, "downloads": -1, "filename": "pyst2-0.4.2.tar.gz", "has_sig": false, "md5_digest": "a532edfb169c7dd591c77633e41c077e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19983, "upload_time": "2015-03-29T07:28:21", "url": "https://files.pythonhosted.org/packages/ed/44/3e40c4083b29480e7da4a780c35f61ccaad5e9000d7120841d6dc942cc20/pyst2-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "3243bf90241c7798bea110666b49b224", "sha256": "1a38dc7ce689b00640f098ecfe1c94aa9267bf34263e5036d66b94e90c7191ba" }, "downloads": -1, "filename": "pyst2-0.4.3.tar.gz", "has_sig": false, "md5_digest": "3243bf90241c7798bea110666b49b224", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19845, "upload_time": "2015-03-30T16:33:26", "url": "https://files.pythonhosted.org/packages/12/ca/189e6c6852321811fc1363c8e4e9814422586943e8f4630b930aa0b1e686/pyst2-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "daa0355000f921456acd4352578e0610", "sha256": "a6583c48085b548f92cb1536305b4b3ea19b439f31e4e633c3abba38cf39b11c" }, "downloads": -1, "filename": "pyst2-0.4.4.tar.gz", "has_sig": false, "md5_digest": "daa0355000f921456acd4352578e0610", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20378, "upload_time": "2015-03-31T18:06:22", "url": "https://files.pythonhosted.org/packages/f3/8c/c203d59a868c8c5c9d83242e49ce2c737abd517a015510bdcc36ee6d2314/pyst2-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "a77d3f0861ef99df64f3d5151e51aa0c", "sha256": "3b4da9765d98bde176b05b0a55a5a58682148985a0492263351fb7ee9196e646" }, "downloads": -1, "filename": "pyst2-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a77d3f0861ef99df64f3d5151e51aa0c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23694, "upload_time": "2015-07-15T19:58:59", "url": "https://files.pythonhosted.org/packages/91/22/cceabb590abf8b29034ab25a34f245d63533b22c648f407db3e4de17809e/pyst2-0.4.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f998fdb4b530d215192396720df22987", "sha256": "14367e45637fa93f85d369cd80ed8773131f30ad8e1b7c71c0ec2226ff089a07" }, "downloads": -1, "filename": "pyst2-0.4.5.tar.gz", "has_sig": false, "md5_digest": "f998fdb4b530d215192396720df22987", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20448, "upload_time": "2015-07-15T19:59:03", "url": "https://files.pythonhosted.org/packages/94/aa/aa9aa76724fbec34c5703c7e55a9748d80869b811a7a3b5ab3d2220a3def/pyst2-0.4.5.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "210834a41ba65eaf467679a3d877f124", "sha256": "3e7fc3f814e42d16d2cc0ee488e177f4d64710c8d5a13762891c3677bd69de1b" }, "downloads": -1, "filename": "pyst2-0.4.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "210834a41ba65eaf467679a3d877f124", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23694, "upload_time": "2015-07-19T02:18:58", "url": "https://files.pythonhosted.org/packages/57/0a/663bc73be648d8cefbd37500a99928729cac758937b6f1a9b0ea21b6127a/pyst2-0.4.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3bbc5bc9bde351ed2d942e664589f44", "sha256": "fbea8f711efd4e0044c519fad26a2e032c5381ea4e30128e0e1df3fe4fa3326e" }, "downloads": -1, "filename": "pyst2-0.4.6.tar.gz", "has_sig": false, "md5_digest": "a3bbc5bc9bde351ed2d942e664589f44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20463, "upload_time": "2015-07-19T02:19:01", "url": "https://files.pythonhosted.org/packages/a8/2a/6de9724a5a28327b2da62527e411d38889c63bea9b0557c9426b7bc4a741/pyst2-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "793abdafd3ea9d999e85cf565dd8b685", "sha256": "3bbfc0ed7c13cb790def2749c6ccd0403e133579acf689d7ef08397b0780b486" }, "downloads": -1, "filename": "pyst2-0.4.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "793abdafd3ea9d999e85cf565dd8b685", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23768, "upload_time": "2015-11-15T07:03:04", "url": "https://files.pythonhosted.org/packages/cc/fa/4c1ebbcf752654511d3268c8463176e262ca5aacc241913cba6d448004dc/pyst2-0.4.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4655a0ab1396c287bb72027e3b8b79d1", "sha256": "9979f13ab4b8704ffa47008115528ef881ff4ad52b9b0b709aeaaf461987f7f2" }, "downloads": -1, "filename": "pyst2-0.4.7.tar.gz", "has_sig": false, "md5_digest": "4655a0ab1396c287bb72027e3b8b79d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20594, "upload_time": "2015-11-15T07:03:12", "url": "https://files.pythonhosted.org/packages/54/36/8f85ccbf1d4f3a1046fd04b3ae574c89728aabea66439b12ae3585458116/pyst2-0.4.7.tar.gz" } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "2c904ac7f41b0882c035d21095c091b2", "sha256": "0ca65f5d8e5284c3fcb7a7f9db8056f0657bfb38649fad640b50c3b7cf66dd99" }, "downloads": -1, "filename": "pyst2-0.4.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c904ac7f41b0882c035d21095c091b2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23766, "upload_time": "2015-11-16T20:18:44", "url": "https://files.pythonhosted.org/packages/bf/ce/47f61d3a0799cbd5a372d7da0b480b13158ff35e66c460ff3d37e6a40f5b/pyst2-0.4.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4541474e5e6ed9feb17376e3f35fbc9", "sha256": "eeec628245fe8b162ecdcc687b9877fc4fb91969cd9fe5341fa21257ba3ab2b8" }, "downloads": -1, "filename": "pyst2-0.4.8.tar.gz", "has_sig": false, "md5_digest": "c4541474e5e6ed9feb17376e3f35fbc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20618, "upload_time": "2015-11-16T20:18:50", "url": "https://files.pythonhosted.org/packages/d0/14/e50ae3f3c46a779461fc0d5511ce6c3d4c972384e37b321c839b78de86f5/pyst2-0.4.8.tar.gz" } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "7e0ebafd078a37ac38feed44e3ba442d", "sha256": "de2a26a98cfbd2f752c3eb1ceceb0242bcdf6d53cf3e0b3c5367b3a00c3b2a8e" }, "downloads": -1, "filename": "pyst2-0.4.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e0ebafd078a37ac38feed44e3ba442d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25142, "upload_time": "2016-02-16T21:39:45", "url": "https://files.pythonhosted.org/packages/fc/6f/2a7c2d12fef77168f61c167960006397c5f02bda7d04dc0d85bedbec3e85/pyst2-0.4.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46fb8ab50e68bc69fadf5967edbcb9f9", "sha256": "0375b9f109182e12ac392e802db6e64a6336b68fa490394455e73da9b5134036" }, "downloads": -1, "filename": "pyst2-0.4.9.tar.gz", "has_sig": false, "md5_digest": "46fb8ab50e68bc69fadf5967edbcb9f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21506, "upload_time": "2016-02-16T21:39:38", "url": "https://files.pythonhosted.org/packages/58/76/280c432488b559b43ad4fe7006fc8e70ef6a21cffa43a7ae6281d531acc4/pyst2-0.4.9.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "69527d0fbc85fbf1804a75ed5a4dfa2e", "sha256": "4513f365360b8498714a3ae99a854fa0282da512708ea2a7e30e99b867d426d8" }, "downloads": -1, "filename": "pyst2-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69527d0fbc85fbf1804a75ed5a4dfa2e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 25741, "upload_time": "2016-11-04T18:26:10", "url": "https://files.pythonhosted.org/packages/81/dd/2941fdba3a196aecaf8deb274247f150fef0f2611da5dc66724607f5f497/pyst2-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8396af4a7d3b6b9cc4ba9f51ff563bad", "sha256": "5115e9f6b65abbf6a7a1b61e3a6b3d862779140410ba8f4291fe946f7a006779" }, "downloads": -1, "filename": "pyst2-0.5.0.tar.gz", "has_sig": false, "md5_digest": "8396af4a7d3b6b9cc4ba9f51ff563bad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22052, "upload_time": "2016-11-04T18:26:07", "url": "https://files.pythonhosted.org/packages/8b/30/e6cafcdd565e857dbc6640a07ab727af9d90c0173a6cac2085e4813bc8ad/pyst2-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "93e34e315eb7a6c6456bc32e8ac6fa7e", "sha256": "7197a6ddd99c4d6783fe8bb8964b4048bfe496a83cf8a47e26ca233fcc61c182" }, "downloads": -1, "filename": "pyst2-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "93e34e315eb7a6c6456bc32e8ac6fa7e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22277, "upload_time": "2019-08-07T14:41:25", "url": "https://files.pythonhosted.org/packages/4a/9a/42c1a187a171807a6b214060544fbd6f4bf4a33bf1428aabaa46befed9dc/pyst2-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ac93b77caf1be99852121c0478d0437", "sha256": "07e8f4154b18fc2d11c2873a426100685fc4483da9b29db2b5f937cacf1b81cf" }, "downloads": -1, "filename": "pyst2-0.5.1.tar.gz", "has_sig": false, "md5_digest": "8ac93b77caf1be99852121c0478d0437", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25381, "upload_time": "2019-08-07T14:41:27", "url": "https://files.pythonhosted.org/packages/ea/9c/763ada93c3ed056de36b1a6a9e24d4cf987bee423a3ec93db780ab5658d0/pyst2-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "93e34e315eb7a6c6456bc32e8ac6fa7e", "sha256": "7197a6ddd99c4d6783fe8bb8964b4048bfe496a83cf8a47e26ca233fcc61c182" }, "downloads": -1, "filename": "pyst2-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "93e34e315eb7a6c6456bc32e8ac6fa7e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22277, "upload_time": "2019-08-07T14:41:25", "url": "https://files.pythonhosted.org/packages/4a/9a/42c1a187a171807a6b214060544fbd6f4bf4a33bf1428aabaa46befed9dc/pyst2-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ac93b77caf1be99852121c0478d0437", "sha256": "07e8f4154b18fc2d11c2873a426100685fc4483da9b29db2b5f937cacf1b81cf" }, "downloads": -1, "filename": "pyst2-0.5.1.tar.gz", "has_sig": false, "md5_digest": "8ac93b77caf1be99852121c0478d0437", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25381, "upload_time": "2019-08-07T14:41:27", "url": "https://files.pythonhosted.org/packages/ea/9c/763ada93c3ed056de36b1a6a9e24d4cf987bee423a3ec93db780ab5658d0/pyst2-0.5.1.tar.gz" } ] }