Правильно описати вхідний Trunk для різних ліній з одного IP - Asterisk Питання та Відповіді

Підкажіть як правильно описувати Trunk, щоб розділяти каналами в Asterisk'і.

Допустимо провайдер створив три облікові записи у себе.

Я описав у себе їх так:

Рядки реєстрації виду:

Проблема в тому, що всі вхідні приходять у Trunk 0151_100:

За допомогою _FROMDID я відправляю на потрібний внутрішній канал, і все працює. Але мені цікаво зрозуміти, як правильно потрібно описати Trunk'и, щоб вони коректно розподілялися. З вихідними дзвінками проблем немає. Кожен іде у свій Trunk.

Для чого це потрібно: поставив FOP2 і там видно ці самі Trunk'і, і виходять, що всі вхідні приходять на один Trunk, і це викликає плутанину.

Заздалегідь дякую.

Астериск не зможе розділити ці транки, якщо варто insecure=invite. Єдиний спосіб – використовувати різні DID.

Ти ба Отакої. Дякую) Не знав що існує така вроджена проблема в Asterisk'і.

Якщо вже ви так добре знаєтеся на цій темі, підкажіть будь ласка, а що можна використовувати в insecure замість invite, щоб проблему вирішити? insecure=port?

це не проблема. це функціонал.

на сайті шановного igorg начебто все написано докладно, я навряд чи точніше скажу.

>> це не проблема. це функціонал.

Яким чином цей функціонал налаштовується? Що мені потрібно змінити в наведеній конфігурації, щоб розділити вхідні дзвінки по транках залежно від імені користувача/DID?

тільки якщо ви змусите провайдера дзвонити з автентифікацією або віддавати вам правильний DID

Провайдер віддає правильний D>

в залежності від лінії, з якої прийшов виклик. Що прописати, щоб Asterisk по ньому зіставляв транкивхідні?

ну тож маєте свій DID для кожного транку, по DID і розрулюйте. Але в логах буде лише перший транк;)

Так так зараз і є) По DID і CallerID і розрулюю) Напружує навіть не те що в логах тільки перший транк, а те, що в операторській панелі (FOP2) видно, що всі вхідні йдуть через один транк. Ну та гаразд. Раз не можна заспокоюся на цьому.

Можна вилікувати, тільки не зовсім засобами Asterisk, а засобами iptables.

Аналогічно із 0.0.0.2.

iptables -t nat -A OUTPUT -d193.201.229.34 -j DNAT --to-destination193.201.229.35

iptables -t nat -A OUTPUT -d193.201.229.33 -j DNAT --to-destination193.201.229.35

register => tcp://[email protected]:CoOlPaSsWd:89xxXXXxxXX@193.201.229.33 :5060/my_ext1

register => tcp://[email protected]:CoOlPaSsWd:89xxXXXxxXX@193.201.229.34 :5060/my_ext2

Найкращого рішення я не знайшов.

Потрібні налаштування у секціях бенкетів sip.conf asterisk:

P.S. Щоб iptables коректно обробляв перетворення необхідно використовувати модулі ip nat sip та ip conntrack sip (або nf nat sip та nf conntrack sip, замість пробілів у назвах модулів - підкреслення)

Перевірити їх наявність можна за допомогою команди lsmod grep sip, якщо вони не завантажуються автоматично, потрібно встановити їхнє завантаження в /etc/modules