Правильно описати вхідний 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