Добрый день! Использую для отправки сообщений (в виде голосовых звонков) пользователям asterisk 1.8 + chan_datacard + E1550 модем. Отправляю голосовые звонки через /var/spool/asterisk/outgoing, помещая туда call-файлы.
Есть несколько вопросов по отлову ошибок и "затыков" очереди. Ситуация 1: в call файле указывается кол-во повторов и через которое время осуществлять повтор дозвона (MaxRetries, RetryTime). Ошибкой, при которой перебираются попытки дозвона - абонент сбрасывает, не поднимая трубку - это хорошо, но предположим, абонент будет недоступен и все попытки исчерпаются? call файл будет просто удален из outgoing. А как же тогда обрабатывать ощибки? например, я бы может и попробовал через час запустить повтор (предварительно записав в базу причину, по которой не доставил сообщение пользователю), но я не имею информации дозвонился ли asterisk в прошлый раз или нет. Ведь в результате успешного дозвона и окончания попыток дозвона - результат один, а именно - файл стирается из outgoing.
ситуация 2: Но вот, например, если в очереди в outgoing лежит 10 call файлов, то пока модем занят дозвоном и проигрыванием звука 1-му абоненту, остальные 9 call файлов считают все равно пытаются осуществлять дозвон, тем самым счетчик неудачных попыток в них увеличивается, и тем самым, например 8-9-10 файлы, если до них не успеет дойти очередь - безвозвратно исчезают, удаляются. Тут снова возникает вопрос, каким образом заставить работать очередь (обрабатывать call файлы) только в том случае, если модем свободен?
спросил 2012-03-28 02:16:57 +0400
Аноним
Задан: 2012-03-28 02:16:57 +0400
Просмотрен: 501 раз
Обновлен: Mar 28 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.