VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Freepbx vs Wildcard TDM410P запись входящих звонков

Обо всем касательно FreePBX, MetPBX, TrixBox, Elastix, AstPBX и всех других дистрибутивов

Модераторы: april22, Zavr2008

zerghack007
Сообщения: 50
Зарегистрирован: 01 июн 2011, 06:52

Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение zerghack007 »

Всем привет.

Требуется помощь в решении следующей проблемы: запись входящих звонков, поступающих с Wildcard TDM410P

Дано:
Centos 6.2
Asterisk 1.8.10.1
Freepbx 2.9.0.7
Wildcard TDM410P


Решил попробовать настроить все чисто через WEB-интерфейс.
Создал экстеншены, создал транк через DAHDI, прописал диалпланы.

Поначалу не работали звонки через карту пока не прописал в chan_dahdi.conf настройки для внешнего порта

Код: Выделить всё

;;;;;;[Ext]
signalling=fxs_ks
echocancel=yes                          ;;включить эхоподавление.
busydetect=yes                          ;;детектирование сигнала занято для FXS, FXO или T1 (E&M, Wink, Feature Group D).
callprogress=yes                        ;;контроллировать состояние вызова (КПВ, занято или подняли трубку).
context=from-pstn
callerid="External" <335-25-88>
channel=>1

#include /etc/asterisk/chan_dahdi_additional.conf


Приведу пример самого файла chan_dahdi_additional.conf

Код: Выделить всё

;--------------------------------------------------------------------------------;
; Do NOT edit this file as it is auto-generated by FreePBX. All modifications to ;
; this file must be done via the web gui. There are alternative files to make    ;
; custom modifications, details at: http://freepbx.org/configuration_files       ;
;--------------------------------------------------------------------------------;
;

;;;;;;[718]
signalling=fxo_ks
pickupgroup=
mailbox=718@device
immediate=no
echotraining=800
echocancelwhenbridged=no
echocancel=yes
context=from-internal
callprogress=yes
callgroup=
callerid=device <718>
busydetect=yes
busycount=4
accountcode=
channel=>2

Звонки заработали.

В настройках экстеншена стоит запись исходящих и входящих звонков.
Но пишутся только исходящие звонки.
Я предполагаю, что не правильно указал в chan_dahdi.conf контекст from-pstn для fxs_ks

Приведу выводы нескольких команд еще
asterisk*CLI> dahdi show version
DAHDI Version: 2.6.0 Echo Canceller: HWEC


asterisk*CLI> dahdi show channels
Chan Extension Context Language MOH Interpret Blocked State
pseudo default default In Service
1 from-pstn default In Service
2 from-internal default In Service


asterisk*CLI> dahdi show status
Description Alarms IRQ bpviol CRC Fra Codi Options LBO
Wildcard TDM410P OK 0 0 0 CAS Unk 0 db (CSU)/0-133 feet (DSX-1)
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение ded »

Вообще то контекст не повлияет на запись или её отсутствие.
Но - я просто оставлю это здесь.
Изображение
zerghack007
Сообщения: 50
Зарегистрирован: 01 июн 2011, 06:52

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение zerghack007 »

Хмм...

Подскажите пожалуйста, правильно ли я понял, что для работы через аналоговую карту

1. Создается транк через Транки -> ADD DAHDI TRUNK
2. Создается маршрут ИСХОДЯЩЕГО соединения
3. Создается маршрут ВХОДЯЩЕГО соединения
4. Создается Extension для пользователей указав, что надо писать звонки

Обязательно ли добавлять канал Zap через "Номера DID из канала Zap" - > Добавить канал Zap ?

Я просто понимаю так, что у меня не в тот контекст приходит звонок из города.
Последний раз редактировалось zerghack007 12 июл 2012, 12:13, всего редактировалось 1 раз.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение ded »

Обязательно добавлять канал Zap через "Номера DID из канала Zap" - > Добавить канал Zap
Иначе Вы не разрулите несколько телефонных линий разным абонентам. Если всего одна телефонная линия - то и разруливать конечно нечего. Тогда создать входящий Any DID / Any CID и вперёд.

Вопрос то был по записи, верно? Запись включается макросом macro-record-enable при звонке, и видна в консоли как MixMonitor.
Ну и как там, видно это в консоли?
zerghack007
Сообщения: 50
Зарегистрирован: 01 июн 2011, 06:52

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение zerghack007 »

Вопрос то был по записи, верно?
Все верно. Вопрос про запись, но сдается мне, что запись не идет, т.к. пришлось вручную дописывать в конфиге chan_dahdi.conf

Код: Выделить всё

;;;;;;[Ext]
signalling=fxs_ks
echocancel=yes                          ;;включить эхоподавление.
busydetect=yes                          ;;детектирование сигнала занято для FXS, FXO или T1 (E&M, Wink, Feature Group D).
callprogress=yes                        ;;контроллировать состояние вызова (КПВ, занято или подняли трубку).
context=from-pstn
callerid="External" <335-25-88>
channel=>1

#include /etc/asterisk/chan_dahdi_additional.conf
Вот У Вас при настройке FreePbx приходилось писать вручную в файл?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение ded »

Мы не юзаем анальный кал (т.е. anal-log PSTN calls), и соответствующие анальные дырочки - FXS, FXO, извините за прямоту.
Они уже задрали своими перманентными траблами..
zerghack007
Сообщения: 50
Зарегистрирован: 01 июн 2011, 06:52

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение zerghack007 »

Вопрос то был по записи, верно? Запись включается макросом macro-record-enable при звонке, и видна в консоли как MixMonitor.
Ну и как там, видно это в консоли?
Глянул, что пишется при входящем звонке и увидел, что запись то идет

Код: Выделить всё

    -- Executing [s@from-pstn:1] Set("DAHDI/1-1", "__FROM_DID=s") in new stack
    -- Executing [s@from-pstn:2] ExecIf("DAHDI/1-1", "1 ?Set(CALLERID(name)=)") in new stack
    -- Executing [s@from-pstn:3] Set("DAHDI/1-1", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [s@from-pstn:4] Set("DAHDI/1-1", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [s@from-pstn:5] Goto("DAHDI/1-1", "timeconditions,1,1") in new stack
    -- Goto (timeconditions,1,1)
    -- Executing [1@timeconditions:1] GotoIfTime("DAHDI/1-1", "09:00-19:00,mon-sun,1-31,jan-dec?truestate") in new stack
    -- Goto (timeconditions,1,7)
    -- Executing [1@timeconditions:7] GotoIf("DAHDI/1-1", "0?falsegoto") in new stack
    -- Executing [1@timeconditions:8] ExecIf("DAHDI/1-1", "0?Set(DB(TC/1)=)") in new stack
    -- Executing [1@timeconditions:9] GotoIf("DAHDI/1-1", "1?app-announcement-1,s,1") in new stack
    -- Goto (app-announcement-1,s,1)
    -- Executing [s@app-announcement-1:1] GotoIf("DAHDI/1-1", "0?begin") in new stack
    -- Executing [s@app-announcement-1:2] Answer("DAHDI/1-1", "") in new stack
    -- Executing [s@app-announcement-1:3] Wait("DAHDI/1-1", "1") in new stack
    -- Executing [s@app-announcement-1:4] NoOp("DAHDI/1-1", "Playing announcement hello-work") in new stack
    -- Executing [s@app-announcement-1:5] Set("DAHDI/1-1", "TIMEOUT(response)=1") in new stack
    -- Response timeout set to 1.000
    -- Executing [s@app-announcement-1:6] BackGround("DAHDI/1-1", "custom/hello_work,nm") in new stack
[Jul 13 09:58:14] WARNING[12323]: mp3/interface.c:216 decodeMP3: Junk at the beginning of frame 49443303
    -- <DAHDI/1-1> Playing 'custom/hello_work.slin' (language 'en')
[Jul 13 09:58:28] WARNING[12323]: mp3/interface.c:216 decodeMP3: Junk at the beginning of frame 54414700
    -- Executing [s@app-announcement-1:7] WaitExten("DAHDI/1-1", ",") in new stack
    -- Timeout on DAHDI/1-1, going to 't'
    -- Executing [t@app-announcement-1:1] Goto("DAHDI/1-1", "ext-group,600,1") in new stack
    -- Goto (ext-group,600,1)
    -- Executing [600@ext-group:1] Macro("DAHDI/1-1", "user-callerid,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("DAHDI/1-1", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("DAHDI/1-1", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("DAHDI/1-1", "1?Set(REALCALLERIDNUM=)") in new stack
    -- Executing [s@macro-user-callerid:4] Set("DAHDI/1-1", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:5] Set("DAHDI/1-1", "AMPUSERCIDNAME=") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("DAHDI/1-1", "1?report") in new stack
    -- Goto (macro-user-callerid,s,11)
    -- Executing [s@macro-user-callerid:11] GotoIf("DAHDI/1-1", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:12] Set("DAHDI/1-1", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:13] GotoIf("DAHDI/1-1", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,24)
    -- Executing [s@macro-user-callerid:24] Set("DAHDI/1-1", "CALLERID(number)=") in new stack
    -- Executing [s@macro-user-callerid:25] Set("DAHDI/1-1", "CALLERID(name)=") in new stack
    -- Executing [s@macro-user-callerid:26] Set("DAHDI/1-1", "CHANNEL(language)=en") in new stack
    -- Executing [600@ext-group:2] Macro("DAHDI/1-1", "blkvm-setifempty,") in new stack
    -- Executing [s@macro-blkvm-setifempty:1] GotoIf("DAHDI/1-1", "1?init") in new stack
    -- Goto (macro-blkvm-setifempty,s,4)
    -- Executing [s@macro-blkvm-setifempty:4] Set("DAHDI/1-1", "__BLKVM_CHANNEL=DAHDI/1-1") in new stack
    -- Executing [s@macro-blkvm-setifempty:5] Set("DAHDI/1-1", "SHARED(BLKVM,DAHDI/1-1)=TRUE") in new stack
    -- Executing [s@macro-blkvm-setifempty:6] Set("DAHDI/1-1", "GOSUB_RETVAL=TRUE") in new stack
    -- Executing [s@macro-blkvm-setifempty:7] MacroExit("DAHDI/1-1", "") in new stack
    -- Executing [600@ext-group:3] GotoIf("DAHDI/1-1", "1?skipov") in new stack
    -- Goto (ext-group,600,6)
    -- Executing [600@ext-group:6] Set("DAHDI/1-1", "RRNODEST=") in new stack
    -- Executing [600@ext-group:7] Set("DAHDI/1-1", "__NODEST=600") in new stack
    -- Executing [600@ext-group:8] GosubIf("DAHDI/1-1", "0?sub-rgsetcid,s,1") in new stack
    -- Executing [600@ext-group:9] Set("DAHDI/1-1", "RecordMethod=Group") in new stack
    -- Executing [600@ext-group:10] Macro("DAHDI/1-1", "record-enable,701-718,Group") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("DAHDI/1-1", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] ExecIf("DAHDI/1-1", "0?MacroExit()") in new stack
    -- Executing [s@macro-record-enable:5] GotoIf("DAHDI/1-1", "1?Group:OUT") in new stack
    -- Goto (macro-record-enable,s,6)
    -- Executing [s@macro-record-enable:6] Set("DAHDI/1-1", "LOOPCNT=2") in new stack
    -- Executing [s@macro-record-enable:7] Set("DAHDI/1-1", "ITER=1") in new stack
    -- Executing [s@macro-record-enable:8] GotoIf("DAHDI/1-1", "1?continue") in new stack
    -- Goto (macro-record-enable,s,12)
    -- Executing [s@macro-record-enable:12] Set("DAHDI/1-1", "ITER=2") in new stack
    -- Executing [s@macro-record-enable:13] GotoIf("DAHDI/1-1", "1?begin") in new stack
    -- Goto (macro-record-enable,s,8)
    -- Executing [s@macro-record-enable:8] GotoIf("DAHDI/1-1", "0?continue") in new stack
    -- Executing [s@macro-record-enable:9] Set("DAHDI/1-1", "TEXTEN=718") in new stack
    -- Executing [s@macro-record-enable:10] Set("DAHDI/1-1", "CALLFILENAME=g718-20120713-095829-1342148287.30") in new stack
    -- Executing [s@macro-record-enable:11] Goto("DAHDI/1-1", "record") in new stack
    -- Goto (macro-record-enable,s,20)
    -- Executing [s@macro-record-enable:20] MixMonitor("DAHDI/1-1", "g718-20120713-095829-1342148287.30.wav,,") in new stack
    -- Executing [s@macro-record-enable:21] MacroExit("DAHDI/1-1", "") in new stack
    -- Executing [600@ext-group:11] Set("DAHDI/1-1", "RingGroupMethod=ringall") in new stack
    -- Executing [600@ext-group:12] Macro("DAHDI/1-1", "dial,20,tr,701-718") in new stack
  == Begin MixMonitor Recording DAHDI/1-1
    -- Executing [s@macro-dial:1] GotoIf("DAHDI/1-1", "1?dial") in new stack
    -- Goto (macro-dial,s,3)
    -- Executing [s@macro-dial:3] AGI("DAHDI/1-1", "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 'unknown' number is 'unknown'
 dialparties.agi: Methodology of ring is  'ringall'
    -- dialparties.agi: Added extension 701 to extension map
    -- dialparties.agi: Added extension 718 to extension map
    -- dialparties.agi: Extension 701 cf is disabled
    -- dialparties.agi: Extension 718 cf is disabled
    -- dialparties.agi: Extension 701 do not disturb is disabled
    -- dialparties.agi: Extension 718 do not disturb is disabled
       > dialparties.agi: extnum 701 has:  cw: 1; hascfb: 0 [] hascfu: 0 []
    -- dialparties.agi: DbDel CALLTRACE/701 - Caller ID is not defined
       > dialparties.agi: extnum 718 has:  cw: 1; hascfb: 0 [] hascfu: 0 []
    -- dialparties.agi: DbDel CALLTRACE/718 - Caller ID is not defined
    -- dialparties.agi: Filtered ARG3: 701-718
       > dialparties.agi: NODEST: 600 adding M(auto-blkvm) to dialopts: trM(auto-blkvm)
       > dialparties.agi: NODEST: 600 blkvm enabled macro already in dialopts: trM(auto-blkvm)
    -- <DAHDI/1-1>AGI Script dialparties.agi completed, returning 0
    -- Executing [s@macro-dial:7] Dial("DAHDI/1-1", "SIP/701&DAHDI/2,20,trM(auto-blkvm)") in new stack
[Jul 13 09:58:29] WARNING[12323]: app_dial.c:2218 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
    -- Called DAHDI/2
    -- DAHDI/2-1 is ringing
    -- DAHDI/2-1 is ringing
    -- Hanging up on 'DAHDI/2-1'
    -- Hungup 'DAHDI/2-1'
  == Spawn extension (macro-dial, s, 7) exited non-zero on 'DAHDI/1-1' in macro 'dial'
  == Spawn extension (ext-group, 600, 12) exited non-zero on 'DAHDI/1-1'
    -- Executing [h@ext-group:1] Macro("DAHDI/1-1", "hangupcall,") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/1-1", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] Hangup("DAHDI/1-1", "") in new stack
  == Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'DAHDI/1-1' in macro 'hangupcall'
  == Spawn extension (ext-group, h, 1) exited non-zero on 'DAHDI/1-1'
    -- Hanging up on 'DAHDI/1-1'
    -- Hungup 'DAHDI/1-1'
  == MixMonitor close filestream
  == End MixMonitor Recording DAHDI/1-1

Но когда я захожу через WEB-интерфейс в записи http://192.168.0.48/recordings/index.php в "Менеджер соединений" отображаются только исходящие.

Далее иду по пути куда кидаются все записи, а он у меня такой /var/spool/asterisk/monitor
и там все записи лежат

Получается либо я не там смотрю их в WEB-интерфейсе, либо они не попадают в WEB-интерфейс по какой-то причине.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение Vlad1983 »

обновите freepbx до последнего
в 2.10 додумались наконец писать ссылки на файлы записи в БД, а не сканить всю папку и пытаться найти по UNIQUEID что нить похожее.
ЛС: @rostel
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение ded »

Может просто увеличить предел количества записей (дефолтный = 10 000), такое бывает, когда записей уже много.
zerghack007
Сообщения: 50
Зарегистрирован: 01 июн 2011, 06:52

Re: Freepbx vs Wildcard TDM410P запись входящих звонков

Сообщение zerghack007 »

Vlad1983 писал(а):обновите freepbx до последнего
в 2.10 додумались наконец писать ссылки на файлы записи в БД, а не сканить всю папку и пытаться найти по UNIQUEID что нить похожее.
Обновил FreePbx до 2.10. Интерфейс конечно прежний мне больше нравился
Записи звонков не появились в http://192.168.0.48/recordings/index.php
Мало того запись звонков вообще прекратилась. Пошел в настройки Внутреннего номера и включил все галочки

Inbound External Calls? Всегда
Outbound External Calls? Всегда
Inbound Internal Calls? Всегда
Outbound Internal Calls? Всегда
On Demand Recording? Включить

В логах появилась ошибка

Код: Выделить всё

    -- Executing [600@ext-group:8] GosubIf("DAHDI/1-1", "0?sub-rgsetcid,s,1()") in new stack
    -- Executing [600@ext-group:9] Set("DAHDI/1-1", "RecordMethod=Group") in new stack
    -- Executing [600@ext-group:10] Macro("DAHDI/1-1", "record-enable,701-718,Group") in new stack
[2012-07-25 11:27:11] WARNING[6986]: app_macro.c:309 _macro_exec: No such context 'macro-record-enable' for macro 'record-enable'
    -- Executing [600@ext-group:11] Set("DAHDI/1-1", "RingGroupMethod=ringall") in new stack
    -- Executing [600@ext-group:12] Macro("DAHDI/1-1", "dial,20,tr,701-718") in new stack
    -- Executing [s@macro-dial:1] GotoIf("DAHDI/1-1", "1?dial") in new stack

Кстати все предыдущие записи я удалил из папки после установки нового FreePbx
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH