VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

очереди при использовании call файлов

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

mapt
Сообщения: 62
Зарегистрирован: 25 июл 2012, 11:50
Откуда: Россия, Волгоград

очереди при использовании call файлов

Сообщение mapt »

Осуществляем отправку факсов с использованием call файлов.

пример call файла

Код: Выделить всё

Channel:SIP/ertelecom005526594/{fax}
Callerid:"FaxSender"<1111>
Maxretries:{maxRetries}
Waittime:300
Context:faxsend-t38
Extension:faxout
RetryTime:50
Priority:1
SetVar: T38CALL=1
Set:RETURNURL={returnUrl}
Set:TAGLINE=company
Set:LOCALSTATIONID=phone
Set:RECEIVER={fax}
Set:FAX_ID={faxId}
Set:TIFF_2_SEND={faxId}.tif
данные звонки обрабатываются с помощью экстеншена

Код: Выделить всё

[faxsend-t38]
exten => faxout,1,Set(STARTTIME=${SHELL(date +%s)} )
exten => faxout,n,Wait(1)
;exten => faxout,n,Playback(fax24,skip)
;exten => faxout,n,Wait(1)
exten => faxout,n,NoOp(**** SENDING FAX ****)
; Set FAXOPTs
exten => faxout,n,NoOp(**** SETTING FAXOPT ****)
exten => faxout,n,Set(FAXFILE=${TIFF_2_SEND})
exten => faxout,n,Set(FAXOPT(ecm)=yes)
exten => faxout,n,Set(FAXOPT(headerinfo)=${TAGLINE})
exten => faxout,n,Set(FAXOPT(maxrate)=14400)
exten => faxout,n,Set(FAXOPT(minrate)=4800)
exten => faxout,n,Set(FAXOPT(localstationid)=${LOCALSTATIONID})
; Send the fax
exten => faxout,n,NoOp(**** SENDING FAX : ${FAXFILE} ****)
exten => faxout,n,SendFAX(/mnt/asterisk_call_records/faxes/${FAXFILE},dfzs)

;Calculating Time of Sending
exten => faxout,n,Set(ENDTIME=${SHELL(date +%s)} )
exten => faxout,n,Set(TRANSFERTIME=${MATH(${ENDTIME}-${STARTTIME},int)})
;Actions after sending fax
exten => faxout,n,Set(NORMURL=${FAXOPT(error)})
exten => faxout,n,Set(STATUSMESSAGE=${REPLACE(NORMURL, ,+)})
exten => faxout,n,Set(FAXOPTRATE=${FAXOPT(rate)})
exten => faxout,n,Hangup

;Actions if no answer or busy
exten => failed,1,Set(FAXSTATUS=FAILED)
exten => failed,2,Set(STATUSMESSAGE=number+no+answer+or+busy)
exten => failed,3,Set(FAXOPTRATE=none)

exten => h,1,NoOP(------------------- FAX to ${EXTEN} with ${FAXSTATUS} -----------------)
exten => h,2,Set(CURLRESULT=${CURL(${RETURNURL}?fax=${RECEIVER}&faxId=${FAX_ID}&status=${FAXSTATUS}&message=${STATUSMESSAGE})})
exten => h,4,Set(LOGFAXOUT=${SHELL(echo "${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)} : ${FAX_ID} : ${RECEIVER} : ${FAXSTATUS} : ${STATUSMESSAGE} : ${TRANSFERTIME}$
exten => h,3,NoOp(${RECEIVER}:${FAX_ID}:${FAXSTATUS}:${STATUSMESSAGE}:${FAXOPTRATE})
Проблема в следующем: у нас несколько каналов для исходящих вызовов (около 5ти). В Call файле можно задать только один.
Соответственно если производится несколько отправок, то одна обрабатывается, остальные сбрасываются.

Хотелось бы уточнить: возможно ли сделать из call файлов очередь, чтобы одновременно обрабатывалось не более 5ти штук и они уходили на незанятые каналы? и как это сделать?

Буду благодарен за любую информацию.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: очереди при использовании call файлов

Сообщение ded »

Параметр
MaxRetries: XX

Тот кто написал Вам faxsend-t38 способен решить и эту задачу.
Если же Вы спрашиваете как сделать, то, видимо, попытаетесь сами вставить кусок кода, который предложит кто-нибудь?
Риск, скорее всего сломаете.
http://the-asterisk-book.com/1.6/call-file.html
Последний раз редактировалось ded 19 июн 2013, 12:36, всего редактировалось 1 раз.
Аватара пользователя
Aven
Сообщения: 798
Зарегистрирован: 28 янв 2011, 16:20

Re: очереди при использовании call файлов

Сообщение Aven »

Отправку через несколько каналов делать через local-канал.
Контроль текущего состояния отправки и занятость канала через AMI.
Очередь через cron или резидента.

ded, если не ошибаюсь этот диалплан взят из недавней статьи с хабра.
Решения телефонии на базе Asterisk || http://it-need.ru
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: очереди при использовании call файлов

Сообщение ded »

Вот хабр со статьями: это добро? Или зло?
Почему там не спрашивают в комментариях под статьёй?
Аватара пользователя
Aven
Сообщения: 798
Зарегистрирован: 28 янв 2011, 16:20

Re: очереди при использовании call файлов

Сообщение Aven »

Наверно потому, что у ТС регистрации там нет :)
Решения телефонии на базе Asterisk || http://it-need.ru
mapt
Сообщения: 62
Зарегистрирован: 25 июл 2012, 11:50
Откуда: Россия, Волгоград

Re: очереди при использовании call файлов

Сообщение mapt »

спасибо за ответы.

Maxretries отвечает за количество повторных попыток плюс можно еще использовать RetryTime чтобы выставить таймаут.
Но это здорово когда количество отправляемых факсов небольшое (скажем 10-15), но у нас их порядка 500-1000, поэтому все равно все упрутся в один канал и не успеют им обработаться, либо придется сильно "задрать" эти параметры, что тоже не очень гуд, т.к. удаленный номер может быть занят или абонент не абонент.

настраивалось действительно по недавней статье с хабра. сначала хотели написать отдельное решение (sip client с t38), использовали osip, pjsua, но нет не смогли найти вменяемой библиотеки с sip и t38.

а написать в комментариях на хабре да не можем, т.к. нет учетки(...

С этим: http://the-asterisk-book.com/1.6/call-file.html безусловно знакомы.
Отправку через несколько каналов делать через local-канал.
Контроль текущего состояния отправки и занятость канала через AMI.
Очередь через cron или резидента.
Здесь можно ли поподробнее?
Можно ли обойтись без AMI и управления очередью резидентом только средствами asteriska?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: очереди при использовании call файлов

Сообщение ded »

Можно.
Изучите синтаксис команды originate, а call файлы устроены также.
Его плечо может иметь форму Local/faxout@faxsend-t38
Если Вы поищите по ключевым словамм Asteisk call files channel Local то увидите примеры и комментарии.
mapt
Сообщения: 62
Зарегистрирован: 25 июл 2012, 11:50
Откуда: Россия, Волгоград

Re: очереди при использовании call файлов

Сообщение mapt »

спасибо, ушел искать
Аватара пользователя
Aven
Сообщения: 798
Зарегистрирован: 28 янв 2011, 16:20

Re: очереди при использовании call файлов

Сообщение Aven »

Ограничение на количество одновременных через GROUP можете контроллировать.
Решения телефонии на базе Asterisk || http://it-need.ru
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: очереди при использовании call файлов

Сообщение Vlad1983 »

или количество call-файлов в spool тем же скриптом что их генерит
ЛС: @rostel
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH