Pull to refresh

Comments 12

Комментов пачка.
Интересная, наверное, статья.
в отличии от вашего комментария статья имеет право на существование и интересна как основа для развития дальнейших идей
мы написали свой велосипед — только очередь формируется в базе.
Недавно делал нечто отдалённо похожее на Ruby и Freeswitch. Честно говоря, не думал, что с Asterisk'ом всё настолько сложнее.
Может я что-то не понимаю, но зачем городить такой огород?
Достаточно добавить разрешение в manager и написать скрипт за минуту:

#!/bin/bash

AMI_HOST=127.0.0.1
AMI_PORT=5038
AMI_USER=test
AMI_PASS=test

CALLERID='«Petr Pyatochkin» '
CALL_CONTEXT=from-local-dialer
TARGET_CONTEXT=conf

FAILED_LIST=failed.txt

:> ${FAILED_LIST}

for num in $*; do
res_str=$(cat ${FAILED_LIST}
fi

done

echo «cat ${FAILED_LIST} | mail -s Ne_Dozvon testmail@example.com»

rm -f ${FAILED_LIST}

UPD: хабр съел код, захостил тут: pastebin.com/hQ4L338S
Вы не учитываете что нужно контролировать количество одновременно занятых линий. Количество call файлов в папке Outgoing находящихся одновременно равняется количеству одновременно совершаемых звонков и соответственно занятых линий. Причем если вы закинете туда больше файлов, чем у Вас есть реальных линий, то соответственно не сможете дозвониться и очень быстро пройдут 5 попыток дозвона — данный звонок пойдёт в список не дозвонившихся и можно начинать сначала.
Да, у Вас немного другие задачи.
Впрочем, вычисление кол-ва активных линий решается проверкой в цикле с помошью Originate: command.

'core show channels count', но вероятно, Вам не нужно считать Local каналы, т.к. не всегда они могут равняться количеству SIP звонков.
Лучше всего будет например так:
# asterisk -rx «core show channels» | grep ^SIP | wc -l
4

Думаю это просто вопрос религии =)) С какой стороны отлавливать линии. Хотя мне кажется что в таком случае тоже может не сработать. Представьте себе сервер на котором висит порядка 50 абонентов которые куда то звонят, с отдельного транка вы запускаете оповещение, как будете считать линии? А если транков 20 и всё это связано с кучей астерисков которые гоняют друг через друга звонки? Мне кажется лучше контролировать количество файлов в папке.
Религия? Ок :-)))
Только у меня в продакшне кол-во линий считается через AMI, а не через call-файлы. Всегда онлайн 150-200 линий. Никаких проблем нет.
К тому же, + AMI Events. В этом случае работает полная асинхронная модель и все учитывается полностью.
Через AMI чесно говоря пока не умею, было бы интересно полностью посмотреть на схему работы.
Sign up to leave a comment.

Articles