AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Asterisk1.4.18+freePBX2.4 <-----> Trixbox2.2

Asterisk GUI 5 сообщений -
#1

Приветствую всех

Пытался сделать интерконнект между Asterisk1.4.18+freePBX2.4 и Trixbox2.2(asterisk 1.2) согласно этому документу, стр.136, Method2, за исключением что в type ставил friend

Так вот, баг в том, что с трикса на аст звонит просто отлично, а с аста - фиг "all circuits are busy now". Вот.

выводы astCLI:
Астериск -

Код:

[sudo] password for user:
Asterisk 1.4.18, Copyright (C) 1999 - 2008 Digium, Inc. and others.
Created by Mark Spencer
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
== Parsing '/etc/asterisk/asterisk.conf': Found
== Parsing '/etc/asterisk/extconfig.conf': Found
Connected to Asterisk 1.4.18 currently running on ubuntu (pid = 4197)
Verbosity is at least 14
-- Executing [305@from-internal:1] Macro("SIP/110-0826c7f8", "user-callerid|SKIPTTL|") in new stack
-- Executing [s@macro-user-callerid:1] NoOp("SIP/110-0826c7f8", "user-callerid: device 110") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/110-0826c7f8", "AMPUSER=110") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/110-0826c7f8", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/110-0826c7f8", "1|Set|REALCALLERIDNUM=110") in new stack
-- Executing [s@macro-user-callerid:5] NoOp("SIP/110-0826c7f8", "REALCALLERIDNUM is 110") in new stack
-- Executing [s@macro-user-callerid:6] Set("SIP/110-0826c7f8", "AMPUSER=110") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/110-0826c7f8", "AMPUSERCIDNAME=Reception") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("SIP/110-0826c7f8", "0?report") in new stack
-- Executing [s@macro-user-callerid:9] Set("SIP/110-0826c7f8", "AMPUSERCID=110") in new stack
-- Executing [s@macro-user-callerid:10] Set("SIP/110-0826c7f8", "CALLERID(all)="Reception" ") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/110-0826c7f8", "REALCALLERIDNUM=110") in new stack
-- Executing [s@macro-user-callerid:12] ExecIf("SIP/110-0826c7f8", "0|Set|CHANNEL(language)=") in new stack
-- Executing [s@macro-user-callerid:13] NoOp("SIP/110-0826c7f8", "TTL: ARG1: SKIPTTL") in new stack
-- Executing [s@macro-user-callerid:14] GotoIf("SIP/110-0826c7f8", "1?continue") in new stack
-- Goto (macro-user-callerid,s,23)
-- Executing [s@macro-user-callerid:23] NoOp("SIP/110-0826c7f8", "Using CallerID "Reception" ") in new stack
-- Executing [305@from-internal:2] Set("SIP/110-0826c7f8", "_NODEST=") in new stack
-- Executing [305@from-internal:3] Macro("SIP/110-0826c7f8", "record-enable|110|OUT|") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/110-0826c7f8", "0?2:4") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/110-0826c7f8", "recordingcheck|20080401-123900|1207031940.2004") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20080401-123900|1207031940.2004: Outbound recording not enabled
-- AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] NoOp("SIP/110-0826c7f8", "No recording needed") in new stack
-- Executing [305@from-internal:4] Macro("SIP/110-0826c7f8", "dialout-trunk|7|305||") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("SIP/110-0826c7f8", "DIAL_TRUNK=7") in new stack
-- Executing [s@macro-dialout-trunk:2] ExecIf("SIP/110-0826c7f8", "0|Authenticate|") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/110-0826c7f8", "0?disabletrunk|1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("SIP/110-0826c7f8", "DIAL_NUMBER=305") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("SIP/110-0826c7f8", "DIAL_TRUNK_OPTIONS=tr") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("SIP/110-0826c7f8", "GROUP()=OUT_7") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/110-0826c7f8", "1?nomax") in new stack
-- Goto (macro-dialout-trunk,s,9)
-- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/110-0826c7f8", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("SIP/110-0826c7f8", "DIAL_TRUNK_OPTIONS=") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("SIP/110-0826c7f8", "outbound-callerid|7") in new stack
-- Executing [s@macro-outbound-callerid:1] GotoIf("SIP/110-0826c7f8", "1?start") in new stack
-- Goto (macro-outbound-callerid,s,3)
-- Executing [s@macro-outbound-callerid:3] NoOp("SIP/110-0826c7f8", "REALCALLERIDNUM is 110") in new stack
-- Executing [s@macro-outbound-callerid:4] GotoIf("SIP/110-0826c7f8", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,9)
-- Executing [s@macro-outbound-callerid:9] Set("SIP/110-0826c7f8", "USEROUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:10] Set("SIP/110-0826c7f8", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:11] Set("SIP/110-0826c7f8", "TRUNKOUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:12] GotoIf("SIP/110-0826c7f8", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,16)
-- Executing [s@macro-outbound-callerid:16] GotoIf("SIP/110-0826c7f8", "1?usercid") in new stack
-- Goto (macro-outbound-callerid,s,18)
-- Executing [s@macro-outbound-callerid:18] GotoIf("SIP/110-0826c7f8", "1?report") in new stack
-- Goto (macro-outbound-callerid,s,22)
-- Executing [s@macro-outbound-callerid:22] NoOp("SIP/110-0826c7f8", "CallerID set to "Reception" ") in new stack
-- Executing [s@macro-dialout-trunk:12] AGI("SIP/110-0826c7f8", "fixlocalprefix") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
> fixlocalprefix: Using pattern XX.
== fixlocalprefix: Dialpattern XX. matched. 305 -> 305
-- AGI Script fixlocalprefix completed, returning 0
-- Executing [s@macro-dialout-trunk:13] Set("SIP/110-0826c7f8", "OUTNUM=305") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("SIP/110-0826c7f8", "custom=SIP/2baizak") in new stack
-- Executing [s@macro-dialout-trunk:15] GotoIf("SIP/110-0826c7f8", "1?gocall") in new stack
-- Goto (macro-dialout-trunk,s,17)
-- Executing [s@macro-dialout-trunk:17] Macro("SIP/110-0826c7f8", "dialout-trunk-predial-hook|") in new stack
-- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/110-0826c7f8", "0?bypass|1") in new stack
-- Executing [s@macro-dialout-trunk:19] GotoIf("SIP/110-0826c7f8", "0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:20] Dial("SIP/110-0826c7f8", "SIP/2baizak/305|300|") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@macro-dialout-trunk:21] Goto("SIP/110-0826c7f8", "s-CHANUNAVAIL|1") in new stack
-- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] GotoIf("SIP/110-0826c7f8", "1?noreport") in new stack
-- Goto (macro-dialout-trunk,s-CHANUNAVAIL,3)
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:3] NoOp("SIP/110-0826c7f8", "TRUNK Dial failed due to CHANUNAVAIL - failing through to other trunks") in new stack
-- Executing [305@from-internal:5] Macro("SIP/110-0826c7f8", "outisbusy|") in new stack
-- Executing [s@macro-outisbusy:1] Playback("SIP/110-0826c7f8", "all-circuits-busy-now|noanswer") in new stack
-- Playing 'all-circuits-busy-now' (language 'en')
== Spawn extension (macro-outisbusy, s, 1) exited non-zero on 'SIP/110-0826c7f8' in macro 'outisbusy'
== Spawn extension (macro-outisbusy, s, 1) exited non-zero on 'SIP/110-0826c7f8'
-- Executing [106@from-internal:1] Macro("SIP/206-082981a0", "user-callerid|") in new stack
-- Executing [s@macro-user-callerid:1] NoOp("SIP/206-082981a0", "user-callerid: device 206") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/206-082981a0", "AMPUSER=206") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/206-082981a0", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/206-082981a0", "1|Set|REALCALLERIDNUM=206") in new stack
-- Executing [s@macro-user-callerid:5] NoOp("SIP/206-082981a0", "REALCALLERIDNUM is 206") in new stack
-- Executing [s@macro-user-callerid:6] Set("SIP/206-082981a0", "AMPUSER=206") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/206-082981a0", "AMPUSERCIDNAME=Galy_analog") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("SIP/206-082981a0", "0?report") in new stack
-- Executing [s@macro-user-callerid:9] Set("SIP/206-082981a0", "AMPUSERCID=206") in new stack
-- Executing [s@macro-user-callerid:10] Set("SIP/206-082981a0", "CALLERID(all)="Galy_analog" ") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/206-082981a0", "REALCALLERIDNUM=206") in new stack
-- Executing [s@macro-user-callerid:12] ExecIf("SIP/206-082981a0", "0|Set|CHANNEL(language)=") in new stack
-- Executing [s@macro-user-callerid:13] NoOp("SIP/206-082981a0", "TTL: ARG1: ") in new stack
-- Executing [s@macro-user-callerid:14] GotoIf("SIP/206-082981a0", "0?continue") in new stack
-- Executing [s@macro-user-callerid:15] Set("SIP/206-082981a0", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:16] GotoIf("SIP/206-082981a0", "1?continue") in new stack
-- Goto (macro-user-callerid,s,23)
-- Executing [s@macro-user-callerid:23] NoOp("SIP/206-082981a0", "Using CallerID "Galy_analog" ") in new stack
-- Executing [106@from-internal:2] GotoIf("SIP/206-082981a0", "1?skipdb") in new stack
-- Goto (from-internal,106,4)
-- Executing [106@from-internal:4] Set("SIP/206-082981a0", "__NODEST=") in new stack
-- Executing [106@from-internal:5] Set("SIP/206-082981a0", "__BLKVM_OVERRIDE=BLKVM/106/SIP/206-082981a0") in new stack
-- Executing [106@from-internal:6] Set("SIP/206-082981a0", "__BLKVM_BASE=106") in new stack
-- Executing [106@from-internal:7] Set("SIP/206-082981a0", "DB(BLKVM/106/SIP/206-082981a0)=TRUE") in new stack
-- Executing [106@from-internal:8] Set("SIP/206-082981a0", "RRNODEST=") in new stack
-- Executing [106@from-internal:9] Set("SIP/206-082981a0", "__NODEST=106") in new stack
-- Executing [106@from-internal:10] Set("SIP/206-082981a0", "RecordMethod=Group") in new stack
-- Executing [106@from-internal:11] Macro("SIP/206-082981a0", "record-enable|203-204|Group") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/206-082981a0", "0?2:4") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("SIP/206-082981a0", "recordingcheck|20080401-123903|1207031943.2005") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
-- AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] NoOp("SIP/206-082981a0", "No recording needed") in new stack
-- Executing [106@from-internal:12] Set("SIP/206-082981a0", "RingGroupMethod=ringall") in new stack
-- Executing [106@from-internal:13] Macro("SIP/206-082981a0", "dial|20|tr|203-204") in new stack
-- Executing [s@macro-dial:1] GotoIf("SIP/206-082981a0", "1?dial") in new stack
-- Goto (macro-dial,s,3)
-- Executing [s@macro-dial:3] AGI("SIP/206-082981a0", "dialparties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager_additional.conf': Found
== Parsing '/etc/asterisk/manager_custom.conf': Found
== Manager 'asterisk' logged on from 127.0.0.1
dialparties.agi: Caller ID name is 'Galy_analog' number is '206'
dialparties.agi: USE_CONFIRMATION: 'FALSE'
dialparties.agi: RINGGROUP_INDEX: ''
dialparties.agi: Methodology of ring is 'ringall'
-- dialparties.agi: Added extension 203 to extension map
-- dialparties.agi: Added extension 204 to extension map
-- dialparties.agi: Extension 203 cf is disabled
-- dialparties.agi: Extension 204 cf is disabled
-- dialparties.agi: Extension 203 do not disturb is disabled
-- dialparties.agi: Extension 204 do not disturb is disabled
> dialparties.agi: extnum 203 has: cw: 1; hascfb: 0 [] hascfu: 0 []
-- dialparties.agi: dbset CALLTRACE/203 to 206
> dialparties.agi: extnum 204 has: cw: 1; hascfb: 0 [] hascfu: 0 []
-- dialparties.agi: dbset CALLTRACE/204 to 206
-- dialparties.agi: Filtered ARG3: 203-204
> dialparties.agi: NODEST: 106 adding M(auto-blkvm) to dialopts: trM(auto-blkvm)
> dialparties.agi: NODEST: 106 blkvm enabled macro already in dialopts: trM(auto-blkvm)
== Manager 'asterisk' logged off from 127.0.0.1
-- AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("SIP/206-082981a0", "SIP/203&SIP/204|20|trM(auto-blkvm)") in new stack
-- Called 203
-- SIP/203-08267598 is ringing
-- SIP/203-08267598 answered SIP/206-082981a0
-- Executing [s@macro-auto-blkvm:1] Set("SIP/203-08267598", "__MACRO_RESULT=") in new stack
-- Executing [s@macro-auto-blkvm:2] Set("SIP/203-08267598", "__CWIGNORE=") in new stack
-- Executing [s@macro-auto-blkvm:3] DBdel("SIP/203-08267598", "BLKVM/106/SIP/206-082981a0") in new stack
-- DBdel: family=BLKVM, key=106/SIP/206-082981a0
ubuntu*CLI>



И trixbox

Код:


-- Executing Macro("SIP/305-086b3aa0", "dialout-trunk|8|106||") in new stack
-- Executing Set("SIP/305-086b3aa0", "DIAL_TRUNK=8") in new stack
-- Executing Set("SIP/305-086b3aa0", "_NODEST=") in new stack
-- Executing Set("SIP/305-086b3aa0", "DIAL_NUMBER=106") in new stack
-- Executing Set("SIP/305-086b3aa0", "ROUTE_PASSWD=") in new stack
-- Executing Set("SIP/305-086b3aa0", "DIAL_TRUNK_OPTIONS=tr") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "1?noauth") in new stack
-- Goto (macro-dialout-trunk,s,8)
-- Executing Set("SIP/305-086b3aa0", "GROUP()=OUT_8") in new stack
-- Executing Macro("SIP/305-086b3aa0", "user-callerid|SKIPTTL") in new stack
-- Executing NoOp("SIP/305-086b3aa0", "user-callerid: device 305") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "0?report") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "0?start") in new stack
-- Executing Set("SIP/305-086b3aa0", "REALCALLERIDNUM=305") in new stack
-- Executing NoOp("SIP/305-086b3aa0", "REALCALLERIDNUM is 305") in new stack
-- Executing Set("SIP/305-086b3aa0", "AMPUSER=305") in new stack
-- Executing Set("SIP/305-086b3aa0", "AMPUSERCIDNAME=Frodo") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "0?report") in new stack
-- Executing Set("SIP/305-086b3aa0", "CALLERID(all)=Frodo ") in new stack
-- Executing Set("SIP/305-086b3aa0", "REALCALLERIDNUM=305") in new stack
-- Executing NoOp("SIP/305-086b3aa0", "TTL: ARG1: SKIPTTL") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "1?continue") in new stack
-- Goto (macro-user-callerid,s,21)
-- Executing NoOp("SIP/305-086b3aa0", "Using CallerID "Frodo" ") in new stack
-- Executing Macro("SIP/305-086b3aa0", "record-enable|305|OUT") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "0?2:4") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing DeadAGI("SIP/305-086b3aa0", "recordingcheck|20080401-124540|1207032340.1402") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20080401-124540|1207032340.1402: Outbound recording not enabled
-- AGI Script recordingcheck completed, returning 0
-- Executing NoOp("SIP/305-086b3aa0", "No recording needed") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "0?skipoutcid") in new stack
-- Executing Set("SIP/305-086b3aa0", "DIAL_TRUNK_OPTIONS=") in new stack
-- Executing Macro("SIP/305-086b3aa0", "outbound-callerid|8") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "1?start") in new stack
-- Goto (macro-outbound-callerid,s,3)
-- Executing NoOp("SIP/305-086b3aa0", "REALCALLERIDNUM is 305") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,9)
-- Executing Set("SIP/305-086b3aa0", "USEROUTCID=") in new stack
-- Executing Set("SIP/305-086b3aa0", "EMERGENCYCID=") in new stack
-- Executing Set("SIP/305-086b3aa0", "TRUNKOUTCID=") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,16)
-- Executing GotoIf("SIP/305-086b3aa0", "1?usercid") in new stack
-- Goto (macro-outbound-callerid,s,18)
-- Executing GotoIf("SIP/305-086b3aa0", "1?report") in new stack
-- Goto (macro-outbound-callerid,s,22)
-- Executing NoOp("SIP/305-086b3aa0", "CallerID set to "Frodo" ") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "1?nomax") in new stack
-- Goto (macro-dialout-trunk,s,16)
-- Executing DeadAGI("SIP/305-086b3aa0", "fixlocalprefix") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
> fixlocalprefix: Using pattern XX.
== fixlocalprefix: Dialpattern XX. matched. 106 -> 106
-- AGI Script fixlocalprefix completed, returning 0
-- Executing Set("SIP/305-086b3aa0", "OUTNUM=106") in new stack
-- Executing Set("SIP/305-086b3aa0", "custom=SIP/2baizak") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "0?customtrunk") in new stack
-- Executing Dial("SIP/305-086b3aa0", "SIP/2baizak/106|300|") in new stack
-- Called 2baizak/106
-- SIP/2baizak-0864b6e8 is ringing
== Spawn extension (macro-dialout-trunk, s, 20) exited non-zero on 'SIP/305-086b3aa0' in macro 'dialout-trunk'
== Spawn extension (macro-dialout-trunk, s, 20) exited non-zero on 'SIP/305-086b3aa0'
-- Executing Macro("SIP/305-086b3aa0", "hangupcall") in new stack
-- Executing ResetCDR("SIP/305-086b3aa0", "w") in new stack
-- Executing NoCDR("SIP/305-086b3aa0", "") in new stack
-- Executing GotoIf("SIP/305-086b3aa0", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing GotoIf("SIP/305-086b3aa0", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing Wait("SIP/305-086b3aa0", "5") in new stack
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/305-086b3aa0' in macro 'hangupcall'
== Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/305-086b3aa0'
boomer*CLI>



Если есть вопросы, нужда в дополнительных сведениях и прочее, обращайтесь, все скажу и покажу


Заранее спасибо


P.S IAX вообще не прет ни в какую сторону Sad
#2

если делаете через SIP, то ставьте на том серваке, что не может принять вызов в sip.conf
insecure = invite
#3

Не пашетSad

_______________________________________

Господа, Всем спасибо за проявленное внимание, проблема решилась очень неожиданно.... я тупо неправильно указал IP в описании транка. топик закрыт и может быть удален.
#4

1) Не надо километры дебага. Если считаете их важной инфой - под кат в отдельный файл.
2) Из Астериска в Триксбокс надо принимать на юзера, а не пир, другой контекст, чуть другой конфиг там же, в iax.conf рядом. Никакие френды!
В Триксбоксе сделать через вэб ИАКС транк, он предлагает два окна по дефолту сразу, для исходящих (на Астериск) пир, для входящих - юзер. Для юзера не надо никаких хост, ИП адресов, только пароль и тип аутентификации. На Астериске же создать пир в сторону Триксбокса, с юзернеймом и паролем определённым на той стороне в секции юзер.
#5

Вроде правил страничку, счас зашел - мне Ded ответил.. а правка не проявилась...


Вобщем проблема была наиглупейшая, исходившая из наикривейших рук моих... я тупо неправильно указал IP в поле host.... Простите за Ваше зря потраченное время.

P.S. Насчет логов - спсибо, учту