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

Asterisk+SPA400, странное поведение DISA

0

Здравствуйте, друзья!

Прикрутил SPa400 к астериску. Все вроде получилось с одним номером, воткнутым в SPA - входящие приходили. После новогодних праздников вернулся к этому делу, довоткнул еще 2 номера и стала странно себя вести DISa.

Вот кусок extensions.conf:

[FROM_SPA400] 
exten => SPA400,1,NOOP(${SIP_HEADER(TO)}) 
exten => SPA400,n,SET(TMP2=${SIP_HEADER(TO)}) 
exten => SPA400,n,SET(TMP1=${CUT(TMP2,@,1)}) 
exten => SPA400,n,SET(DST=${CUT(TMP1,:,2)}) 
exten => SPA400,n,Goto(my_dids,${DST},1) 

[my_dids] 
exten => FXO_Port_ID_1,1,Answer() 
exten => FXO_Port_ID_1,2,DISA(no-password,port1) 
exten => FXO_Port_ID_2,1,Answer() 
exten => FXO_Port_ID_2,2,DISA(no-password,port2) 
exten => FXO_Port_ID_3,1,Answer() 
exten => FXO_Port_ID_3,2,DISA(no-password,port3) 

[port1] 
exten => s,2,Dial(SIP/01,180,t) 

[port2] 
exten => s,2,Dial(SIP/01,180,t) 

[port3] 
exten => s,2,Dial(SIP/01,180,t)

При звонке на любой номер из трех вижу в консоли:

-- Executing [SPA400@FROM_SPA400:1] NoOp("SIP/SPA400-00000012", "<sip:FXO_Port_ID_3@192.168.15.21>") in new stack 
-- Executing [SPA400@FROM_SPA400:2] Set("SIP/SPA400-00000012", "TMP2=<sip:FXO_Port_ID_3@192.168.15.21>") in new stack 
-- Executing [SPA400@FROM_SPA400:3] Set("SIP/SPA400-00000012", "TMP1=<sip:FXO_Port_ID_3") in new stack 
-- Executing [SPA400@FROM_SPA400:4] Set("SIP/SPA400-00000012", "DST=FXO_Port_ID_3") in new stack 
-- Executing [SPA400@FROM_SPA400:5] Goto("SIP/SPA400-00000012", "my_dids,FXO_Port_ID_3,1") in new stack 
-- Goto (my_dids,FXO_Port_ID_3,1) 
-- Executing [FXO_Port_ID_3@my_dids:1] Answer("SIP/SPA400-00000012", "") in new stack 
-- Executing [FXO_Port_ID_3@my_dids:2] DISA("SIP/SPA400-00000012", "no-password,port3") in new stack 
== Spawn extension (my_dids, FXO_Port_ID_3, 2) exited non-zero on 'SIP/SPA400-00000012'

Т.е. до контекста port3 дело не доходит. Подскажите пожалуйста, в чем тут дело?

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

спросил 2011-01-14 20:49:45 +0400

pooh81 Gravatar pooh81
73 7 1 12

обновил 2011-01-14 21:31:00 +0400

litnimax Gravatar litnimax
1453 11 8 29
http://www.pbxware.ru/

3 Ответа

1

Здравствуйте. С прошедшими :-)

Я думаю, если включить более высокий debug, то можно будет узнать больше информации. Посмотрите в logger.conf, чтобы в console стоял уровень debug, и далее core set debug 5, core set verbose 5, будет мало - ставьте 9.

А еще попробуйте указать DISA(no-password|port3), вертикальная черта вместо запятой. Не спрашивайте почему :-)

И еще можно оптимизацию провести:

[FROM_SPA400] 
exten => SPA400,1,NOOP(${SIP_HEADER(TO)}) 
exten => SPA400,n,SET(TMP2=${SIP_HEADER(TO)}) 
exten => SPA400,n,SET(TMP1=${CUT(TMP2,@,1)}) 
exten => SPA400,n,SET(DST=${CUT(TMP1,:,2)}) 
exten => SPA400,n,Set(PORT=${DST:-1}); тут будет цифра - номер порта, подробности http://www.voip-info.org/wiki/view/Asterisk+variables
exten => SPA400,n,DISA(no-password|port${PORT})

А если SIP абонентов обозвать с привязкой к номеру порта, то можно сразу его вызывать. Только что подумал, а зачем Вам вообще DISA? Для вызова абонента она не нужна. Первый раз вижу такое употребление DISA :-) Что мешает далее сделать так

...
exten => SPA400,n,Goto(port${PORT})
exten => port1,1,Dial(SIP/01)
exten => port2,1,Dial(SIP/01)
exten => port2,1,Dial(SIP/01)
exten => port2,1,Dial(SIP/01)

И все сделать в одном контексте?

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

ответил 2011-01-14 21:30:24 +0400

litnimax Gravatar litnimax
1453 11 8 29
http://www.pbxware.ru/

Comments

Спасибо, воспользовался вашим советом и выкинул DISa. Помогло! pooh81 ( 2011-01-17 19:21:20 +0400 )редактировать
1

Может конечно что то вырезано но всё равно отпишусь

[port3] 
exten => s,2,Dial(SIP/01,180,t)

начинаться должно не с 2 а с 1.

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

ответил 2011-01-14 23:37:51 +0400

kasper Gravatar kasper
305 3 10

Comments

Да, вырезано NoOp, пардон :) pooh81 ( 2011-01-14 23:58:46 +0400 )редактировать
0

Ооо, много ценных рекомендаций, спасибо! В понедельник попробую и отпишусь Вам!

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

ответил 2011-01-14 21:46:27 +0400

pooh81 Gravatar pooh81
73 7 1 12

Ваш ответ

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-01-14 20:49:45 +0400

Просмотрен: 1,093 раз

Обновлен: Jan 14 '11

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