Skip to content

Commit

Permalink
Merge pull request #59 from Jordan-Prescott/docs
Browse files Browse the repository at this point in the history
Docs
  • Loading branch information
Jordan-Prescott authored Jul 4, 2024
2 parents 41095a4 + 700888e commit 8a18353
Show file tree
Hide file tree
Showing 155 changed files with 6,455 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitbook.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
root: ./docs/
Binary file added docs/.gitbook/assets/Frame 2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/Frame 5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (10).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (11).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (12).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (13).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (14).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (15).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (16).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (17).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (18).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (19).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (2).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (20).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (21).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (22).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (23).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (24).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (25).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (26).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (27).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (28).png
Binary file added docs/.gitbook/assets/image (29).png
Binary file added docs/.gitbook/assets/image (3).png
Binary file added docs/.gitbook/assets/image (4).png
Binary file added docs/.gitbook/assets/image (5).png
Binary file added docs/.gitbook/assets/image (6).png
Binary file added docs/.gitbook/assets/image (7).png
Binary file added docs/.gitbook/assets/image (8).png
Binary file added docs/.gitbook/assets/image (9).png
Binary file added docs/.gitbook/assets/image.png
21 changes: 21 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 👋 Welcome!!

Working on Broadwork's for 5 years was painful, with its stiff 90’s user interface and all its limitations so when I first saw Odin by [Rev.io](https://www.rev.io/blog/solutions/rev-io-odin-api). I nearly fell off my seat. Those beautiful people brought the solution into the 21st century with a modern user interface, automation, and most of all its API. This made my life so much easier, I was able to build 500 users in one go rather than one by one, I could give users access to manage their own systems, and I could duplicate groups with everything I needed when building new groups for customers. But I still couldn’t easily locate where the alias 0 was assigned and here is where the story of Odin’s Spear begins.

Odin’s web user interface is great but it’s not perfect and it's limited, however, its API is a gift sent from the developer gods over at Rev.io (thank you!). Using the documentation and a few lines of code you can achieve everything you can achieve in the web interface but you are no longer limited to how fast you can operate your keyboard with the power of programming languages like Python. I can create a loop to create 10, 100, 1000, or 10, 000 users, hunt groups, and call centers in seconds or minutes. 

Managing them all becomes a breeze also, let's say a customer has a new user they want to add to all 50 of their hunt groups (if you’ve read this far I’m assuming you know what this is). If you’re using Broadworks then block the day out in your calendar, if you're using Odin’s web portal block the morning out, if you're using Python with the Odin API block 30 minutes out (that’s being generous). 

{% embed url="https://doc.odinapi.net/" %}
Odin's API Documentation
{% endembed %}

Alas, using the API is not perfect, each time I would write a script to help me achieve these things I was hit with some recurring issues, I would have to find the API call I needed, format the data, design the request, handle any errors that could occur and the list goes on. Each time I was starting fresh and this was frustrating, if only there was a solution that handled my authentication, I could just select the method and pass it the data rather than designing the request, if an error occurs tell me what the issue is, resolve or even handle it for me…

## Introducing...

<figure><img src=".gitbook/assets/Frame 2.png" alt=""><figcaption></figcaption></figure>

**Odin’s Spear** is a Python library that aims to do exactly that. It will encapsulate the entire functionality of Odin’s API making the use easy, efficient, and accessible. The project is stakeholder lead and all features have come from engineers that have been using Broadworks and now Odin for decades. It will also introduce other features requested such as a graph showing a call flow to a number, a group audit report for all things billable, and bulk management of call centers, hunt groups, and auto attendants. However, it was clear what the first feature had to be. For years now locating where an alias has been assigned on the Broadworks system has brought hosted telephony engineers to their knees. No more. With Odin’s Spears’ very first release (beta) I have addressed this issue making locating an alias a breeze. In 3 lines of code and 1 minute of your time, you can now achieve this once painstaking task, and more features are coming soon!

<figure><img src=".gitbook/assets/Frame 5.png" alt=""><figcaption></figcaption></figure>
120 changes: 120 additions & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Table of contents

* [👋 Welcome!!](README.md)
* [📖 Docs](docs/README.md)
* [🧐 Getting Started](docs/getting-started/README.md)
* [🐍 Getting the Essentials (Python + IDE)](docs/getting-started/getting-the-essentials-python-+-ide.md)
* [⚠️ Setting Environment Variable](docs/getting-started/setting-environment-variable.md)
* [⬇️ Downloading Library (BETA)](docs/getting-started/downloading-library-beta.md)
* [⚙️ Create API Object](docs/getting-started/create-api-object.md)
* [📦 Standard Methods](docs/methods/README.md)
* [🔢 DNs](docs/methods/dns/README.md)
* [1️⃣ GET - Group DNs](docs/methods/dns/group-dns.md)
* [2️⃣ GET - Group DN Search](docs/methods/dns/group-dn-search.md)
* [3️⃣ GET - Group DN Details](docs/methods/dns/group-dn-details.md)
* [4️⃣ GET - Service Provider DNs](docs/methods/dns/service-provider-dns.md)
* [5️⃣ GET - Service Provider DN Search](docs/methods/dns/service-provider-dn-search.md)
* [6️⃣ GET - System DNs](docs/methods/dns/system-dns.md)
* [7️⃣ GET - System DN Summary](docs/methods/dns/system-dn-summary.md)
* [8️⃣ GET - System DN Utilisation](docs/methods/dns/system-dn-utilization.md)
* [1️⃣ POST - Group DNs](docs/methods/dns/group-dns-1.md)
* [2️⃣ POST - Group DNs Assign Bulk](docs/methods/dns/group-dns-assign-bulk.md)
* [3️⃣ POST - Group DNs Unassign Bulk](docs/methods/dns/group-dns-unassign-bulk.md)
* [4️⃣ POST - Service Provider DNs](docs/methods/dns/service-provider-dns-1.md)
* [1️⃣ PUT - Group DNs Activate](docs/methods/dns/group-dns-activate.md)
* [1️⃣ DELETE - Group DNs](docs/methods/dns/group-dns-2.md)
* [2️⃣ DELETE - Service Provider DNs](docs/methods/dns/service-provider-dns-2.md)
* [🔑 Password Generate](docs/methods/password-generate/README.md)
* [🔓 GET - Password Generate](docs/methods/password-generate/password-generate.md)
* [🔓 GET - Passwords Generate](docs/methods/password-generate/passwords-generate.md)
* [🗝️ GET - Passcode Generate](docs/methods/password-generate/passcode-generate.md)
* [🗝️ GET - Passcodes Generate](docs/methods/password-generate/passcodes-generate.md)
* [🗝️ GET - SIP Password Generate](docs/methods/password-generate/sip-password-generate.md)
* [🗝️ GET - SIP Passwords Generate](docs/methods/password-generate/sip-passwords-generate.md)
* [🟢 Registration](docs/methods/registration/README.md)
* [💚 GET - User Registration](docs/methods/registration/user-registration.md)
* [💚 GET - Bulk User Registration](docs/methods/registration/bulk-user-registration.md)
* [🔢 Alternate Numbers](docs/methods/alternate-numbers/README.md)
* [1️⃣ GET - User Alternate Numbers](docs/methods/alternate-numbers/get-user-alternate-numbers.md)
* [📆 Schedules](docs/methods/schedules.md)
* [🌊 Trunk Groups](docs/methods/trunk-groups/README.md)
* [📞 GET - Group Trunk Groups Call Capacity](docs/methods/trunk-groups/get-group-trunk-groups-call-capacity.md)
* [☎️ GET - Group Trunk Group](docs/methods/trunk-groups/get-group-trunk-group.md)
* [🚰 GET - Group Trunk Groups](docs/methods/trunk-groups/get-group-trunk-groups.md)
* [🚿 GET - Service Provider Trunk Group Call Capacity](docs/methods/trunk-groups/get-service-provider-trunk-group-call-capacity.md)
* [📂 GET - Service Provider Call Capacity Report](docs/methods/trunk-groups/get-service-provider-call-capacity-report.md)
* [🤵 User](docs/methods/user/README.md)
* [🆔 GET - User By ID](docs/methods/user/get-user-by-id.md)
* [👯 GET - Users](docs/methods/user/get-users.md)
* [🔑 Authentication](docs/methods/authentication/README.md)
* [🔏 PUT - User Web Authentication Password](docs/methods/authentication/user-web-authentication-password.md)
* [💬 Auto Attendants](docs/methods/auto-attendants/README.md)
* [🟢 PUT - Auto Attendant Status](docs/methods/auto-attendants/auto-attendant-status.md)
* [🍅 PUT - Auto Attendant](docs/methods/auto-attendants/auto-attendant.md)
* [📖 PUT - Auto Attendant Submenu](docs/methods/auto-attendants/auto-attendant-submenu.md)
* [📞 Call Centers](docs/methods/call-centers/README.md)
* [🟢 PUT - Group Call Center Status](docs/methods/call-centers/group-call-center-status.md)
* [🎧 PUT - Group Call Center](docs/methods/call-centers/group-call-center.md)
* [🎧 PUT - Group Call Center Agents](docs/methods/call-centers/group-call-center-agents.md)
* [🎚️ PUT - Group Call Center Agents Levels](docs/methods/call-centers/group-call-center-agents-levels.md)
* [⚽ PUT - Group Call Center Bounced Call](docs/methods/call-centers/group-call-center-bounced-call.md)
* [📞 PUT - Group Call Center DNIS Instance](docs/methods/call-centers/group-call-center-dnis-instance.md)
* [⏩ PUT - Group Call Center Forced Forwarding](docs/methods/call-centers/group-call-center-forced-forwarding.md)
* [🌊 PUT - Group Call Center Overflow](docs/methods/call-centers/group-call-center-overflow.md)
* [🏝️ PUT - Group Call Center Stranded Calls](docs/methods/call-centers/group-call-center-stranded-calls.md)
* [🔴 PUT - Group Call Center Stranded Calls Unavailable](docs/methods/call-centers/group-call-center-stranded-calls-unavailable.md)
* [👓 PUT - User Call Center Supervised Agents](docs/methods/call-centers/user-call-center-supervised-agents.md)
* [🟢 PUT - User Call Center](docs/methods/call-centers/user-call-center.md)
* [🙋‍♂️ PUT - User Call Center Agents Update](docs/methods/call-centers/user-call-center-agents-update.md)
* [🛑 PUT - User Call Center Agent Sign Out](docs/methods/call-centers/user-call-center-agent-sign-out.md)
* [☎️ Devices](docs/methods/devices/README.md)
* [📱 PUT - Group Devices](docs/methods/devices/group-devices.md)
* [📞 PUT - Service Provider Device](docs/methods/devices/service-provider-device.md)
* [💻 PUT - System Devices](docs/methods/devices/system-devices.md)
* [📁 PUT - System Device File](docs/methods/devices/system-device-file.md)
* [📂 PUT - Service Provider Device File](docs/methods/devices/service-provider-device-file.md)
* [🗃️ PUT - Group Device File](docs/methods/devices/group-device-file.md)
* [🏷️ PUT - Group Device Tags Profile](docs/methods/devices/group-device-tags-profile.md)
* [🎐 PUT - Group Device Tag](docs/methods/devices/group-device-tag.md)
* [🛰️ PUT - Service Provider Device Tag](docs/methods/devices/service-provider-device-tag.md)
* [💾 PUT - System Device Tag](docs/methods/devices/system-device-tag.md)
* [📂 PUT - Group Device Type File](docs/methods/devices/group-device-type-file.md)
* [🎐 PUT - Group Device Type Tag](docs/methods/devices/group-device-type-tag.md)
* [🎐 PUT - Service Provider Device Type Tag](docs/methods/devices/service-provider-device-type-tag.md)
* [🍇 Hunt Groups](docs/methods/hunt-groups/README.md)
* [🟢 PUT - Group Hunt Groups Status](docs/methods/hunt-groups/group-hunt-groups-status.md)
* [🍏 PUT - Group Hunt Group](docs/methods/hunt-groups/group-hunt-group.md)
* [💯 PUT - Group Hunt Group Weighted Call Distribution](docs/methods/hunt-groups/group-hunt-group-weighted-call-distribution.md)
* [🍒 Services](docs/methods/services/README.md)
* [🧍 PUT - User Services](docs/methods/services/user-services.md)
* [🛑 Do Not Disturb](docs/methods/do-not-disturb/README.md)
* [🛑 GET - User Do Not Disturb](docs/methods/do-not-disturb/get-user-do-not-disturb.md)
* [🛑 PUT - User Do Not Disturb](docs/methods/do-not-disturb/put-user-do-not-disturb.md)
* [🙌 Advanced Features](docs/features/README.md)
* [🤖 Scripter](docs/features/scripter/README.md)
* [🔎 Find Alias](docs/features/scripter/find-alias-script.md)
* [🔗 User Association](docs/features/scripter/user-association.md)
* [☑️ Group Audit](docs/features/scripter/group-audit.md)
* [✅ Service Pack Audit](docs/features/scripter/service-pack-audit.md)
* [✔️ AA, CC, HG Audit](docs/features/scripter/aa-cc-hg-audit.md)
* [🔢 Move Numbers](docs/features/scripter/move-numbers.md)
* [🔢 Remove Numbers](docs/features/scripter/remove-numbers.md)
* [🔑 Bulk Password Reset](docs/features/scripter/bulk-password-reset.md)
* [📜 Service Provider Trunking Capacity](docs/features/scripter/service-provider-trunking-capacity.md)
* [📈 Reporter](docs/features/reporter/README.md)
* [🤙 Call Flow](docs/features/reporter/call-flow/README.md)
* [🔑 Node Key](docs/features/reporter/call-flow/node-key.md)
* [🔑 Abbreviation Key](docs/features/reporter/call-flow/abbreviation-key.md)
* [📈 Graphviz](docs/features/reporter/call-flow/graphviz.md)
* [🔢 Group Users Call Statistics](docs/features/reporter/group-users-call-statistics.md)
* [📜 Logger](docs/features/logger/README.md)
* [📂 Sending Logs To A File](docs/features/logger/sending-logs-to-a-file.md)
* [☁️ Sending Logs To A Syslog Server](docs/features/logger/sending-logs-to-a-syslog-server.md)
* [🛑 Rate Limiting API Calls](docs/features/rate-limiting-api-calls.md)
* [👨‍💻 Development](development.md)
* [🆘 Troubleshooting & FAQ](troubleshooting-and-faq/README.md)
* [🐛 Common Issues](troubleshooting-and-faq/common-issues.md)
* [⁉️ Frequently Asked Questions](troubleshooting-and-faq/frequently-asked-questions/README.md)
* [1️⃣ Do You Need To Set Up Multiple Loggers For Multiple API Objects? No.](troubleshooting-and-faq/frequently-asked-questions/do-you-need-to-set-up-multiple-loggers-for-multiple-api-objects-no..md)
* [🐛 Bugs and Issues](bugs-and-issues.md)
* [🤙 Contact](contact.md)
41 changes: 41 additions & 0 deletions docs/bugs-and-issues.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 🐛 Bugs and Issues

We strive to make our application as reliable and user-friendly as possible. If you encounter any bugs or issues, we appreciate your feedback. Here’s how you can report them and stay updated on their status.

### How to Report an Issue

To report a bug or issue, please follow these steps:

1. **Visit our GitHub Repository**: [Odin's Spear Issues](https://github.com/Jordan-Prescott/odins\_spear/issues)
2. **Check for Existing Issues**: Before creating a new issue, please check if it has already been reported by searching through the existing issues.
3. **Create a New Issue**:
* Click on the "New issue" button.
* Provide a descriptive title and detailed description of the issue.
* Include steps to reproduce the issue, your operating system, browser version, and any other relevant information.
* Add any relevant labels (e.g., bug, enhancement).

### Issue Tracker

You can view and track the status of reported issues on our GitHub Issues page. This page includes information on:

* Open issues
* Closed issues
* Labels for categorizing issues (e.g., bug, enhancement, question)
* Milestones and project boards

### Stay Updated

To stay updated on the progress of issues:

* **Watch the Repository**: Click the "Watch" button on our GitHub repository to receive notifications.
* **Join Discussions**: Participate in discussions on issues and pull requests to provide feedback and suggestions.

### Contact Us

If you need further assistance with reporting an issue or have any questions, please reach out to us our contact details are on the below page:

{% content-ref url="contact.md" %}
[contact.md](contact.md)
{% endcontent-ref %}

Thank you for helping us improve our application!
9 changes: 9 additions & 0 deletions docs/contact.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# 🤙 Contact

We value your feedback and are here to help with any questions or issues you may have. Please use the information below to get in touch with us.

* **Email:** [email protected]​​

***

Thank you for reaching out to us. We will get back to you as soon as possible.​​
26 changes: 26 additions & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 👨‍💻 Development

Welcome to the Development page! Here you can learn about our development process, track progress, and stay informed about upcoming features and updates.

### Overview

Our dedicated development team is continuously working to improve the application, adding new features, fixing bugs, and enhancing performance. We follow a structured development process to ensure high-quality and reliable updates.

### Development Process

1. **Planning**: We gather feedback from users and stakeholders to plan new features and improvements. This includes prioritising requests and defining the scope of each development cycle.
2. **Development**: Our team implements new features and fixes bugs. We follow industry best practices and rigorous testing to ensure stability and performance.
3. **Testing**: Before any release, we conduct extensive testing, including unit tests, integration tests, and user acceptance testing, to ensure the highest quality.
4. **Release**: Updates are deployed in a controlled manner, with detailed release notes to inform users of the changes.

### Release Notes

Stay up-to-date with our latest releases by checking the release notes. These notes provide detailed information on new features, improvements, and bug fixes: [Release Notes](https://github.com/Jordan-Prescott/odins\_spear/releases)

### Feature Requests

We value your feedback and suggestions for new features. While we cannot guarantee every request will be implemented, we consider all user feedback during our planning phase. To suggest a feature, please create a new issue on our issue board with as much detail as possible and label this issue `enhancement` here: [New Feature Request](https://github.com/Jordan-Prescott/odins\_spear/issues)

### Roadmap

We maintain a roadmap that outlines our planned features and improvements. This helps you understand what’s coming next and how we are evolving the application. Visit our roadmap here: [Development Roadmap](https://github.com/users/Jordan-Prescott/projects/2/views/10)
3 changes: 3 additions & 0 deletions docs/docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 📖 Docs

How to, what's this, and does it do that all answered in the next sections.
5 changes: 5 additions & 0 deletions docs/docs/features/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 🙌 Advanced Features

The library does not only encapsulate the Odin API methods it also has other features built in. The scripter object gives you access to pre-written scripts of common tasks and features not built in Odin's web portal such as locating an alias.&#x20;

Other features such as a data store, reports, and broadwork entities are being worked on in development.&#x20;
19 changes: 19 additions & 0 deletions docs/docs/features/logger/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 📜 Logger

The Logger object logs API calls made using Odin's Spear.&#x20;

Details logged are: Date/ Time, Name (Odin's Spear), User (You the developer), response code, endpoint.&#x20;

Logs are sent to os.log by default but can be changed in set\_up\_file\_handler() method. Logs can also be sent to an external syslog server using the set\_up\_sys\_log\_handler method.

{% code overflow="wrap" %}
```python
from odin_api import api

my_api = api.Api(base_url="https://base_url/api/vx", username="john.smith", password="ODIN_INSTANCE_1")
my_api.authenticate()

my_api.logger.set_up_file_handler()
my_api.logger.set_up_syslog_handler()
```
{% endcode %}
Loading

0 comments on commit 8a18353

Please sign in to comment.