Перейти к содержимому
Калькуляторы

[РЕШЕНО] Asterisk call-limit Странная рекция на reject

Здравствуйте, есть пиры на Asterisk 1.4 с call-limit=1. На входящие звонки лимит настроен по принципу:

 

[macro-customer-incoming]
exten => s,1,Set(GROUP()=${MACRO_EXTEN})
exten => s,n,Set(CALL-LIMIT=1)
exten => s,n,ExecIf($[${GROUP_COUNT(${GROUP()})} > ${CALL-LIMIT}]|Busy)
exten => s,n,Dial(SIP/${MACRO_EXTEN})
exten => s,n,Hangup()

 

А вот в ситуации, когда клиент сделал исходящий звонок, и ему поступает входящий звонок, получаем:

 

[2013-10-09 17:01:01] ERROR[6032] chan_sip.c: Call to peer '<peer>' rejected due to usage limit of 1
[2013-10-09 17:01:01] VERBOSE[6032] logger.c: [2013-10-09 17:01:01]     -- Couldn't call <peer>
[2013-10-09 17:01:01] VERBOSE[6032] logger.c: [2013-10-09 17:01:01]     -- Executing [<peer>@<incoming-channel>:2] NoOp("<bla-bla-bla>", "***** Dialstatus: CHANUNAVAIL *****") in new stack

 

При этом не отрабатывается macros, ну оно и понятно, но даже если на входящие написать:

 

exten => <peer>,1,Dial(SIP/${EXTEN})
exten => <peer>,n,NoOp(***** Dialstatus: ${DIALSTATUS} *****)
exten => <peer>,n,ExecIf($[${DIALSTATUS} = "CHANUNAVAIL"]|Busy)
exten => <peer>,n,Hangup()

 

Reject отрабатывает первый, реакции на CHANUNAVAIL нет:

 

[2013-10-09 17:01:01] VERBOSE[6032] logger.c: [2013-10-09 17:01:01]     -- Executing [<peer>@<incoming-channel>:1] Dial("SIP/<bla-bla-bla>", "SIP/501") in new stack
[2013-10-09 17:01:01] ERROR[6032] chan_sip.c: Call to peer '501' rejected due to usage limit of 1
[2013-10-09 17:01:01] VERBOSE[6032] logger.c: [2013-10-09 17:01:01]     -- Couldn't call <peer>
[2013-10-09 17:01:01] VERBOSE[6032] logger.c: [2013-10-09 17:01:01]     -- Executing [<peer>@<incoming-channel>:2] NoOp("SIP/<bla-bla-bla>", "***** Dialstatus: CHANUNAVAIL *****") in new stack
[2013-10-09 17:01:01] VERBOSE[6032] logger.c: [2013-10-09 17:01:01]     -- Executing [<peer>@<incoming-channel>:3] ExecIf("SIP/<bla-bla-bla>", "0|Busy") in new stack
[2013-10-09 17:01:01] VERBOSE[6032] logger.c: [2013-10-09 17:01:01]     -- Executing [<peer>@<incoming-channel>:4] Hangup("SIP/<bla-bla-bla>", "") in new stack

 

 

Так вот, в итоге, при звонки с других операторов, система выдает либо "Номер не существует" (Beeline), либо "Короткий Пи" и сброс (Megafon).

Может кто сталкивался с проблемой, или есть возможность сменить call-limit action/signal на Busy?

Изменено пользователем a-zazell

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а зачем вы мешаете кислое с пресным ?

 

зачем там в конфиге call-limit=1 если вы макросом тот лимит более красиво делаете ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

зачем там в конфиге call-limit=1 если вы макросом тот лимит более красиво делаете ?

 

Макрос работает в общем контексте на Входящие звонки к клиенту, он не ограничивает Исходящие от клиента вызовы, это делает call-limit.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

call-limit не нужно использовать, он deprecated в актуальных версиях.

Рекомендую срочно обновить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Макрос работает в общем контексте на Входящие звонки к клиенту, он не ограничивает Исходящие от клиента вызовы, это делает call-limit.

Вы либо оба раза макросами делайте либо call-limit увеличивайте.

 

что мешает сделать макрос для исходящих exten => s,1,Set(GROUP()=${CALLERID(number)}) ?

Изменено пользователем io123

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы либо оба раза макросами делайте либо call-limit увеличивайте.

что мешает сделать макрос для исходящих exten => s,1,Set(GROUP()=${CALLERID(number)}) ?

 

Сегодня попробую, отпишусь. А так увеличил сразу call-limit до 2ух.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Убрал call-limit и поправил контекст пиров на:

 

[CONTEXT_A]
exten => _X.,1,Set(GROUP()=${CALLERID(num)})
exten => _X.,n,Set(CALLS=${GROUP_COUNT(${GROUP()})})
exten => _X.,n,ExecIf($[ ${CALLS} > 1 ]|Congestion)
;exten => _X.,n,NoOp(*** ${GROUP_COUNT(${GROUP()})} ***)
exten => _X.,n,Goto(CONTEXT_B,${EXTEN},1)
exten => _X.,n,Hangup

а входящая для пиров обрабатывается макросом:

 

[macro-MACROS]
...
exten => s,n,Set(GROUP()=${MACRO_EXTEN})
exten => s,n,Set(CALLS=${GROUP_COUNT(${GROUP()})})
exten => s,n,ExecIf($[ ${CALLS} > 1]|Busy)
...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.