> Используйте другую реализацию NAT - ipfw nat Последовав Вашему совету переписал на ядерный НАТ
rc.firewall
wif="tun0"
lif="rl0"
vif="ng*"
lo="lo0"
lip="192.168.0.1"
wip="99.88.77.66"
voip="192.168.0.2"
sip="5060-5070"
rtp="10000-20000"
ptvoip="redirect_port udp ${voip}:${sip} ${sip}"
ptrtp="redirect_port udp ${voip}:${rtp} ${rtp}"
pt1720="redirect_port tcp ${voip}:1720 1720"
cmd="ipfw -q"
${cmd} -f flush
${cmd} add 5 allow all from any to me 22
${cmd} add 6 allow icmp from any to me
${cmd} add 10 allow all from any to any via ${lif}
${cmd} add 11 allow all from any to any via ${lo}
${cmd} add 12 allow all from any to any via ${vif}
${cmd} add 13 allow all from any to me 1723 keep-state
${cmd} add 13 allow all from me 1723 to any keep-state
${cmd} add 17 allow gre from any to any
${cmd} nat 1 config log if ${wif} reset same_ports deny_in ${ptvoip} ${ptrtp} ${pt1720}
${cmd} add 20 nat 1 udp from any to ${wip} ${sip} in via ${wif}
${cmd} add 25 nat 1 udp from any to ${wip} ${rtp} in via ${wif}
${cmd} add 30 nat 1 tcp from any to ${wip} 1720 in via ${wif}
${cmd} add 35 nat 1 udp from ${voip} to any ${sip} out via ${wif}
${cmd} add 40 nat 1 udp from ${voip} to any ${rtp} out via ${wif}
${cmd} add 45 nat 1 tcp from ${voip} to any 1720 out via ${wif}
${cmd} add 50 nat 1 all from any to any via ${wif}
${cmd} add 65534 allow all from any to any
Последовав совету от co6aka вырубил directmedia=no.
Также изменено:
На DSL Modem Speedport W 723V убрал проброс портов.
Что изменилось:
регистрация проходит, звонки на удаленный телефон проходят вместе с голосом. Из удаленного офиса позвонить могут только один раз с передачей голоса, последующие звонки идут без голоса. Что самое интересное есть еще один удаленный офис с SPA303 за Dlink DSR-150, все слышно и оттуда и туда.
Логи Астериска 1.6:
400 удаленный за Speedport, 408 удаленный за D-Link, 777 мой на офисе.
Звонок с 400 на 777, 1 рабочий:
-- Executing [777@from-internal:1] GotoIf("SIP/400-00000213", "0?ext-local,777,1") in new stack
-- Executing [777@from-internal:2] Macro("SIP/400-00000213", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/400-00000213", "AMPUSER=400") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/400-00000213", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/400-00000213", "1?Set(REALCALLERIDNUM=400)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/400-00000213", "AMPUSER=400") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/400-00000213", "AMPUSERCIDNAME=Oleg Suslensky") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/400-00000213", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/400-00000213", "AMPUSERCID=400") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/400-00000213", "CALLERID(all)="Oleg Suslensky" <400>") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("SIP/400-00000213", "1?Set(CHANNEL(language)=ru)") in new stack
-- Executing [s@macro-user-callerid:10] GotoIf("SIP/400-00000213", "0?continue") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/400-00000213", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("SIP/400-00000213", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] NoOp("SIP/400-00000213", "Using CallerID "Oleg Suslensky" <400>") in new stack
-- Executing [777@from-internal:3] GotoIf("SIP/400-00000213", "1?skipdb") in new stack
-- Goto (from-internal,777,5)
-- Executing [777@from-internal:5] Set("SIP/400-00000213", "__NODEST=") in new stack
-- Executing [777@from-internal:6] Set("SIP/400-00000213", "__BLKVM_OVERRIDE=BLKVM/777/SIP/400-00000213") in new stack
-- Executing [777@from-internal:7] Set("SIP/400-00000213", "__BLKVM_BASE=777") in new stack
-- Executing [777@from-internal:8] Set("SIP/400-00000213", "DB(BLKVM/777/SIP/400-00000213)=TRUE") in new stack
-- Executing [777@from-internal:9] Set("SIP/400-00000213", "RRNODEST=") in new stack
-- Executing [777@from-internal:10] Set("SIP/400-00000213", "__NODEST=777") in new stack
-- Executing [777@from-internal:11] Set("SIP/400-00000213", "RecordMethod=Group") in new stack
-- Executing [777@from-internal:12] Macro("SIP/400-00000213", "record-enable,777,Group") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/400-00000213", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/400-00000213", "recordingcheck,20150117-132349,1421493829.540") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
-- <SIP/400-00000213>AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] MacroExit("SIP/400-00000213", "") in new stack
-- Executing [777@from-internal:13] Set("SIP/400-00000213", "RingGroupMethod=ringallv2") in new stack
-- Executing [777@from-internal:14] Set("SIP/400-00000213", "_FMGRP=777") in new stack
-- Executing [777@from-internal:15] GotoIf("SIP/400-00000213", "0?doconfirm") in new stack
-- Executing [777@from-internal:16] Macro("SIP/400-00000213", "dial,20,tr,777") in new stack
-- Executing [s@macro-dial:1] GotoIf("SIP/400-00000213", "1?dial") in new stack
-- Goto (macro-dial,s,3)
-- Executing [s@macro-dial:3] AGI("SIP/400-00000213", "dialparties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
dialparties.agi: Caller ID name is 'Oleg Suslensky' number is '400'
> dialparties.agi: USE_CONFIRMATION: 'FALSE'
> dialparties.agi: RINGGROUP_INDEX: ''
dialparties.agi: Methodology of ring is 'ringallv2'
-- dialparties.agi: Added extension 777 to extension map
> dialparties.agi: got fmgrp_prering: 2, fmgrp_grptime: 20
> dialparties.agi: fmgrp_totalprering: 22
> dialparties.agi: found extension in pre-ring and array
> dialparties.agi: ringallv2 ring times: REALPRERING: 22, PRERING: 2
-- dialparties.agi: Extension 777 cf is disabled
-- dialparties.agi: Extension 777 do not disturb is disabled
> dialparties.agi: extnum 777 has: cw: 1; hascfb: 0 [] hascfu: 0 []
-- dialparties.agi: dbset CALLTRACE/777 to 400
-- dialparties.agi: Filtered ARG3: 777
> dialparties.agi: NODEST: 777 adding M(auto-blkvm) to dialopts: trM(auto-blkvm)
> dialparties.agi: NODEST: 777 blkvm enabled macro already in dialopts: trM(auto-blkvm)
-- <SIP/400-00000213>AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("SIP/400-00000213", "SIP/777,22,trM(auto-blkvm)") in new stack
-- Called 777
-- SIP/777-00000214 is ringing
-- SIP/777-00000214 answered SIP/400-00000213
Звонок 1 завершен
-- Executing [s@macro-auto-blkvm:1] Set("SIP/777-00000214", "__MACRO_RESULT=") in new stack
-- Executing [s@macro-auto-blkvm:2] DBdel("SIP/777-00000214", "BLKVM/777/SIP/400-00000213") in new stack
-- DBdel: family=BLKVM, key=777/SIP/400-00000213
-- Executing [h@macro-dial:1] Macro("SIP/400-00000213", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/400-00000213", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,4)
-- Executing [s@macro-hangupcall:4] GotoIf("SIP/400-00000213", "0?skipblkvm") in new stack
-- Executing [s@macro-hangupcall:5] NoOp("SIP/400-00000213", "Cleaning Up Block VM Flag: BLKVM/777/SIP/400-00000213") in new stack
-- Executing [s@macro-hangupcall:6] DBdel("SIP/400-00000213", "BLKVM/777/SIP/400-00000213") in new stack
-- DBdel: family=BLKVM, key=777/SIP/400-00000213
-- DBdel: Error deleting key from database.
-- Executing [s@macro-hangupcall:7] GotoIf("SIP/400-00000213", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] Hangup("SIP/400-00000213", "") in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/400-00000213' in macro 'hangupcall'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/400-00000213' in macro 'dial'
== Spawn extension (from-internal, 777, 16) exited non-zero on 'SIP/400-00000213'
Звонок 2-й с 400 на 408 не рабочий:
-- Executing [408@from-internal:1] Set("SIP/400-00000215", "__RINGTIMER=120") in new stack
-- Executing [408@from-internal:2] Macro("SIP/400-00000215", "exten-vm,408,408") in new stack
-- Executing [s@macro-exten-vm:1] Macro("SIP/400-00000215", "user-callerid") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/400-00000215", "AMPUSER=400") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/400-00000215", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/400-00000215", "1?Set(REALCALLERIDNUM=400)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/400-00000215", "AMPUSER=400") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/400-00000215", "AMPUSERCIDNAME=Oleg Suslensky") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/400-00000215", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/400-00000215", "AMPUSERCID=400") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/400-00000215", "CALLERID(all)="Oleg Suslensky" <400>") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("SIP/400-00000215", "1?Set(CHANNEL(language)=ru)") in new stack
-- Executing [s@macro-user-callerid:10] GotoIf("SIP/400-00000215", "0?continue") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/400-00000215", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("SIP/400-00000215", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] NoOp("SIP/400-00000215", "Using CallerID "Oleg Suslensky" <400>") in new stack
-- Executing [s@macro-exten-vm:2] Set("SIP/400-00000215", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("SIP/400-00000215", "VMBOX=408") in new stack
-- Executing [s@macro-exten-vm:4] Set("SIP/400-00000215", "EXTTOCALL=408") in new stack
-- Executing [s@macro-exten-vm:5] Set("SIP/400-00000215", "CFUEXT=") in new stack
-- Executing [s@macro-exten-vm:6] Set("SIP/400-00000215", "CFBEXT=*1972592588930") in new stack
-- Executing [s@macro-exten-vm:7] Set("SIP/400-00000215", "RT=120") in new stack
-- Executing [s@macro-exten-vm:8] Macro("SIP/400-00000215", "record-enable,408,IN") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/400-00000215", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/400-00000215", "recordingcheck,20150117-132412,1421493852.542") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck,20150117-132412,1421493852.542: Inbound recording not enabled
-- <SIP/400-00000215>AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] MacroExit("SIP/400-00000215", "") in new stack
-- Executing [s@macro-exten-vm:9] Macro("SIP/400-00000215", "dial,120,tr,408") in new stack
-- Executing [s@macro-dial:1] GotoIf("SIP/400-00000215", "1?dial") in new stack
-- Goto (macro-dial,s,3)
-- Executing [s@macro-dial:3] AGI("SIP/400-00000215", "dialparties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
dialparties.agi: Caller ID name is 'Oleg Suslensky' number is '400'
> dialparties.agi: USE_CONFIRMATION: 'FALSE'
> dialparties.agi: RINGGROUP_INDEX: ''
dialparties.agi: Methodology of ring is 'none'
-- dialparties.agi: Added extension 408 to extension map
-- dialparties.agi: Extension 408 cf is disabled
-- dialparties.agi: Extension 408 do not disturb is disabled
> dialparties.agi: extnum 408 has: cw: 1; hascfb: 1 [*1972592588930] hascfu: 0 []
dialparties.agi: EXTENSION_STATE: 0 (NOT_INUSE)
dialparties.agi: Extension 408 has ExtensionState: 0
-- dialparties.agi: Checking CW and CFB status for extension 408
-- dialparties.agi: dbset CALLTRACE/408 to 400
-- dialparties.agi: Filtered ARG3: 408
-- <SIP/400-00000215>AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("SIP/400-00000215", "SIP/408,120,tr") in new stack
-- Called 408
-- SIP/408-00000216 is ringing
-- SIP/408-00000216 answered SIP/400-00000215
Звонок 2-й звершен:
-- Executing [h@macro-dial:1] Macro("SIP/400-00000215", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/400-00000215", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,4)
-- Executing [s@macro-hangupcall:4] GotoIf("SIP/400-00000215", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] GotoIf("SIP/400-00000215", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] Hangup("SIP/400-00000215", "") in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/400-00000215' in macro 'hangupcall'
== Spawn extension (macro-dial, h, 1) exited non-zero on 'SIP/400-00000215'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/400-00000215' in macro 'dial'
== Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'SIP/400-00000215' in macro 'exten-vm'
== Spawn extension (from-internal, 408, 2) exited non-zero on 'SIP/400-00000215'
-- Executing [h@from-internal:1] Macro("SIP/400-00000215", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/400-00000215", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,4)
-- Executing [s@macro-hangupcall:4] GotoIf("SIP/400-00000215", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] GotoIf("SIP/400-00000215", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] Hangup("SIP/400-00000215", "") in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/400-00000215' in macro 'hangupcall'
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/400-00000215'
Звонок 408 на 400 не рабочий:
-- Executing [400@from-internal:1] Set("SIP/408-00000219", "__RINGTIMER=120") in new stack
-- Executing [400@from-internal:2] Macro("SIP/408-00000219", "exten-vm,400,400") in new stack
-- Executing [s@macro-exten-vm:1] Macro("SIP/408-00000219", "user-callerid") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/408-00000219", "AMPUSER=408") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/408-00000219", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/408-00000219", "1?Set(REALCALLERIDNUM=408)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/408-00000219", "AMPUSER=408") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/408-00000219", "AMPUSERCIDNAME=Logistics") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/408-00000219", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/408-00000219", "AMPUSERCID=408") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/408-00000219", "CALLERID(all)="Logistics" <408>") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("SIP/408-00000219", "1?Set(CHANNEL(language)=ru)") in new stack
-- Executing [s@macro-user-callerid:10] GotoIf("SIP/408-00000219", "0?continue") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/408-00000219", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("SIP/408-00000219", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] NoOp("SIP/408-00000219", "Using CallerID "Logistics" <408>") in new stack
-- Executing [s@macro-exten-vm:2] Set("SIP/408-00000219", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("SIP/408-00000219", "VMBOX=400") in new stack
-- Executing [s@macro-exten-vm:4] Set("SIP/408-00000219", "EXTTOCALL=400") in new stack
-- Executing [s@macro-exten-vm:5] Set("SIP/408-00000219", "CFUEXT=") in new stack
-- Executing [s@macro-exten-vm:6] Set("SIP/408-00000219", "CFBEXT=") in new stack
-- Executing [s@macro-exten-vm:7] Set("SIP/408-00000219", "RT=120") in new stack
-- Executing [s@macro-exten-vm:8] Macro("SIP/408-00000219", "record-enable,400,IN") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/408-00000219", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/408-00000219", "recordingcheck,20150117-132437,1421493877.546") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck,20150117-132437,1421493877.546: Inbound recording not enabled
-- <SIP/408-00000219>AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] MacroExit("SIP/408-00000219", "") in new stack
-- Executing [s@macro-exten-vm:9] Macro("SIP/408-00000219", "dial,120,tr,400") in new stack
-- Executing [s@macro-dial:1] GotoIf("SIP/408-00000219", "1?dial") in new stack
-- Goto (macro-dial,s,3)
-- Executing [s@macro-dial:3] AGI("SIP/408-00000219", "dialparties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
dialparties.agi: Caller ID name is 'Logistics' number is '408'
> dialparties.agi: USE_CONFIRMATION: 'FALSE'
> dialparties.agi: RINGGROUP_INDEX: ''
dialparties.agi: Methodology of ring is 'none'
-- dialparties.agi: Added extension 400 to extension map
-- dialparties.agi: Extension 400 cf is disabled
-- dialparties.agi: Extension 400 do not disturb is disabled
> dialparties.agi: extnum 400 has: cw: 1; hascfb: 0 [] hascfu: 0 []
dialparties.agi: EXTENSION_STATE: 1 (INUSE)
dialparties.agi: Extension 400 has call waiting enabled with state: 1
-- dialparties.agi: dbset CALLTRACE/400 to 408
-- dialparties.agi: Filtered ARG3: 400
-- <SIP/408-00000219>AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("SIP/408-00000219", "SIP/400,120,tr") in new stack
-- Called 400
-- SIP/400-0000021a is ringing
-- SIP/400-0000021a answered SIP/408-00000219
Ответ 408 без голоса и положена трубка:
-- Executing [h@macro-dial:1] Macro("SIP/408-00000219", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/408-00000219", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,4)
-- Executing [s@macro-hangupcall:4] GotoIf("SIP/408-00000219", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] GotoIf("SIP/408-00000219", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] Hangup("SIP/408-00000219", "") in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/408-00000219' in macro 'hangupcall'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/408-00000219' in macro 'dial'
== Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'SIP/408-00000219' in macro 'exten-vm'
== Spawn extension (from-internal, 400, 2) exited non-zero on 'SIP/408-00000219'
Вызов безуспешный на 777:
-- Executing [777@from-internal:1] GotoIf("SIP/400-0000021b", "0?ext-local,777,1") in new stack
-- Executing [777@from-internal:2] Macro("SIP/400-0000021b", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/400-0000021b", "AMPUSER=400") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/400-0000021b", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/400-0000021b", "1?Set(REALCALLERIDNUM=400)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/400-0000021b", "AMPUSER=400") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/400-0000021b", "AMPUSERCIDNAME=Oleg Suslensky") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/400-0000021b", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/400-0000021b", "AMPUSERCID=400") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/400-0000021b", "CALLERID(all)="Oleg Suslensky" <400>") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("SIP/400-0000021b", "1?Set(CHANNEL(language)=ru)") in new stack
-- Executing [s@macro-user-callerid:10] GotoIf("SIP/400-0000021b", "0?continue") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/400-0000021b", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("SIP/400-0000021b", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] NoOp("SIP/400-0000021b", "Using CallerID "Oleg Suslensky" <400>") in new stack
-- Executing [777@from-internal:3] GotoIf("SIP/400-0000021b", "1?skipdb") in new stack
-- Goto (from-internal,777,5)
-- Executing [777@from-internal:5] Set("SIP/400-0000021b", "__NODEST=") in new stack
-- Executing [777@from-internal:6] Set("SIP/400-0000021b", "__BLKVM_OVERRIDE=BLKVM/777/SIP/400-0000021b") in new stack
-- Executing [777@from-internal:7] Set("SIP/400-0000021b", "__BLKVM_BASE=777") in new stack
-- Executing [777@from-internal:8] Set("SIP/400-0000021b", "DB(BLKVM/777/SIP/400-0000021b)=TRUE") in new stack
-- Executing [777@from-internal:9] Set("SIP/400-0000021b", "RRNODEST=") in new stack
-- Executing [777@from-internal:10] Set("SIP/400-0000021b", "__NODEST=777") in new stack
-- Executing [777@from-internal:11] Set("SIP/400-0000021b", "RecordMethod=Group") in new stack
-- Executing [777@from-internal:12] Macro("SIP/400-0000021b", "record-enable,777,Group") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/400-0000021b", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/400-0000021b", "recordingcheck,20150117-132501,1421493901.548") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
-- <SIP/400-0000021b>AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] MacroExit("SIP/400-0000021b", "") in new stack
-- Executing [777@from-internal:13] Set("SIP/400-0000021b", "RingGroupMethod=ringallv2") in new stack
-- Executing [777@from-internal:14] Set("SIP/400-0000021b", "_FMGRP=777") in new stack
-- Executing [777@from-internal:15] GotoIf("SIP/400-0000021b", "0?doconfirm") in new stack
-- Executing [777@from-internal:16] Macro("SIP/400-0000021b", "dial,20,tr,777") in new stack
-- Executing [s@macro-dial:1] GotoIf("SIP/400-0000021b", "1?dial") in new stack
-- Goto (macro-dial,s,3)
-- Executing [s@macro-dial:3] AGI("SIP/400-0000021b", "dialparties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
dialparties.agi: Caller ID name is 'Oleg Suslensky' number is '400'
> dialparties.agi: USE_CONFIRMATION: 'FALSE'
> dialparties.agi: RINGGROUP_INDEX: ''
dialparties.agi: Methodology of ring is 'ringallv2'
-- dialparties.agi: Added extension 777 to extension map
> dialparties.agi: got fmgrp_prering: 2, fmgrp_grptime: 20
> dialparties.agi: fmgrp_totalprering: 22
> dialparties.agi: found extension in pre-ring and array
> dialparties.agi: ringallv2 ring times: REALPRERING: 22, PRERING: 2
-- dialparties.agi: Extension 777 cf is disabled
-- dialparties.agi: Extension 777 do not disturb is disabled
> dialparties.agi: extnum 777 has: cw: 1; hascfb: 0 [] hascfu: 0 []
-- dialparties.agi: dbset CALLTRACE/777 to 400
-- dialparties.agi: Filtered ARG3: 777
> dialparties.agi: NODEST: 777 adding M(auto-blkvm) to dialopts: trM(auto-blkvm)
> dialparties.agi: NODEST: 777 blkvm enabled macro already in dialopts: trM(auto-blkvm)
-- <SIP/400-0000021b>AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("SIP/400-0000021b", "SIP/777,22,trM(auto-blkvm)") in new stack
-- Called 777
-- SIP/777-0000021c is ringing
-- SIP/777-0000021c answered SIP/400-0000021b
Завершаем звонок:
-- Executing [s@macro-auto-blkvm:1] Set("SIP/777-0000021c", "__MACRO_RESULT=") in new stack
-- Executing [s@macro-auto-blkvm:2] DBdel("SIP/777-0000021c", "BLKVM/777/SIP/400-0000021b") in new stack
-- DBdel: family=BLKVM, key=777/SIP/400-0000021b
-- Executing [h@macro-dial:1] Macro("SIP/400-0000021b", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/400-0000021b", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,4)
-- Executing [s@macro-hangupcall:4] GotoIf("SIP/400-0000021b", "0?skipblkvm") in new stack
-- Executing [s@macro-hangupcall:5] NoOp("SIP/400-0000021b", "Cleaning Up Block VM Flag: BLKVM/777/SIP/400-0000021b") in new stack
-- Executing [s@macro-hangupcall:6] DBdel("SIP/400-0000021b", "BLKVM/777/SIP/400-0000021b") in new stack
-- DBdel: family=BLKVM, key=777/SIP/400-0000021b
-- DBdel: Error deleting key from database.
-- Executing [s@macro-hangupcall:7] GotoIf("SIP/400-0000021b", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] Hangup("SIP/400-0000021b", "") in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/400-0000021b' in macro 'hangupcall'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/400-0000021b' in macro 'dial'
== Spawn extension (from-internal, 777, 16) exited non-zero on 'SIP/400-0000021b'