Проблема следующая, 100 правил в outbound routes, из них работают первые 40 штук, остальные сразу же отбиваются.
в логах ошибка: Maximum PBX stack exceeded
По умолчанию AST_PBX_MAX_STACK
выставлен в 128, лечится проблема увеличением данного параметра. HOWTO-шка на примере Elastix:
yum install openssl-devel newt-devel libtermcap-devel ncurses-devel postgresql-devel libpri-devel libogg-devel \
libvorbis-devel unixODBC-devel libtool sqlite-devel libtool-ltdl-devel alsa-lib-devel gsm-devel net-snmp-devel libwat-devel \
curl-devel speex-devel libxml2-devel mISDNuser-devel mISDN-devel libopenr2-devel mysql-devel iksemel-devel libsrtp \
subversion libcap-devel openldap-devel libidn-devel lm_sensors-devel bluez-libs bluez-libs-devel libgsmat-devel rpm-build libss7-devel -y
wget http://repo.elastix.org/elastix/2.0/updates/SRPMS/asterisk-11.4.0-0.src.rpm
mkdir -p /usr/src/redhat/SOURCES
rpm -Uvh `rpm -qa | grep asterisk-1`.src.rpm
cd /usr/src/redhat/SOURCES/
tar zxf asterisk-1*.tar.gz
правим define AST_PBX_MAX_STACK 128
на define AST_PBX_MAX_STACK 256
в файлах:
./res/ael/pval.c
./include/asterisk/extconf.h
./include/asterisk/pbx.h
./utils/extconf.c
./utils/conf2ael.c
./main/pbx.c
Собираем пакет и устанавливаем:
rm -rf asterisk-11.4.0.tar.gz
tar czf asterisk-`rasterisk -V |awk '{print $2}'`.tar.gz asterisk-`rasterisk -V |awk '{print $2}'`
rm -rf asterisk-`rasterisk -V |awk '{print $2}'`
rpmbuild -bb /usr/src/redhat/SPECS/asterisk.spec
rpm -Uvh asterisk-11.4.0-0.i386.rpm --force
Задан: 2013-07-08 13:44:53 +0400
Просмотрен: 1,187 раз
Обновлен: Jul 08 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
можно проще. создать суперправила с транком Local/. соответсвенно нет ограничений на стек. а вообще 100 правил исходящих в freepbx говорит о неправильном использовании системы. что, и транков 100 штук?
meral ( 2013-07-08 21:55:06 +0400 )редактироватьнет, транк один, это pri поток. 100 правил, по тому что сотня городских на сотню внутренних линий. Да, я сам в шоке.
shakirov ( 2013-07-09 21:29:58 +0400 )редактироватьну так вы чтото не так делаете. регекспы там, все в одно провило не?
meral ( 2013-07-09 22:56:35 +0400 )редактироватькаждому внутреннему соответствует гордской на выход, 1232 - > 2114512, 1456 -> 2118734. Какими тут регекспами в одно правило?
shakirov ( 2013-07-09 23:02:35 +0400 )редактироватьвы чтото не то делаете. callerid выставляется на extension.у каждого extension есть поле callerid. правила то тут причем?
meral ( 2013-07-10 04:50:00 +0400 )редактироватьтогда на внутренних звонках будет определяться городской номер.
shakirov ( 2013-07-14 11:19:18 +0400 )редактироватьгы. да ну? во freepbx еще с версии 2.6 отдельно внутренний и внешний callerid на екстеншенах. короче это похоже на "мне разбираться было влом, сделал через ж. вот смотрите как я могу".
meral ( 2013-07-14 12:53:18 +0400 )редактироватьну что у вас за привычка хамить то? окай, в случае с pri можно обойтись простановкой CID на экстеншнах. А что делать если 100 sip транков? несколько инсталляций с 50-ю транками у меня есть. Outbound CID будет так же передаваться и на IAX2 транках в другие офисы. т.е. люди из филиалов будут видеть городские номера вместо внутренних. Хотя это может галкой "Intra route" лечится
shakirov ( 2013-07-14 13:13:59 +0400 )редактироватьхамить? это называлося всегда здоровая критика. во всех культурах кроме японской. вы японец? тогда конечно лучше сказать чтото типа " ваше решение превосходно и вообще идеально, но я бы на вашем месте использовла штатные средства freepbx".
meral ( 2013-07-15 00:07:50 +0400 )редактировать"мне было влом разбираться сделал через ж" - это вов сех культурах кроме кхмерской называется хамить. вы кхмер? Давайте к фактам, в ситуации когда 100 сипртанков мое решение может оказаться полезным?
shakirov ( 2013-07-15 00:11:24 +0400 )редактировать100 транков во freepbx говорит о том, что вы используетет проект не по назаначению.
meral ( 2013-07-15 03:23:01 +0400 )редактироватьВас телепатия подводит, 100 сиптранков по тому что 100 номеров, которые провайдер отдает по одному, и не может отдать одним транком. А не по тому что это какой-то провайдинг, вполне себе обычный автосалон.
shakirov ( 2013-07-15 12:44:11 +0400 )редактировать