На сервере стоит Asterisk Elastix и три сетевые карты:
eth0 - смотрит напрямую в Интернет без Nat. Адрес сети карты, скажем 94.75.20.22
eth1 - смотрит в локальную сеть 192.168.6.0
eth2 - смотрит в локальную сеть провайдера, который видает SIP транк. IP 10.251.242.42
На сервере прописан дефолтный маршрут в eth0 на шлюз 94.75.20.21.
Также прописан маршрут для SIP транка. Все что идет в 62.179.15.1 идет через шлюз 10.251.242.41
В sip конф прописано
externip= 94.75.20.22
localnet=192.168.6.0
В начале били две карты eth0, eth1. В этой конфигурации все работало нормально. Звук и сигналинг ходил нормально. Потом поставил еще одну карту eth2 и подключил транк. Обнаружил односторонний звук.
Если звонить с SIP на GSM телефон, то пользователь GSM меня слышит, я его нет.
Попробовал поменять sip.conf на
externip= 10.251.242.42
localnet=192.168.6.0
В этой схеме транк работает, звук ходит нормально. Но если я находжуся в Интернете и дзвоню абоненту через VoIp (подключаюсь к серверу на адрес 94.75.20.22 ) я не слышу звука и сервер рвет связь на 6 секунде. Если звонить с локальной сети то все работает.
То есть если в externip= прописан адрес 94.75.20.22 то все работает с Интернета, но транк не работает. Если прописать 10.251.242.42 то работает транк, но не работает подключение с Интернета. Как быть?