в руки попался русский fxs-шлюз TAU-24 в связке fs+fusionpbx
все завелось без проблем, но появился "душок" с отработкой PickUP-Group, в упор не хочет работать перехват в группе
ну как говорится "не боги горшки обжигают" и стал разбираться. через "show channels" и выяснилось что "intercept_group.lua" отлавливает события "callstate=RINGING", но при входящем звонке на TAU события маркируются "callstate=EARLY"
в intercept_group.lua сделал модификацию с:
call_hostname = "";
sql = "SELECT call_uuid AS uuid, hostname, ip_addr FROM channels ";
sql = sql .. "WHERE callstate = 'RINGING' ";
sql = sql .. "AND (";
x = 0;
for key,extension in pairs(extensions) do
if (x == 0) then
sql = sql .. " presence_id = '"..extension.."@"..domain_name.."' ";
else
sql = sql .. "OR presence_id = '"..extension.."@"..domain_name.."' ";
end
x = x + 1;
end
sql = sql .. ") ";
sql = sql .. "and call_uuid is not null ";
--if (domain_count > 1) then
на:
call_hostname = "";
sql = "SELECT call_uuid AS uuid, hostname, ip_addr FROM channels ";
sql = sql .. "WHERE (callstate = 'RINGING' OR callstate = 'EARLY') AND call_uuid is not null AND callee_num is not null " ;
sql = sql .. "AND (";
x = 0;
for key,extension in pairs(extensions) do
if (x == 0) then
sql = sql .. " presence_id = '"..extension.."@"..domain_name.."' ";
else
sql = sql .. "OR presence_id = '"..extension.."@"..domain_name.."' ";
end
x = x + 1;
end
sql = sql .. ") ";
--if (domain_count > 1) then
и перехват в группе заработал