Ask support questions in Discord or GitHub Discussions, not in the issue tracker. Keep issues for bugs and feature requests, and use the bug report template so maintainers can reproduce the problem.
Please don’t ask individual maintainers for support directly. Questions in the public channels help everyone who hits the same problem later.
Contributions of every kind are welcome: code, docs, issue triage, and answering questions. Read the contributing guide before you open a pull request. For large or controversial changes, start a discussion on Discord or GitHub Discussions first.
Technical discussions happen on Discord and GitHub Discussions. Maintainers also hold open office hours; join the Discord server and follow the announcements channel for the next one.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Routr","description":"Routr is a programmable SIP proxy, registrar and location server built as a set of cloud-native gRPC services.","colors":{"primary":"#1F8F8E","light":"#5FCFCE","dark":"#1F8F8E"},"logo":{"light":"https://mintcdn.com/routr-docs/iaqIipuuzAjyl_cH/logo/light.svg?fit=max\u0026auto=format\u0026n=iaqIipuuzAjyl_cH\u0026q=85\u0026s=46cd1037119709d8341f90de12fdd541","dark":"https://mintcdn.com/routr-docs/iaqIipuuzAjyl_cH/logo/dark.svg?fit=max\u0026auto=format\u0026n=iaqIipuuzAjyl_cH\u0026q=85\u0026s=b340179f328e1846b168b53e0cf261dd","href":"https://routr.io"},"favicon":"https://mintcdn.com/routr-docs/iaqIipuuzAjyl_cH/favicon.svg?fit=max\u0026auto=format\u0026n=iaqIipuuzAjyl_cH\u0026q=85\u0026s=d0eb6868d8786cdfaab5b72affaa3d20","appearance":{"default":"dark"},"background":{"color":{"light":"#FFFFFF","dark":"#181818"}},"navbar":{"links":[{"href":"https://routr.io","label":"Website"},{"href":"https://github.com/fonoster/routr/discussions","label":"Discussions"}],"primary":{"type":"github","href":"https://github.com/fonoster/routr"}},"footer":{"socials":{"x":"https://x.com/fonoster","github":"https://github.com/fonoster/routr","linkedin":"https://linkedin.com/company/fonoster"}},"fonts":{"heading":{"family":"Poppins","weight":600},"body":{"family":"Poppins"}},"styling":{"codeblocks":"system","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/fonoster/routr"},{"anchor":"Community","icon":"discord","href":"https://discord.gg/4QWgSz4hTC"},{"anchor":"Previous versions","icon":"clock-rotate-left","href":"/previous-versions"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"routr-docs","hasAudioNarration":false,"actualSubdomain":"routr-docs","customDomains":["docs.routr.io"],"gitSource":{"type":"github","owner":"fonoster","repo":"routr","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":"","_id":"6ad98ce6a48533467ae0274a"},"chroma":{"latestBuiltDeploymentHistoryId":"6ad98ce9a48533467ae02757","collectionId":"7e3efbde-ef83-4bd9-a2d7-8a87b4140fb6","liveDeploymentHistoryId":"6ad98ce9a48533467ae02757","schemaVersion":"v3"},"entitlements":{},"buildId":"6ad98f3ba48533467ae03dcc","clientVersion":"0.0.3926","searchFilterCounts":[{"language":"default","tag":"Docs","count":33},{"language":"default","tag":"Reference","count":23},{"language":"default","tag":"How-to guides","count":15},{"language":"default","tag":"Components","count":9},{"language":"default","tag":"Connect resources","count":8},{"language":"default","tag":"Concepts","count":7},{"language":"default","tag":"Tutorials","count":5},{"language":"default","tag":"Extend Routr","count":4},{"language":"default","tag":"Deploy and operate","count":4},{"language":"default","tag":"Community","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhGq3-OXg.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhPq3-OXg.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhIq3-OXg.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhEq3-OXg.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhFq3-OXg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Roboto Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--fn-accent:#5fcfce;--fn-on-accent:#001a1a;--fn-accent-text:#1f8f8e;--fn-border:#e8e8e8;--fn-hl-border:rgba(0, 0, 0, 0.22);--fn-surface:#f4f4f4;--fn-text-1:#252525;--fn-text-2:#555555;--fn-text-3:#6b6b6b;--fn-mono:\"Roboto Mono\", ui-monospace, monospace}:root.dark{--fn-accent-text:#5fcfce;--fn-border:#333333;--fn-hl-border:rgba(255, 255, 255, 0.32);--fn-surface:#202020;--fn-text-1:#ffffff;--fn-text-2:#e8e8e8;--fn-text-3:#c2c2c2}#content-area h1,#header h1{font-weight:600;letter-spacing:-.031em}#content-area h2{font-weight:600;letter-spacing:-.027em}#content-area h3{font-weight:600;letter-spacing:-.025em}#content-area li,#content-area p{color:var(--fn-text-2)}.eyebrow{font-family:var(--fn-mono);font-weight:500;font-size:12px;letter-spacing:.12em;text-transform:uppercase}code,kbd,pre{font-family:var(--fn-mono)!important}#content-area :not(pre)>code{border:1px solid var(--fn-border);border-radius:6px;padding:1px 6px}#content-area .card,#content-area .code-block,#content-area [class*=callout],#content-area pre,#topbar-cta-button a,#topbar-cta-button a>span{border-radius:10px}#content-area a.card:hover{border-color:var(--fn-hl-border)}#topbar-cta-button a>span:first-child{background:var(--fn-accent)!important}#topbar-cta-button a span,#topbar-cta-button a svg{color:var(--fn-on-accent)!important;font-weight:600}"}],"page":{"pagePath":"community","slug":"/community","pageMetadata":{"title":"Community","description":"For anyone using or building Routr: where to ask questions, report bugs, follow the project, and find commercial support.","href":"/community"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"For anyone using or building Routr: where to ask questions, report bugs, follow the project, and find commercial support.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Card,CardGroup,Heading,Note}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Routr is developed in the open. Use these channels to get help, share what you build, and follow the project.`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Discord`,icon:`discord`,href:`https://discord.gg/4QWgSz4hTC`,children:_jsx(_components.p,{children:`Chat with users and maintainers. Watch the announcements channel for office hours.`})}),_jsx(Card,{title:`GitHub Discussions`,icon:`comments`,href:`https://github.com/fonoster/routr/discussions`,children:_jsx(_components.p,{children:`Ask questions and discuss ideas and development.`})}),_jsx(Card,{title:`Issue tracker`,icon:`bug`,href:`https://github.com/fonoster/routr/issues`,children:_jsx(_components.p,{children:`Report bugs and request features.`})}),_jsx(Card,{title:`X (Twitter)`,icon:`x-twitter`,href:`https://x.com/fonoster`,children:_jsx(_components.p,{children:`Follow @fonoster for release news.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`getting-help`,children:`Getting help`}),`\n`,_jsx(_components.p,{children:`Ask support questions in Discord or GitHub Discussions, not in the issue tracker. Keep issues for bugs and feature requests, and use the bug report template so maintainers can reproduce the problem.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Please don’t ask individual maintainers for support directly. Questions in the public channels help everyone who hits the same problem later.`})}),`\n`,_jsx(Heading,{level:`2`,id:`contributing`,children:`Contributing`}),`\n`,_jsxs(_components.p,{children:[`Contributions of every kind are welcome: code, docs, issue triage, and answering questions. Read the `,_jsx(_components.a,{href:`/contributing`,children:`contributing guide`}),` before you open a pull request. For large or controversial changes, start a discussion on Discord or GitHub Discussions first.`]}),`\n`,_jsx(Heading,{level:`2`,id:`office-hours`,children:`Office hours`}),`\n`,_jsx(_components.p,{children:`Technical discussions happen on Discord and GitHub Discussions. Maintainers also hold open office hours; join the Discord server and follow the announcements channel for the next one.`}),`\n`,_jsx(Heading,{level:`2`,id:`code-of-conduct`,children:`Code of conduct`}),`\n`,_jsxs(_components.p,{children:[`Routr follows the `,_jsx(_components.a,{href:`https://www.contributor-covenant.org/version/2/1/code_of_conduct/`,children:`Contributor Covenant`}),`. Everyone taking part in the project’s spaces is expected to keep it welcoming and harassment-free.`]}),`\n`,_jsx(Heading,{level:`2`,id:`commercial-support`,children:`Commercial support`}),`\n`,_jsxs(_components.p,{children:[`Routr is an independent open source project and doesn’t endorse any company. For paid support, contact `,_jsx(_components.a,{href:`https://github.com/psanders`,children:`Pedro Sanders`}),`, Routr’s creator and maintainer.`]}),`\n`,_jsx(Heading,{level:`2`,id:`acknowledgments`,children:`Acknowledgments`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://github.com/psanders`,children:`Pedro Sanders`}),` created Routr. `,_jsx(_components.a,{href:`https://fonoster.com`,children:`Fonoster`}),` and `,_jsx(_components.a,{href:`https://camanio.com`,children:`Camanio AB`}),` sponsored most of its development. You can sponsor the project through `,_jsx(_components.a,{href:`https://github.com/sponsors/fonoster`,children:`GitHub Sponsors`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Community","description":"For anyone using or building Routr: where to ask questions, report bugs, follow the project, and find commercial support.","href":"/community"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Getting help","slug":"getting-help","depth":2,"children":[]},{"title":"Contributing","slug":"contributing","depth":2,"children":[]},{"title":"Office hours","slug":"office-hours","depth":2,"children":[]},{"title":"Code of conduct","slug":"code-of-conduct","depth":2,"children":[]},{"title":"Commercial support","slug":"commercial-support","depth":2,"children":[]},{"title":"Acknowledgments","slug":"acknowledgments","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"routr-docs","siteName":"Routr","title":"Community - Routr","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T04:21:24.071Z","originalFileLocation":"community.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"For anyone using or building Routr: where to ask questions, report bugs, follow the project, and find commercial support.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Routr\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Community - Routr\">\u003cmeta data-mint-head property=\"og:description\" content=\"For anyone using or building Routr: where to ask questions, report bugs, follow the project, and find commercial support.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Routr\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.routr.io/community\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://routr-docs.mintlify.app/_mintlify/api/og/v2?division=Community\u0026amp;title=Community\u0026amp;description=For+anyone+using+or+building+Routr%3A+where+to+ask+questions%2C+report+bugs%2C+follow+the+project%2C+and+find+commercial+support.\u0026amp;theme=695134023fea6aad9acf78c3\u0026amp;signature=bfe63e384e7623a6faef085c6a7b9386817cf52c23be2eb85e891c45746365ce\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Community - Routr\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"For anyone using or building Routr: where to ask questions, report bugs, follow the project, and find commercial support.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://routr-docs.mintlify.app/_mintlify/api/og/v2?division=Community\u0026amp;title=Community\u0026amp;description=For+anyone+using+or+building+Routr%3A+where+to+ask+questions%2C+report+bugs%2C+follow+the+project%2C+and+find+commercial+support.\u0026amp;theme=695134023fea6aad9acf78c3\u0026amp;signature=bfe63e384e7623a6faef085c6a7b9386817cf52c23be2eb85e891c45746365ce\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/routr-docs/wWnXExYwxQiV3LdH/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Routr\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1F8F8E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.routr.io/community\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/community.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.routr.io/#organization\",\"name\":\"Routr\",\"url\":\"https://docs.routr.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/routr-docs/iaqIipuuzAjyl_cH/logo/light.svg?fit=max\u0026auto=format\u0026n=iaqIipuuzAjyl_cH\u0026q=85\u0026s=46cd1037119709d8341f90de12fdd541\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.routr.io#website\",\"name\":\"Routr\",\"url\":\"https://docs.routr.io\",\"publisher\":{\"@id\":\"https://docs.routr.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.routr.io/community#webpage\",\"url\":\"https://docs.routr.io/community\",\"name\":\"Community\",\"description\":\"For anyone using or building Routr: where to ask questions, report bugs, follow the project, and find commercial support.\",\"dateModified\":\"2026-10-22T04:21:24.071Z\",\"isPartOf\":{\"@id\":\"https://docs.routr.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.routr.io/community#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.routr.io/community#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Routr\",\"item\":\"https://docs.routr.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Community\",\"item\":\"https://docs.routr.io/community\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.routr.io/community#article\",\"headline\":\"Community\",\"name\":\"Community\",\"description\":\"For anyone using or building Routr: where to ask questions, report bugs, follow the project, and find commercial support.\",\"url\":\"https://docs.routr.io/community\",\"mainEntityOfPage\":{\"@id\":\"https://docs.routr.io/community#webpage\"},\"dateModified\":\"2026-10-22T04:21:24.071Z\",\"publisher\":{\"@id\":\"https://docs.routr.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.routr.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Routr\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Routr","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/fonoster/routr"},{"anchor":"Community","icon":"discord","href":"https://discord.gg/4QWgSz4hTC"},{"anchor":"Previous versions","icon":"clock-rotate-left","href":"/previous-versions"}]},"tabs":[{"tab":"Docs","groups":[{"group":"Get started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Quickstart on Kubernetes","sidebarTitle":"Quickstart (Kubernetes)","href":"/quickstart-kubernetes"}]},{"group":"Concepts","pages":[{"title":"Architecture","href":"/concepts/architecture"},{"title":"Message flow","href":"/concepts/message-flow"},{"title":"EdgePort cooperation","href":"/concepts/edgeport-cooperation"},{"title":"Connect mode","href":"/concepts/connect-mode"},{"title":"Routing","href":"/concepts/routing"},{"title":"Load balancing","href":"/concepts/load-balancing"},{"title":"Deployment topologies","href":"/concepts/deployment-topologies"}]},{"group":"How-to guides","pages":[{"group":"Deploy and operate","icon":"server","pages":[{"title":"Deploy with Docker","sidebarTitle":"Deploy with Docker","href":"/guides/deploy-with-docker"},{"title":"Deploy on Kubernetes with Helm","sidebarTitle":"Deploy on Kubernetes","href":"/guides/deploy-on-kubernetes"},{"title":"Secure the server","href":"/guides/secure-the-server"},{"title":"Scale the Location Service with Redis","sidebarTitle":"Scale with Redis","href":"/guides/scale-with-redis"}]},{"group":"Connect phones and services","icon":"phone","pages":[{"title":"Set up a home or office phone system","sidebarTitle":"Home or office setup","href":"/guides/home-or-office-setup"},{"title":"Connect Asterisk or FreeSWITCH as a Peer","sidebarTitle":"Connect a PBX as a Peer","href":"/guides/connect-a-pbx-as-a-peer"},{"title":"Enable WebRTC clients","sidebarTitle":"Enable WebRTC","href":"/guides/enable-webrtc"}]},{"group":"Manage resources","icon":"list","pages":[{"title":"Manage resources with rctl","sidebarTitle":"Manage with rctl","href":"/guides/manage-resources-with-rctl"},{"title":"Manage resources with the Node.js SDK","sidebarTitle":"Manage with the SDK","href":"/guides/manage-resources-with-the-sdk"}]},{"group":"Extend Routr","icon":"puzzle-piece","pages":[{"title":"Build a processor","sidebarTitle":"Build a processor","href":"/guides/build-a-processor"},{"title":"Build a middleware","sidebarTitle":"Build a middleware","href":"/guides/build-a-middleware"},{"title":"Store custom data with the API Server","sidebarTitle":"Custom data","href":"/guides/custom-data-with-the-apiserver"},{"title":"Extend rctl with plugins","sidebarTitle":"Extend rctl","href":"/guides/extend-rctl"}]},{"group":"Work on Routr","icon":"code","pages":[{"title":"Run Routr from source","sidebarTitle":"Run from source","href":"/guides/run-from-source"},{"title":"Develop with Gitpod","sidebarTitle":"Develop with Gitpod","href":"/guides/develop-with-gitpod"}]}]},{"group":"Tutorials","pages":[{"title":"Load balance Asterisk with Routr","sidebarTitle":"Load balance Asterisk","href":"/tutorials/load-balancing-asterisk"},{"title":"Build an intercom system on Kubernetes","sidebarTitle":"Intercom on Kubernetes","href":"/tutorials/intercom-on-kubernetes"},{"title":"Deploy Routr to Civo with Helm","sidebarTitle":"Deploy to Civo","href":"/tutorials/deploy-to-civo-with-helm"},{"title":"Stream call events to NATS","sidebarTitle":"Call events with NATS","href":"/tutorials/call-events-with-nats"},{"title":"Call from the browser with ephemeral agents","sidebarTitle":"Ephemeral agents in the browser","description":"Issue a signed JWT to a website visitor, register a SIP.js client with it, and call an Asterisk server through Routr and RTPEngine.","href":"/tutorials/ephemeral-agents-in-the-browser"}]},{"group":"Community","pages":[{"title":"Community","href":"/community"},{"title":"Contributing","description":"For first-time and regular contributors: how to find work, set up your environment, write commits that pass the checks, and get a pull request merged.","href":"/contributing"},{"title":"Frequently asked questions","sidebarTitle":"FAQs","href":"/faqs"}]}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/rctl"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Community - Routr","buildId":"dpl_9DauxEjb9gzCtcuhPQFbquJvx7FJ","deploymentId":"dpl_9DauxEjb9gzCtcuhPQFbquJvx7FJ","dynamics":[],"chunks":[]}