>Что происходит - наверное, понятно. Наверное не понятно.
> Connection tracking, очевидно, не работает.
Если на внутреннем интерфейсе есть пакеты в обе стороны - значит трекинг работает.
> Соответственно связи
>между абонентами нет (если быть точным, локальный абонент может слышать голос,
>но отправлять не может).
21:09:07.598034 IP xxx.xxx.xxx.xxx > yyy.yyy.yyy.yyy: icmp 120: xxx.xxx.xxx.xxx udp port 61412 unreachable
Если быть точным, то судя приведенному тобой логу, то как раз наоборот, локальный абонент не может слышать.
==============
Легкие пути решения проблемы:
1 - использовать симметричный RTP без ip_nat_sip с удаленным Asterisk со включенным НАТ для агента (если астериск)
2 - использовать фиксированный порт на железке и сделать его проброс.