Всем Всем хорошего настроения!
Есть такая проблема: при записи звонка через MixMonitor в результирующем файле наблюдается сдвиг. Голос внутреннего абонента звучит секунд на 10-15 раньше, чем внешнего. Судя по всему разница во времени совпадает с длительностью ожидания абонента, пока идет соединение. Кто-нибудь сталкивался с подобным? Куда копать?
ded писал(а):Точное время на сервере Астериск, синхронизация с pool.ntp.org
Время синхронизировано.
Уточню: общение с внешним миром через Dahdi. E1 плата. Время, по идее не должно влиять. Разницы внутренние или внешние разговоры - нет.
Как будто один канал пишется с момента набора номера, а второй с момента ответа. И при сложении - получается сдвиг
Приложу лог:
-- Executing [89059561445@from-internal:1] Macro("SIP/3001-00000004", "user-callerid,LIMIT,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/3001-00000004", "AMPUSER=3001") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/3001-00000004", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/3001-00000004", "1?Set(REALCALLERIDNUM=3001)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/3001-00000004", "AMPUSERCIDNAME=Savlyuk S") in new stack
-- Executing [s@macro-user-callerid:5] GotoIf("SIP/3001-00000004", "0?report") in new stack
-- Executing [s@macro-user-callerid:6] Set("SIP/3001-00000004", "AMPUSERCID=3001") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/3001-00000004", "CALLERID(all)="Savlyuk S" <3001>") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("SIP/3001-00000004", "0?limit") in new stack
-- Executing [s@macro-user-callerid:9] ExecIf("SIP/3001-00000004", "1?Set(GROUP(concurrency_limit)=3001)") in new stack
-- Executing [s@macro-user-callerid:10] GosubIf("SIP/3001-00000004", "0?sub-ccss,s,1(from-internal,89059561445)") in new stack
-- Executing [s@macro-user-callerid:11] GotoIf("SIP/3001-00000004", "1?continue") in new stack
-- Goto (macro-user-callerid,s,24)
-- Executing [s@macro-user-callerid:24] Set("SIP/3001-00000004", "CALLERID(number)=3001") in new stack
-- Executing [s@macro-user-callerid:25] Set("SIP/3001-00000004", "CALLERID(name)=Savlyuk S") in new stack
-- Executing [s@macro-user-callerid:26] Set("SIP/3001-00000004", "CHANNEL(language)=ru") in new stack
-- Executing [s@macro-user-callerid:27] Set("SIP/3001-00000004", "CHANNEL(language)=ru") in new stack
-- Executing [89059561445@from-internal:2] Set("SIP/3001-00000004", "MOHCLASS=default") in new stack
-- Executing [89059561445@from-internal:3] Set("SIP/3001-00000004", "_NODEST=") in new stack
-- Executing [89059561445@from-internal:4] Gosub("SIP/3001-00000004", "sub-record-check,s,1(out,89059561445,)") in new stack
-- Executing [s@sub-record-check:1] GotoIf("SIP/3001-00000004", "1?check") in new stack
-- Goto (sub-record-check,s,6)
-- Executing [s@sub-record-check:6] Set("SIP/3001-00000004", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:7] GotoIf("SIP/3001-00000004", "1?next") in new stack
-- Goto (sub-record-check,s,10)
-- Executing [s@sub-record-check:10] ExecIf("SIP/3001-00000004", "0?Return()") in new stack
-- Executing [s@sub-record-check:11] GotoIf("SIP/3001-00000004", "0?out,1") in new stack
-- Executing [s@sub-record-check:12] Set("SIP/3001-00000004", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:13] ExecIf("SIP/3001-00000004", "0?Set(__REC_POLICY_MODE=)") in new stack
-- Executing [s@sub-record-check:14] Set("SIP/3001-00000004", "NOW=1348496706") in new stack
-- Executing [s@sub-record-check:15] Set("SIP/3001-00000004", "__DAY=24") in new stack
-- Executing [s@sub-record-check:16] Set("SIP/3001-00000004", "__MONTH=09") in new stack
-- Executing [s@sub-record-check:17] Set("SIP/3001-00000004", "__YEAR=2012") in new stack
-- Executing [s@sub-record-check:18] Set("SIP/3001-00000004", "__TIMESTR=20120924-212506") in new stack
-- Executing [s@sub-record-check:19] Set("SIP/3001-00000004", "__FROMEXTEN=3001") in new stack
-- Executing [s@sub-record-check:20] Set("SIP/3001-00000004", "__CALLFILENAME=out-89059561445-3001-20120924-212506-1348496706.8") in new stack
-- Executing [s@sub-record-check:21] Goto("SIP/3001-00000004", "out,1") in new stack
-- Goto (sub-record-check,out,1)
-- Executing [out@sub-record-check:1] ExecIf("SIP/3001-00000004", "1?Set(__REC_POLICY_MODE=always)") in new stack
-- Executing [out@sub-record-check:2] GosubIf("SIP/3001-00000004", "1?record,1(exten,89059561445,3001)") in new stack
-- Executing [record@sub-record-check:1] Set("SIP/3001-00000004", "AUDIOHOOK_INHERIT(MixMonitor)=yes") in new stack
-- Executing [record@sub-record-check:2] MixMonitor("SIP/3001-00000004", "/home/recordings/2012/09/24/out-89059561445-3001-20120924-212506-1348496706.8.wav,,/usr/local/bin/lame -V7 ^{MIXMON_DIR}^{YEAR}/^{MONTH}/^{DAY}/^{CALLFILENAME}.wav ^{MIXMON_DIR}^{YEAR}/^{MONTH}/^{DAY}/^{CALLFILENAME}.mp3 && rm -f ^{MIXMON_DIR}^{YEAR}/^{MONTH}/^{DAY}/^{CALLFILENAME}.wav") in new stack
-- Executing [record@sub-record-check:3] Set("SIP/3001-00000004", "__REC_STATUS=RECORDING") in new stack
-- Executing [record@sub-record-check:4] Set("SIP/3001-00000004", "CDR(recordingfile)=out-89059561445-3001-20120924-212506-1348496706.8.wav") in new stack
-- Executing [record@sub-record-check:5] Return("SIP/3001-00000004", "") in new stack
-- Executing [out@sub-record-check:3] Return("SIP/3001-00000004", "") in new stack
-- Executing [89059561445@from-internal:5] Macro("SIP/3001-00000004", "dialout-trunk,2,989059561445,") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("SIP/3001-00000004", "DIAL_TRUNK=2") in new stack
-- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/3001-00000004", "0?sub-pincheck,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/3001-00000004", "0?disabletrunk,1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("SIP/3001-00000004", "DIAL_NUMBER=989059561445") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("SIP/3001-00000004", "DIAL_TRUNK_OPTIONS=t") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("SIP/3001-00000004", "OUTBOUND_GROUP=OUT_2") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/3001-00000004", "0?nomax") in new stack
-- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/3001-00000004", "0?chanfull") in new stack
-- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/3001-00000004", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("SIP/3001-00000004", "DIAL_TRUNK_OPTIONS=t") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("SIP/3001-00000004", "outbound-callerid,2") in new stack
-- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/3001-00000004", "0?Set(CALLERPRES()=)") in new stack
-- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/3001-00000004", "0?Set(REALCALLERIDNUM=3001)") in new stack
-- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/3001-00000004", "1?normcid") in new stack
== Begin MixMonitor Recording SIP/3001-00000004
-- Goto (macro-outbound-callerid,s,6)
-- Executing [s@macro-outbound-callerid:6] Set("SIP/3001-00000004", "USEROUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:7] Set("SIP/3001-00000004", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:8] Set("SIP/3001-00000004", "TRUNKOUTCID=3833358077") in new stack
-- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/3001-00000004", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,12)
-- Executing [s@macro-outbound-callerid:12] ExecIf("SIP/3001-00000004", "1?Set(CALLERID(all)=3833358077)") in new stack
-- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/3001-00000004", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/3001-00000004", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/3001-00000004", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
-- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/3001-00000004", "0?sub-flp-2,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:13] Set("SIP/3001-00000004", "OUTNUM=989059561445") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("SIP/3001-00000004", "custom=DAHDI/g0") in new stack
-- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/3001-00000004", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)t)") in new stack
-- Executing [s@macro-dialout-trunk:16] ExecIf("SIP/3001-00000004", "0?Set(DIAL_TRUNK_OPTIONS=tM(confirm))") in new stack
-- Executing [s@macro-dialout-trunk:17] Macro("SIP/3001-00000004", "dialout-trunk-predial-hook,") in new stack
-- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/3001-00000004", "") in new stack
-- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/3001-00000004", "0?bypass,1") in new stack
-- Executing [s@macro-dialout-trunk:19] ExecIf("SIP/3001-00000004", "1?Set(CONNECTEDLINE(num,i)=989059561445)") in new stack
-- Executing [s@macro-dialout-trunk:20] ExecIf("SIP/3001-00000004", "1?Set(CONNECTEDLINE(name,i)=CID:3833358077)") in new stack
-- Executing [s@macro-dialout-trunk:21] GotoIf("SIP/3001-00000004", "0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:22] Dial("SIP/3001-00000004", "DAHDI/g0/989059561445,300,t") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called DAHDI/g0/989059561445
-- DAHDI/i1/989059561445-5 is proceeding passing it to SIP/3001-00000004
-- Hungup 'DAHDI/i1/989059561445-5'
== Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on 'SIP/3001-00000004' in macro 'dialout-trunk'
== Spawn extension (from-internal, 89059561445, 5) exited non-zero on 'SIP/3001-00000004'
-- Executing [h@from-internal:1] Hangup("SIP/3001-00000004", "") in new stack
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/3001-00000004'
== Executing [/usr/local/bin/lame -V7 /home/recordings/2012/09/24/out-89059561445-3001-20120924-212506-1348496706.8.wav /home/recordings/2012/09/24/out-89059561445-3001-20120924-212506-1348496706.8.mp3 && rm -f /home/recordings/2012/09/24/out-89059561445-3001-20120924-212506-1348496706.8.wav]
== End MixMonitor Recording SIP/3001-00000004
I'm closing this issue out. It appears most people have had this problem resolved for them with either an update to Asterisk, or in most cases, and update of the operating system. If you continue to have problems with this, please make sure you're using the latest version of Asterisk, and open a new issue.
Все проапдейтено до последних релизов - ситуация та же. Есть подозрение что в разных контекстах инициируется запись для одного и того же звонка. Из-за этого происходит сдвиг... Есть мысли?