Гуру FreePBX, прошу совет.
Есть несколько очередей, звонящий клиент попадает в первую очередь, если ему не отвечают за отведённое время, то вызов переадресуется во вторую очередь, если там не отвечают, по может попасть в третью очередь.
Нужно отправлять информацию на почту, если клиенту не ответили.
Везде пишут, что нужно добавить нужное действие в
/etc/asterisk/extensions_override_freepbx.conf
[ext-queues]
Добавил. И, конечно, стал получать много ложных уведомлений, т.к. когда абоненту не ответили в первой очереди и он попал во вторую, событие сработало. И даже если ему во второй очереди ответили, оператор всё равно получает сообщение с номером этого клиента.
Поэтому прошу совет - в каком именно месте диалплана добавить отслеживание и по каким критериям (значение переменной или выборку из CDR)?
На "ванильном" Asterisk подобную задачу выполнял успешно, а среди готового кода не могу разобраться, как сделать не сломав ничего.
делается просто
1. на входящий звонок вешается hangup handler
2. в контекст hangup handler запускаетс SQL запрос по CEL, вида
readsql=SELECT eventtime FROM asteriskcdrdb.cel WHERE uniqueid like '${ARG1}' and (eventtype like 'BRIDGE_ENTER' OR eventtype like 'BRIDGE_START') LIMIT 1
3. Если запрос FALSE - это 100% потерянный звонок, иначе игнор