{ "info": { "author": "Aaron Parfitt", "author_email": "aaronparfitt123@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Application Frameworks" ], "description": "![alt text](https://github.com/hyperioxx/Katari/blob/master/Katari.png \"Katari Logo\")\n\n# Katari - SIP (Session Initiated Protocol) Application Framework\n\n[![PyPI pyversions](https://img.shields.io/pypi/status/Katari.svg)](https://pypi.org/project/Katari/)\n[![PyPI version shields.io](https://img.shields.io/pypi/v/Katari.svg)](https://pypi.python.org/pypi/Katari/)\n[![PyPI license](https://img.shields.io/pypi/l/Katari.svg)](https://pypi.python.org/pypi/Katari/)\n![PyPI version shields.io](https://img.shields.io/pypi/dm/Katari.svg)\n\n\n## Installing\n\n```\npip install Katari \n```\n\n## Installing from Git\n\n```\npip install git+https://github.com/hyperioxx/Katari.git\n```\n\n\n## Getting Started\n\nto create a katari project run the following command in your terminal\n\n```bash\nkatari --build-app \n```\n\n\n#### app.py\n```python\nimport settings\nfrom Katari import KatariApplication\nfrom Katari.sip.response import ResponseFactory\n\napp = KatariApplication(settings=settings)\n\n@app.invite()\ndef do_invite(request, client):\n # add INVITE logic here \n response = ResponseFactory.build(200) # 200 OK\n app.send(request.create_response(response), client)\n\n@app.register()\ndef do_register(request, client):\n # add REGISTER logic here \n response = ResponseFactory.build(401) # 401 unauthorized \n app.send(request.create_response(OK200()), client)\n\n@app.options()\ndef do_options(request, client):\n # add OPTIONS logic here \n app.send(request.create_response(OK200()), client)\n\n@app.info()\ndef do_info(request, client):\n # add INFO logic here \n app.send(request.create_response(OK200()), client)\n\nif __name__ == \"__main__\": \n app.run()\n\n```\n\n\n## Writing your own middleware\n\ncreate a directory called middleware within your project\n\n```\nmyproject -\n - app.py\n - settings.py\n - middleware << LIKE THIS \n - __init__.py\n - test.py\n```\n\nyour middleware can modify the sip message before it reaches your main logic using the process_request method and also modify the response before it gets sent back to the client using process response method.\n\n#### Example\n\n```python \n\nfrom Katari.interfaces import MiddlewareInterface\n\nclass Test(MiddlewareInterface):\n\n def process_request(self, message):\n print(str(message))\n return message\n\n\n def process_response(self, message):\n print(str(message))\n return message\n\n```\n\n\n\n\n\n\n\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://packages.python.org/Katari", "keywords": "voip", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "Katari", "package_url": "https://pypi.org/project/Katari/", "platform": "", "project_url": "https://pypi.org/project/Katari/", "project_urls": { "Homepage": "http://packages.python.org/Katari" }, "release_url": "https://pypi.org/project/Katari/0.0.7/", "requires_dist": null, "requires_python": "", "summary": "A SIP(Session Initiation Protocol) Application Framework", "version": "0.0.7" }, "last_serial": 5767861, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f1f4126ecf68f105e84f7f02e39bdb64", "sha256": "7bd5731ab4d6797454357815726330b7822c7ee71a7603eeecd44ee7dee50ef0" }, "downloads": -1, "filename": "Katari-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "f1f4126ecf68f105e84f7f02e39bdb64", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6531, "upload_time": "2019-04-09T12:18:28", "url": "https://files.pythonhosted.org/packages/5f/bd/efb449871df81184abd832131f3cc13f9980656cb5af7b1b561a8e791f32/Katari-0.0.1-py2-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "def013ad9f98f0d79241b88108532549", "sha256": "8648e5227a0814b94e94c1f7808d96d22745df78787d1c860d5217ef5acc3512" }, "downloads": -1, "filename": "Katari-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "def013ad9f98f0d79241b88108532549", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8519, "upload_time": "2019-04-09T18:46:19", "url": "https://files.pythonhosted.org/packages/12/6e/f5cd6802233c8664c10e588a2836b24a7c213b0d5c388f6b4ac7d18ae1d8/Katari-0.0.2-py3-none-any.whl" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "47eb711e07e61758a831a43abf7bc6c1", "sha256": "54bbf588fe628197437ba11ca86f744de8850a080769f528020d44e69921035a" }, "downloads": -1, "filename": "Katari-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "47eb711e07e61758a831a43abf7bc6c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14417, "upload_time": "2019-04-17T14:38:30", "url": "https://files.pythonhosted.org/packages/b9/c0/c00894265253948e3233448e713e44ae164714c903fe52d567ee1be491c1/Katari-0.0.4-py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "d16aa9f84dc72dfff91fe33bde21838e", "sha256": "268a3cd52cd5f4593dd67e163b9861d4b3faf43f4f34d96fc39f4154c52a7bae" }, "downloads": -1, "filename": "Katari-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "d16aa9f84dc72dfff91fe33bde21838e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12312, "upload_time": "2019-05-23T11:57:29", "url": "https://files.pythonhosted.org/packages/78/44/df82923beab0bba0d884d0537b2c400c1ee181a10adcbc8fc694d75af713/Katari-0.0.6-py3-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "86a7f2238d16a2cafb28841f58f154f6", "sha256": "b107624abcb2cfe2c60dc2258250de1062e07389ee9fbadc3a591ee132f4395e" }, "downloads": -1, "filename": "Katari-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "86a7f2238d16a2cafb28841f58f154f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15214, "upload_time": "2019-09-01T19:56:35", "url": "https://files.pythonhosted.org/packages/05/2a/602f3997211b34f3b153d5f66e3e449d5a737bdd2a492384c43408bb14d6/Katari-0.0.7-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "86a7f2238d16a2cafb28841f58f154f6", "sha256": "b107624abcb2cfe2c60dc2258250de1062e07389ee9fbadc3a591ee132f4395e" }, "downloads": -1, "filename": "Katari-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "86a7f2238d16a2cafb28841f58f154f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15214, "upload_time": "2019-09-01T19:56:35", "url": "https://files.pythonhosted.org/packages/05/2a/602f3997211b34f3b153d5f66e3e449d5a737bdd2a492384c43408bb14d6/Katari-0.0.7-py3-none-any.whl" } ] }