N>Из того что получилось в нашем исследовании — например, прохождение всей сигнализации через один сокет (для наиболее типичного случая — UDP) и необходимость держания базы текущих диалогов является серьёзным препятствием расщеплению на слабозависимые параллельные процессы. Уровень диалога и уровень сессии очень сильно связаны,
Сессия —
supervisor, диалог(диалоги?) — его дочерние процессы.
Более того, так как сессий может быть много, то над сессиями ставится еще один супервайзер.
Наврное, так, я просто специфики VoIP не знаю
N>и при том что у них разные FSM — строить их в разных процессах становится весьма накладно, поэтому надо изобретать multi-FSM аналог gen_server. Достаточно много междиалогового взаимодействия (transfer, parking...), связей с внешними источниками (биллинг, RTP прокси), автоматы получаются понятными, но громоздкими.
Для большинства этих связей скорее всего можно обойтись простым receive.