Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

отслеживания дозвона из call файла

1

Всем привет, есть один вопрос который думаю как решить. Задача: создается call файл из скрипта, call файл вида

Channel: Local/$number@from-internal
Callerid: 222222
MaxRetries: 2
RetryTime: 40
Context: work
Extension: s
Set: __sp=custom/menu/123
Set: __td=nz
Archive: Yes

если после 2 звонков до абонента дозвониться не получилось то в запускался бы shel скрипт. У меня есть пару идей но они больно сложно ватые, ожет подскажите как это проще реализовать? контекст work выглядит вот так:

exten => s,1,Answer ; отвечаем
exten => s,n,noop(${sp})
exten => s,n,noop(${td})
exten => s,n,System(/var/spool/asterisk/tmp/tdpz ${td})
exten => s,n,Set(TIMEOUT(response)=30)
exten => s,n(naberite),Background(${sp}) 
exten => s,n,WaitExten(10)
exten => s,n,GotoIf($[${numTries} = 2]?s,ha)
exten => 1,1,Set(numTries=$[${numTries}+1])
exten => 1,2,Goto(s,naberite) 
exten => 2,1,Queue(300,t,,,210) 
exten => 3,1,System(/var/spool/asterisk/tmp/tdcz ${td}) 
exten => 3,2,Playback(/var/lib/asterisk/sounds/custom/menu/otkaz) 

exten => i,1,GotoIf($[${numTries1} = 2]?s,ha)
exten => i,n,Playback(pbx-invalid) 
exten => i,n,Set(numTries1=$[${numTries1}+1])
exten => i,n,Goto(s,naberite)
удалить закрыть спам изменить тег редактировать

спросил 2011-10-04 16:39:55 +0400

romariosar Gravatar romariosar flag of Russian Federation
588 93 10 44
http://www.webunix.ru/

2 Ответа

1

можно так:

  • в callfile добавляете переменную id звонка (или DST использовать в качестве ID)
  • встраиваете в контекст from-internal свою логику после команды Dial(), которая делает следующее:
  • при каждом вызове инкрементируете счетчик в базе астериска ключ типа dialout/id функцией DB(), или используя коннектор к mysql или другой базе.
  • далее в диалплане читаете этот ключ и если он равен двум, командой System запускаете нужный вам шел-скрипт.
ссылка удалить спам редактировать

ответил 2011-10-04 18:35:27 +0400

asteriskguru Gravatar asteriskguru
1160 4 5 21
http://www.asteriskguru.r...

обновил 2011-10-04 18:39:27 +0400

0

Идите от обратного: сделайте базу, в которой по умолчанию считайте, что не дозвонились, а при дозвоне помечайте, что обзвон выполнен. И через нужное время запускайте скрипт, вытягивающий из базы всех к кому не дозвонились.

ссылка удалить спам редактировать

ответил 2011-10-04 16:45:31 +0400

um2010 Gravatar um2010
2056 70 13 55

Comments

это я уже продумал но на существующей сисеме это сделать достаточно геморно, так что думаю можт есть какие нибудь другие варианты. romariosar ( 2011-10-04 16:47:12 +0400 )редактировать
Использовать БД астериска и создать счетчик - многа ума не надо. В вашем случае реализовывйте его в контексте from-internal zzuz ( 2011-10-04 17:40:40 +0400 )редактировать
а как я его туда пропишу, если звонок не пройдет то звонок не перейдет в нужный контекст и там нечего не случится. romariosar ( 2011-10-04 18:26:03 +0400 )редактировать
ключевой момент - это прошедшие звонки помечать как отвеченные, остальные - остались без ответа. Всё, что без ответа в кроне (к примеру) скрипт отработает um2010 ( 2011-10-04 18:54:45 +0400 )редактировать
звонок сначала звонит по from-internal , при ответе переходит в work. тут и так ясно , что контролировать и учитывать звонки надо в from-internal . zzuz ( 2011-10-04 19:01:16 +0400 )редактировать
написал логику на bash, вроде все работает. romariosar ( 2011-10-05 20:01:42 +0400 )редактировать
Нормальный подход. zzuz ( 2011-10-05 22:39:07 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-10-04 16:39:55 +0400

Просмотрен: 629 раз

Обновлен: Oct 04 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.