Вы не авторизованы

Вы можете читать сообщения. Если вы хотите создать новую тему или присоединиться к обсуждению, пройдите процедуру регистрации или авторизуйтесь.

Страницы: 1
RSS
Ошибка при наборе номера
 
Невозможно совершить исходящий звонок, компонента возвращает
Код
[Message]  Invalid value or argument

При этом входящие звонки поступают и обрабатываются.

Тестирование проводилось:
Платформа: 1С:Предприятие 8.2 (8.2.19.80)
"Управление торговлей", редакция 10.3 (10.3.13.2)
ОС: Windows 7
Панель телефонии: 1.2.22.3 (обычные формы, штатная из демо-версии)
Версия компоненты sip: 2.0.14.9

Аналогичная ситуация наблюдается и при обновлении компоненты SIP с версии 2.0.1.2 до 2.0.14.9 в самописной панели. Т.е. с версией 2.0.1.2 все работает вх. и исх. звонки.

Далее в результате тестирования была написана простейшая обработка (для обычных форм) в модуле объекта которой происходила инициализация компоненты из макета и создание объекта.
Код
Перем Компонента Экспорт;       

Процедура ПодключитьСофтФон() Экспорт
   Попытка
      ФайлКомпоненты = ПоместитьВоВременноеХранилище(ЭтотОбъект.ПолучитьМакет("DLL"), Новый УникальныйИдентификатор);
      Если ПодключитьВнешнююКомпоненту(ФайлКомпоненты, "Компонента", ТипВнешнейКомпоненты.Native) Тогда
         Компонента = Новый("AddIn.Компонента.MIKO_SIP", Неопределено);
         Компонента.Connect("XXX$avto.comstar.net", "XXXXXX", "192.168.XXX.XXX");
      Иначе
         Сообщить("Не удалось подключить внешнюю компоненту");
      КонецЕсли;
   Исключение
      Компонента = Неопределено;
      Сообщить("Исключение при инициализации компоненты");
   КонецПопытки;
КонецПроцедуры

ПодключитьСофтФон()
А в модуле формы процедура обработки внешнего события и вызов функции набора номера.
Код
Процедура ВнешнееСобытие(Источник, Событие, Данные)
   Сообщить("Внешнее событие: Источник [" + Источник + "] Событие [" + Событие + "] Данные [" +  Данные + "]");
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
   НабратьНомер("1708");
КонецПроцедуры

Так вот если процедура НабратьНомер(НомерАбонента)
Код
Процедура НабратьНомер(НомерАбонента) Экспорт
   Если Компонента = Неопределено Тогда
      Возврат;
   КонецЕсли;
   
   НабираемыйНомер = "sip:" + НомерАбонента + "@192.168.XXX.XXX"; 
   Попытка
      Компонента.Dial(НабираемыйНомер);
   Исключение
      Сообщить("Ошибка при инициализации звонка на номер " + НомерАбонента);
   КонецПопытки;
КонецПроцедуры

находится в модуле формы, то звонок успешно набирается и вызов идет, а если указанную функцию переместить в модуль объекта обработки, то получаем
Код
[Message]  Invalid value or argument
Данная проблема не наблюдается с компонентой версии 2.0.1.2.
 
Вы можете нам предоставить обработку, где ситуация воспроизводится?
 
Отправил. На форме две кнопки.
Вторая обработка в макете старая версия компоненты (ошибок не возникает).
Изменено: С Андрей - 25.03.2015 13:14:53
 
Во вложении мой вариант обработки.
В ней используется актуальная версия компонента 2.0.15.11.

Замечания по инициализации

Компонента = Новый("AddIn.Компонента.MIKO_SIP", Неопределено);

Компонента.Init(); // вызов метода обязателен. он вызывается ДО метода Connect
Компонента.Connect("101", "123", "demo.askozia.ru");


При завершении работы

Компонента.Disconnect();
Компонента.Close();
Компонента = Неопределено;
 
Алексей, спасибо за замечания. Проблема осталась. При запуске Вашей обработки, подключение к demo.askozia.ru прошло успешно, при нажатии на кнопку (1) с вызовом функции набора номера из контекста формы все ОК, а если функция вызывается из модуля обработки, то
Код
Внешнее событие: Источник [MIKO_SoftPhone] Событие [Message] Данные [Invalid value or argument ]
В принципе не проблема перенести функцию в модуль формы.
Алексей, попутный вопрос, насколько сильно отличается функционал компоненты версии 2.0.14.XX от 2.0.15.XX, т.к. отличия по размеру существенные и при загрузке макета во временное хранилище это заметно?
 
Цитата
С Андрей написал:
Проблема осталась.
Проверю еще раз. Спасибо.

Новый компонент более стабилен в работе, работает в XP.
Поддерживает работу в режиме SaaS.
В макете содержаться компоненты для windows и для браузера фаерфокс.
 
Цитата
Портнов Алексей написал:

Новый компонент более стабилен в работе, работает в XP.
Поддерживает работу в режиме SaaS.
В макете содержаться компоненты для windows и для браузера фаерфокс.
Спасибо, Алексей.
Самое интересно, что отладчиком (пошагово) все проходит нормально вызов идет.
 
Тестировал на виртуальной (локальной) машине Windows 7.
Ситуация с новым компонентом воспроизвелась однократно, но повторно воспроизвести не вышло.

Тестировал на сервере терминалов win 2012, подключился к нему с win  7 по RDP. Ситуация не воспроизводится.
Передам информацию разработчику.
 
Спасибо.

Доп. информация.
Изменение версии платформы не помогло, также тестирование выполнял на различных ПК (Windows 7). Причем, ситуация усугубилась при использовании серверного варианта при встраивании обработки в конфигурацию.

Необъяснимо, но так работает, и как внешняя обработка, так и при встраивании её в конфигурацию, в независимости от режима файловый/серверный.
Код
WShell = Новый COMОбъект("WScript.Shell");
WShell.run("ping -n 1 -w 100 0.0.0.1", 0, -1);

Компонента.Dial(НабираемыйНомер);
      
WShell.run("ping -n 1 -w 100 0.0.0.1", 0, -1);

Другими словами поставил паузу до и после вызова метода компоненты Dial(ВызываемыйНомер).
Это же помогло и в самописной панели телефонии.
 
Чудеса какие-то. А можете проверить такой код?

Код
Процедура НабратьНомер(НомерАбонента) Экспорт
   Если Компонента = Неопределено Тогда
      Возврат;
   КонецЕсли;
   
   НабираемыйНомер = "sip:" + НомерАбонента + "@192.168.XXX.XXX";
   НабираемыйНомер = НабираемыйНомер;

   Попытка
      Компонента.Dial(НабираемыйНомер);
   Исключение
      Сообщить("Ошибка при инициализации звонка на номер " + НомерАбонента);
   КонецПопытки;
КонецПроцедуры


 
Нет, Николай, не помогло.
Страницы: 1
Читают тему