В DAHDI - нет. Во все Dial команды подставляется 'tr',
matperez ( 2011-12-09 06:34:48 +0400 )редактировать// UPD Сброса как такового нет. Если после появления шумов нажать снова Flash, звонок корректно возвращается. Т.е. во всей операции перевода-возврата появляется еще одно лишнее нажатие Flash после появления шумов. Шумы появляются в принципе, если поставить звонок на удержание и вернуться обратно.
Здравствуйте,
Есть одна инсталляция из Asterisk 1.6.2 на базе Elastix 2.0.3 + банк каналов Parabel Asteroid 8FXO/22FXS. Все работает корректно за исключением одного момента. Сбрасывается звонок при возврате после перевода звонка, если абонент оказался занят. Поясню на примере:
- DAHDI/18 звонит на DAHDI/1
- DAHDI/1 нажимает FLASH для перевода звонока на DAHDI/2
- DAHDI/2 оказывается занят
- DAHDI/1 снова нажимает FLASH, что бы продолжить разговор с DAHDI/18
- Происходит сброс
Логи прилагаются:
-- DAHDI/1-1 is ringing
-- DAHDI/1-1 answered DAHDI/18-1
-- Started three way call on channel 1
-- Started music on hold, class 'default', on DAHDI/18-1
-- Starting simple switch on 'DAHDI/1-2'
-- Stopped music on hold on DAHDI/18-1
-- Started music on hold, class 'default', on DAHDI/18-1
-- Executing [1504@from-internal:1] Macro("DAHDI/1-2", "exten-vm,novm,1504") in new stack
-- Executing [s@macro-exten-vm:1] Macro("DAHDI/1-2", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("DAHDI/1-2", "AMPUSER=1501") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("DAHDI/1-2", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("DAHDI/1-2", "1?Set(REALCALLERIDNUM=1501)") in new stack
-- Executing [s@macro-user-callerid:4] Set("DAHDI/1-2", "AMPUSER=1501") in new stack
-- Executing [s@macro-user-callerid:5] Set("DAHDI/1-2", "AMPUSERCIDNAME=Parabel FXS") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("DAHDI/1-2", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("DAHDI/1-2", "AMPUSERCID=1501") in new stack
-- Executing [s@macro-user-callerid:8] Set("DAHDI/1-2", "CALLERID(all)="Parabel FXS" <1501>") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("DAHDI/1-2", "1?Set(CHANNEL(language)=ru)") in new stack
-- Executing [s@macro-user-callerid:10] GotoIf("DAHDI/1-2", "0?continue") in new stack
-- Executing [s@macro-user-callerid:11] Set("DAHDI/1-2", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("DAHDI/1-2", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] Set("DAHDI/1-2", "CALLERID(number)=1501") in new stack
-- Executing [s@macro-user-callerid:20] Set("DAHDI/1-2", "CALLERID(name)=Parabel FXS") in new stack
-- Executing [s@macro-user-callerid:21] NoOp("DAHDI/1-2", "Using CallerID "Parabel FXS" <1501>") in new stack
-- Executing [s@macro-exten-vm:2] Set("DAHDI/1-2", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("DAHDI/1-2", "VMBOX=novm") in new stack
-- Executing [s@macro-exten-vm:4] Set("DAHDI/1-2", "__EXTTOCALL=1504") in new stack
-- Executing [s@macro-exten-vm:5] Set("DAHDI/1-2", "CFUEXT=") in new stack
-- Executing [s@macro-exten-vm:6] Set("DAHDI/1-2", "CFBEXT=") in new stack
-- Executing [s@macro-exten-vm:7] Set("DAHDI/1-2", "RT=""") in new stack
-- Executing [s@macro-exten-vm:8] Macro("DAHDI/1-2", "record-enable,1504,IN") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("DAHDI/1-2", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] ExecIf("DAHDI/1-2", "0?MacroExit()") in new stack
-- Executing [s@macro-record-enable:5] GotoIf("DAHDI/1-2", "0?Group:OUT") in new stack
-- Goto (macro-record-enable,s,15)
-- Executing [s@macro-record-enable:15] GotoIf("DAHDI/1-2", "1?IN") in new stack
-- Goto (macro-record-enable,s,20)
-- Executing [s@macro-record-enable:20] ExecIf("DAHDI/1-2", "1?MacroExit()") in new stack
-- Executing [s@macro-exten-vm:9] Macro("DAHDI/1-2", "dial-one,,tr,1504") in new stack
-- Executing [s@macro-dial-one:1] Set("DAHDI/1-2", "DEXTEN=1504") in new stack
-- Executing [s@macro-dial-one:2] Set("DAHDI/1-2", "DIALSTATUS_CW=") in new stack
-- Executing [s@macro-dial-one:3] GosubIf("DAHDI/1-2", "0?screen,1") in new stack
-- Executing [s@macro-dial-one:4] GosubIf("DAHDI/1-2", "0?cf,1") in new stack
-- Executing [s@macro-dial-one:5] GotoIf("DAHDI/1-2", "1?skip1") in new stack
-- Goto (macro-dial-one,s,8)
-- Executing [s@macro-dial-one:8] GotoIf("DAHDI/1-2", "0?nodial") in new stack
-- Executing [s@macro-dial-one:9] GotoIf("DAHDI/1-2", "0?continue") in new stack
-- Executing [s@macro-dial-one:10] Set("DAHDI/1-2", "EXTHASCW=") in new stack
-- Executing [s@macro-dial-one:11] GotoIf("DAHDI/1-2", "1?next1:cwinusebusy") in new stack
-- Goto (macro-dial-one,s,12)
-- Executing [s@macro-dial-one:12] GotoIf("DAHDI/1-2", "0?docfu:skip3") in new stack
-- Goto (macro-dial-one,s,16)
-- Executing [s@macro-dial-one:16] GotoIf("DAHDI/1-2", "1?next2:continue") in new stack
-- Goto (macro-dial-one,s,17)
-- Executing [s@macro-dial-one:17] GotoIf("DAHDI/1-2", "0?continue") in new stack
-- Executing [s@macro-dial-one:18] ExecIf("DAHDI/1-2", "0?Set(DIALSTATUS=BUSY)") in new stack
-- Executing [s@macro-dial-one:19] GotoIf("DAHDI/1-2", "0?cwinusebusy") in new stack
-- Executing [s@macro-dial-one:20] Set("DAHDI/1-2", "DEXTEN=") in new stack
-- Executing [s@macro-dial-one:21] Set("DAHDI/1-2", "DIALSTATUS=BUSY") in new stack
-- Executing [s@macro-dial-one:22] Goto("DAHDI/1-2", "nodial") in new stack
-- Goto (macro-dial-one,s,41)
-- Executing [s@macro-dial-one:41] ExecIf("DAHDI/1-2", "0?Set(DIALSTATUS=NOANSWER)") in new stack
-- Executing [s@macro-dial-one:42] NoOp("DAHDI/1-2", "Returned from dial-one with nothing to call and DIALSTATUS: BUSY") in new stack
-- Executing [s@macro-dial-one:43] MacroExit("DAHDI/1-2", "") in new stack
-- Executing [s@macro-exten-vm:10] GotoIf("DAHDI/1-2", "0?exit") in new stack
-- Executing [s@macro-exten-vm:11] Set("DAHDI/1-2", "SV_DIALSTATUS=BUSY") in new stack
-- Executing [s@macro-exten-vm:12] GosubIf("DAHDI/1-2", "0?docfu,1") in new stack
-- Executing [s@macro-exten-vm:13] GosubIf("DAHDI/1-2", "0?docfb,1") in new stack
-- Executing [s@macro-exten-vm:14] Set("DAHDI/1-2", "DIALSTATUS=BUSY") in new stack
-- Executing [s@macro-exten-vm:15] NoOp("DAHDI/1-2", "Voicemail is 'novm'") in new stack
-- Executing [s@macro-exten-vm:16] GotoIf("DAHDI/1-2", "1?s-BUSY,1") in new stack
-- Goto (macro-exten-vm,s-BUSY,1)
-- Executing [s-BUSY@macro-exten-vm:1] NoOp("DAHDI/1-2", "Extension is reporting BUSY and not passing to Voicemail") in new stack
-- Executing [s-BUSY@macro-exten-vm:2] GotoIf("DAHDI/1-2", "0?exit,1") in new stack
-- Executing [s-BUSY@macro-exten-vm:3] PlayTones("DAHDI/1-2", "busy") in new stack
-- Executing [s-BUSY@macro-exten-vm:4] Busy("DAHDI/1-2", "20") in new stack
-- Building conference call with DAHDI/1-1 and DAHDI/1-2
-- Stopped music on hold on DAHDI/18-1
-- Hungup 'DAHDI/18-1<MASQ>'
-- Executing [h@macro-dial-one:1] Macro("DAHDI/1-2<ZOMBIE>", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/1-2<ZOMBIE>", "1?noautomon") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] NoOp("DAHDI/1-2<ZOMBIE>", "TOUCH_MONITOR_OUTPUT=") in new stack
-- Executing [s@macro-hangupcall:4] GotoIf("DAHDI/1-2<ZOMBIE>", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] GotoIf("DAHDI/1-2<ZOMBIE>", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,10)
-- Executing [s@macro-hangupcall:10] GotoIf("DAHDI/1-2<ZOMBIE>", "1?theend") in new stack
-- Goto (macro-hangupcall,s,12)
-- Executing [s@macro-hangupcall:12] Hangup("DAHDI/1-2<ZOMBIE>", "") in new stack
== Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'DAHDI/1-2<ZOMBIE>' in macro 'hangupcall'
-- Hungup 'DAHDI/1-1'
Настройки абонентов следующие:
[channels]
relaxdtmf=yes ;necessary on bad lines only...
rxflash=850 ;flash is an ONHOOK < rxflash
;== busy
busydetect=yes
busycount=3
;== pulse
pulsedial=yes
pulse=yes
;== Calls handling ==
; If enabled, Asterisk will generate "call waiting pips" when
; you are already in a conversation.
callwaiting=yes
;{
threewaycalling=yes
transfer=yes
;}
cancallforward=yes
;== Caller ID ==
usecallerid=yes
callerid=asreceived
hidecallerid=no
;;callwaitingcallerid=yes
useincomingcalleridonzaptransfer=yes
;
cidsignalling=bell
cidstart=ring
restrictcid=no
callreturn=yes
echocancel=no
echotraining=no
echocancelwhenbridged=no
;;;;;;[1501]
signalling=fxo_ls
pickupgroup=1
mailbox=1501@device
immediate=no
echotraining=no
echocancel=yes
dtmfmode=
context=from-internal
callprogress=no
callgroup=1
callerid=Parabel FXS <1501>
busydetect=no
busycount=3
channel=>1
В Dial DAHDI tT стоит?
В DAHDI - нет. Во все Dial команды подставляется 'tr',
matperez ( 2011-12-09 06:34:48 +0400 )редактироватьПробовали переключать по ## или *2? ситуация меняется?
Нет, не пробовал. Но сейчас попробовал в офисе на той же версии Elastix. При любом раскладе, если абонент занят, разговор после перевода завершается :(
matperez ( 2011-12-05 13:00:00 +0400 )редактироватьПопробовал. Звонок переводится и возвращается нормально. Проблема только при переводе через Flash.
matperez ( 2011-12-09 06:35:26 +0400 )редактироватьне пользуйтесь переводом через flash или обратитесь в саппорт парабел
shakirov ( 2011-12-10 16:07:59 +0400 )редактироватьобратился. саппорт ссылается на диалпан эластикс. мол так и должно быть, астероид не при чем. сам тоже выяснил, что при втором нажатии абоненты собираются в конференцию, при повтором звонок возвращается обратно.
matperez ( 2012-01-30 08:48:33 +0400 )редактироватьЗадан: 2011-12-05 08:57:34 +0400
Просмотрен: 1,925 раз
Обновлен: Dec 09 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.