I am batman

This commit is contained in:
2026-06-24 17:51:49 -04:00
commit 58bb13bd60
74 changed files with 11917 additions and 0 deletions

3
.obsidian/app.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"vimMode": true
}

5
.obsidian/appearance.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"cssTheme": "Obsidian gruvbox",
"showViewHeader": true,
"accentColor": "#df11ce"
}

3
.obsidian/community-plugins.json vendored Normal file
View File

@@ -0,0 +1,3 @@
[
"omnisearch"
]

33
.obsidian/core-plugins.json vendored Normal file
View File

@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": true,
"bases": true,
"webviewer": false
}

22
.obsidian/graph.json vendored Normal file
View File

@@ -0,0 +1,22 @@
{
"collapse-filter": true,
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": true,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": true,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 1,
"close": true
}

20
.obsidian/hotkeys.json vendored Normal file
View File

@@ -0,0 +1,20 @@
{
"omnisearch:show-modal": [
{
"modifiers": [
"Alt",
"Mod"
],
"key": "S"
}
],
"omnisearch:show-modal-infile": [
{
"modifiers": [
"Alt",
"Mod"
],
"key": "F"
}
]
}

43
.obsidian/plugins/omnisearch/data.json vendored Normal file
View File

@@ -0,0 +1,43 @@
{
"useCache": true,
"hideExcluded": false,
"recencyBoost": "0",
"downrankedFoldersFilters": [],
"ignoreDiacritics": true,
"ignoreArabicDiacritics": false,
"indexedFileTypes": [],
"indexFilesWithoutExtension": false,
"displayTitle": "",
"PDFIndexing": false,
"officeIndexing": false,
"imagesIndexing": false,
"aiImageIndexing": false,
"unsupportedFilesIndexing": "default",
"splitCamelCase": false,
"openInNewPane": false,
"vimLikeNavigationShortcut": true,
"ribbonIcon": true,
"showExcerpt": true,
"maxEmbeds": 5,
"renderLineReturnInExcerpts": true,
"showCreateButton": false,
"highlight": true,
"showPreviousQueryResults": true,
"simpleSearch": false,
"tokenizeUrls": false,
"fuzziness": "1",
"weightBasename": 10,
"weightDirectory": 7,
"weightH1": 6,
"weightH2": 5,
"weightH3": 4,
"weightUnmarkedTags": 2,
"weightCustomProperties": [],
"httpApiEnabled": false,
"httpApiPort": "51361",
"httpApiNotice": true,
"welcomeMessage": "1.21.0",
"verboseLogging": false,
"DANGER_httpHost": null,
"DANGER_forceSaveCache": false
}

170
.obsidian/plugins/omnisearch/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,14 @@
{
"id": "omnisearch",
"name": "Omnisearch",
"version": "1.29.3",
"minAppVersion": "1.7.2",
"description": "A search engine that just works.",
"author": "Simon Cambier",
"authorUrl": "https://scambier.xyz",
"fundingUrl": {
"Github": "https://github.com/sponsors/scambier",
"Ko-fi": "https://ko-fi.com/scambier"
},
"isDesktopOnly": false
}

150
.obsidian/plugins/omnisearch/styles.css vendored Normal file
View File

@@ -0,0 +1,150 @@
.omnisearch-modal {
}
.omnisearch-result {
white-space: normal;
display: flex;
flex-direction: row;
/* justify-content: space-between; */
flex-wrap: nowrap;
}
.omnisearch-result__title-container {
display: flex;
align-items: center;
justify-content: space-between;
column-gap: 5px;
flex-wrap: wrap;
}
.omnisearch-result__title {
white-space: pre-wrap;
align-items: center;
display: flex;
gap: 5px;
}
.omnisearch-result__title > span {
}
.omnisearch-result__folder-path {
font-size: 0.75rem;
align-items: center;
display: flex;
gap: 5px;
color: var(--text-muted);
}
.omnisearch-result__extension {
font-size: 0.7rem;
color: var(--text-muted);
}
.omnisearch-result__counter {
font-size: 0.7rem;
color: var(--text-muted);
}
.omnisearch-result__body {
white-space: normal;
font-size: small;
word-wrap: normal;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
color: var(--text-muted);
margin-inline-start: 0.5em;
}
.omnisearch-result__embed {
margin-left: 1em;
}
.omnisearch-result__image-container {
flex-basis: 20%;
text-align: end;
}
.omnisearch-highlight {
}
.omnisearch-default-highlight {
text-decoration: underline;
text-decoration-color: var(--text-highlight-bg);
text-decoration-thickness: 3px;
text-underline-offset: -1px;
text-decoration-skip-ink: none;
}
.omnisearch-input-container {
display: flex;
align-items: center;
flex-direction: row;
gap: 5px;
}
.omnisearch-result__icon {
display: inline-block;
vertical-align: middle;
width: 16px;
height: 16px;
margin-right: 4px;
}
.omnisearch-result__icon svg {
width: 100%;
height: 100%;
}
.omnisearch-result__icon--emoji {
font-size: 16px;
vertical-align: middle;
margin-right: 4px;
}
@media only screen and (max-width: 600px) {
.omnisearch-input-container {
flex-direction: column;
}
.omnisearch-input-container__buttons {
display: flex;
flex-direction: row;
width: 100%;
padding: 0 1em 0 1em;
gap: 1em;
}
.omnisearch-input-container__buttons > button {
flex-grow: 1;
}
}
@media only screen and (min-width: 600px) {
.omnisearch-input-container__buttons {
margin-inline-end: 1em;
}
}
.omnisearch-input-field {
position: relative;
flex-grow: 1;
}
.omnisearch-result-highlight .cm-content ::selection,
.omnisearch-result-highlight .cm-line::selection {
background-color: var(
--omnisearch-highlight-color,
rgba(222, 183, 110, 1)
) !important;
color: var(--omnisearch-highlight-text-color, black) !important;
}
.omnisearch-result-highlight .cm-selectionLayer .cm-selectionBackground {
background-color: var(
--omnisearch-highlight-color,
rgba(222, 183, 110, 1)
) !important;
}

163
.obsidian/plugins/terminal/data.json vendored Normal file
View File

@@ -0,0 +1,163 @@
{
"addToCommand": true,
"addToContextMenu": true,
"createInstanceNearExistingOnes": true,
"errorNoticeTimeout": 0,
"exposeInternalModules": true,
"focusOnNewInstance": true,
"hideStatusBar": "focused",
"interceptLogging": true,
"language": "",
"newInstanceBehavior": "newHorizontalSplit",
"noticeTimeout": 5,
"openChangelogOnUpdate": true,
"pinNewInstance": true,
"preferredRenderer": "webgl",
"profiles": {
"darwinExternalDefault": {
"args": [
"\"$PWD\""
],
"executable": "/System/Applications/Utilities/Terminal.app/Contents/macOS/Terminal",
"followTheme": true,
"name": "",
"platforms": {
"darwin": true
},
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "external"
},
"darwinIntegratedDefault": {
"args": [
"--login"
],
"executable": "/bin/zsh",
"followTheme": true,
"name": "",
"platforms": {
"darwin": true
},
"pythonExecutable": "python3",
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "integrated",
"useWin32Conhost": true
},
"developerConsole": {
"followTheme": true,
"name": "",
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "developerConsole"
},
"linuxExternalDefault": {
"args": [],
"executable": "xterm",
"followTheme": true,
"name": "",
"platforms": {
"linux": true
},
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "external"
},
"linuxIntegratedDefault": {
"args": [],
"executable": "/bin/sh",
"followTheme": true,
"name": "",
"platforms": {
"linux": true
},
"pythonExecutable": "python3",
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "integrated",
"useWin32Conhost": true
},
"win32ExternalDefault": {
"args": [],
"executable": "C:\\Windows\\System32\\cmd.exe",
"followTheme": true,
"name": "",
"platforms": {
"win32": true
},
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "external"
},
"win32IntegratedDefault": {
"args": [],
"executable": "C:\\Windows\\System32\\cmd.exe",
"followTheme": true,
"name": "",
"platforms": {
"win32": true
},
"pythonExecutable": "python3",
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "integrated",
"useWin32Conhost": true
}
}
}

200
.obsidian/plugins/terminal/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,14 @@
{
"author": "polyipseity",
"description": "Integrate consoles, shells, and terminals.",
"fundingUrl": {
"Buy Me a Coffee": "https://buymeacoffee.com/polyipseity",
"GitHub Sponsors": "https://github.com/sponsors/polyipseity"
},
"version": "3.21.0",
"authorUrl": "https://github.com/polyipseity",
"id": "terminal",
"isDesktopOnly": false,
"minAppVersion": "1.4.11",
"name": "Terminal"
}

32
.obsidian/plugins/terminal/styles.css vendored Normal file
View File

@@ -0,0 +1,32 @@
.obsidian-plugin-library\:icon{fill:none;stroke:currentColor}.obsidian-plugin-library\:await-css{display:unset!important}.obsidian-plugin-library\:hide-status-bar{display:none}/**
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
* https://github.com/chjj/term.js
* @license MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* Originally forked from (with the author's permission):
* Fabrice Bellard's javascript vt100 for jslinux:
* http://bellard.org/jslinux/
* Copyright (c) 2011 Fabrice Bellard
* The original design remains. The terminal itself
* has been extended to include xterm CSI codes, among
* other features.
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.workspace-leaf-content[data-type="terminal:terminal"] .view-content{overflow:clip;display:flex;flex-direction:column}.terminal\:terminal{flex:1;min-width:0;min-height:0}.is-phone .workspace-leaf-content[data-type="terminal:terminal"] .view-content{padding-bottom:max(var(--size-4-4),calc(var(--icon-l) + var(--size-4-2) + max(var(--size-4-2),var(--safe-area-inset-bottom))))}

230
.obsidian/text-generator.json vendored Normal file
View File

@@ -0,0 +1,230 @@
{
"packagesHash": {
"default": {
"packageId": "default",
"name": "Default Prompts Package",
"version": "0.0.5",
"minTextGeneratorVersion": "0.1.0",
"description": "This is the main package that comes with Text Generator plugin in Obsidian",
"author": "Noureddine Haouari",
"tags": "writing, brainstorming",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/gpt-3-prompt-templates",
"installed": false,
"downloads": 0
},
"dalle": {
"packageId": "dalle",
"name": "OpenAI Dalle Package",
"version": "0.1.0",
"minTextGeneratorVersion": "0.5.0",
"description": "The package contains some interessting Dalle-2/Dalle-3 prompt templates",
"author": "Noureddine Haouari",
"tags": "photo, dalle-2, dalle-3",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/tg-dalle-package",
"installed": false,
"downloads": 0
},
"huggingface": {
"packageId": "huggingface",
"name": "Huggingface Prompts Package",
"version": "0.0.1",
"minTextGeneratorVersion": "0.1.0",
"description": "Huggingface Prompts comes with Text Generator plugin in Obsidian",
"author": "Noureddine Haouari",
"tags": "writing, brainstorming, huggingface",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/huggingface",
"installed": false,
"downloads": 0
},
"awesomePrompts": {
"packageId": "awesomePrompts",
"name": "Awesome Prompts",
"version": "0.0.2",
"minTextGeneratorVersion": "0.5.7",
"description": "This repo includes ChatGPT prompt curation to use ChatGPT better.",
"author": "f",
"tags": "writing, brainstorming, awesome",
"authorUrl": "https://github.com/f/awesome-chatgpt-prompts",
"repo": "text-gen/awesome-tg-package",
"installed": false,
"downloads": 0
},
"tts": {
"packageId": "tts",
"name": "Text To Speech Package",
"version": "0.0.2",
"minTextGeneratorVersion": "0.6.0",
"description": "Contains Text To Speech Templates and support for TTS for other templates",
"author": "Noureddine",
"tags": "TTS, Speak",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/TTS",
"installed": false,
"downloads": 0
},
"vision": {
"packageId": "vision",
"name": "Vision Package",
"version": "0.0.2",
"minTextGeneratorVersion": "0.6.0",
"description": "Contains Vision Templates and support for Vision for other templates (Scripts)",
"author": "Noureddine",
"tags": "OpenAI,markdown,gpt-4-vision,vision,images",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/tg-vision",
"installed": false,
"downloads": 0
},
"smartConnections": {
"packageId": "smartConnections",
"name": "Smart Connections Package",
"version": "0.0.2",
"minTextGeneratorVersion": "0.6.0",
"description": "Contains Smart Connection Templates and support for Smart Connections for other templates (Script)",
"author": "Noureddine",
"tags": "smartConnections,smart-connections",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/tg-smartConnections",
"installed": false,
"downloads": 0
},
"Experimental": {
"packageId": "Experimental",
"name": "Experimental Package",
"version": "0.0.1",
"minTextGeneratorVersion": "0.6.6",
"description": "Contains experimental templates",
"author": "Noureddine",
"tags": "experiments",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/experimental-package",
"installed": false,
"downloads": 0
},
"testExtension": {
"core": true,
"type": "feature",
"packageId": "testExtension",
"name": "test extension Package",
"version": "0.0.1",
"minTextGeneratorVersion": "0.1.0",
"description": "testing extension package",
"author": "Noureddine Haouari",
"tags": "testing",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/gpt-3-prompt-templates",
"folderName": "testExtension",
"price": 20,
"installed": false,
"downloads": 0
},
"excalidraw": {
"packageId": "excalidraw",
"name": "excalidraw package",
"version": "0.0.1",
"minTextGeneratorVersion": "0.6.0",
"description": "Contains Excalidraw Templates and support for Excalidraw for other templates (Scripts)",
"author": "Noureddine",
"tags": "OpenAI,markdown,gpt-4-vision,vision,images",
"authorUrl": "https://www.buymeacoffee.com/haouarine",
"repo": "text-gen/tg-excalidraw",
"core": true,
"folderName": "excalidrawPackage",
"price": 2,
"installed": false,
"downloads": 0
}
},
"resources": {},
"installedPackagesHash": {
"default": {
"packageId": "default",
"prompts": [
{
"promptId": "getEmailNeg"
},
{
"promptId": "getEmailPos"
},
{
"promptId": "getIdeas"
},
{
"promptId": "getOutline"
},
{
"promptId": "getParagraph"
},
{
"promptId": "getTags"
},
{
"promptId": "getTitles"
},
{
"promptId": "rewrite"
},
{
"promptId": "simplify"
},
{
"promptId": "summarize"
},
{
"promptId": "summarizeLarge"
}
],
"installedPrompts": [
{
"promptId": "getEmailNeg",
"version": ""
},
{
"promptId": "summarize",
"version": ""
},
{
"promptId": "getOutline",
"version": ""
},
{
"promptId": "rewrite",
"version": ""
},
{
"promptId": "getTitles",
"version": ""
},
{
"promptId": "getTags",
"version": ""
},
{
"promptId": "simplify",
"version": ""
},
{
"promptId": "summarizeLarge",
"version": ""
},
{
"promptId": "getIdeas",
"version": ""
},
{
"promptId": "getParagraph",
"version": ""
},
{
"promptId": "getEmailPos",
"version": ""
}
],
"version": "0.0.5"
}
},
"subscriptions": []
}

View File

@@ -0,0 +1,7 @@
{
"name": "Catppuccin",
"version": "0.4.44",
"minAppVersion": "1.0.0",
"author": "Marshall Beckrich",
"authorUrl": "https://github.com/catppuccin/obsidian"
}

4556
.obsidian/themes/Catppuccin/theme.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
{
"name": "Everforest Enchanted",
"version": "3.12.2",
"minAppVersion": "1.0.0",
"author": "FireIsGood",
"authorUrl": "https://github.com/FireIsGood"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
{
"name": "Obsidian gruvbox",
"version": "0.2.1",
"minAppVersion": "0.16.0",
"author": "insanum",
"authorUrl": "https://insanum.com"
}

View File

@@ -0,0 +1,579 @@
:root
{
--dark0-hard_x: 29,32,33; /* #1d2021 */
--dark0-hard: rgb(var(--dark0-hard_x));
--dark0_x: 40,40,40; /* #282828 */
--dark0: rgb(var(--dark0_x));
--dark0-soft_x: 50,48,47; /* #32302f */
--dark0-soft: rgb(var(--dark0-soft_x));
--dark1_x: 60,56,54; /* #3c3836 */
--dark1: rgb(var(--dark1_x));
--dark2_x: 80,73,69; /* #504945 */
--dark2: rgb(var(--dark2_x));
--dark3_x: 102,92,84; /* #665c54 */
--dark3: rgb(var(--dark3_x));
--dark4_x: 124,111,100; /* #7c6f64 */
--dark4: rgb(var(--dark4_x));
--gray_x: 146,131,116; /* #928374 */
--gray: rgb(var(--gray_x));
--light0-hard_x: 249,245,215; /* #f9f5d7 */
--light0-hard: rgb(var(--light0-hard_x));
--light0_x: 251,241,199; /* #fbf1c7 */
--light0: rgb(var(--light0_x));
--light0-soft_x: 242,229,188; /* #f2e5bc */
--light0-soft: rgb(var(--light0-soft_x));
--light1_x: 235,219,178; /* #ebdbb2 */
--light1: rgb(var(--light1_x));
--light2_x: 213,196,161; /* #d5c4a1 */
--light2: rgb(var(--light2_x));
--light3_x: 189,174,147; /* #bdae93 */
--light3: rgb(var(--light3_x));
--light4_x: 168,153,132; /* #a89984 */
--light4: rgb(var(--light4_x));
--bright-red_x: 251,73,52; /* #fb4934 */
--bright-red: rgb(var(--bright-red_x));
--bright-green_x: 184,187,38; /* #b8bb26 */
--bright-green: rgb(var(--bright-green_x));
--bright-yellow_x: 250,189,47; /* #fabd2f */
--bright-yellow: rgb(var(--bright-yellow_x));
--bright-blue_x: 131,165,152; /* #83a598 */
--bright-blue: rgb(var(--bright-blue_x));
--bright-purple_x: 211,134,155; /* #d3869b */
--bright-purple: rgb(var(--bright-purple_x));
--bright-aqua_x: 142,192,124; /* #8ec07c */
--bright-aqua: rgb(var(--bright-aqua_x));
--bright-orange_x: 254,128,25; /* #fe8019 */
--bright-orange: rgb(var(--bright-orange_x));
--neutral-red_x: 204,36,29; /* #cc241d */
--neutral-red: rgb(var(--neutral-red_x));
--neutral-green_x: 152,151,26; /* #98971a */
--neutral-green: rgb(var(--neutral-green_x));
--neutral-yellow_x: 215,153,33; /* #d79921 */
--neutral-yellow: rgb(var(--neutral-yellow_x));
--neutral-blue_x: 69,133,136; /* #458588 */
--neutral-blue: rgb(var(--neutral-blue_x));
--neutral-purple_x: 177,98,134; /* #b16286 */
--neutral-purple: rgb(var(--neutral-purple_x));
--neutral-aqua_x: 104,157,106; /* #689d6a */
--neutral-aqua: rgb(var(--neutral-aqua_x));
--neutral-orange_x: 214,93,14; /* #d65d0e */
--neutral-orange: rgb(var(--neutral-orange_x));
--faded-red_x: 157,0,6; /* #9d0006 */
--faded-red: rgb(var(--faded-red_x));
--faded-green_x: 121,116,14; /* #79740e */
--faded-green: rgb(var(--faded-green_x));
--faded-yellow_x: 181,118,20; /* #b57614 */
--faded-yellow: rgb(var(--faded-yellow_x));
--faded-blue_x: 7,102,120; /* #076678 */
--faded-blue: rgb(var(--faded-blue_x));
--faded-purple_x: 143,63,113; /* #8f3f71 */
--faded-purple: rgb(var(--faded-purple_x));
--faded-aqua_x: 66,123,88; /* #427b58 */
--faded-aqua: rgb(var(--faded-aqua_x));
--faded-orange_x: 175,58,3; /* #af3a03 */
--faded-orange: rgb(var(--faded-orange_x));
}
body
{
--accent-h: 12; /* --faded-red #9d0006 */
--accent-s: 107%;
--accent-l: 32%;
--link-decoration: none;
--link-decoration-hover: none;
--link-external-decoration: none;
--link-external-decoration-hover: none;
--tag-decoration: none;
--tag-decoration-hover: underline;
--tag-padding-x: .5em;
--tag-padding-y: .2em;
--tag-radius: .5em;
--tab-font-weight: 600;
--bold-weight: 600;
--checkbox-radius: 0;
/* --list-indent: 2em; */
--embed-border-left: 6px double var(--interactive-accent);
}
.theme-dark
{
--color-red-rgb: var(--neutral-red_x);
--color-red: var(--neutral-red);
--color-purple-rgb: var(--neutral-purple_x);
--color-purple: var(--neutral-purple);
--color-green-rgb: var(--neutral-green_x);
--color-green: var(--neutral-green);
--color-cyan-rgb: var(--neutral-blue_x);
--color-cyan: var(--neutral-blue);
--color-blue-rgb: var(--faded-blue_x);
--color-blue: var(--faded-blue);
--color-yellow-rgb: var(--neutral-yellow_x);
--color-yellow: var(--neutral-yellow);
--color-orange-rgb: var(--neutral-orange_x);
--color-orange: var(--neutral-orange);
--color-pink-rgb: var(--bright-purple_x);
--color-pink: var(--bright-purple);
--background-primary: var(--dark0);
--background-primary-alt: var(--dark0);
--background-secondary: var(--dark0-hard);
--background-secondary-alt: var(--dark1);
--background-modifier-border: var(--dark1);
--cursor-line-background: rgba(var(--dark1_x), 0.5);
--text-normal: var(--light0);
--text-faint: var(--light1);
--text-muted: var(--light2);
--link-url: var(--neutral-green);
--h1-color: var(--neutral-red);
--h2-color: var(--neutral-yellow);
--h3-color: var(--neutral-green);
--h4-color: var(--neutral-aqua);
--h5-color: var(--neutral-blue);
--h6-color: var(--neutral-purple);
--text-highlight-bg: var(--neutral-yellow);
--text-highlight-fg: var(--dark0-hard);
--text-accent: var(--neutral-orange);
--text-accent-hover: var(--bright-aqua);
--tag-color: var(--bright-aqua);
--tag-background: var(--dark2);
--tag-background-hover: var(--dark1);
--titlebar-text-color-focused: var(--bright-red);
--inline-title-color: var(--bright-yellow);
--bold-color: var(--neutral-yellow);
--italic-color: var(--neutral-yellow);
--checkbox-color: var(--light4);
--checkbox-color-hover: var(--light4);
--checkbox-border-color: var(--light4);
--checkbox-border-color-hover: var(--light4);
--checklist-done-color: rgba(var(--light2_x), 0.5);
--table-header-background: rgba(var(--dark0_x), 0.2);
--table-header-background-hover: var(--dark2);
--table-row-even-background: rgba(var(--dark2_x), 0.2);
--table-row-odd-background: rgba(var(--dark2_x), 0.4);
--table-row-background-hover: var(--dark2);
--text-selection: rgba(var(--neutral-red_x), 0.6);
--flashing-background: rgba(var(--neutral-red_x), 0.3);
--code-normal: var(--bright-blue);
--code-background: var(--dark1);
--mermaid-note: var(--neutral-blue);
--mermaid-actor: var(--dark2);
--mermaid-loopline: var(--neutral-blue);
--mermaid-exclude: var(--dark4);
--mermaid-seqnum: var(--dark0);
--icon-color-hover: var(--bright-red);
--icon-color-focused: var(--bright-blue);
--nav-item-color-hover: var(--bright-red);
--nav-item-color-active: var(--bright-aqua);
--nav-file-tag: rgba(var(--neutral-yellow_x), 0.9);
--graph-line: var(--dark2);
--graph-node: var(--light3);
--graph-node-tag: var(--neutral-red);
--graph-node-attachment: var(--neutral-green);
--calendar-hover: var(--bright-red);
--calendar-background-hover: var(--dark1);
--calendar-week: var(--neutral-orange);
--calendar-today: var(--neutral-orange);
--dataview-key: var(--text-faint);
--dataview-key-background: rgba(var(--faded-red_x), 0.5);
--dataview-value: var(--text-faint);
--dataview-value-background: rgba(var(--neutral-green_x), 0.3);
--tab-text-color-focused-active: var(--neutral-yellow);
--tab-text-color-focused-active-current: var(--bright-red);
}
.theme-light
{
--color-red-rgb: var(--neutral-red_x);
--color-red: var(--neutral-red);
--color-purple-rgb: var(--neutral-purple_x);
--color-purple: var(--neutral-purple);
--color-green-rgb: var(--neutral-green_x);
--color-green: var(--neutral-green);
--color-cyan-rgb: var(--neutral-blue_x);
--color-cyan: var(--neutral-blue);
--color-blue-rgb: var(--faded-blue_x);
--color-blue: var(--faded-blue);
--color-yellow-rgb: var(--neutral-yellow_x);
--color-yellow: var(--neutral-yellow);
--color-orange-rgb: var(--neutral-orange_x);
--color-orange: var(--neutral-orange);
--color-pink-rgb: var(--bright-purple_x);
--color-pink: var(--bright-purple);
--background-primary: var(--light0-hard);
--background-primary-alt: var(--light0-hard);
--background-secondary: var(--light1);
--background-secondary-alt: var(--light1);
--background-modifier-border: var(--light2);
--cursor-line-background: rgba(var(--light1_x), 0.5);
--text-normal: var(--dark0);
--text-faint: var(--dark3);
--text-muted: var(--dark2);
--link-url: var(--neutral-green);
--h1-color: var(--neutral-red);
--h2-color: var(--neutral-yellow);
--h3-color: var(--neutral-green);
--h4-color: var(--neutral-aqua);
--h5-color: var(--neutral-blue);
--h6-color: var(--neutral-purple);
--text-highlight-bg: var(--bright-yellow);
--text-highlight-fg: var(--dark0);
--text-accent: var(--neutral-orange);
--text-accent-hover: var(--bright-aqua);
--tag-color: var(--neutral-aqua);
--tag-background: var(--light1);
--tag-background-hover: rgba(var(--light1_x), 0.6);
--titlebar-text-color-focused: var(--bright-red);
--inline-title-color: var(--bright-yellow);
--bold-color: var(--neutral-yellow);
--italic-color: var(--neutral-yellow);
--checkbox-color: var(--light4);
--checkbox-color-hover: var(--light4);
--checkbox-border-color: var(--light4);
--checkbox-border-color-hover: var(--light4);
--checklist-done-color: rgba(var(--dark2_x), 0.4);
--table-header-background: rgba(var(--light3_x), 0.4);
--table-header-background-hover: var(--light2);
--table-row-even-background: rgba(var(--light1_x), 0.2);
--table-row-odd-background: rgba(var(--light1_x), 0.7);
--table-row-background-hover: var(--light2);
--text-selection: rgba(var(--neutral-red_x), 0.6);
--flashing-background: rgba(var(--neutral-red_x), 0.3);
--code-normal: var(--bright-blue);
--code-background: var(--light1);
--mermaid-note: var(--bright-blue);
--mermaid-actor: var(--light3);
--mermaid-loopline: var(--neutral-blue);
--mermaid-exclude: var(--light2);
--mermaid-seqnum: var(--light0);
--icon-color-hover: var(--bright-red);
--icon-color-focused: var(--bright-blue);
--nav-item-color-hover: var(--bright-red);
--nav-item-color-active: var(--neutral-blue);
--nav-file-tag: rgba(var(--neutral-blue_x), 0.9);
--graph-line: var(--light1);
--graph-node: var(--gray);
--graph-node-tag: var(--neutral-red);
--graph-node-attachment: var(--bright-green);
--calendar-hover: var(--bright-red);
--calendar-background-hover: var(--light1);
--calendar-week: var(--bright-red);
--calendar-today: var(--bright-red);
--dataview-key: var(--text-faint);
--dataview-key-background: rgba(var(--faded-red_x), 0.3);
--dataview-value: var(--text-faint);
--dataview-value-background: rgba(var(--neutral-green_x), 0.2);
--tab-text-color-focused-active: var(--neutral-yellow);
--tab-text-color-focused-active-current: var(--bright-red);
}
table
{
border: 1px solid var(--background-secondary) !important;
border-collapse: collapse;
}
thead
{
border-bottom: 2px solid var(--background-modifier-border) !important;
}
th
{
font-weight: 600 !important;
border: 1px solid var(--background-secondary) !important;
}
td
{
border-left: 1px solid var(--background-secondary) !important;
border-right: 1px solid var(--background-secondary) !important;
border-bottom: 1px solid var(--background-secondary) !important;
}
.markdown-rendered tbody tr:nth-child(even)
{
background-color: var(--table-row-even-background) !important;
}
.markdown-rendered tbody tr:nth-child(odd)
{
background-color: var(--table-row-odd-background) !important;
}
.markdown-rendered tbody tr:nth-child(even):hover,
.markdown-rendered tbody tr:nth-child(odd):hover
{
background-color: var(--table-row-background-hover) !important;
}
.markdown-rendered mark
{
background-color: var(--text-highlight-bg);
color: var(--text-highlight-fg);
}
.markdown-rendered mark a
{
color: var(--red) !important;
font-weight: 600;
}
.search-result-file-matched-text
{
color: var(--text-highlight-fg) !important;
}
.cm-hashtag-begin:hover, .cm-hashtag-end:hover
{
color: var(--text-accent);
/* background-color: var(--tag-background-hover); */
text-decoration: underline;
}
input[type=checkbox]
{
border: 1px solid var(--checkbox-color);
}
input[type=checkbox]:checked
{
background-color: var(--checkbox-color);
box-shadow: inset 0 0 0 2px var(--background-primary);
}
input[type=checkbox]:checked:after
{
display: none;
}
code[class*="language-"],
pre[class*="language-"]
{
line-height: var(--line-height-tight) !important;
}
.cm-url
{
color: var(--link-url) !important;
}
.cm-url:hover
{
color: var(--text-accent-color) !important;
}
/* Keep highlight/marks the same between viewer and editor. */
.cm-highlight
{
color: var(--text-highlight-fg) !important;
}
/* Keep inline code the same between viewer and editor. */
.cm-inline-code
{
border-radius: var(--radius-s);
font-size: var(--code-size);
padding: 0.1em 0.25em;
}
.cm-line .cm-strong
{
color: var(--bold-color) !important;
}
/*
* Keep list bullet padding the same between viewer and editor.
* This is annoying with the cursor in the editor as there is a gap.
*/
/*
.cm-formatting-list
{
padding-right: 4px !important;
}
*/
/*
* Keep sub-list indenting the same between viewer and editor.
* This assumes --list-indent is default at 2em.
*/
/*
.cm-indent
{
text-indent: 1em !important;
}
*/
.mermaid .note
{
fill: var(--mermaid-note) !important;
}
.mermaid .actor
{
fill: var(--mermaid-actor) !important;
}
.mermaid .loopLine
{
stroke: var(--mermaid-loopline) !important;
}
.mermaid .loopText>tspan,
.mermaid .entityLabel
{
fill: var(--neutral-red) !important;
}
.mermaid .exclude-range
{
fill: var(--mermaid-exclude) !important;
}
.mermaid .sequenceNumber
{
fill: var(--mermaid-seqnum) !important;
}
.calendar .week-num
{
color: var(--calendar-week) !important;
}
.calendar .today
{
color: var(--calendar-today) !important;
}
.calendar .week-num:hover,
.calendar .day:hover
{
color: var(--calendar-hover) !important;
background-color: var(--calendar-background-hover) !important;
}
.markdown-embed-title
{
color: var(--yellow);
font-weight: 600 !important;
}
.cm-active
{
background-color: var(--cursor-line-background) !important;
}
.nav-file-tag
{
color: var(--nav-file-tag) !important;
}
.is-flashing
{
background-color: var(--flashing-background) !important;
}
.dataview.inline-field-key
{
border-top-left-radius: var(--radius-s);
border-bottom-left-radius: var(--radius-s);
padding-left: 4px;
font-family: var(--font-monospace);
font-size: var(--font-smaller);
color: var(--dataview-key) !important;
background-color: var(--dataview-key-background) !important;
}
.dataview.inline-field-value
{
border-top-right-radius: var(--radius-s);
border-bottom-right-radius: var(--radius-s);
padding-right: 4px;
font-family: var(--font-monospace);
font-size: var(--font-smaller);
color: var(--dataview-value) !important;
background-color: var(--dataview-value-background) !important;
}
.suggestion-highlight
{
color: var(--bright-red);
}
body {
--callout-border-width: 1px;
--callout-border-opacity: 0.4;
/* Order as defined in app.css */
--callout-default: var(--neutral-blue_x);
--callout-note: var(--neutral-blue_x);
--callout-summary: var(--neutral-aqua_x);
--callout-info: var(--neutral-blue_x);
--callout-todo: var(--neutral-blue_x);
--callout-important: var(--neutral-aqua_x);
--callout-tip: var(--neutral-aqua_x);
--callout-success: var(--neutral-green_x);
--callout-question: var(--neutral-yellow_x);
--callout-warning: var(--neutral-orange_x);
--callout-fail: var(--neutral-red_x);
--callout-error: var(--neutral-red_x);
--callout-bug: var(--neutral-red_x);
--callout-example: var(--neutral-purple_x);
--callout-quote: var(--gray_x);
}
.callout {
background-color: rgba(var(--callout-color), 0.2);
}

View File

@@ -0,0 +1,7 @@
{
"name": "Transient",
"version": "1.0.1",
"minAppVersion": "1.0.0",
"author": "GeorgeAzma",
"authorUrl": "https://georgeazma.github.io"
}

19
.obsidian/themes/Transient/theme.css vendored Normal file
View File

@@ -0,0 +1,19 @@
.theme-dark {
--color-base-00: #0c0c11ee;
--color-base-30: #191926;
--color-base-40: #151520;
--background-primary: transparent;
--background-secondary: transparent;
--code-background: #22223333;
--modal-background: var(--color-base-00);
}
.suggestion-container.mod-search-suggestion,
.menu,
.prompt {
background-color: var(--color-base-00);
}
input[type=checkbox]:checked:after {
background-color: #000000;
}

View File

@@ -0,0 +1,7 @@
{
"name": "Transparent",
"version": "1.5.43",
"minAppVersion": "1.0.0",
"author": "Oczko24",
"authorUrl": "https://github.com/Oczko24"
}

492
.obsidian/themes/Transparent/theme.css vendored Normal file

File diff suppressed because one or more lines are too long

347
.obsidian/workspace.json vendored Normal file
View File

@@ -0,0 +1,347 @@
{
"main": {
"id": "4cb8336e41a264f9",
"type": "split",
"children": [
{
"id": "d633b862912d5f03",
"type": "tabs",
"children": [
{
"id": "92b9ab0e61e6b2f6",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Network Diagrams/SSH Tunnels.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "SSH Tunnels"
}
},
{
"id": "2fe4487b3e6a6bba",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Training/A - Feature Codes.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "A - Feature Codes"
}
},
{
"id": "4b732da287f7796d",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Remote into Phones.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Remote into Phones"
}
},
{
"id": "c41730bcd331c9a9",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Training/A - Feature Codes.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "A - Feature Codes"
}
},
{
"id": "2076842d4eb1cf92",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "GlazeWM Keybinds.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "GlazeWM Keybinds"
}
},
{
"id": "90aab8411316ca2a",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Remote into Phones.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Remote into Phones"
}
},
{
"id": "e9c9a7fd4614062f",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Training/General VTG.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "General VTG"
}
},
{
"id": "b917791989b061d1",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Admin On Mailboxes.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Admin On Mailboxes"
}
},
{
"id": "e98377491f272b71",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Exchange Online & Active Directory PowerShell Cheat Sheet.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Exchange Online & Active Directory PowerShell Cheat Sheet"
}
}
],
"currentTab": 8
}
],
"direction": "vertical"
},
"left": {
"id": "f465110d20894fae",
"type": "split",
"children": [
{
"id": "3519d12fd4b6a428",
"type": "tabs",
"children": [
{
"id": "a83686757d9c5c86",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "1a5bf3100ff56ab4",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "20795dfe6dd5cc55",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 246.5
},
"right": {
"id": "aa4a6081efd1d0b3",
"type": "split",
"children": [
{
"id": "3340fc76489dcb85",
"type": "tabs",
"children": [
{
"id": "d055fcde3947f97b",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "Welcome.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for Welcome"
}
},
{
"id": "63651885efb3330f",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "Welcome.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from Welcome"
}
},
{
"id": "6ee6cd0b916ac92a",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "8b252106de2a2370",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "All properties"
}
},
{
"id": "d8eb64d8bd89d06f",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "Welcome.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of Welcome"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"bases:Create new base": false,
"omnisearch:Omnisearch": false
}
},
"active": "e98377491f272b71",
"lastOpenFiles": [
"Admin On Mailboxes.md",
"Exchange Online & Active Directory PowerShell Cheat Sheet.md",
"Training/02 Pfsense.md",
"CommCore.md",
"Training/Pangea.md",
"GlazeWM Keybinds.md",
"Remote into Phones.md",
"Training/VoIP Notes.md",
"Training/03 FreePBX.md",
"Training/B - Extensions.md",
"General Notes/Edgemarc Reachable.md",
"Training/01 RAMP Kamailio.md",
"Network Diagrams/SSH Tunnels.md",
"Network Diagrams/Servers.md",
"Training/General VTG.md",
"General Notes/Client Specific.md",
"Training/A - Feature Codes.md",
"Training/General Tab.md",
"Training/Caller Announcements Tab.md",
"Training/C - Ring Groups.md",
"Training/Busy Lamp Field (BLF).md",
"Training/D - Queues.md",
"Training/Other Options Tab.md",
"Network Diagrams/Proxy ARP.md",
"Network Diagrams/Hosted Phone Server.md",
"Training/E - IVR.md",
"Imgs/BLF_diagram.png",
"Imgs/caller_announcment_diagram.png",
"Imgs/queues_diagram.png",
"Imgs/pfsense_diagram_5.png",
"Imgs/pfsense_diagram_4.png",
"Imgs/pfsense_diagram_3.png",
"Imgs/pfsense_diagram_2.png",
"Imgs/pfsense_diagram_1.png",
"Imgs/ramp_diagram.png",
"Imgs/GetImage(1).png",
"General Notes",
"Imgs",
"Network Diagrams",
"Training",
"textgenerator/templates/default",
"textgenerator/templates",
"textgenerator",
"VTG"
]
}

1
Admin On Mailboxes.md Normal file
View File

@@ -0,0 +1 @@
go to Exchange or 365 Admin, search email, click on mail > mailbox permissions > read and manage permissions > add account

4
CommCore.md Normal file
View File

@@ -0,0 +1,4 @@
419-255-9070 x2060
877-645-5156 x2060

View File

@@ -0,0 +1,853 @@
> Quick reference for Service Desk administration tasks.
---
# Exchange Online PowerShell
## Install Exchange Online Module
Run once:
```powershell
Install-Module ExchangeOnlineManagement -Scope CurrentUser
```
Verify installation:
```powershell
Get-Module ExchangeOnlineManagement -ListAvailable
```
---
# Enable PowerShell Script Execution
Check current policy:
```powershell
Get-ExecutionPolicy -List
```
Enable scripts for current user:
```powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
```
Temporary bypass for current session:
```powershell
powershell.exe -ExecutionPolicy Bypass
```
---
# Connect to Exchange Online
Import module:
```powershell
Import-Module ExchangeOnlineManagement
```
Connect:
```powershell
Connect-ExchangeOnline
```
Connect with a specific account:
```powershell
Connect-ExchangeOnline -UserPrincipalName username@company.com
```
Verify connection:
```powershell
Get-ConnectionInformation
```
---
# Disconnect from Exchange Online
```powershell
Disconnect-ExchangeOnline -Confirm:$false
```
---
# Find Distribution Lists
## Search by partial name
```powershell
Get-DistributionGroup -Anr FSM
```
## Search Display Name
```powershell
Get-DistributionGroup -Filter "DisplayName -like '*FSM*'"
```
## Show more details
```powershell
Get-DistributionGroup -Filter "DisplayName -like '*FSM*'" |
Select Name,DisplayName,Alias,PrimarySmtpAddress
```
---
# Find Any Exchange Recipient
Search mailboxes, groups, contacts, shared mailboxes, etc.
```powershell
Get-Recipient -Filter "DisplayName -like '*FSM*'"
```
More details:
```powershell
Get-Recipient -Filter "DisplayName -like '*FSM*'" |
Select Name,RecipientType,PrimarySmtpAddress
```
---
# Find Shared Mailboxes
```powershell
Get-Mailbox -RecipientTypeDetails SharedMailbox
```
Search by name:
```powershell
Get-Mailbox -RecipientTypeDetails SharedMailbox |
Where-Object {$_.DisplayName -like "*FSM*"}
```
---
# View Distribution Group Members
By display name:
```powershell
Get-DistributionGroupMember -Identity "FSM"
```
By email address:
```powershell
Get-DistributionGroupMember -Identity "bdl@agas.com"
```
---
# Add User to Distribution List
```powershell
Add-DistributionGroupMember `
-Identity "FSM" `
-Member username
```
Example:
```powershell
Add-DistributionGroupMember `
-Identity "FSM" `
-Member jsmith
```
---
# Remove User from Distribution List
```powershell
Remove-DistributionGroupMember `
-Identity "FSM" `
-Member jsmith `
-Confirm:$false
```
---
# Find Distribution Group AD Object
Useful when Exchange name differs from AD name.
```powershell
Get-DistributionGroup "FSM" |
Format-List Name,DisplayName,Alias,DistinguishedName
```
---
# Active Directory User Management
## Load Active Directory Module
```powershell
Import-Module ActiveDirectory
```
---
# Find User
By username:
```powershell
Get-ADUser username
```
By display name:
```powershell
Get-ADUser -Filter 'Name -like "*John Smith*"'
```
---
# Disable Local/AD User
Disable AD account:
```powershell
Disable-ADAccount -Identity username
```
Verify:
```powershell
Get-ADUser username -Properties Enabled
```
---
# Enable Local/AD User
Enable AD account:
```powershell
Enable-ADAccount -Identity username
```
Verify:
```powershell
Get-ADUser username -Properties Enabled
```
---
# Reset Password
```powershell
Set-ADAccountPassword `
-Identity username `
-Reset `
-NewPassword (ConvertTo-SecureString "NewPassword123!" -AsPlainText -Force)
```
Force password change at next login:
```powershell
Set-ADUser username -ChangePasswordAtLogon $true
```
---
# Unlock AD Account
```powershell
Unlock-ADAccount username
```
Check lockout status:
```powershell
Get-ADUser username -Properties LockedOut
```
---
# AD Group Membership
## See User's Groups
```powershell
Get-ADPrincipalGroupMembership username |
Select Name
```
## Add User to Group
```powershell
Add-ADGroupMember `
-Identity "Group Name" `
-Members username
```
## Remove User from Group
```powershell
Remove-ADGroupMember `
-Identity "Group Name" `
-Members username `
-Confirm:$false
```
---
# Find Group by Name
```powershell
Get-ADGroup -Filter 'Name -like "*FSM*"'
```
---
# Find Group by Email Address
```powershell
Get-ADGroup `
-Filter 'mail -eq "bdl@agas.com"' `
-Properties mail
```
---
# Common Troubleshooting
## Exchange Module Won't Load
Check if installed:
```powershell
Get-Module ExchangeOnlineManagement -ListAvailable
```
Check execution policy:
```powershell
Get-ExecutionPolicy -List
```
Enable script execution:
```powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
```
---
## Exchange Commands Hang
Test connection:
```powershell
Get-ConnectionInformation
```
Test response:
```powershell
Get-Mailbox -ResultSize 5
```
Avoid pulling everything:
✅ Faster
```powershell
Get-Recipient -Filter "DisplayName -like '*FSM*'"
```
❌ Slower
```powershell
Get-Recipient -ResultSize Unlimited |
Where-Object {$_.DisplayName -like "*FSM*"}
```
---
# Most Common Service Desk Commands
```powershell
Connect-ExchangeOnline
```
```powershell
Get-DistributionGroup -Anr FSM
```
```powershell
Get-DistributionGroupMember -Identity "FSM"
```
```powershell
Add-DistributionGroupMember -Identity "FSM" -Member username
```
```powershell
Remove-DistributionGroupMember -Identity "FSM" -Member username
```
```powershell
Enable-ADAccount username
```
```powershell
Disable-ADAccount username
```
```powershell
Unlock-ADAccount username
```
```powershell
Get-ADPrincipalGroupMembership username
```
```powershell
Disconnect-ExchangeOnline -Confirm:$false
```
---
**Last Updated:** 2026-06-24

View File

@@ -0,0 +1,9 @@
| | |
|---|---|
|Alphalink|[https://vtgus.huducloud.com/kba/95ccf4d0bdf0](https://vtgus.huducloud.com/kba/95ccf4d0bdf0)|
|HPWO|We don't work tickets unless status is Escalated from HPWO|
|Stride|[https://vtgus.huducloud.com/kba/bf05dafa797d](https://vtgus.huducloud.com/kba/bf05dafa797d)|
|Texas ID|4696492d-646d-4d3c-9465-6c5a36f31a16|
|||
|||

44
General Notes/Commands.md Normal file
View File

@@ -0,0 +1,44 @@
| | |
| ------------------------------ | ----------------------------------- |
| Call Forwarding | asterisk -rx 'database del CF 130' |
| Do Not Disturb | asterisk -x 'database del DND XXXX' |
| Call Waiting | asterisk -x 'database del CW 1022' |
| Call Forwarding (Busy) | asterisk -x 'database del CFB 214' |
| Call Forwarding (Unregistered) | asterisk -x 'database del CFU 214' |
| | |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Remote Phone Book | vi /var/www/html/RemotePhonebook.xml <br><br>To enter edit mode, I <br><br>When done, hit esc <br><br>To save enter :wq! |
| | |
| --------------------------------------------------------- | ------------------------------------------------------- |
| Voicemail | ls -l /var/spool/asterisk/voicemail/default/2015/INBOX/ |
| find /var/spool/asterisk/voicemail/ -name "*.txt" -delete | |
| | |
| ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Commands](https://support.gtiglobalus.com/knowledgebase.php?article=192) | |
| [SNGREP](https://vtgus.huducloud.com/kba/88a56cb9213e) | |
| Reset FreePBX GUI password | fwconsole unlock <putcodeyoucopiedhere> |
| Reset web GUI | Httpd service restart |
| Errors revoking license | /usr/local/fop2/fop2_server --revoke --rp=http |
| Call Recording | [https://vtgus.huducloud.com/kba/b05cc016fec7](https://vtgus.huducloud.com/kba/b05cc016fec7) |
| Invading Rules in FreePBX | [https://vtgus.huducloud.com/kba/969f1cc70770](https://vtgus.huducloud.com/kba/969f1cc70770) |
| Whitelisting | [https://vtgus.huducloud.com/kba/c9bf21e853df](https://vtgus.huducloud.com/kba/c9bf21e853df) |
| T-Mobile | [https://vtgus.huducloud.com/kba/corecontact-tls-tips-79fcf0f1e8c6](https://vtgus.huducloud.com/kba/corecontact-tls-tips-79fcf0f1e8c6) <br><br>- #Firewall > Advanced Settings > Hamburger > Advanced >Custom Firewall Rules |
| Packet Capture | tcpdump -i any -s 0 -w /tmp/capture.pcap |
| Edit Firewall rules VIM | vim /etc/firewall-4.rules |
| Search asterisk for location by IP | asterisk -rx 'pjsip show contacts' \| grep ipyouwhitelisted |
| | Fwconsole firewall restart |
| | |
| | |
| | |
- grep 16162590760 /var/log/asterisk/full 
- then find the section C-XXXXXXX 
- hit enter a few times to make a gap 
-  grep C-000066b4 /var/log/asterisk/full 
- copy that text into hudu, select call analysis

View File

@@ -0,0 +1,78 @@
1. Verify SIP Server Configuration 
1. Why: If the SIP server address is misconfigured, phones will not register even if network access is available. 
2. Check: 
1. On the Edgemarc, go to VoIP > SIP. 
2. Verify the SIP Server IP is correct. 
3. This address should be an IP - NOT DNS HOSTNAME! 
2. Check SIP Survivability Status 
1. Why: If survivability is enabled and expected to provide fallback during WAN outages, phones will not function locally if it is down. 
2. Check: 
1. Go to VoIP > Survivability in the Edgemarc. 
2. Confirm Survivability Status is green. 
3. Restart the survivability process if needed by submitting at the bottom of the page. 
3. Confirm Edgemarc Public IP is Whitelisted in Hosted pfSense 
1. Why: If the customer's public IP is not in the alias list used by the hosted pfSense firewall, SIP traffic may be blocked even if management access still works. 
2. Check: 
1. Determine the Edgemarc’s current public IP (via its web UI or using curl ipinfo.io from the CLI). 
2. Log in to the hosted pfSense. 
3. Go to Firewall > Aliases. 
4. Locate the alias used for SIP or VoIP traffic access. 
5. Add the Edgemarc’s public IP if it is missing. 
6. Apply the firewall rules. 
4. Confirm Edgemarc IP is Allowed in FreePBX Firewall 
1. Why: FreePBX's built-in firewall may reject SIP registration attempts from unknown or untrusted IPs. 
2. Check: 
1. Log in to the FreePBX admin interface. 
2. Navigate to Connectivity > Firewall. 
3. Expand the menu on the right, and click Advanced. 
4. Navigate to the Advanced Custom Rules tab. 
5. Ensure the Edgemarc’s IP is listed in one of the lines like below: 
1. -I INPUT -s {Edgemarc IP} -p udp -m udp --dport 5060:5061 -j ACCEPT 
2. If not, add the IP and apply the configuration. 
5. Optional Checks 
1. Review SIP Registration Logs 
1. Use sngrep on the FreePBX server. 
2. If no SIP traffic is received, or it is not being responded to by the phone server, the issue likely lies with pfSense or FreePBX firewall rules. 
3. If traffic is received but registration fails, inspect the response codes for incorrect credentials or otherwise. 
2. Review phone settings 
1. Double check that the Server host in the phone is correct. 
2. Verify that the outbound proxy is either the Edgemarc internal IP, or disabled.

View File

@@ -0,0 +1,24 @@
| | | |
|---|---|---|
|Provisioning & Onboarding| | |
|K-12 Teams Provisioning:|Phillips Lazarz|Provisioning and onboarding for K-12 school districts.|
|New Customer Cutovers:|Chris Tiefel|Customers who have just been cut over to our phone system.|
|Number Porting & Comm-Core Customer Onboarding:|Chris Tiefel|Porting numbers and onboarding Comm-Core customers.|
|Post-Migration Support:|Phil or Wes|Customers who have migrated to a new phone system or datacenter.|
| | |
|---|---|
|Support| |
|After-Hours PBX Reboots:|Max Wagner|
|E911-Related Issues:|Chris Tiefel|
|Core Contact Programming Issues:|Josh Becker|
|Thread Admins:|Greg Knopp & Wes Payton|
|IronScales (Phishing Email Protection):|Tier 3 Technicians|
|Security & Surveillance:|Eric Moore|
| | |
| ------------------ | --------------------------------------------------------------------------------- |
| Sales & Billing | |
| VTG Sales: | Extension: x612 |
| Comm-Core Sales: | Extension: x615 |
| Billing Inquiries: | Accounting Team Extension: x5554 Scope: Customer billing, invoices, and payments. |

View File

@@ -0,0 +1,4 @@
Client form free caller registry [https://freecallerregistry.com/fcr/](https://freecallerregistry.com/fcr/)# 
I open ticket with bandwidth to update outbound caller id

View File

@@ -0,0 +1,91 @@
When escalating or transferring, include the customer name, a brief issue summary, and any supporting information. 
#### **VTG Side:** 
1. If a ticket is not already created, create one and make sure to get an on site contact. 
2. Work with the contact to determine the power/data status of the equipment on site. If needed, power cycle the modem/router, or other equipment. 
3. If after the power cycles don't work, figure out the ISP and get any account information and then call the ISP to see if they can see their equipment on site. If they do; then try to get transferred to Billing as it may be a billing issue, if they don't see the equipment then try to have a technician go on site or have an ISP technician come out. 
#### **Comm Core Side:** 
1. Is the Internet Working at the Site? 
1. Can you browse websites from a computer at the location? 
2. Are non-phone devices (computers, printers, etc.) online? 
3. Why this matters: No internet = no SIP registration to cloud PBX. 
2. Can You Call In or Out? 
1. What happens when you try to call out? 
2. Silence? Fast busy? Message? 
3. What happens when someone tries to call in? 
4. Does it ring? Goes to voicemail? Dead air? 
5. Why this matters: Helps determine if it’s a registration issue or just one-way audio/routing. 
3. Are All Phones Down, or Just Some? 
1. Are all phones offline, or just specific ones? 
2. If it's just some, are they in a different location? 
3. Why this matters: Indicates if it’s a site-wide or isolated issue. 
4. Has There Been a Power Outage or Internet Outage Recently? 
1. Did the power or modem/router reboot? 
2. Is anyone aware of a recent ISP issue? 
3. Why this matters: Power outages often cause routers/modems to grab new IP addresses, which can break whitelisting or firewall NAT rules. 
5. Has Your Public IP Address Changed? 
1. Can you visit https://whatismyip.com from a computer at the site and tell us the current IP? 
2. Why this matters: If the IP changed and isn’t whitelisted on the hosted PBX or pfsense NAT rule, SIP registration will fail. 
6. Can You Reboot the Edgemarc and Modem/Router? 
1. Have you already power-cycled the network equipment? 
2. After reboot, do phones attempt to come back online? 
3. Why this matters: Flushes stuck sessions, may trigger re-registration or new DHCP. 
7. Are the Phones Showing Any Errors? 
1. Do the phones say “Unregistered,” “Account Failed,” or “No Service”? 
2. Are there any red Xs or warning icons? 
3. Why this matters: Helps determine if the phones are failing to reach the server or failing to authenticate. 
8. 8. Have There Been Any Recent Network or Firewall Changes? 
1. Have any changes been made to the Edgemarc, modem, or other firewall devices recently? 
2. Why this matters: Unplanned changes may block SIP/RTP traffic or change routing behavior. 
9. Next Steps After Asking 
1. Based on answers: 
1. If public IP changed → Update whitelist on PBX and update NAT rules in PfSense 
2. If internet is down → Customer must resolve with ISP 
3. If only some phones down → Investigate VLAN/DHCP assignment or local switch port issues 
4. If Edgemarc is down → Reboot it and check connectivity 
5. If no SIP traffic seen → Use sngrep on PBX to confirm or request packet capture

127
GlazeWM Keybinds.md Normal file
View File

@@ -0,0 +1,127 @@
> Modifier legend:
> - `Alt` = Alt key
> - `Shift` = Shift key
---
## 🧭 Window Focus (Move focus between windows)
| Action | Key |
|------|-----|
| Focus left | `Alt + H` / `Alt + ←` |
| Focus right | `Alt + L` / `Alt + →` |
| Focus up | `Alt + K` / `Alt + ↑` |
| Focus down | `Alt + J` / `Alt + ↓` |
---
## 🪟 Move Windows (Rearrange layout)
| Action | Key |
|------|-----|
| Move window left | `Alt + Shift + H` / `←` |
| Move window right | `Alt + Shift + L` / `→` |
| Move window up | `Alt + Shift + K` / `↑` |
| Move window down | `Alt + Shift + J` / `↓` |
---
## 📐 Resize Windows
### Direct resize
| Action | Key |
|------|-----|
| Shrink width | `Alt + U` |
| Grow width | `Alt + P` |
| Grow height | `Alt + O` |
| Shrink height | `Alt + I` |
### Resize mode
| Action | Key |
|------|-----|
| Enter resize mode | `Alt + R` |
| Resize (H/J/K/L or arrows) | while in resize mode |
| Exit resize mode | `Enter` or `Esc` |
---
## 🧱 Window States
| Action | Key |
|------|-----|
| Cycle focus (tiling → floating → fullscreen) | `Alt + Space` |
| Toggle floating | `Alt + Shift + Space` |
| Toggle tiling | `Alt + T` |
| Toggle fullscreen | `Alt + F` |
| Minimize window | `Alt + M` |
| Close window | `Alt + Shift + Q` |
---
## 🧠 Workspace Navigation
| Action | Key |
|------|-----|
| Next active workspace | `Alt + S` |
| Previous active workspace | `Alt + A` |
| Last focused workspace | `Alt + D` |
### Jump to workspace
| Workspace | Key |
|---------|-----|
| Workspace 1–9 | `Alt + 1` … `Alt + 9` |
---
## 📦 Move Window to Workspace
| Action | Key |
|------|-----|
| Move window → workspace 1–9 | `Alt + Shift + 1` … `Alt + Shift + 9` |
| (Also switches focus to that workspace) | |
---
## 🖥️ Move Workspace Between Monitors ⚠️
> These move the **entire workspace**, not just a window.
| Action | Key |
|------|-----|
| Move workspace left | `Alt + Shift + A` |
| Move workspace right | `Alt + Shift + F` |
| Move workspace up | `Alt + Shift + D` |
| Move workspace down | `Alt + Shift + S` |
⚠️ **Easy to hit accidentally** — this is what causes workspaces to end up on the wrong monitor.
---
## ⚙️ Window Manager Controls
| Action | Key |
|------|-----|
| Launch Windows Terminal | `Alt + Enter` |
| Reload config | `Alt + Shift + R` |
| Redraw windows | `Alt + Shift + W` |
| Pause / unpause WM | `Alt + Shift + P` |
| Exit GlazeWM | `Alt + Shift + E` |
---
## 🧩 Layout Controls
| Action | Key |
|------|-----|
| Toggle tiling direction | `Alt + V` |
---
## 💡 Notes
- Workspaces are **not pinned to monitors** automatically
- Directional workspace moves (`Alt+Shift+A/F/S/D`) are the main cause of layout drift
- Consider adding explicit “snap workspace to monitor” keybinds if needed
---

BIN
Imgs/BLF_diagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

BIN
Imgs/pfsense_diagram_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
Imgs/pfsense_diagram_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
Imgs/pfsense_diagram_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
Imgs/pfsense_diagram_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
Imgs/pfsense_diagram_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

BIN
Imgs/proxy_arp_diagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

BIN
Imgs/queues_diagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

BIN
Imgs/ramp_diagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
Imgs/ssh_diagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

View File

@@ -0,0 +1,20 @@
![[phone_server_diagram.png]]
- **Customer Phone** - We use Yealink phones primarily, though we will work with Polycom, Grandstream, and more VoIP phones. 
- **Customer Router** (*Edgemarc*) - Edgemarc is a brand of router that is specifically designed to handle VoIP and particularly NATed VoIP traffic. The current model we use is a 2900e, and there are some older 4550 models in the field as well. 
- **Phone Server Router** (*PfSense*) - The PfSense Router will route traffic from the Edgemarc or customer router (based on it's public IP address) directly to the customer's phone server in our NOC. It is important because we can have many (100+) phone servers behind one PfSense in our datacenter, while only using 1 public IP address. 
- **Phone Server** (*FreePBX*) - The FreePBX phone server is our primarily used phone server for customers. It historically ran on CentOS Linux, and moving forward will be on Debian Linux. 
- **Head-End** (*Kamailio*) - The Kamailio server, also referred to as a "Kam" or "Headend" server. It routes all incoming and outgoing calls for our datacenters. There are two Kamailio servers in each datacenter for failover and load balancing. The number routing database can be interfaced with through RAMP. 
- **DSIP Router** - The DSIP Router is a Dynamic SIP router that routes SIP connections from phones based on the hostname they are trying to connect to. For example, If I was trying to connect to pbx3.ccproxy.net, the DSIP router would see that URL and automatically route packets from my phone to the pbx3 phone server. This allows us to have roaming clients like cell phones connect to servers over the public internet without needing to constantly whitelist a dynamic IP address. It also helps with security as the PBXs do not have a public IP address. 
- **SIP Carrier** (*Bandwidth*) - Our SIP Carrier connects our VoIP Traffic to the global PSTN network.

View File

@@ -0,0 +1,5 @@
- This diagram shows how we can use Proxy ARP to pass a public IP through the edgemarc and directly to the customer's data firewall. This allows the customer's data firewall to maintain a public IP so they can do any port forwarding, NATing, Client VPNS, etc. that they want to without the edgemarc interfering. 
- It allows us to keep QOS policies on the Edgemarc in place, and keep a dedicated percentage of the bandwidth reserved for VoIP traffic. This helps significantly with Call Quality. A guide on how to set this up can be found in the HUDU Global Wiki.
![[proxy_arp_diagram.png]]

View File

@@ -0,0 +1,4 @@
The diagram below shows different SSH tunnels which we use every day to access phone systems in both our Chicago and Youngstown datacenters, as well as to access devices behind a customer's Edgemarc router.
![[ssh_diagram.png]]

View File

@@ -0,0 +1,6 @@
| | | |
| ---------- | ------------- | ------------- |
| Chicago | 10.0.82-89.x | |
| Kansas | 10.0.90.-91.x | RAMP \| IONOS |
| New Jersey | 10.0.100.x | |
| Youngstown | 10.0.7.x | |

13
Remote into Phones.md Normal file
View File

@@ -0,0 +1,13 @@
Go to company in Hudu > Passwords
Find Company EM > sign in with hudu creds > Filter for User IP
Launch Putty > load NEW EM Putty Proxy > Paste Company EM IP address into putty > Open
SSH with Company EM credentials (root - right click to paste)
Paste Users Phone IP into URL > sign in with Company EM creds

View File

@@ -0,0 +1,70 @@
[RAMP](https://ramp.comm-core.com/auth/login/redirect) 
RAMP is a site for the resellers to access their client servers. It allows them to update and view the option to access the FreePBX portal, the UCP or User Control Panel, and the Webmin.
![[ramp_diagram.png]]
#### Admin 
- Users – gives an account of all the users that have access to their servers 
- Companies – gives an account of all the companies that have access to their servers  
- Group – gives the type of groups that can be set for each specific person 
#### Products 
- All Products – this is used by the client to see what products we offer and the pricing 
- Bill profiles – this is used for how much of a markup per equipment or services 
#### Servers 
- Overview – The IP addresses of all the servers 
- Manage Servers – This will give information on the servers themselves and where to check if ccproxy isn't working for a specific server 
- Server Setup – This is where a new server would be added (normally done when the server is created) 
- E911 Checker – Gives the list of servers with each extension that is setup for e911 (will be used for main locations, not remote users) 
#### Billing 
- Extension Lists – gives lists of extension numbers tied to their wholesaler 
- Unbilled Numbers - this is a list of numbers that are not being billed by us for specific clients 
#### Kamailio 
-   This is where the numbers, in bandwidth that are pointing to  
- Chicago: 
- 198.181.166.102 
- 198.181.166.103 
- Youngstown: 
- 198.181.167.101 
- 198.181.167.102 
#### Search/Add Numbers  
- this field is where to search for numbers that (In Bandwidth) are pointing to either the YT Kamailio and/or Chi Kamailio 
- It will also show the server IP that the phone number, in question, is pointing to 
- Bulk Import – this field allows mass importing of DiDs for a specific server 
- Activity Review – this field is basically the "apply config". If any changes happen within Kamailio, this will have to be selected and applied 
- Trusted IPs – this field is used for old servers that are moving to kamailio and needs to have their IP address whitelisted 
- Logs – this field allows logs to be searched for in kamailio

133
Training/02 Pfsense.md Normal file
View File

@@ -0,0 +1,133 @@
The chain of routers that are used to route all calls from PBX out to the internet. These will be used by all servers, but k12 schools and on-prem servers. 
Normally, the PF sense external is under the Settings> Asterisk Sip settings (in the FreePBX) 
| | | |
|---|---|---|
|Chicago| | |
|Private||External|
|10.0.81.11||198.181.166.11|
|10.0.81.12||198.181.166.12|
|10.0.81.13||198.181.166.13|
|10.0.81.14||198.181.166.14|
|10.0.81.15||198.181.166.15|
|10.0.81.16||198.181.166.16|
|10.0.81.17||198.181.166.17|
|10.0.81.19||198.181.166.19|
|10.0.81.20||198.181.166.20|
|10.0.81.22||198.181.166.22|
|10.0.81.23||198.181.166.23|
|10.0.81.24||198.181.166.125|
|10.0.81.25||198.181.166.126|
| | | |
|---|---|---|
|Youngstown| | |
|Private||External|
|10.0.72.1||74.112.4.108|
|10.0.72.2||74.112.4.219|
|10.0.72.3||74.112.5.55|
|10.0.72.4||74.112.4.42|
|10.0.72.5||198.181.167.10|
|10.0.72.6||198.181.167.11|
|10.0.72.7||198.181.167.12|
|10.0.72.8||198.181.167.8|
|10.0.72.9||198.181.167.14|
 Accessing the PF Sense Routers:  
![[pfsense_diagram_1.png]]
- Chicago Login screen 
- Username: would be your first and last name 
- Password: would be the password used to log into the Chicago RDP 
- Youngstown PFsense Login 
- Username: admin 
- Password: Qu@l1ty123 
Once logged in, what we normally use are the following: 
![Machine generated alternative text:](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIcAAABpCAYAAAAQqTD4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAZlSURBVHhe7Z3LbttGFIaHsmzZBmxn0S5apIGBuihQJEULNKusUqNoNt30FQqki6z9Dtl0EyAvkVfoLttsiqYoIAfwJb7BV8U3Wb5IKn+GpzggZihSoi3S/D/geGYOZ0Yk59eZMYeAvB+M6Zqc8abbNQ89LywNFzmXPJ7TINj6iPoqV/6fvBmw+XHytlTy2rRf8r3K0lb7gE7zYCB6HWkNRH3f+8KQPPr37g8YOd76nbh40Ke60aetrfjlM6WOrb6uq4/1KgvR9q56wwDnIvR7TnHXI8cqbb8wiH3j+AD4bfWTGMAJahO/pLp/IPmoD/WkPVJbWdpoA7Y0D6aRa0lrch+0yTGAdGBxwL72P0iDsq1eUgPoQ5v4darr/+tfnDagj8elYrb20TQPphnkXkfvMa4bfoB8peNnsrCv/M4BUtvxNAbi/JJqPz43avp4XAqr+zdDt5Vj0TQPJuhrzMKApOi7EuYzQW5qHngXfvsBzgtlOb9ouYgMeu76/rjIVBzDQgZbW9qbF+0jz2Qh6rh7Jse8uQyec+gO8n1bSRoGEgcaSuNoJxRJ8elLHLpBcWdtYgMLUowv/mtJveZAQwhCjNwuIIgR38bCfCooiPKQWBxcQ5QPz1dHonG/49v0xywpCYmfkI77xuhRLrxqtZpozL+4wkYuKRNerVZLJI7Pz8/DHCkL3szMTE9xdLtd88nRUVgiZcGbnZ2NFQeEARt9/z70kLLgzc/Px4qj0+mYdrtttl6/Dj3pefPhg3l4B//vkCLhLSwsxIoDwjj31xt/vnwZeuL5q9kM0u8mJ4MUwIeypKQYeK9evYoVB4RxdnZm/nj6NPTE83e4cP22VgtSAJ8uk2Lg1ev1WHG0Wi1zcnJifnv0KPS4+cf/d/d+terMR32C+IDNn6YuyQ6v2WzGigNRo9FomF/m5kKPm7f+YD0IB8mW1z5N3PGor1dfJDsqExMTppeNj+P5aG9GRrCf9xFbXvv0y7z6OMoa8SWpS7Il9a6sCxkoGUTJ24Afr8aLCVLWfQBdF6Z90bokOzITB9ADCOuXuLZRIQzyOSSeTMWRFAyofOP1YGufDHq0rvhtPpItXhePP2PAgvTg4MD8dPdu6CFlYSiRgxQDioM4oTiIE4qDOKE4iJNU4uCjpnLByEGcpBIHHzWVC0YO4oTiIE4oDuKE4iBOMhOH7JBqbGWXTxvJB0OPHNhu19vz3H7PD5mKAwPr+ubDL4PP6FAMuOYgTjIXByPD7eFGIoeIBanOk3xzLeKwRQ9Zb4iR/MM1B3HCF4yJE0YO4oTiIE4oDuKE4iBOUomDTybKBSMHcZJKHHx0VS4YOYgTioM4oTiIk6GKgzuz+SYzcch2vBgpPplGDr0lT4EUnxuZVqJCsQlHIo6trs1Prp9cLEgx8LaoE/WTmyVTccg3XAY1DbqtJlomN8e1rDn6QdrqPiRvEw25fq5lWpEB7ZdoWxELuVmubc2hBaK//TbRRI+LGGw+cnPwHVLiJBf/rZB8QnEQJxQHcUJxECcUB3GSWBz4Ia/+n1yQIpJYHJ+OjfEd0pKRSBz4sb0fHz8OS6QsJI4cPz9/bj4bHQ1LpAz0FAeiBqxSqZhfnz1LriZSeBJPK2P+mmPuyRPz+4sX5st798y47yO3m557K+12O/i58r29PbO+vm4WFxdNvV43S0tLZmVlxezu7pqjo6PgN++vrq5Mp9MJ2vXolhSAVJGjVquZ6elpMzMzY6ampgKbnJwMfrF61F+PVKvVoK7necE0hJRWYEsSOS4uLszh4aHZ2dkxGxsbQdSALS8vm83NTbO/vx9Ej1arFUQPtGEEKT49xQEgDplaYJhOVldXA4NYMLU0Gg1zenoa1BWBoGvpniIpHonEgYHGex2IHogSW1tbgSjW1taCPCIK/MfHx0E9EQiiBwVSXBKJA0j0wPSBSIEIAmFsb2//H1EgnmazGUwvl5eXgTgkgpDikVgcsvYQgeDtMBgiBqYU5LU4UBdtYEDWIKQ4JBYHwIDDMHVgfQGRQCwQhaw5IAwRBwSB6UWgQIpFKnEAEYgWiUQLPOuQVKYVCqK4pBYHkClGUphEC4gCfohCUlJM+hIHkLUEUjERjPh1SopH3+LQaAFQFLeHTMRBbifcgSdOKA7ihOIgTigO4oTiIE4oDuKE4iBOKA7ihOIgTigO4sCY/wDX6SgBtCPOAwAAAABJRU5ErkJggg==)
Aliases – Where to put in an IP address that the client wants to allow access to the server, as shown below: 
![[pfsense_diagram_2.png]]
NAT – Where the actual "rule" for the Alias is setup, as shown below: 
![[pfsense_diagram_3.png]]
To create an Alias, see below: 
![[pfsense_diagram_4.png]]
Name – Name of the company/client 
Description – same as Name 
Type – leave at host(s) 
Hosts – Click the add and enter the IP addresses that are to be granted access to the server 
I.e public Ip's of routers and/or public IP addresses of remote users 
To create a NAT, see below: 
![[pfsense_diagram_5.png]]
Everything should be default, besides these options: 
Protocol - TCP/UDP 
Source – Click Advanced and select the following: 
Type – Single Host or alias 
Address – The name of the Alias that was created prior to creating NAT198.181.166.19 
Destination Port Range -  
From: Other and box to the right put a 1 
To: Other and box to the right put 65535 
Redirect Target IP – The ip address of the freepbx server 
Redirect Target port – Other and the box to the right, put a 1 
Description – name of the client and/or company 
Once that is filled out, select Save and apply changes will appear on the next page. Make sure to click APPLY CHANGES 
VPN – Virtual Private Network 
VPNs would be used when there are quality issues that cannot be solved by normal troubleshooting 
The following document will show how to create a VPN when using an Edgemarc 
<<VPN setup with EM.docx>> 
1. Setup ipsec tunnel to customer's router. Go to VPN > IPSec and setup phase 1 and phase 2. 
1.  Note: You cannot NAT and VPN on the same router. If you are switching modes, you must delete the other rule. 
 Steps required on freepbx13 or later: 
2. Go to Settings > asterisk sip settings > add in the customer's LAN subnet 
3. Go to Connectivity > firewall > zones > networks. Add in the private IP Range as "Trusted" 
Steps required on freepbx12 or earlier: 
1. Go to webmin on port 9001 > Networking > Linux Firewall (or search firewall) > Add in the customer's local subnet (if there is a 'drop all' rule) 
 Steps required on webmin: 
2. Go to Networking > Network configuration > Routing and Gateways. Under static routes, add in "eth0 - network - netmask - gateway"

165
Training/03 FreePBX.md Normal file
View File

@@ -0,0 +1,165 @@
FreePBX is the server that is used to configure all the settings needed to customize each phone server.   Setting up Extensions 
- Difference between Ring Groups and Queues 
- Proper Configuration of Time Conditions 
- Directory Setup 
- What is DISA and how is it useful 
- Music on Hold and conversion 
- Paging and Intercom Setup 
- System Recordings with Announcements 
- Setting up an IVR 
Difference Between Ring Groups and Queues 
Ring Group 
- Rings a group of phones for a set amount of time until someone answers or the timeout option happens.   
- Max of 60 seconds 
- Only static agents can be added.  
Queue  
- Rings a group of phone for a set amount of time until someone answers or the time option happens. 
- No limit on caller being on hold 
- Static or Dynamic Agents can be assigned to allow users to log in and out of the queue 
- Breakout menus can be added to allow for an Auto Attendant to be added 
- Follow me settings can be used when ringing the extension. 
Time Conditions 
To create a Time condition you must first create a Time Group 
- Description – Name for the Time Condition i.e Holliday or work hours. 
- Time to Start – This is the starting time to match starting time of day.  i.e. 08:00 or 00:00 for midnight 
- Time to Finish – This is the ending time to match end of day. i.e. 17:00 or 23:59 to include all night 
- Week Day Start – Mon – Sun choice 
- Week Day finish – Mon – Sun choice 
- Month Day start – This is 1 – 31 (useful for holiday time) 
- Month Day finish – This is 1 – 31 (useful for holiday time) 
- Month start – This is Jan – Dec (useful for holiday time or being closed over a months' time) 
- Month finish – This is Jan – Dec (useful for holiday time or being closed over a months' time) 
- After clicking Submit you can go back into the Time group and add another option. (useful for holiday time or different shift hours like Saturday hours) 
- Time Condition name – Descriptive name of the time condition 
- Enable Override Code – This will generate a feature code and also a hint that can be used as a BLF on a phone to put the time condition to Green (Time Matches) or Red (Time Does not match 
- Time Group – This is for the time group that we just created or one already in the system. 
- Destination if time matches – This is any created destination in the phone system. 
- Destination if time does not match – this is any created destination in the phone system. (Time conditions can be pointed at other time conditions) 
Directory 
- Directory Name – Simple name given to the directory 
- Directory Description – Detailed Description of current directory 
- CallerID Name Prefix – This will prepend to the callers CID to let them know it came from the directory. 
- Alert Info – Allows for a changing of the ringer on the phone. 
- Announcement – This allows you to add a custom announcement to the directory for callers to hear before searching the directory. (Default asks the caller to dial the first 3 digits of the persons first or last name.)  
- Invalid Retires – Number of times a person can enter a name that doesn’t match in the directory before going to Invalid destination 
- Invalid Destination – Any configured destination in the phone system 
- Return to IVR – If this option is also checked in the IVR and they came from an IVR then instead of going to the Invalid Destination it will return them to the IVR 
- Announce Extension – Will play back the extension of the name they entered before sending them to the extension 
- Directory Entries – If you click the green plus a dropdown will appear that will allow you to choose any extension on the phone system there is also an option for a custom option 
- Custom Option – Allows for entry of a custom name and a custom destination this can also be an external number and will follow the outbound routes if extension doesn’t exist on the system. 
- Name Announcement – Text to speech will try to sound out the name of the person called, Spell Name option will spell the name as it is typed out in the Name box, and you also have the option to use one of the system recordings set on the system 
- Names can be separated with a space.  i.e. if a person's extension is labeled Thomas but they go by Tom you can add both names to the name field.  
- There is an option to add all users also but it will add on to the current list and not just add the ones that are missing. 
DISA (Direct Inward System Access) 
Allows People to call into the main IVR and press the number associated with DISA and it will mask their number when making calls out 
- DISA name – Descriptive name given to the DISA. 
- PIN – Password set to be able to call out 
- Response Timeout – The maximum time before hanging up if the user has dialed an incomplete or invalid number 
- Digit Timeout – The maximum time between digits when dialing. 
- Caller ID – This is the outgoing caller ID for the DISA.  
- Format can be NXXNXXXXXX or “company name” <NXXNXXXXXX>  
- Allow Hangup – Allow hangup by pressing the incall hangup code of ** while in call and make a new call without dialing back in. 
Music on Hold 
-  Same drag and drop as the system recordings 
- These are the files that will play while callers are on hold or waiting in queues. 
- Due to copyright laws these cannot be just any music you must own right to the files. 
Paging Groups and Intercom 
- Paging Extension – Any number that isn’t already assigned to another option or extension 
- Group Description – Detailed name of Paging Group 
- Device List – Choose multiple extensions with the Ctrl Key (version 2.9 and older) Drag and drop extensions (version 2.10 and newer) 
- Alert Tone -Normally set as default, unless specified wanting another ringer  
- Speaker Volume Override – Leave as Default 
- Busy Extensions 
- Skip will skip extensions that are currently on the phone 
- Force will ring that extension regardless if they are on the phone or not 
- Whisper – Will try to use chanspy and break into a phone call. 
- Duplex – Will allow user to talk back 
- This takes up a lot of CPU when it is enabled and should be limited to 5 extensions 
- You can also run into echo issues if phones are near each other 
- Default Page Group – Allows the adding of extensions to the group from the extension screen.  Only one default group can be active.

View File

@@ -0,0 +1,162 @@
**These are defaults for FreePBX, but may differ from client to client** 
#Navigation > Admin > Feature Codes 
Dial 7777 - Simulate and inbound call 
*1 = Toggled recording active calls 
*[ext.] - Call directly to voicemail 
TRNF + *[Extension #]. If the extension starts with 1, it confuses the system 
*45 - Log in/Out of queue 
*45*[ext.] - (supervisor to log other users in/out) 
*45*[ext.]*[queue #] - Log in/Out from single specific queue 
*46 - Pause/Unpausing from all queues 
*46*[ext.]*[queue #] - Pause/Unpausing from single specific queue 
*97 - Check voicemail 
*98 - Check another extension voicemail 
*280 - Call Flow Control 
Blacklist 
*30 – Blacklist a number 
*32 – Blacklist the last caller 
*31 – Remove a number from the blacklist 
Call Forward 
*72 – Call Forward All Activate 
*73 – Call Forward All Deactivate 
*74 – Call Forward All Prompting Deactivate 
*90 – Call Forward Busy Activate 
*91 – Call Forward Busy Deactivate 
*92 – Call Forward Busy Prompting Deactivate 
*52 – Call Forward No Answer/Unavailable Activate 
*53 – Call Forward No Answer/Unavailable Deactivate 
*740 – Call Forward Toggle 
Call Waiting 
*70 – Call Waiting – Activate 
*71 – Call Waiting – Deactivate 
Core 
*8 – Asterisk General Call Pickup 
555 – ChanSpy (then * to toggle through extensions) 
666 – Dial System FAX 
** – Directed Call Pickup 
*2 – In-Call Asterisk Attended Transfer 
## – In-Call Asterisk Blind Transfer 
** – In-Call Asterisk Disconnect Code 
*1 – In-Call Asterisk Toggle Call Recording 
7777 – Simulate Incoming Call 
*12 – User Logoff 
*11 – User Logon 
888 – ZapBarge 
Day Night Mode 
*280 – 0: Emergency 
*281 – 1: Additional announcement to play to support if on (night) 
Dictation 
*35 – Email completed dictation 
*34 – Perform dictation 
Do-Not-Disturb (DND) 
*78 – DND Activate 
*79 – DND Deactivate 
*76 – DND Toggle 
Follow Me 
*21 – Findme Follow Toggle 
Info Services 
*69 – Call Trace 
# – Directory 
*43 – Echo Test 
*65 – Speak Your Exten Number 
*60 – Speaking Clock 
Paging and Intercom 
*80 – Intercom prefix 
*54 – User Intercom Allow 
*55 – User Intercom Disallow 
Phonebook Directory 
*411 – Phonebook dial-by-name directory 
Queues 
*45 – Queue Toggle 
Recordings 
*99 – Check Recording 
*2968 – Edit Recording: Additional_Support_Announcement 
*2969 – Edit Recording: ServiceAnnouncement 
*77 – Save Recording 
Speed Dial Functions 
*75 – Set user speed dial 
*0 – Speeddial prefix 
Voicemail 
*98 – Dial Voicemail 
*97 – My Voicemail

View File

@@ -0,0 +1,56 @@
Applications > Extensions 
Quick Create (no legacy_chan_sip it's depreciated) 
- Use SIP [chan_pjsip] 
- 3 digit extensions. Avoid using extensions starting with 1 
- Display name = user 
- Outbound caller ID <blank>
- email address 
#Next 
- Parking lot 
- Create User 
- User Groups 
- Voicemail 
- VM Pin is defaulted to the extension when created to force user to setup their mailbox on first use 
#Finish 
Apply Config (Top right) after creating new extensions 
#edit extension
Voicemail
- Require from same extension. On is more secure 
- *97 will ask password on that phones extension without prompting for a pin (if a single user office with no one else has access to, this can be left off. but if on a shop floor for example, you would want to turn it on) 
- Email address = VM to email 
- Email attachment Y/N 
- Play CID 
- Play Envelope 
- Delete Voicemail. VTG sets this to yes to prevent the phone mailbox from filling up 
- If users are not getting emails, you can disable this and do a test for troubleshooting 
- VmX Locater = IVR options for the extension
General 
Outbound CID - Blank if pbx default # 
!!!Emergency CID - Must make sure is correct E911 # 
Secret - This is used on the phone for registration 
Extensions does not equal users 
User manager settings can be left default in most cases

108
Training/Bandwidth.md Normal file
View File

@@ -0,0 +1,108 @@
Bandwidth is the VoIP carrier. It handles actual phone numbers that are going to be used for voice calls. If a number is not in Bandwidth, it is not our VOIP number, or it may be used by another non-voice carrier (Pangea), which will be mentioned in the next part 
The web address for Bandwidth's dashboard is: 
- [Dashboard.bandwidth.com](http://dashboard.bandwidth.com/) 
- Login information will be provided by Mike and/or Greg 
- Searching for numbers will be done in the Search Telephone number box on the right hand side. Make sure to enter just number, no dashes or any other characters( I.E 4192559070). Once the number has been entered, press the Search button 
- Putting the mouse over the number under the "1 Telephone number" will allow you to click and give information about that specific number. Clicking on that number will show you the following screen 
##### The information on this page is as followed; 
- Telephone number: The actual phone number in question 
- Status: If the number is in service or not 
- Order ID: Will show the original order for this number to come over to Bandwidth 
- Order date: The date the order to bring the number over to Bandwidth happened 
- Last update: Last time the number had any kind of updates to it (Caller ID changed, changed location, etc) 
- Lata: Local Access Transport Area, basically the 3 digit code of the geographical area in which the number is located 
- Rate Center: The city in which that number is owned 
- Line Options: The different changes that are made to the presentation of the phone number 
- Caller Name display enable: If this number will show Caller ID information or not 
- Calling name information:  
- Service type: Residential or Business 
- Presentation: If the number will the actual number or be anonymous on Caller IDs 
- Display: The name to be shown on the Caller ID 
- Sub Account: That is the business account this number will be tied to 
- Location: The location of where this number will go to 
- If needing to verify settings, click on the hyperlink in the "location" and the following will show:  
Sub-Account will not be allowed to be edited from this page, it would have to be done using the change sub-account:  
- Location name should also be edited on the prior page 
- Always set as default location to No 
- CNAM display Default and Enforced, always click yes 
- Traffic Distribution mechanism will normally be set to Random and the Voice IP address will, normally if they are hosted, on either the Chicago headend or Youngstown 
- Chicago numbers: 
- 198.181.166.102 
- 198.181.166.103 
- Youngstown numbers: 
- 198.181.167.101 
- 198.181.167.102 
- If the number is an on-prem, the external IP of that server, will go in that box and the Traffic Dist. Mechanism will change to None 
#### Manage Telephone number: 
- Line option will allow changes to be done to update the line (I.E Call Forwarding, Calling Name information) Those are the only 2 that will be generally edited if need be 
- Call Forwarding will allow this number to be forwarded to another number (It will normally be forwarded through PBX, but if the server is down, this is where to setup the forwarding) 
- Calling Name information will be the setup for Caller ID names for Outbound Calls 
- Change Sub-Account and location: 
- Current Sub-Account: The business owner of the number in question 
- Current location: The company that the number is setup for 
- This would only be used if the number, in question, needs to change from one location to another 
If there are no selections for the number typed in, you can search to see who the carrier is by the following: Go back to the main screen (dashboard) and Select "Orders" from the top and click on "Port Numbers". Do not click on the sub menu of check portability. Once Port Numbers is selected, the following screen will show:  
 Within that "Telephone numbers to port", type in the phone number, once again no special characters, just straight number and click on the "Check Portability" button below the box and the following will show:  
In the "Losing Carrier", that is the current carrier that has that number. If the client owns that number, transfer them to the Porting Specialist (Chris Tiefel) and he can take it from there. 
If asking for the entire list of phone numbers a specific client has, go back to the Dashboard and click on "Numbers" and "View Active numbers". The following screen will then show: 
The best option to select on this page is the "Show all numbers on your account (sub account/location) 
Once that is selected. The sub account will populate with all the main holders of the numbers ( I.E Comm-Core, Alphalink, etc)  
After making the selection of the main carrier of the number, select the location, which will consist of the actual client that number belongs to: 
Once the Sub Account and Location has been selected, Click "Search" and there will be a list below that will populate all the phone numbers associated with that specific location: 
From there, those numbers can be sent on an excel sheet for easy distribution, or clicking on each number will show the telephone information, as mentioned earlier.

View File

@@ -0,0 +1,11 @@
BLF’s change color based on event status 
#Naviation > Settings > Clearly Devices > Side Tray > Model Layout Template 
#Sample 
Line Keys > Line Key 4 > BLF 
#Variable Ex. *45* __sip_user_1__ 
##This is not compatible with Yealink phones
![[BLF_diagram.png]]

View File

@@ -0,0 +1,14 @@
#Add Ring Group 
- Ring Group number (Extension) 
- Description 
- Extension list (drop down menu) 
- Ring Strategy (research other strategies) 
- Ring Time 
- Announcement (Ex. OOO) 
- Play Music 
- CID Name Prefix 
- Alert Info - External Ring tones 
- Ignore C(all)F(forwarding) Settings 
- Destination

View File

@@ -0,0 +1,3 @@
#Ex. How long calls are waiting in line
![[caller_announcment_diagram.png]]

View File

@@ -0,0 +1,17 @@
#Max calls per queue (0 = Unlimited) 
- Join Empty 
- Determines if new callers Will be admitted to the Queues If not. the failover destination Will be immediately pursued, The options include: 
- Yes Always allows the caller to join the Queue. 
- Strict Same as yes but more strict. Simply speaking if no agent could answer the phone then don't admit them. If agents are in use or ringing someone else. caller will still be admitted. 
- Ultra Strict Same as Strict plus a queue member must be able to answer the phone •now' to let them in. Simply speaking. any •available' agents that could answer but are currently on the phone or ringing on behalf of another caller will be considered unavailable. 
- No Callers will not be admitted if all agents are paused. show an invalid state for their deuce, or have penalty values less than QUEIJE_MAX_PENALTY (not currently set in FreeP8X dial plan). 
- Loose Same as No except Callers will be admitted if there are paused agents who could become available. 
- Leave Empty 
- Determines if callers should be exited prematurely from the queue in situations where it appears no one is currently available to take the call. The options include: 
- Yes Callers will exit if all agents are paused. show an invalid state for their device or have penalty values less than QUEUE MAX PENALTY (not currently set in FreePBX dial pian). 
- Strict Same as Yes but more strict. Simply speaking if no agent could answer the phone then have them leave the queue. If agents are in use or ringing someone else. caller will still be held. 
- Ultra Strict Same as Strict Pius a queue member must be able to answer the phone 'now' to let them remain. Simply speaking. any 'available' agents that could answer but are currently on the phone or ringing on behalf of another caller Will be considered unavailable. 
- Loose Same as Yes except Callers will remain in the Queue if there are paused agents who could become available. 
- No Never have a caller leave the Queue until the Max Wait Time has expired.

9
Training/D - Queues.md Normal file
View File

@@ -0,0 +1,9 @@
#Rule of Thumb 
- When you have more incoming calls than agents 
#Sample
![[queues_diagram.png]]
#Navigation > Applications > Queues

27
Training/E - IVR.md Normal file
View File

@@ -0,0 +1,27 @@
#Navigation > Applications > IVR > Add IVR 
- Name 
- Description 
- Announcement (Initial call recording) 
- Enable Direct Dial (Y/N) .  
- If Enabled, Configured through #Applications > Directory 
- Timeout 
- Retries 
- Recording 
- Append announcment  
- Invalid Retries 
- Invalid Recording 
- Invalid Destination 
- Append Announcement to invalid 
- After playing the Invalid retry recording, the system will replay the main IVR announcement 
- IVR Entries 
- Mapping of entries 
- Submit 
- Apply Config 
Testing 
#Navigaiton > Connectivity > Inbound Routes > Edit 
- Set Destination 
- Apply Config

8
Training/General Tab.md Normal file
View File

@@ -0,0 +1,8 @@
#Add Queue 
#Most Commonly used settings in video
- CID Prefix 
- Ring Strategy - Most common- Ringall, rrmemory 
- Autofill 
- Skip Busy Agents

30
Training/General VTG.md Normal file
View File

@@ -0,0 +1,30 @@
## **Never Mark Tickets Closed**
**Phone Notes**
call pause - \*46
SkyNet Sign in:
ext - 2060
password - 123456
**ESO tickets**
Completed no survey
**ScreenConnect**
toledohelpdesk.com
**Yealink Config**
IP address in browser URL (192.168.110.145)
username: admin
Password: 222222
Send Emails to the Ticket
CC help@vtgus.com
and add Ticket summary to subject line

6
Training/Navigation.md Normal file
View File

@@ -0,0 +1,6 @@
FreePBX  
###### - #Connectivity **> Firewall > Networks** 
- **Hamburger > Advanced > Advanced Custom Rules**

View File

@@ -0,0 +1,2 @@
- Add to iSymphony (Not sure if VTG uses. I will find out)

132
Training/Pangea.md Normal file
View File

@@ -0,0 +1,132 @@
Pangea is the e-fax/fax carrier. If the number is not in bandwidth and used for faxing, it would be in this carrier. 
To access Pangea, go into the Comm-Core wiki page and find "eFax" and this page will load: 
The option to choose, is the "eFax (vtg_internal) under the "matching pagenames". Once selected the following page will load: 
Login: comm 
Password: stE5tawR 
Enter the creds and login the following screen will appear: 
Selecting "Users" would be the main option to select from this page 
Create User: If there isn't a profile for the fax/eFax, the user would need to be created, to create the user, click "Create User" and the following will show: 
To setup fax to email, use the following: 
Enter Login Name (typically email address) 
Set Password 
Global Configuration 
-Check "SSL Fax"    
-Check "Allow Resend Fax"    
-Check "Allow PC to Fax"    
-Check "Receive faxes as PDF" 
Fax to Email Configuration 
-Check "Allow Fax to Email"    
-Enter Email Address    
-Enter Fax Number 
 Fax Confirmation Settings 
-Receive Email Confirmation      
-Enter Email Address  
-Check "Failure" and "Success" 
 Billing Settings 
-Check "Reset usage every 1st of the month"    
-Tariff: "1in1out"    
-Company: "_NO_COMPANY_" 
 Save 
Fax to email requires no physical equipment, but does require a driver. Below is the document with the drivers and instructions on how to install: 
<<eFax Setup.docx>> 
Fax to Fax 
Faxing from a fax machine would need an ATA to transmit the phone line from Analog to Ethernet. Connect the Ethernet cord from the back of the ATA and plug into a working jack. Setup the "Create User" as it would be done for an eFax, but with a few changes.  
Listed below are the changes:  
To setup fax to fax, use the following: 
Enter Login Name (typically email address) 
Set Password 
Global Configuration 
 -Check "SSL Fax" -Check "Allow Resend Fax" -Check "Allow PC to Fax" -Check "Receive faxes as PDF" 
Fax to Fax Configuration 
-Check "Allow fax to fax" 
-Check "Deliver fax when ATA is offline" 
-Enter the mac address (No :, just numbers and letters) 
-Line 1 – Fax2fax – No. Enter fax number (just numbers) 
-Check "Deliver Fax to Fax Machine" 
Fax Confirmation Settings 
-Receive Email Confirmation     -Enter Email Address -Check "Failure" and "Success" 
 Billing Settings 
-Check "Reset usage every 1st of the month"   -Tariff: "1in1out"   -Company: "_NO_COMPANY_" 
 Save 
Reports 
Checking reports will be helpful, in the sense that someone is unable to fax in/out using either email and/or fax machine. Below is how to access the reports on the fax portal 
Click on "report" next to the fax client and the following will appear: 
Select the date requested and click on "show report" The next page will show: 
This is the page that will show the information about a sending fax and/or receiving faxes 
-Status – If it is fax to fax or fax to email 
-FaxID – the information needed to troubleshoot with Pangea 
-UserID – Is the User ID from the search page 
-Time – what time it was sent or received 
-Rate – How much each fax costs 
-Pages – How many pages were faxed 
-Duration – How long it took to send or receive the fax 
-User Cost – Rate x Pages 
-Email – If the fax was set to email to address 
-Orig Phone Number – where the fax went or came from 
If there are any technical questions, reach out to Pangea at 503-221-1111

View File

@@ -0,0 +1,5 @@
- Static Agents. Will ring no matter what 
- Dynamic Agents.  Can use feature codes to log in/log out of queues 
#extension,# to set priority (ex. 200,1 & 201,0)

View File

@@ -0,0 +1,2 @@
#Typically not used or least not by HD

View File

@@ -0,0 +1,12 @@
#Timing - How long a caller can wait 
#Capacity - How many calls in queue 
- Max wait time (default: unlimited) 
- Strict - will force call to next agent 
- Loose - Keeps ringing to agent 
- Agent Timeout 
- Retry - Time in between attempts between agents 
- Wrap-Up-Time 
- Auto Pause 
- Good idea for high volume calls

3
Training/VoIP Notes.md Normal file
View File

@@ -0,0 +1,3 @@
This is in some way just an extension of [[General VTG]]