Nat, sip і asterisk
немає звуку, немає звуку в одну сторону, ні чутності
Якщо у вас немає звуку, немає звуку в одну сторону, ні чутності, прочитайте уважно цю інструкцію.
NAT може викликати проблеми в декількох місцях.
Якщо одна з АТС знаходиться за NAT. інша АТС не зможе зв'язатися з нею, без проброса портів.
Клієнт за NAT
У простій ситуації SIP клієнт перебуваючи за NAT. звертається до зовнішнього інтерфейсу Asterisk. SIP клієнт при реєстрації на сервері створює запис в таблиці трансляцій, яка зберігається, поки проходить хоча б один пакет в хвилину. У файлі sip.conf потрібно визначити параметри мережі та властивості віддаленого бенкету.
Починаючи з версії Asterisk 11: 'nat = yes' застаріло, використовуйте 'nat = force_rport, comedia'
nat = force_rport, comedia
SIP клієнти і Asterisk за NAT
Щоб уникнути втрати звуку забороніть re-invite в файлі sip.conf
Опція canreinvite застаріла. Використовуйте 'directmedia'.Але клієнти знаходяться за NAT. все одно не зможуть ініціювати з'єднання з Asterisk і направити голосові пакети RTP на необхідний екстеншен. Для того щоб це працювало, треба прокинути необхідні порти через брандмауер на Asterisk. Діапазон RTP портів використовуваних Asterisk, призначається в файлі rtp.conf.
Для нормальної роботи за NAT. буде потрібно прокинути діапазон RTP портів у відповідності з настройками в файлі rtp.conf і порт SIP (зазвичай 5060). У iptables це буде виглядати так:
Основні параметри конфігурації NAT для Asterisk
Підтримка NAT в Asterisk 12
externaddr
externhost
«Externhost = hostname [: port]» той же що і «externaddr» тільки це 'hostname' оновлюється через «externrefresh» секунд (за замовчуванням 10сек.).
настройки можуть поєднуватися:
media_address
icesupport
ICE / STUN / TURN використання може бути включено глобально або для конкретного бенкету за допомогою 'icesupport' опції.