Версия панели телефонии 1.2.22.3.b АТС: Asterisk 1.8
При попытке ответить на вызов, 1С сообщает: "Автоматический подъем не возможен!". После повторного и последующих попыток, пишет: "Действие не доступно для текущего вызова!". В коде это происходит после того, как PickupChan возвращает ложь:
Код
Если PickupChan(СтрочкаЗвонка.CallerID, Channel) Тогда
Результат = Истина;
СтрочкаЗвонка.СейчасРазговаривают = Истина;
Иначе
Сообщить("Автоматический подъем не возможен!");
КонецЕсли;
И истину он вернуть не сможет, потому что в самом начале проверяется заполненность переменной "НомерПрямойПарковки".
Код
Функция PickupChan(Знач CallerIDЗвонка, Знач Канал)
НомерПользователя = ПолучитьНомерВызываемогоАбонентаИзАтрибутаDialstring(Канал);
стр_auto_answer = СоответствиеАвтоподъем.Получить(НомерПользователя);
стр_auto_answer = ?(ЗначениеЗаполнено(стр_auto_answer), СтрокаАвтоподъема, стр_auto_answer);
// автоматический подъем трубки возможне ТОЛЬКО на SIP устройствах
// переданный в функцию канал - должен быть нашим каналом
// НомерПрямойПарковки - параметр должен быть получен с АТС
Если НЕ ЭтоНомерТекущегоПользователя(Канал, мСписокНомеровПользователяДляОбработки)
ИЛИ НЕ ЗначениеЗаполнено(НомерПрямойПарковки)
ИЛИ НЕ ЗначениеЗаполнено(стр_auto_answer) Тогда
Возврат Ложь;
КонецЕсли;
....
А значит НомерПрямойПарковки должен быть заполнен хоть чем то. Интересно, какое значение он содержит при отладке когда обработка работает штатно?
Мы конечно попытались закомментировать проверку в строке:
В Askozia параметр установлен как "autoanswernumber:*8". Да, действительно, параметр обязателен для функции ответа, но при этом используется только в АТС MyPBX. Что передается в параметре "Канал"? Что содержится в переменной "Результат" после выполнения Компонент.Originate(...)?
Обратите внимание - ВСЕ переменные, передаваемые в Компонент.Originate должны иметь тип "строка".
Понял) Но если снимать непосредственно в PickupChan, то до инициализации Результата и передаваемых параметров мы даже не доходим, а вываливаемся из функции когда стало ясно, что НомерПрямойПарковки не заполнен (см. прикрепленное изображение) Ясно только что до ".Originate( " Channel = "SIP/4001-0000000b"