Здравствуйте, друзья!
Прикрутил 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 дело не доходит. Подскажите пожалуйста, в чем тут дело?
Здравствуйте. С прошедшими :-)
Я думаю, если включить более высокий 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)
И все сделать в одном контексте?
Может конечно что то вырезано но всё равно отпишусь
[port3]
exten => s,2,Dial(SIP/01,180,t)
начинаться должно не с 2 а с 1.
Ооо, много ценных рекомендаций, спасибо! В понедельник попробую и отпишусь Вам!
Задан: 2011-01-14 20:49:45 +0400
Просмотрен: 1,279 раз
Обновлен: Jan 14 '11
Вывод информации о звонке только для одного номера
Обрыв Входящих Звонков. Asterisk + Elastix + FreePBX
Писать sip debug в файл, а в консоль не выводить?
Как посмотреть на asterisk какие дебаги включены (активированы)
Linksys SPA941 - странно умер, в утиль или есть надежда?
DISA и музыка вместо приглашения станции
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.