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

Создание счетчика.

1

Доброго времени суток.

Подскажите пожалуйста, мне необходимо создать такой счетчик, который при каждом входе в контекст увеличивался на единицу, а после 20 сбрасывался в 0.

Работаю на Asterisk 1.4.

Заранее спасибо.

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

спросил 2011-12-09 16:00:28 +0400

Иннокентий Gravatar Иннокентий
11 1 1

обновил 2011-12-09 16:39:38 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

3 Ответа

1

все в extensions.conf

 [globals]
 COUNT_1=0

[count]
exten =>s,1,ExecIF($[ "${COUNT_1}" == "" ]?Set(COUNT_1=0))
exten =>s,n,Set(COUNT_1=$[ ${COUNT_1} + 1 ])
exten =>s,n,ExecIF($[ ${COUNT_1} == 21 ]?Set(COUNT_1=0))
exten =>s,n,Return

использовать както так.

exten => _X,5,Gosub(count,s,1)

если версия астериска не новая, то прийдется заменить execif на gotoif както так

exten =>s,1,ExecIF($[ "${COUNT_1}" != "" ]?ok)
exten =>s,n,Set(COUNT_1=0))
exten =>s,n(ok),Set(COUNT_1=$[ ${COUNT_1} + 1 ])
exten =>s,n,GotoIF($[ ${COUNT_1} != 21 ]?ok2)
exten =>s,n,Set(COUNT_1=0)
exten =>s,n(ok2),Return
ссылка удалить спам редактировать

ответил 2011-12-09 16:37:31 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2011-12-09 23:12:59 +0400

Comments

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

borispr ( 2011-12-09 18:21:29 +0400 )редактировать

ну да,ее надо в [globals] определить или в новых версиях использовать GLOBAL(COUNT_1)/ ${GLOBAL(COUNT_1)}

meral ( 2011-12-09 23:14:03 +0400 )редактировать

воу круто возьму на заметку)

DJs3000 ( 2011-12-12 19:03:22 +0400 )редактировать
0

Скажите, а можно создать тоже самое через DB ?

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

ответил 2011-12-12 10:24:37 +0400

Иннокентий Gravatar Иннокентий
11 1 1

Comments

можно. нов этом случае оно будет писаться на диск. анафига?

meral ( 2011-12-12 14:09:15 +0400 )редактировать
0

Спасибо. Буду пробовать.

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

ответил 2011-12-09 16:54:08 +0400

Иннокентий Gravatar Иннокентий
11 1 1

Ваш ответ

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-12-09 16:00:28 +0400

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

Обновлен: Dec 12 '11

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