Пытаемся отправить факс через панель телефонии, но Asterisk не находит имя файла ${faxfile}, как и ${faxcallerid}, ${chan}.
Система Elastix 2.5 64 bit
Сам факс загружается и ложиться в /var/spool/asterisk/fax С именем например SIP-113190716035717-fax.tif
В логах астериска:
-- Executing [10000333@miko_ajam:1] NoCDR("Local/10000333@miko_ajam-00000037;2", "") in new stack -- Executing [10000333@miko_ajam:2] NoOp("Local/10000333@miko_ajam-00000037;2", "internal calling application: 10000333 1C_SendFax") in new stack -- Executing [10000333@miko_ajam:3] Set("Local/10000333@miko_ajam-00000037;2", "_chan=") in new stack -- Executing [10000333@miko_ajam:4] Set("Local/10000333@miko_ajam-00000037;2", "_faxcallerid=") in new stack -- Executing [10000333@miko_ajam:5] Set("Local/10000333@miko_ajam-00000037;2", "_faxfile=") in new stack -- Executing [10000333@miko_ajam:6] Set("Local/10000333@miko_ajam-00000037;2", "_outbox_path=/var/spool/asterisk/fax/") in new stack -- Executing [10000333@miko_ajam:7] Dial("Local/10000333@miko_ajam-00000037;2", "LOCAL/375172008625@miko_ajam_fax_tx,,g") in new stack
Модули использовались все для FreePBX 2.11, куда капнуть или посмотреть ?
Возможно проблема в таблице и ли базе, где хранятся переменные канала ?
chan - канал пользователя в формате «Технология/Номер», который инициировал originate
faxfile - имя файла факса для отправки
faxcallerid - Номер телефона, на который отправляется факс
В документациях о модуле pt1c_fax ничего толком не описано...
Все установлено и сделано по вашим двум инструкциям, для FreePBX и Elastix 2.4. Но у нас версия 2.5! Учитывая, что актуальная версия Elastix 4.0 то все ваша инструкция уже не актуальна, даже для 2.5.
Файл факса загружается и ложиться в /var/spool/asterisk/fax (через панель МИКО) Сразу как SIP-113190716042111-fax.pdf а потом конвертируется в SIP-113190716042111-fax.tif
Дополнительно установлен, настроен mysql-connector-odbc и отключен HTTPS, в панели все работает (история, вызовы и тд.)
Не работает только ФАКС, астериск попросту не находит переменных ${faxfile}, ${faxcallerid}, ${chan} и не знает какой файл надо отправить.
Цитата
Модуль pt1c_fax - дработанный модуль fax. Добавлен механизм заполнения информации об имени файла факса, в таблице истории звонков.
Возможно этот модуль добавляет в базу нужные поля, и какие именно ? В вашей документации о модуле ни слово не написано. Где храниться имя файла факса ?
Еще была замечена одна странность, при инсталляции модуля, Издатель модуля так и остается - Schmooze Com Inc, проверяли на FreePBX 2.11 и Elastix.
Так как файл факса загружен на станцию, значит смотреть надо на стороне 1С. Переменные ${faxfile}, как и ${faxcallerid}, ${chan}. устанавливаются при переадресации вызова на номер "10000333" средствами AJAM интерфейса Asterisk.
Панель телефонии для режима "Обычное приложение" выполняется переадресацию в процедуре модуля объекта обработки "МИКО_ПанельТелефонииДля1С" "ОтправитьФакс".
Теперь понятно, судя по всему ошибка в панели телефонии. Попробуйте поправить строки в процедуре модуля объекта обработки "МИКО_ПанельТелефонииДля1С" "ОтправитьФакс".
Если Exten = "10000333" Тогда
Попытка
Компонент.Redirect(Channel,"",Exten,"",Context,"","1","","", "");
Исключение
КонецПопытки;
Иначе
БезКонсультативныйПеревод_10000104(Channel, Exten, Context);
КонецЕсли;
История факсов появилась, но при скачивании факсимильного сообщения панель не находит сам файл. Файл с фиксимильным сообщением не найден на сервере ASTERISK.
-- Executing [10000666@miko_ajam:1] NoCDR("Local/10000666@miko_ajam-000001a0;2", "") in new stack
> [INS ERT IN TO cel (eventtype,eventtime,cid_name,cid_num,cid_ani,cid_rdnis,cid_dnid,exten,context,channame,appname,appdata,amaflags,accountcode,uniqueid,linkedid,peer,userdeftype,userfield) VALUES ('CHAN_START',{ts '2016-07-26 12:23:53'},'','','','','','10000666','miko_ajam','Local/10000666@miko_ajam-000001a0;1','','',3,'','1469525033.2532','1469525033.2532','','','')]
-- Executing [10000666@miko_ajam:2] NoOp("Local/10000666@miko_ajam-000001a0;2", "internal calling application: 10000666 1C_Download") in new stack
-- Executing [10000666@miko_ajam:3] AGI("Local/10000666@miko_ajam-000001a0;2", "1C_Download.php") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/1C_Download.php
> [INS ERT IN TO cel (eventtype,eventtime,cid_name,cid_num,cid_ani,cid_rdnis,cid_dnid,exten,context,channame,appname,appdata,amaflags,accountcode,uniqueid,linkedid,peer,userdeftype,userfield) VALUES ('CHAN_START',{ts '2016-07-26 12:23:53'},'','','','','','10000666','miko_ajam','Local/10000666@miko_ajam-000001a0;2','','',3,'','1469525033.2533','1469525033.2532','','','')]
-- AGI Script Executing Application: (UserEvent) Options: (FailDownloadFax,Channel:SIP/113)
> Channel Local/10000666@miko_ajam-000001a0;1 was answered.
> [INS ERT IN TO cel (eventtype,eventtime,cid_name,cid_num,cid_ani,cid_rdnis,cid_dnid,exten,context,channame,appname,appdata,amaflags,accountcode,uniqueid,linkedid,peer,userdeftype,userfield) VALUES ('ANSWER',{ts '2016-07-26 12:23:53'},'','','','','','10000666','miko_ajam','Local/10000666@miko_ajam-000001a0;1','','',3,'','1469525033.2532','1469525033.2532','','','')]
> Launching NoCDR() on Local/10000666@miko_ajam-000001a0;1
> [INS ERT IN TO cel (eventtype,eventtime,cid_name,cid_num,cid_ani,cid_rdnis,cid_dnid,exten,context,channame,appname,appdata,amaflags,accountcode,uniqueid,linkedid,peer,userdeftype,userfield) VALUES ('ANSWER',{ts '2016-07-26 12:23:53'},'','','','','','10000666','miko_ajam','Local/10000666@miko_ajam-000001a0;2','AGI','1C_Download.php',3,'','1469525033.2533','1469525033.2532','','','')]
> [INS ERT IN TO cel (eventtype,eventtime,cid_name,cid_num,cid_ani,cid_rdnis,cid_dnid,exten,context,channame,appname,appdata,amaflags,accountcode,uniqueid,linkedid,peer,userdeftype,userfield) VALUES ('HANGUP',{ts '2016-07-26 12:23:53'},'','','','','','10000666','miko_ajam','Local/10000666@miko_ajam-000001a0;1','','',3,'','1469525033.2532','1469525033.2532','','','')]
> [INS ERT IN TO cel (eventtype,eventtime,cid_name,cid_num,cid_ani,cid_rdnis,cid_dnid,exten,context,channame,appname,appdata,amaflags,accountcode,uniqueid,linkedid,peer,userdeftype,userfield) VALUES ('CHAN_END',{ts '2016-07-26 12:23:53'},'','','','','','10000666','miko_ajam','Local/10000666@miko_ajam-000001a0;1','','',3,'','1469525033.2532','1469525033.2532','','','')]
-- <Local/10000666@miko_ajam-000001a0;2>AGI Script 1C_Download.php completed, returning 4
== Spawn extension (miko_ajam, 10000666, 3) exited non-zero on 'Local/10000666@miko_ajam-000001a0;2'
Попробуйте поправить в панели телефонии, в модуле основной формы процедуру "РазобратьXML_onUserEvent".
Нужно найти кусок кода:
Код
ИначеЕсли Событие="FaxFromCDR" Тогда
Если НЕ ТипЗнч(ЖурналФаксов) = Тип("Массив") Тогда
ЖурналФаксов = Новый Массив;
КонецЕсли;
СтрокаCDR=соотвXMLУзел.Получить("lines");
МассивПодстрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаCDR, ".....");
Для каждого СтрокаМассива Из МассивПодстрок Цикл
МассивСвойств = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаМассива, "@.@");
Если МассивСвойств.Количество()>=6 Тогда
Вызов = Новый Структура;
Вызов.Вставить("Когда",Дата(СтрЗаменить(СтрЗаменить(СтрЗаменить(МассивСвойств[0],"-",""),":","")," ","")));
Вызов.Вставить("id",МассивСвойств[4]);
Поправить строку:
Код
Вызов.Вставить("id",МассивСвойств[4]);
На:
Код
Вызов.Вставить("id",МассивСвойств[7]);
В чем суть: АТС возвращает строку истории в следующем формате:
В таблицу истории наполняется пятому полю (идентификатор) "1469523879.2503", это четвертый элемента массива. Запрос должен проходить по восьмому полю "1469523846.2496", это седьмой элемент массива.