3CX изменение портов для SIP-телефонии: RTP и WRTC
Вступление можно пропустить. Я последние несколько лет использую сервер телефонии 3CX, как на работе, так и для домашних целей. Он меня полностью устраивает как в бесплатном, так и в коммерческом плане. На работе наш 3CX-сервер работает с интернетом напрямую, используя (белый) публичный IP-адрес, мой домашний 3CX работает из-за NAT и я использую 3CX-tunnel. Но недавно меня попросили настроить роутер Cisco для проброса огромного количества портов за NAT, для работоспособности сервера 3CX. Как всем известно на роутерах Cisco нет пакетного проброса портов. Для работы RTP+WRTC необходимо прокинуть UDP порты от 9000 до 10999. Для таких целей я пользуюсь скриптом на Python, но здесь другая контора в которой не развёрнуты мои механизмы управления. Естественно, что разворачивать всю инфраструктуру мне не хотелось, и создавать портянку для проброса абсолютно всех портов я тоже не хотел, по этому мы провели анализ ситуации и пришли к выводу, что для этой конторы нет необходимости в таком огромном количестве внешних подключений. У них в планах подключить работу четырёх внешних сотрудников через IP-телефоны не поддерживающие 3CX-tunnel.
Для изменения номеров портов необходимо зайти в админскую панель 3CX. В самом низу панели ищем «Параметры». Нажимаем на плитку с названием «Все параметры». И нашему взору открываются «Системные параметры», среди которых нам необходимо отредактировать четыре переменные:
- FIRSTEXTPORT (начальный RTP порт, по умолчанию 9000)
- LASTEXTPORT (конечный RTP порт, по умолчанию 10499)
- WEBRTC_WRTC_FIRST_PORT (начальный WebRTC порт, по умолчанию 10500)
- WEBRTC_WRTC_LAST_PORT (конечный WebRTC порт, по умолчанию 10999)
Между FIRSTEXTPORT и LASTEXTPORT много пространства, так, что пользуйтесь поиском.
Из тонкостей хочу заметить, что для работы RTP необходимо открывать порты парами. Для одного голосового потока открывается два UDP порта. Для корректной работы WebRTP требуется открывать по 4 потока на один канал.
При изменении портов изменения вступают в силу моментально, будьте крайне осторожны. После того как были открыты порты необходимо проверить работу фаервола. Я покажу на примере того как это сделано у меня на время тестирования, со всеми необходимыми портами для работы с SIP телефонией от 3CX.
Предварительно установите в админке 3CX следующие настройки:
- FIRSTEXTPORT: 9000
- LASTEXTPORT: 9009
- WEBRTC_WRTC_FIRST_PORT: 10500
- WEBRTC_WRTC_LAST_PORT: 10507
Допустим, что IP-адрес вашего сервера за NAT: 192.168.32.22, а в интернет смотрит через интерфейс Fa0/0/0 (можно подставить IP-внешнего интерфейса). Перейдите в режим конфигурирования Cisco:
!SIP ALG отключить no ip nat service sip udp port 5060 !3CX Tunnel ip nat inside source static udp 192.168.32.22 5090 interface Fa0/0/0 5090 extendable ip nat inside source static tcp 192.168.32.22 5090 interface Fa0/0/0 5090 extendable !SIP ip nat inside source static udp 192.168.32.22 5060 interface Fa0/0/0 5060 extendable ip nat inside source static tcp 192.168.32.22 5060 interface Fa0/0/0 5060 extendable ip nat inside source static tcp 192.168.32.22 5061 interface Fa0/0/0 5061 extendable !RTP ip nat inside source static udp 192.168.32.22 9000 interface Fa0/0/0 9000 extendable ip nat inside source static udp 192.168.32.22 9001 interface Fa0/0/0 9001 extendable ip nat inside source static udp 192.168.32.22 9002 interface Fa0/0/0 9002 extendable ip nat inside source static udp 192.168.32.22 9003 interface Fa0/0/0 9003 extendable ip nat inside source static udp 192.168.32.22 9004 interface Fa0/0/0 9004 extendable ip nat inside source static udp 192.168.32.22 9005 interface Fa0/0/0 9005 extendable ip nat inside source static udp 192.168.32.22 9006 interface Fa0/0/0 9006 extendable ip nat inside source static udp 192.168.32.22 9007 interface Fa0/0/0 9007 extendable ip nat inside source static udp 192.168.32.22 9008 interface Fa0/0/0 9008 extendable ip nat inside source static udp 192.168.32.22 9009 interface Fa0/0/0 9009 extendable !WRTC ip nat inside source static udp 192.168.32.22 10500 interface Fa0/0/0 10500 extendable ip nat inside source static udp 192.168.32.22 10501 interface Fa0/0/0 10501 extendable ip nat inside source static udp 192.168.32.22 10502 interface Fa0/0/0 10502 extendable ip nat inside source static udp 192.168.32.22 10503 interface Fa0/0/0 10503 extendable ip nat inside source static udp 192.168.32.22 10504 interface Fa0/0/0 10504 extendable ip nat inside source static udp 192.168.32.22 10505 interface Fa0/0/0 10505 extendable ip nat inside source static udp 192.168.32.22 10506 interface Fa0/0/0 10506 extendable ip nat inside source static udp 192.168.32.22 10507 interface Fa0/0/0 10507 extendable !3CX для работы передачи статусов SIP-клиентов ip nat inside source static tcp 192.168.32.22 5001 interface Fa0/0/0 5001 extendable wr mem
Для окончательной проверки открываем главную страничку. В центральном столбце «Состояние АТС» спускаемся до ссылки «Сетевой экран», переходим по этой ссылке. Нажимаем на кнопку «Запустить». Это временно отключит работу вашей IP-АТС, но так как у нас мизерное количество портов, то тестирование займёт меньше минуты. При успешном тестировании вы увидите аналогичный отчёт проверки системы.
На этом можно считать настройку оконченой.
В интернете я не смог найти найти как изменить количество RTP и WRTC портов используемых IP-телефонией от 3CX. По этому делюсь этими знаниями и на всякий случай ещё раз проэкспериментировал на домашнем сервере.
Отредактировано:2020-09-04 13:30:21