<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									muszak.eu Forum - Ostatnie wpisy				            </title>
            <link>https://muszak.eu/community/</link>
            <description>muszak.eu Forum dyskusyjne</description>
            <language>pl-PL</language>
            <lastBuildDate>Sun, 07 Jun 2026 18:58:43 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Odpowiedź na: IDA: ERROR: Failed to init Explain tab: cannot import name &#039;QObject&#039; from &#039;src.qt_compat&#039;</title>
                        <link>https://muszak.eu/community/bugoverflow/ida-error-failed-to-init-explain-tab-cannot-import-name-qobject-from-src-qt_compat/#post-4012</link>
                        <pubDate>Wed, 20 May 2026 22:46:48 +0000</pubDate>
                        <description><![CDATA[replace header of qt_compat.py with this code
try:
    # PySide6 6.8.0 contains a known crash bug (spyder-ide/qtpy#494).
    # Read the version from package metadata (no import needed) an...]]></description>
                        <content:encoded><![CDATA[<p>replace header of qt_compat.py with this code</p>
<pre contenteditable="false">try:
    # PySide6 6.8.0 contains a known crash bug (spyder-ide/qtpy#494).
    # Read the version from package metadata (no import needed) and skip
    # the broken release so the PyQt5 fallback is used instead.
    try:
        from importlib.metadata import version as _pkg_version
        if _pkg_version("PySide6") == "6.8.0":
            raise ImportError("PySide6 6.8.0 is known to crash IDA Pro; falling back to PyQt5")
    except Exception as _e:
        if "6.8.0" in str(_e):
            raise
        from PySide6.QtCore import *      # noqa: F401,F403
        from PySide6.QtGui import *       # noqa: F401,F403
        from PySide6.QtWidgets import *   # noqa: F401,F403

        # Explicit exports required by IDAssist modules.
        from PySide6.QtCore import (
            QObject,
            QDateTime,
            QPointF,
            QTimeZone,
            Qt,
            QTimer,
            QThread,
            QSize,
            QRect,
            Signal,
            Slot,
        )
        from PySide6.QtGui import (
            QAction,
            QIcon,
            QColor,
            QBrush,
            QPen,
            QFont,
            QTextCursor,
        )
        from PySide6.QtWidgets import (
            QWidget,
            QApplication,
            QDialog,
            QVBoxLayout,
            QHBoxLayout,
            QLabel,
            QPushButton,
            QLineEdit,
            QTextEdit,
            QPlainTextEdit,
            QComboBox,
            QCheckBox,
            QSpinBox,
            QTabWidget,
            QTableWidget,
            QTableWidgetItem,
            QTreeWidget,
            QTreeWidgetItem,
            QGraphicsView,
            QGraphicsScene,
            QGraphicsItem,
            QGraphicsEllipseItem,
            QGraphicsLineItem,
            QGraphicsTextItem,
            QMessageBox,
            QFileDialog,
            QMenu,
        )

        QT_BINDING = "PySide6"
except ImportError:
    from PyQt5.QtCore import *        # noqa: F401,F403
    from PyQt5.QtGui import *         # noqa: F401,F403
    from PyQt5.QtWidgets import *     # noqa: F401,F403
    from PyQt5.QtCore import pyqtSignal as Signal  # noqa: F401
    from PyQt5.QtWidgets import QAction  # noqa: F401
    QT_BINDING = "PyQt5"

QT_AVAILABLE = QT_BINDING is not None


_STOP_BUTTON_STYLE_PROPERTY = "_idassist_stop_button_base_stylesheet"
STOP_BUTTON_STYLESHEET = """
QPushButton {
    background-color: #ff6b6b;
    color: white;
    border: 1px solid #e85a5a;
    border-radius: 4px;
}
QPushButton:hover {
    background-color: #ff5c5c;
}
QPushButton:pressed {
    background-color: #e85a5a;
}
QPushButton:disabled {
    background-color: #d98c8c;
    color: #f5f5f5;
}
""".strip()</pre>
<p>don't forget about bottom part of that file...</p>
<p>&nbsp;</p>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/ida-error-failed-to-init-explain-tab-cannot-import-name-qobject-from-src-qt_compat/#post-4012</guid>
                    </item>
				                    <item>
                        <title>IDA: ERROR: Failed to init Explain tab: cannot import name &#039;QObject&#039; from &#039;src.qt_compat&#039;</title>
                        <link>https://muszak.eu/community/bugoverflow/ida-error-failed-to-init-explain-tab-cannot-import-name-qobject-from-src-qt_compat/#post-4002</link>
                        <pubDate>Wed, 20 May 2026 22:29:39 +0000</pubDate>
                        <description><![CDATA[IDA and IDAssist error, how to fix this error and crash:

IDA is analysing the input file...
You may start to explore the input file right now.
PySide has not been widely tested on Pytho...]]></description>
                        <content:encoded><![CDATA[<p>IDA and <a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" href="https://github.com/symgraph/IDAssist" data-discover="true"><span class="styles-module__contextCrumbLast__tI2e3">IDAssist</span></a> error, how to fix this error and crash:</p>
<blockquote>
<pre class="notranslate" contenteditable="false"><code class="notranslate">IDA is analysing the input file...
You may start to explore the input file right now.
PySide has not been widely tested on Python &gt;= 3.14; IDA cannot guarantee that it will function as expected.
 INFO: provider_type column already exists, skipping migration
 DEBUG: reasoning_effort column already exists, skipping migration
 INFO: LiteLLM columns already exist, skipping migration
 DEBUG: timeout column already exists, skipping migration
 DEBUG: command column already exists on mcp_providers
 DEBUG: args column already exists on mcp_providers
 DEBUG: env column already exists on mcp_providers
 DEBUG: cwd column already exists on mcp_providers
 INFO: Successfully created oauth_credentials table
 INFO: Provider type name migration: no providers needed updating
 INFO: bypass_proxy column already exists, skipping migration
 ERROR: Failed to init Explain tab: cannot import name 'QObject' from 'src.qt_compat' (C:\Users\Administrator\AppData\Roaming\Hex-Rays\IDA Pro\plugins\IDAssist\src\qt_compat.py)
 ERROR: Failed to init Query tab: cannot import name 'QDateTime' from 'src.qt_compat' (C:\Users\Administrator\AppData\Roaming\Hex-Rays\IDA Pro\plugins\IDAssist\src\qt_compat.py)
 ERROR: Failed to init Actions tab: cannot import name 'QObject' from 'src.qt_compat' (C:\Users\Administrator\AppData\Roaming\Hex-Rays\IDA Pro\plugins\IDAssist\src\qt_compat.py)
 ERROR: Failed to init Semantic Graph tab: cannot import name 'QPointF' from 'src.qt_compat' (C:\Users\Administrator\AppData\Roaming\Hex-Rays\IDA Pro\plugins\IDAssist\src\qt_compat.py)
 ERROR: Failed to init SymGraph tab: cannot import name 'QObject' from 'src.qt_compat' (C:\Users\Administrator\AppData\Roaming\Hex-Rays\IDA Pro\plugins\IDAssist\src\qt_compat.py)
 ERROR: Failed to init RAG tab: cannot import name 'QObject' from 'src.qt_compat' (C:\Users\Administrator\AppData\Roaming\Hex-Rays\IDA Pro\plugins\IDAssist\src\qt_compat.py)
 ERROR: Failed to init Settings tab: cannot import name 'QObject' from 'src.qt_compat' (C:\Users\Administrator\AppData\Roaming\Hex-Rays\IDA Pro\plugins\IDAssist\src\qt_compat.py)
 DEBUG: Resolved binary hash from stored IDB input SHA-256
 INFO: Binary context initialized (hash: cf7a6211902596c9...)
 INFO: IDAssist panel created with all tabs</code></pre>
</blockquote>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/ida-error-failed-to-init-explain-tab-cannot-import-name-qobject-from-src-qt_compat/#post-4002</guid>
                    </item>
				                    <item>
                        <title>Odpowiedź na: VoIP in Tower Networking Inc.</title>
                        <link>https://muszak.eu/community/bugoverflow/voip-in-tower-networking-inc/#post-4001</link>
                        <pubDate>Mon, 11 May 2026 13:14:11 +0000</pubDate>
                        <description><![CDATA[VoIP in Tower Networking Inc.  is tricky because it does not behave like a normal HTTP/DNS service. The main issue is that VoIP phones generate broadcast udp/5060 traffic. If routing i...]]></description>
                        <content:encoded><![CDATA[<p data-start="54" data-end="357">VoIP in <strong data-start="62" data-end="94">Tower Networking Inc. </strong> is tricky because it does not behave like a normal HTTP/DNS service. The main issue is that <strong data-start="187" data-end="240">VoIP phones generate broadcast <code data-start="220" data-end="230">udp/5060</code> traffic</strong>. If routing is wrong, VoIP either will not work at all, or it will create a <strong data-start="317" data-end="336">broadcast storm</strong> across your network.</p>
<hr data-start="359" data-end="362" />
<h2 data-section-id="1tv6593" data-start="364" data-end="397">1. How VoIP works in this game</h2>
<p data-start="399" data-end="426">The basic flow seems to be:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>VoIP phone</span><br /><span>↓</span><br /><span>generates phone connection traffic over udp/5060</span><br /><span>↓</span><br /><span>voip-server accepts accept-voip-phone-connection</span><br /><span>↓</span><br /><span>voip-server converts it into stream-voice</span><br /><span>↓</span><br /><span>customer/user consumes stream-voice</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="636" data-end="730">Important point: <strong data-start="653" data-end="729">the customer who wants <code data-start="678" data-end="692">stream-voice</code> does not need a phone next to them</strong>.</p>
<p data-start="732" data-end="819">The phone is needed by the VoIP server as the source of <code data-start="788" data-end="818">accept-voip-phone-connection</code>.</p>
<hr data-start="821" data-end="824" />
<h2 data-section-id="1fjtnsq" data-start="826" data-end="845">2. What you need</h2>
<p data-start="847" data-end="861">Minimum setup:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>1. A server with voip-server installed</span><br /><span>2. A domain, for example voip.net</span><br /><span>3. DNS mapping voip.net to the VoIP server</span><br /><span>4. A VoIP phone generating udp/5060 traffic</span><br /><span>5. Routing for udp/5060 toward the voip-server</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="1083" data-end="1091">Example:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>@core-voip = VoIP server</span><br /><span>@core-dns  = DNS server</span><br /><span>voip.net   = stream-voice service domain</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="1196" data-end="1208">DNS example:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>dns map voip.net @core-voip on @core-dns</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="1264" data-end="1357">If the game requires registering a domain with a provided use, make sure the domain provides:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>stream-voice</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="1385" data-end="1388" />
<h2 data-section-id="1dhrmfc" data-start="1390" data-end="1415">3. Trace is not enough</h2>
<p data-start="1417" data-end="1431">This may work:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>trace voip.net from @floor1/phone with udp/5060</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="1494" data-end="1535">But that only proves that a route exists.</p>
<p data-start="1537" data-end="1631">It does <strong data-start="1545" data-end="1552">not</strong> always prove that the real VoIP phone traffic is being consumed by the server.</p>
<p data-start="1633" data-end="1661">You can have this situation:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>trace works</span><br /><span>voip-server sees udp/5060 packets</span><br /><span>but stream-voice is still not produced</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="1761" data-end="1788">Check the VoIP server with:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>dstat @core-voip</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="1820" data-end="1846">If you see something like:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span> = 10</span><br /><span>voip-server load: 0/10</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="1920" data-end="2027">then the server is ready to accept phone connections, but it is not receiving valid active phone usage yet.</p>
<hr data-start="2029" data-end="2032" />
<h2 data-section-id="1skltwy" data-start="2034" data-end="2064">4. Best setup without VLANs</h2>
<p data-start="2066" data-end="2171">Before VLANs are unlocked, the cleanest approach is to build a separate physical network for VoIP phones.</p>
<p data-start="2173" data-end="2192">Recommended layout:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>VoIP phones → voice switch → @core-voip</span><br /><br /><span>customers/users → normal network → core-router → @core-voip</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p data-start="2308" data-end="2343">So <code data-start="2311" data-end="2323">@core-voip</code> can have two sides:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>port0 = normal customer/user network</span><br /><span>port1 = dedicated VoIP phone network</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="2432" data-end="2495">This is the closest substitute for VLANs early in the campaign.</p>
<hr data-start="2497" data-end="2500" />
<h2 data-section-id="71fn6j" data-start="2502" data-end="2549">5. If the phone is on a normal floor network</h2>
<p data-start="2551" data-end="2558">Assume:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>@floor1/router port2 = uplink to core/backbone</span><br /><span>@floor1/router port3 = local floor switch</span><br /><span>@core-router port0   = backend/core where @core-voip is located</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="2726" data-end="2774">On the floor router where the phone exists, add:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add traffic udp/5060 via port2 on @floor1/router using @dbg</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="2855" data-end="2910">Do <strong data-start="2858" data-end="2865">not</strong> rely only on a destination-based route like:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add @core-voip traffic udp/5060 via port2 ...</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="2977" data-end="3081">Why? Because VoIP phone traffic is broadcast-based and may not yet have <code data-start="3049" data-end="3061">@core-voip</code> as its destination.</p>
<p data-start="3083" data-end="3100">A better rule is:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add traffic udp/5060 via port2 on @floor1/router using @dbg</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="3181" data-end="3184" />
<h2 data-section-id="1nuph1" data-start="3186" data-end="3210">6. On the core router</h2>
<p data-start="3212" data-end="3251">If <code data-start="3215" data-end="3227">@core-voip</code> is behind <code data-start="3238" data-end="3245">port0</code>, add:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add traffic udp/5060 via port0 on @core-router using @dbg</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="3330" data-end="3373">Also add a normal route to the VoIP server:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add @core-voip via port0 on @core-router using @dbg</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="3446" data-end="3472">Example core-router setup:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add @floor1/ via port4 on @core-router using @dbg</span><br /><span>route add @floor2/ via port5 on @core-router using @dbg</span><br /><span>route add @core-voip via port0 on @core-router using @dbg</span><br /><span>route add traffic udp/5060 via port0 on @core-router using @dbg</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="3721" data-end="3724" />
<h2 data-section-id="1qt9uss" data-start="3726" data-end="3757">7. Be careful with broadcast</h2>
<p data-start="3759" data-end="3781">This is the main trap.</p>
<p data-start="3783" data-end="3794">If you use:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route enable broadcast on @core-router</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="3848" data-end="3900">VoIP may start working, but you can easily create a:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>broadcast storm</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="3931" data-end="3940">Symptoms:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>high network load</span><br /><span>random timeouts</span><br /><span>DNS/DHCP instability</span><br /><span>VoIP works, but the whole network becomes unstable</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="4061" data-end="4074">General rule:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>drop broadcast on the main network</span><br /><span>use a separate VoIP path, or route udp/5060 very carefully</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="4183" data-end="4186" />
<h2 data-section-id="11pj9z2" data-start="4188" data-end="4234">8. Pro tip: default drop + enable broadcast</h2>
<p data-start="4236" data-end="4264">Some players use this trick:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route default drop on @router using @dbg</span><br /><span>route enable broadcast on @router using @dbg</span><br /><span>route add traffic udp/5060 via portX on @router using @dbg</span></code></pre>
<p>&nbsp;</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p data-start="4424" data-end="4433">The idea:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>broadcast is enabled,</span><br /><span>but there is no default port for it to leak through,</span><br /><span>so only explicitly routed udp/5060 goes out.</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="4568" data-end="4651">Downside: with <code data-start="4583" data-end="4597">default drop</code>, you must manually define routes for everything else:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>DNS</span><br /><span>DHCP</span><br /><span>VoIP</span><br /><span>traffic to core</span><br /><span>local prefix traffic</span><br /><span>other services</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="4732" data-end="4795">It can work, but it becomes annoying to maintain without VLANs.</p>
<hr data-start="4797" data-end="4800" />
<h2 data-section-id="144yh9c" data-start="4802" data-end="4823">9. Common mistakes</h2>
<h3 data-section-id="19hewci" data-start="4825" data-end="4894"><span>Mistake 1: Route to <code data-start="4849" data-end="4861">@core-voip</code>, but no <code data-start="4870" data-end="4880">udp/5060</code> traffic route</span></h3>
<p data-start="4896" data-end="4925">This alone may not be enough:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add @core-voip via port0</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="4971" data-end="4980">Also add:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add traffic udp/5060 via port0</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="5032" data-end="5035" />
<h3 data-section-id="1ve3vgv" data-start="5037" data-end="5085">Mistake 2: Destination-based VoIP route only</h3>
<p data-start="5087" data-end="5136">For broadcast VoIP traffic, this is often better:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add traffic udp/5060 via port0</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="5188" data-end="5198">than this:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route add @core-voip traffic udp/5060 via port0</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="5261" data-end="5264" />
<h3 data-section-id="osmqbu" data-start="5266" data-end="5312">Mistake 3: Broadcast drop blocks the phone</h3>
<p data-start="5314" data-end="5416">If the VoIP phone is on a floor network and broadcast is dropped, <code data-start="5380" data-end="5394">stream-voice</code> may never be created.</p>
<p data-start="5418" data-end="5423">Test:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route enable broadcast on @floor1/router using @dbg</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="5490" data-end="5565">If <code data-start="5493" data-end="5507">stream-voice</code> appears after enabling broadcast, the issue is confirmed.</p>
<p data-start="5567" data-end="5640">But do not leave broadcast open everywhere, because it can cause a storm.</p>
<hr data-start="5642" data-end="5645" />
<h3 data-section-id="fuqqbo" data-start="5647" data-end="5703">Mistake 4: Phone behind a router instead of a switch</h3>
<p data-start="5705" data-end="5751">VoIP phones are better placed behind a switch:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>phone → switch → core/voip</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="5793" data-end="5805">rather than:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>phone → router → router → core</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="5851" data-end="5901">Routers can mishandle the phone broadcast traffic.</p>
<hr data-start="5903" data-end="5906" />
<h3 data-section-id="180izgl" data-start="5908" data-end="5983"><span>Mistake 5: Confusing <code data-start="5933" data-end="5963">accept-voip-phone-connection</code> with <code data-start="5969" data-end="5983">stream-voice</code></span></h3>
<p data-start="5985" data-end="6017">On the VoIP server, you may see:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>accept-voip-phone-connection = 10</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="6066" data-end="6124">That does not mean customers are receiving <code data-start="6109" data-end="6123">stream-voice</code>.</p>
<p data-start="6126" data-end="6264">It means the server has capacity to accept phone connections. <code data-start="6188" data-end="6202">stream-voice</code> appears only when the phone actually provides the connection.</p>
<hr data-start="6266" data-end="6269" />
<h2 data-section-id="1mi8t4o" data-start="6271" data-end="6297">10. Debugging checklist</h2>
<h3 data-section-id="47jhts" data-start="6299" data-end="6320">Step 1: Check DNS</h3>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>dns show on @core-dns</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="6357" data-end="6372">You should see:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>voip.net → @core-voip</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="6409" data-end="6412" />
<h3 data-section-id="12ml1ri" data-start="6414" data-end="6446">Step 2: Trace from the phone</h3>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>trace voip.net from @floor1/phone with udp/5060</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="6509" data-end="6525">It should reach:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>@core-voip</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="6551" data-end="6554" />
<h3 data-section-id="slrldj" data-start="6556" data-end="6591">Step 3: Trace from the customer</h3>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>trace voip.net from @floor2/customer with udp/5060</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="6657" data-end="6678">It should also reach:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>@core-voip</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<hr data-start="6704" data-end="6707" />
<h3 data-section-id="dqpnov" data-start="6709" data-end="6742">Step 4: Watch the VoIP server</h3>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>watch @core-voip</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="6774" data-end="6777">or:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>dstat @core-voip</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="6809" data-end="6818">Look for:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>voip-server load</span><br /><span>accept-voip-phone-connection</span><br /><span>stream-voice</span><br /><span>network load</span><br /><span>udp/5060</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="6914" data-end="7068">If <code data-start="6917" data-end="6927">udp/5060</code> reaches the server but <code data-start="6951" data-end="6969">voip-server load</code> stays <code data-start="6976" data-end="6982">0/10</code>, the packets are reaching the machine but are not being consumed as valid VoIP usage.</p>
<hr data-start="7070" data-end="7073" />
<h2 data-section-id="zs22xl" data-start="7075" data-end="7110">11. Recommended early-game setup</h2>
<p data-start="7112" data-end="7139">Without VLANs, I recommend:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>Normal network:</span><br /><span>customers → floor router → core-router → @core-voip port0</span><br /><br /><span>Voice network:</span><br /><span>VoIP phones → voice switch → @core-voip port1</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="7290" data-end="7310">On the main routers:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>route drop broadcast on @floor1/router using @dbg</span><br /><span>route drop broadcast on @floor2/router using @dbg</span><br /><span>route drop broadcast on @core-router using @dbg</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="7473" data-end="7554">Keep VoIP broadcast outside the main network on a dedicated physical switch/path.</p>
<hr data-start="7556" data-end="7559" />
<h2 data-section-id="17yobvx" data-start="7561" data-end="7592">12. After VLANs are unlocked</h2>
<p data-start="7594" data-end="7622">Then you can do it properly:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>VLAN voice = VoIP phones</span><br /><span>VLAN users = customers/users</span><br /><span>VLAN infra = DNS/DHCP/routers</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="7721" data-end="7734">Example idea:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>vlan tag port1 with #voice on @msw</span><br /><span>vlan tag port2 with #users on @msw</span><br /><span>vlan tag port3 with #voice #users on @msw</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="7861" data-end="7946">Then VoIP broadcast stays inside the voice VLAN and does not flood the whole network.</p>
<hr data-start="7948" data-end="7951" />
<h2 data-section-id="8dtpi" data-start="7953" data-end="7966">Conclusion</h2>
<p data-start="7968" data-end="8029">VoIP in this game needs a different mindset than DNS or HTTP.</p>
<p data-start="8031" data-end="8041">Key rules:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>1. VoIP phone traffic is broadcast udp/5060.</span><br /><span>2. voip-server converts phone connection into stream-voice.</span><br /><span>3. A route to @core-voip alone is not enough.</span><br /><span>4. You must handle udp/5060 as a traffic type.</span><br /><span>5. Broadcast can easily cause a storm.</span><br /><span>6. Without VLANs, use a separate physical VoIP network.</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="">
<div class=""> </div>
</div>
</div>
</div>
</div>
<p data-start="8349" data-end="8378">Best early-game architecture:</p>
<div class="relative w-full mt-4 mb-1">
<div class="">
<div class="relative">
<div class="h-full min-h-0 min-w-0">
<div class="h-full min-h-0 min-w-0">
<div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl">
<div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback">
<div class="relative">
<div class="pe-11 pt-3">
<div class="relative z-0 flex max-w-full">
<div id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr">
<div class="cm-scroller">
<pre class="cm-content q9tKkq_readonly m-0" contenteditable="false"><code><span>VoIP phones on a dedicated switch</span><br /><span>normal customers on the normal network</span><br /><span>@core-voip as the meeting point</span><br /><span>no VoIP broadcast through the core-router</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/voip-in-tower-networking-inc/#post-4001</guid>
                    </item>
				                    <item>
                        <title>VoIP in Tower Networking Inc.</title>
                        <link>https://muszak.eu/community/bugoverflow/voip-in-tower-networking-inc/#post-4000</link>
                        <pubDate>Mon, 11 May 2026 13:10:01 +0000</pubDate>
                        <description><![CDATA[VoIP in Tower Networking Inc. — Simple Setup Guide, how to setup?]]></description>
                        <content:encoded><![CDATA[<p>VoIP in Tower Networking Inc. — Simple Setup Guide, how to setup?</p>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/voip-in-tower-networking-inc/#post-4000</guid>
                    </item>
				                    <item>
                        <title>Odpowiedź na: Home assistant: connection refused and Error: System is not ready with state: setup</title>
                        <link>https://muszak.eu/community/bugoverflow/homeassistant-connection-refused-and-error-system-is-not-ready-with-state-setup/#post-3925</link>
                        <pubDate>Mon, 31 Mar 2025 14:02:15 +0000</pubDate>
                        <description><![CDATA[Sollution for RPI or ODROID:
first check logs using
docker logs -f --tail 50 hassio_supervisor
check for output like

istant%2Fqemuarm-homeassistant&amp;platform=linux%2Farm64: Internal...]]></description>
                        <content:encoded><![CDATA[<p><span style="text-decoration: underline"><em>Sollution for RPI or ODROID:</em></span></p>
<p>first check logs using</p>
<p><strong>docker logs -f --tail 50 hassio_supervisor</strong></p>
<p>check for output like</p>
<blockquote>
<p>istant%2Fqemuarm-homeassistant&amp;platform=linux%2Farm64: Internal Server Error ("Get "https://ghcr.io/v2/": dial tcp: lookup ghcr.io: no such host")<br />2025-03-31 15:48:12.252 WARNING (MainThread)  Failed to install landingpage, retrying after 30sec<br />2025-03-31 15:48:42.255 INFO (MainThread)  Downloading docker image ghcr.io/home-assistant/qemuarm-homeassistant with tag landingpage.<br />2025-03-31 15:48:42.272 ERROR (MainThread)  Can't install ghcr.io/home-assistant/qemuarm-homeassistant:landingpage: 500 Server Error for http+docker://localhost/v1.45/images/create?tag=landingpage&amp;fromImage=ghcr.io%2Fhome-assistant%2Fqemuarm-homeassistant&amp;platform=linux%2Farm64: Internal Server Error ("Get "https://ghcr.io/v2/": dial tcp: lookup ghcr.io: no such host")<br />2025-03-31 15:48:42.272 WARNING (MainThread)  Failed to install landingpage, retrying after 30sec</p>
</blockquote>
<p>this is DNS error issue, and how to fix it?<br /><br />type:</p>
<pre contenteditable="false">sudo rm /etc/resolv.conf
echo "nameserver 8.8.4.4" &gt;&gt; /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl enable systemd-resolved
systemctl restart systemd-resolved</pre>
<p>wait a few minutes and check, if it still doesn't work then edit the /etc/resolv.conf file and add e.g. 8.8.8.8</p>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/homeassistant-connection-refused-and-error-system-is-not-ready-with-state-setup/#post-3925</guid>
                    </item>
				                    <item>
                        <title>Home assistant: connection refused and Error: System is not ready with state: setup</title>
                        <link>https://muszak.eu/community/bugoverflow/homeassistant-connection-refused-and-error-system-is-not-ready-with-state-setup/#post-3924</link>
                        <pubDate>Mon, 31 Mar 2025 13:59:50 +0000</pubDate>
                        <description><![CDATA[Cannot connect to homeassistant, got error from &quot;ha supervisor restart&quot; like &quot;Error: System is not ready with state: setup&quot;]]></description>
                        <content:encoded><![CDATA[<p>Cannot connect to homeassistant, got error from "ha supervisor restart" like "Error: System is not ready with state: setup"</p>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/homeassistant-connection-refused-and-error-system-is-not-ready-with-state-setup/#post-3924</guid>
                    </item>
				                    <item>
                        <title>Odpowiedź na: Meshtastic 2.5.+ - how to set remote node?</title>
                        <link>https://muszak.eu/community/bugoverflow/meshtastic-2-5-how-to-set-remote-node/#post-3825</link>
                        <pubDate>Sat, 21 Sep 2024 13:57:48 +0000</pubDate>
                        <description><![CDATA[(node ​​we manage from) copy Public Key to Admin Key field in target node we will manage
(node ​​we manage) copy Public Key from managed node to Admin Key of node we will manage
admin chan...]]></description>
                        <content:encoded><![CDATA[<ol>
<li>(node ​​we manage from) copy <strong>Public Key to Admin Key</strong> field in target node we will manage</li>
<li>(node ​​we manage) copy <strong>Public Key</strong> from managed node to <strong>Admin Key</strong> of node we will manage</li>
<li>admin channel is no longer needed</li>
<li> </li>
</ol>
<p>it is a type of exchange of public keys and entering them into the Admin Key fields between nodes</p>
<p><strong>Not working? </strong>remove (from admin perspective) managed node from node list, and wait for reappear, restart nodes.</p>
<p><strong>Tip: </strong>You can set <strong>same</strong> Public key and Private key on each node (then Public Key an Admin Key will be same values, don't forget to copy prv key)</p>
<p><strong>Tip: Admin key </strong>is public key of managed node (or node, admin node), it means "allow manage by admin that identifies by that public key"</p>
<p> </p>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/meshtastic-2-5-how-to-set-remote-node/#post-3825</guid>
                    </item>
				                    <item>
                        <title>Meshtastic 2.5.+ - how to set remote node?</title>
                        <link>https://muszak.eu/community/bugoverflow/meshtastic-2-5-how-to-set-remote-node/#post-3824</link>
                        <pubDate>Sat, 21 Sep 2024 13:56:40 +0000</pubDate>
                        <description><![CDATA[how to set admin channel or key for managed node using meshtastic 2.5+?]]></description>
                        <content:encoded><![CDATA[<p>how to set admin channel or key for managed node using meshtastic 2.5+?</p>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/meshtastic-2-5-how-to-set-remote-node/#post-3824</guid>
                    </item>
				                    <item>
                        <title>The Impact of Admin Decisions and the Need to Switch to Private MQTT Servers</title>
                        <link>https://muszak.eu/community/bugoverflow/the-impact-of-admin-decisions-and-the-need-to-switch-to-private-mqtt-servers/#post-3821</link>
                        <pubDate>Thu, 22 Aug 2024 13:57:29 +0000</pubDate>
                        <description><![CDATA[Recent decisions by the administrators of the Meshtastic project have sparked significant debate within the community. The introduction of a zero-hop policy and restrictions on telemetry dat...]]></description>
                        <content:encoded><![CDATA[<p>Recent decisions by the administrators of the Meshtastic project have sparked significant debate within the community. The introduction of a zero-hop policy and restrictions on telemetry data have led to widespread dissatisfaction among users, particularly those who rely on the system for real-time location tracking and network management.</p>
<p><strong>Why These Changes Matter</strong></p>
<p>Meshtastic has always been about open communication and the free exchange of data across a wide network of nodes. The ability to share GPS locations and other telemetry data via MQTT servers has been a cornerstone of the system’s functionality. However, with the new restrictions in place, the default MQTT server is no longer as versatile as it once was.</p>
<p>Under the zero-hop policy, the system’s capacity to relay information across multiple nodes has been severely limited. This, combined with the decision to restrict access to telemetry data, has made the default server less effective for users who previously depended on it for essential data. While it was initially believed that these restrictions would prevent users from subscribing to the general msh/# channel, which covers all data, it turns out that users can still subscribe to specific channels such as msh/DE/2/e/LongFast/ or msh/CZ/2/map/. Although this does limit the range of data available, it still allows for targeted listening.</p>
<p>Additionally, it is important to note that, as of now, the transmission of <strong>neighbour information</strong> or other data beyond a user's own data <strong>is no longer available</strong>. This change prevents users from conducting terrain analysis and utilizing telemetry for broader network management.</p>
<p><strong>The Solution: Transition to Private Servers</strong></p>
<p>Given these changes, it’s clear that the community must adapt by switching to private MQTT servers. By transitioning to private servers, users can regain control over their data and maintain the functionality that drew them to Meshtastic in the first place. This move also empowers the community to preserve the flexibility and openness that are core to the Meshtastic philosophy.</p>
<p><strong>Final Thoughts</strong></p>
<p>While the decisions by the administrators may have been made with the best intentions, the reality is that they have limited the utility of the default server. For those who value the ability to freely share and access telemetry data, switching to a private MQTT server is not just an option—it’s a necessity. Even though the ability to listen to broad channels has been restricted, the option to subscribe to specific channels still offers some functionality. As the community adapts to these changes, it’s important to stay informed and proactive in finding solutions that meet our collective needs.</p>
<p> </p>
<h2>Meshtastic alternative MQTT servers:</h2>
<ul class="list-disc list-inside">
<li>Address: mqtt.meshnet.nl</li>
<li>Username: boreft</li>
<li>Password: meshboreft</li>
<li>Website: <a href="http://meshnet.nl/nederland-map.html" target="_blank" rel="noopener">meshnet.nl/nederland-map.html</a></li>
<li>Primary target: <strong>Netherlands</strong></li>
</ul>
<p> </p>
<ul class="list-disc list-inside">
<li>Address: mqtt.meshtastic.liamcottle.net</li>
<li>Username: uplink</li>
<li>Password: uplink</li>
<li>Website: <a href="http://meshtastic.liamcottle.net" target="_blank" rel="noopener">meshtastic.liamcottle.net</a></li>
<li>Primary target: <strong>Global</strong></li>
</ul>
<p> </p>
<ul class="list-disc list-inside">
<li>Address: loranet.pl</li>
<li>Username: no username</li>
<li>Password: no password</li>
<li>Website: <a href="http://loranet.pl" target="_blank" rel="noopener">loranet.pl</a></li>
<li>Primary target: <strong>Poland</strong></li>
</ul>
<p> </p>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/the-impact-of-admin-decisions-and-the-need-to-switch-to-private-mqtt-servers/#post-3821</guid>
                    </item>
				                    <item>
                        <title>Odpowiedź na: Meshtastic - example rich config</title>
                        <link>https://muszak.eu/community/bugoverflow/meshtastic-example-rich-config/#post-3820</link>
                        <pubDate>Fri, 16 Aug 2024 21:20:18 +0000</pubDate>
                        <description><![CDATA[Meshtastic
 
Example rich configuration for EU

Channels

LongFast

Uplink Enabled = ON




Device

Role = Client
NodeInfo broadcast interval = 3600


Position (for statio...]]></description>
                        <content:encoded><![CDATA[<div><em><strong>Meshtastic</strong></em></div>
<div> </div>
<div><strong><span style="font-size: 14pt">Example rich configuration for EU</span></strong></div>
<ol>
<li>Channels
<ul>
<li>LongFast
<ul>
<li>Uplink Enabled = <strong>ON</strong></li>
</ul>
</li>
</ul>
</li>
<li>Device
<ul>
<li>Role = <strong>Client</strong></li>
<li>NodeInfo broadcast interval = <strong>3600</strong></li>
</ul>
</li>
<li><strong><span style="color: #ff6600">Position</span> </strong>(for <em><strong>stationary</strong> </em>device, mobile? jump to point 4.)
<ul>
<li>Position broadcast interval = <strong>900</strong></li>
<li>GPS Mode Enabled = <strong>False</strong></li>
<li>Smart position enabled = <strong>False</strong></li>
<li>Use fixed position = <strong>True</strong></li>
<li>Latitude = <strong><em>type latitude for node location</em></strong></li>
<li>Longitude = <strong><em>type longitude for node location</em></strong></li>
</ul>
</li>
<li><strong><span style="color: #ff6600">Position</span> </strong>(for <em><strong>mobile</strong></em> device, stationary? jump to point 3.)
<ul>
<li>Position broadcast interval = <strong>900</strong></li>
<li>GPS Mode Enabled = <strong>True</strong></li>
<li>Smart position enabled = <strong>True</strong></li>
<li>Use fixed position = <strong>False</strong></li>
<li>GPS update interval seconds = <strong>120</strong></li>
</ul>
</li>
<li>LoRa
<ul>
<li>Use mode preset = <strong>True</strong></li>
<li>Mode preset = <strong>LONG_FAST</strong></li>
<li>Region (frequency plan) = <strong>EU_868 </strong></li>
<li>Hop limit = <strong>7</strong></li>
<li>TX enabled = <strong>True</strong></li>
<li>TX power = <strong>27 </strong></li>
<li>Frequency slot = <strong>1</strong></li>
<li>Override Duty Cycle = <strong>True</strong></li>
<li>SX126X RX boosted gain = <strong>True</strong></li>
<li>Ignore MQTT = <strong>True </strong></li>
<li>OK to MQTT = <strong>True </strong>(2.5.x, allow to spread telemetry accros other nodes )</li>
</ul>
</li>
<li>MQTT
<ul>
<li>MQTT Enabled = <strong>True</strong></li>
<li>JSON output enabled = <strong>True</strong></li>
<li>Root topic = <strong>msh/pl</strong> (for Poland, or <strong>msg/cz</strong> for <strong>Czech</strong>, <strong>msg/EU_868</strong> for EU etc.)</li>
<li>Map reporting = <strong>HIGH_PRECISION </strong>(or any other)</li>
</ul>
</li>
<li>Store &amp; Forward Config 
<ul>
<li>Store &amp; Forward enabled = <strong>True </strong></li>
<li>Heartbeat = <strong>True</strong></li>
</ul>
</li>
<li>Telemetry
<ul>
<li>Environment metrics module enabled = <strong>True</strong></li>
<li>(d<em>epends on module, Tbeam Supreme etc.</em>) Air quality metrics module enabled = <strong>True</strong></li>
</ul>
</li>
<li>Neighbor Info Config
<ul>
<li>Neighbor info enabled = <strong>True</strong></li>
<li>Update interval (seconds) = <strong>600</strong></li>
</ul>
</li>
</ol>
<p><em><strong>All settings I haven't mentioned remain unchanged.</strong></em></p>]]></content:encoded>
						                            <category domain="https://muszak.eu/community/"></category>                        <dc:creator>mrmucha</dc:creator>
                        <guid isPermaLink="true">https://muszak.eu/community/bugoverflow/meshtastic-example-rich-config/#post-3820</guid>
                    </item>
							        </channel>
        </rss>
		