У нас здесь небольшая сеть компаний (192.168.178.x
) и частной сети в домашнем офисе (192.168.2.x
). Обе эти сети работают с маршрутизатором FritzBox и подключены через VPN через FritzBox к FritzBox (IPSec, 192.168.2.1
решает 192.168.178.128
в удаленной сети).
Теперь я пытаюсь подключиться к телефонной системе компании с помощью своего программного телефона (IP-адрес локального компьютера 192.168.2.41
), а телефонная система адресуется по адресу 192.168.178.10
и использует местную службу VoIP.
Я могу зарегистрировать свой программный телефон / учетную запись, могу позвонить кому-нибудь, мне могут позвонить, но меня никто не слышит, и я никого не слышу.
Итак, маршрут должен выглядеть так:
192.168.2.41 (client computer with softphone) ->
192.168.2.1 FritzBox ->
192.168.178.1 FritzBox remote VPN Server ->
192.168.178.10 telephone system / VoIP Server
Я попытался поймать некоторые пакеты в FritzBoxes и проверить их с помощью Wireshark. Но я не могу их понять. Во время звонка активно соединение между 192.168.2.41 и 192.168.178.62. Но я даже сейчас не знаю, какое устройство 192.168.178.62 должно быть.
Есть идеи, почему не передаются голосовые данные?
Стандартный вызов SIP VoIP включает 4 кортежа IP: два канала управления и два голосовых канала, по одному от каждого клиента к другому клиенту. Оба конца вызова являются сервером (входящие соединения) и клиентом (исходящие соединения). Обычно для голосового канала используется динамический порт с большим номером. Канал управления клиентами используется для передачи IP-адреса голосового соединения и порта, открытого клиентом, противоположному клиенту вызова в пределах полезной нагрузки канала управления. Затем каждый клиент инициирует голосовой канал (упомянутый выше RTP), в результате чего получается один голосовой канал в каждую сторону. В вашем случае клиент домашнего офиса будет передавать локальный IP-адрес (192.168.2.41), а не виртуальный IP-адрес (192.168.178.128) дальнего конца VPN. Это приводит к тому, что клиент главного офиса пытается подключиться к немаршрутизируемому IP, а не к виртуальному IP.
Ваш удаленный программный клиент VPN должен иметь возможность передавать маршрутизируемый IP-адрес офисному клиенту для подключения голосового канала, или вам нужен межсетевой экран, способный проверять и управлять сеансом SIP (он же шлюз SIP).
Некоторые софтклиенты могут использовать соединение с обратным конусом (удаленный клиент инициирует все пути вызова) для уменьшения виртуальных IP-адресов и NAT в VPN. Вы можете найти эту функцию в документации вашего программного клиента. В противном случае локальные IP-адреса обоих клиентов VoIP должны быть прозрачно и напрямую маршрутизируемыми обоими клиентами.
Если у вас запущен сервер STUN, включение STUN на клиенте даст клиенту возможность искать свой виртуальный IP-адрес на офисном конце VPN и использовать этот IP-адрес для регистрации и сеансов SIP. И сервер, и домашний клиент должны быть включены для работы. Обратите внимание: служба STUN должна быть запущена на сервере, который маршрутизируется напрямую через УАТС (без NAT). Обычно это тот же сервер, что и служба SIP-регистрации и каталога.
В: такое же поведение происходит между клиентами в одной подсети? Полагаю, что нет.
Я решил проблему, добавив внутренний номер VoIP непосредственно в FritzBox, зарегистрированный на АТС в удаленной сети. Таким образом, удаленная сеть может напрямую связываться с FritzBox моей сети (VPN-клиент).
Так что мне просто нужно настроить телефон на моем FritzBox, используя новый внутренний номер. Это отлично сработало.