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

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 дело не доходит. Подскажите пожалуйста, в чем тут дело?

спросил Jan 14 '11

pooh81 Gravatar pooh81
73 7 2 12

обновил Jan 14 '11

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)

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

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

ответил Jan 14 '11

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

Comments

Спасибо, воспользовался вашим советом и выкинул DISa. Помогло! pooh81 (Jan 17 '11)edit
1

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

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

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

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

ответил Jan 14 '11

kasper Gravatar kasper
305 3 10

Comments

Да, вырезано NoOp, пардон :) pooh81 (Jan 14 '11)edit
0

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

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

ответил Jan 14 '11

pooh81 Gravatar pooh81
73 7 2 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 ленту новостей

Статистика

Задан: Jan 14 '11

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

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

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