a-zazell Опубликовано 9 октября, 2013 (изменено) · Жалоба Здравствуйте, есть пиры на 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? Изменено 12 октября, 2013 пользователем a-zazell Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
io123 Опубликовано 9 октября, 2013 · Жалоба а зачем вы мешаете кислое с пресным ? зачем там в конфиге call-limit=1 если вы макросом тот лимит более красиво делаете ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a-zazell Опубликовано 9 октября, 2013 · Жалоба зачем там в конфиге call-limit=1 если вы макросом тот лимит более красиво делаете ? Макрос работает в общем контексте на Входящие звонки к клиенту, он не ограничивает Исходящие от клиента вызовы, это делает call-limit. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Aven Опубликовано 10 октября, 2013 · Жалоба call-limit не нужно использовать, он deprecated в актуальных версиях. Рекомендую срочно обновить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
io123 Опубликовано 10 октября, 2013 (изменено) · Жалоба Макрос работает в общем контексте на Входящие звонки к клиенту, он не ограничивает Исходящие от клиента вызовы, это делает call-limit. Вы либо оба раза макросами делайте либо call-limit увеличивайте. что мешает сделать макрос для исходящих exten => s,1,Set(GROUP()=${CALLERID(number)}) ? Изменено 10 октября, 2013 пользователем io123 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a-zazell Опубликовано 10 октября, 2013 · Жалоба Вы либо оба раза макросами делайте либо call-limit увеличивайте. что мешает сделать макрос для исходящих exten => s,1,Set(GROUP()=${CALLERID(number)}) ? Сегодня попробую, отпишусь. А так увеличил сразу call-limit до 2ух. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a-zazell Опубликовано 12 октября, 2013 · Жалоба Убрал 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) ... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...