Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Mariatta/enhanced-coc-hotline

Enhanced Code of Conduct Hotline
https://github.com/Mariatta/enhanced-coc-hotline

Last synced: 13 days ago
JSON representation

Enhanced Code of Conduct Hotline

Awesome Lists containing this project

README

        

Enhanced CoC Hotline
====================

.. image:: https://img.shields.io/travis/com/Mariatta/enhanced-coc-hotline/master.svg
:target: https://travis-ci.com/Mariatta/enhanced-coc-hotline
.. image:: https://codecov.io/gh/mariatta/enhanced-coc-hotline/branch/master/graph/badge.svg
:target: https://codecov.io/gh/mariatta/enhanced-coc-hotline
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black

.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg
:target: https://saythanks.io/to/Mariatta

This is an enhanced version of the `PyCascades Code of Conduct Hotline
`_.

This hotline uses `Nexmo Voice API `_ +
`Zapier `_ integration.

Purpose
-------

When a caller calls the hotline, it will dial each of the PyCascades
Code of Conduct committee members, and the caller will be connected to the first person who answered.

Calls to the hotline can be (optionally) automatically recorded. By default, calls are not recorded.
To autorecord, set both the ``AUTO_RECORD`` and ``ZAPIER_CATCH_HOOK_RECORDING_URL`` environment variables.

For additional details of how to set up the hotline, please read my `Nexmo Developer Spotlight `_
tutorial, posted November 15, 2018.

Requirements
------------

Python 3.6.5+ because of f-strings. In reality, Python 3.7 is used (as specified in runtime.txt).

Library Dependencies
--------------------

- aiohttp
- nexmo
- click

Deployment
----------

|Deploy|

.. |Deploy| image:: https://www.herokucdn.com/deploy/button.svg
:target: https://heroku.com/deploy?template=https://github.com/mariatta/enhanced-coc-hotline

In Heroku, set the environment variables:

- ``NEXMO_API_KEY``: The Nexmo API Key

- ``NEXMO_API_SECRET``: The Nexmo API Key Secret

- ``NEXMO_APP_ID``: The Nexmo App ID

- ``NEXMO_PRIVATE_KEY_VOICE_APP``: The path to the Nexmo App's private key (private.key file).

It looks like the following:
``----- BEGIN PRIVATE KEY ---- blablahblah ---- END PRIVATE KEY ----``

- ``PHONE_NUMBERS``: A list of staff name and phone number dictionaries.

Example::

[{"name": "Mariatta", "phone": "16040000000"}, {"name": "Miss Islington", "phone": "1778111111"}]

- ``AUTO_RECORD``: set to ``True`` if you want to autorecord incoming calls. This is optional, and will default to ``False`` if not set.

- ``ZAPIER_CATCH_HOOK_RECORDING_URL``: The `Webhooks By Zapier `_ url.
This is only needed if ``AUTO_RECORD`` is ``True``.

- ``HOTLINE_DESC``: the description of this Hotline. For example: ``PyCascades Code of Conduct Hotline``
or ``PyCascades Head Office``.

Downloading the recording
-------------------------

Requires click 7.0+

Set the environment variables:

- ``NEXMO_APP_ID``: The Nexmo App ID
- ``NEXMO_PRIVATE_KEY_VOICE_APP``: The content of the private key (from private.key file).
It looks like the following:
```----- BEGIN PRIVATE KEY ---- blablahblah ---- END PRIVATE KEY ----```

In the `enhanced-coc-hotline` directory, run::

$ python3 -m download_recording url1 url2 url3 ...

License
-------

GNU General Public License v3.0.