Страница 1 из 4

Exceptionally long voice queue length

Добавлено: 16 фев 2015, 14:20
1g0r
В консоль вываливается сообщение, после чего астериск перестает выполнять любые действия...
[2015-02-16 13:50:45] WARNING[17840][C-000001f5]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/7428@PLAN_CHAN-0000012d;2
[2015-02-16 13:50:45] WARNING[17741][C-000001ef]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/93465750@PLAN_CHAN-00000128;1
[2015-02-16 13:50:46] WARNING[17743][C-000001ee]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/7102@PLAN_CHAN-00000127;2
[2015-02-16 13:50:47] WARNING[17840][C-000001f5]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/7428@PLAN_CHAN-0000012d;2
[2015-02-16 13:50:47] WARNING[17741][C-000001ef]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/93465750@PLAN_CHAN-00000128;1
[2015-02-16 13:50:47] WARNING[17743][C-000001ee]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/7102@PLAN_CHAN-00000127;2
[2015-02-16 13:50:48] WARNING[17840][C-000001f5]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/7428@PLAN_CHAN-0000012d;2
[2015-02-16 13:50:48] WARNING[17741][C-000001ef]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/93465750@PLAN_CHAN-00000128;1
[2015-02-16 13:50:49] WARNING[17743][C-000001ee]: channel.c:1179 __ast_queue_frame: Exceptionally long voice queue length queuing to Local/7102@PLAN_CHAN-00000127;2


Кусок диалплана....
globals {

RECORDING=1; // Запись, 1 - включена.
GLOBAL_OUTBOUND_CID = 8126221092;

TRUNK_LOCAL=SIP;
TRUNK_OFFICE=DAHDI/g1;
TRUNK_CITY=DAHDI/g1;
TRUNK_IAX1=IAX2/IAX_IAX1;
TRUNK_IAX2=IAX2/IAX_IAX2;
TRUNK_IAX3=IAX2/IAX_IAX3;
TRUNK_IAX4=IAX2/IAX_IAX4;
TRUNK_IAX5=IAX2/IAX_IAX5;
};

context PLAN_CHAN {
_7[0-1.8-9]XX => {
ChanIsAvail(${TRUNK_LOCAL}/${EXTEN});
if(${AVAILSTATUS}=0)
Dial(${TRUNK_LOCAL}/${EXTEN});
ChanIsAvail(${TRUNK_IAX1}/${EXTEN});
if(${AVAILSTATUS}=0)
Dial(${TRUNK_IAX1}/${EXTEN});
};

_73XX => {
ChanIsAvail(${TRUNK_IAX2}/${EXTEN});
if(${AVAILSTATUS}=0) Dial(${TRUNK_IAX2}/${EXTEN});
};

_74XX => {
ChanIsAvail(${TRUNK_IAX3}/${EXTEN});
if(${AVAILSTATUS}=0) Dial(${TRUNK_IAX3}/${EXTEN});
};

_75XX => {
ChanIsAvail(${TRUNK_IAX4}/${EXTEN});
if(${AVAILSTATUS}=0) Dial(${TRUNK_IAX4}/${EXTEN});
};

_76XX => {
ChanIsAvail(${TRUNK_IAX5}/${EXTEN});
if(${AVAILSTATUS}=0) Dial(${TRUNK_IAX5}/${EXTEN});
};

_[0-3]XXX => {
ChanIsAvail(${TRUNK_OFFICE});
if(${AVAILSTATUS}=0) {
Set(CALLERID(name)=${ICONV(UTF-8,WINDOWS-1251,${CALLERID(name)})});
Dial(${TRUNK_OFFICE}/${EXTEN});
};
};

_9. => {
Set(CALLERID(num)=${GLOBAL_OUTBOUND_CID});
Set(O_CID=${GLOBAL_OUTBOUND_CID});
if ("${LEN(${NEW_GLOBAL_OUTBOUND_CID})}">"0") {
Set(O_CID=${NEW_GLOBAL_OUTBOUND_CID});
};
Dial(${TRUNK_CITY}/${EXTEN});
};
};

context CHANGE_ROUTE {
_X. => {

if("${CALLERID(num)}"= "${EXTEN}" ) {
&chstateMemberQueue();
NoOp(asdasd);
hangup;
};

if(${LEN(${CALLERID(num)})}<1) {
Set(${CALLERID(num)}=UNK);
};

if(${LEN(${EXTEN})}<1) {
Set(${EXTEN}=UNK);
};

if (${RECORDING}=1){
Set(PATH=/media/records/${STRFTIME(${EPOCH},,%Y/%m/%d)});
System(mkdir -p -m 777 ${PATH});
Set(D=${STRFTIME(${EPOCH},,%H%M%S)});
Set(fname=${PATH}/${D}-${EXTEN}-${CALLERID(num)});
Set(monopt=nice -n 19 /usr/local/bin/lame -b 32 --silent "${fname}.wav" "${fname}.mp3" && rm -f "${fname}.wav" && chmod o+r "${fname}.mp3");
Set(CDR(filename)=${fname}.mp3);
Set(__REALCONTEXT=${CONTEXT});
MixMonitor(${fname}.wav,b,${monopt});
};
if(${LEN(TIMEOUT)}>0) {
Set(${TIMEOUT}="120");
};

if(${LEN(${CALLMUSIC})}>0) {
Set(${MUZ}="m(${CALLMUSIC})");
};

Set(SPYGROUP=${CALLERID(num)});
Set(CALLERPRES()=allowed_passed_screen);

if (${LEN(${CALLERID(num)})}=11) {
if (${CALLERID(num):0:4}=8812) {
Set(CALLERID(num)=9${CALLERID(num):4});
} else {
Set(CALLERID(num)=9${CALLERID(num)});
};
};
if (${LEN(${CALLERID(num)})}=10) {
if (${CALLERID(num):0:3}=812) {
NoOp();
} else {
Set(CALLERID(num)=98${CALLERID(num)});
};
};
if (${LEN(${CALLERID(num)})}=8) {
if (${CALLERID(num):0:1}=8) {
Set(CALLERID(num)=9${CALLERID(num):1});
};
};


MYSQL(Connect connid localhost astlogin astpass astdb);
MYSQL(Query resultid ${connid} SET names UTF8);
MYSQL(Query resultid ${connid} SELECT `fwd_num` FROM `features` WHERE `fwd`=1 AND `ext`=${EXTEN});
MYSQL(Fetch fetchid ${resultid} FWD_NUM);
if(${fetchid}=1 && $[${LEN(${FWD_NUM})}>0]) {
Set(EXTEN=${FWD_NUM});
};
MYSQL(Clear ${resultid});
MYSQL(Disconnect ${connid});

Dial(local/${EXTEN}@PLAN_CHAN/n,${TIMEOUT},tTg${MUZ},);
};
};

С чем может быть связана данная проблема?

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 14:35
Vlad1983
сколько одновременных вызовов?

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 16:53
zzuz
Оптимизируйте БД , в частности таблицу cdr . Судя по всему запрос в БД происходит крайне долго.

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 17:43
1g0r
Vlad1983 писал(а):сколько одновременных вызовов?
Не больше 40

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 18:07
Vlad1983
поробуйте избавиться от Local хотябы через вызов GoSub

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 18:11
Vlad1983
и не используйте app_mysql
func_odbc на смену ему

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 18:11
Vlad1983
и не используйте app_mysql
func_odbc на смену ему

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 18:14
1g0r
При использовании GoSub астер у меня ругается на неправильный синтаксис. Хотя синтаксис полнотью соответствует конфигу-примеру...

И почемуто если я делаю вызов Dial(${TRUNK}\${EXTEN}) не отображается CAllerID(name) на дисплее телефона как у звонящего так и у вызываемого.... =\

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 18:21
Vlad1983

Код: Выделить всё

asterisk -rx "core show application Gosub"
?

что там не так с CID смотрите в заголовках SIP

Re: Exceptionally long voice queue length

Добавлено: 16 фев 2015, 18:46
1g0r
В SIP заголовках при вызове не через local отсутствует строка
Remote-Party-ID: "Юзверь" <sip:7074@pbx.voice.local>;party=called;privacy=off;screen=no

в sip.conf
sendrpid=yes
trustrpid=yes

Я легко могу добавить этот заголовок
SipAddHeader(Remote-Party-ID: "Юзверь" <sip:7074@pbx.voice.local>;party=called;privacy=off;screen=no);
это покажет кто звонит....

Но как отобразить звонящему Имя того кого он набрал?!?