| 
    
            
         
         | 
    
    
  | 
Компонента BROMAsteriskNative для платформы x64 | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        igrned    
     02.11.21 
            ✎
    10:48 
 | 
         
        Добрый день. Поделитесь рабочей компонентой под платформу x64.
 
        Для x32 есть, работает. Для x64 есть, но работать отказывается. Спасибо.  | 
|||
| 
    1
    
        DeeK    
     02.11.21 
            ✎
    11:08 
 | 
         
        уже была тут тема, идите на гит там есть исходники, компилите и вуаля     
         | 
|||
| 
    2
    
        igrned    
     02.11.21 
            ✎
    11:17 
 | 
         
        И отсюда брал и на гит. Не взлетает.
 
        с Visual Studio не знаком. Вот и создал тему.  | 
|||
| 
    3
    
        polosov    
     02.11.21 
            ✎
    11:46 
 | 
||||
| 
    4
    
        polosov    
     02.11.21 
            ✎
    11:46 
 | 
         
        + (3) Это с гитхаба, с немного исправленными ошибками.     
         | 
|||
| 
    5
    
        igrned    
     02.11.21 
            ✎
    11:55 
 | 
         
        (4) Ухты, спасибо за оперативное решение. Всё ок!     
         | 
|||
| 
    6
    
        ChMikle    
     02.11.21 
            ✎
    12:12 
 | 
         
        (5) ну вот, а то все мама, да мама (с) :))     
         | 
|||
| 
    7
    
        igrned    
     02.11.21 
            ✎
    20:26 
 | 
         
        (3) Подскажите, вашей компонентой авторизируюсь, всё ок.
 
        ОбъектКомпоненты = Новый("AddIn.Test.ROM-Asterisk-Native"); IP = "10.0.0.10"; Port = "5038"; ОбъектКомпоненты.Connect(IP,Port); Если ОбъектКомпоненты.Подключено Тогда Сообщить("Подключено!"); Иначе Сообщить("Авторизация неуспешна!"); Возврат; КонецЕсли; Соединение проходит. Потому что если поменять IP или Порт, то значение "ОбъектКомпоненты.Подключено" = Ложь. Далее пытаюсь залогинится. Пишу следующее: CRLF = Символы.ВК + Символы.ПС; ТекстКоманды = "Action: Login"+CRLF+ "Username: "+user+CRLF+ "Secret: "+password+CRLF; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); Переменная "Флаг" всегда содержит значение "Истина". Даже при неправильном логине/пароле. Как заставить возвращать нормальный ответ?  | 
|||
| 
    8
    
        polosov    
     02.11.21 
            ✎
    20:33 
 | 
         
        Так попробуй:
 
        ТекстКоманды = "Action: Login"+CRLF+ "Username: "+user+CRLF+ "Secret: "+password+CRLF+CRLF;  | 
|||
| 
    9
    
        igrned    
     02.11.21 
            ✎
    20:34 
 | 
         
        Так тоже пробовал. Все равно всё "Истина".     
         | 
|||
| 
    10
    
        polosov    
     02.11.21 
            ✎
    20:42 
 | 
         
        (9) Этот метод почти всегда возвращает Истина. Пробуй после этого выполнить какую-нибудь команду Астериска     
         | 
|||
| 
    11
    
        igrned    
     02.11.21 
            ✎
    21:18 
 | 
         
        Например?
 
        Вот пробую такую: ТекстКоманды = "Action: CoreSettings"+CRLF; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); Возвращает Истина. Такую: ТекстКоманды="Action: Ping"+CRLF; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); Тоже Истина. Даже несуществующую пишу: ТекстКоманды="Action: TESTTTT"+CRLF; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); Все равно Истина)  | 
|||
| 
    12
    
        Asmody    
     02.11.21 
            ✎
    23:06 
 | 
         
        (4) а вернуть на гитхаб исправленные ошибки не?     
         | 
|||
| 
    13
    
        igrned    
     03.11.21 
            ✎
    11:52 
 | 
         
        (10) Есть еще мысли, куда посмотреть? У вас компонента работает нормально?     
         | 
|||
| 
    14
    
        polosov    
     03.11.21 
            ✎
    11:57 
 | 
         
        (13) Да, все работает.
 
        Вот так реализован метод "ВыполнитьКоманду": https://ibb.co/mh8bpXC  | 
|||
| 
    15
    
        polosov    
     03.11.21 
            ✎
    11:57 
 | 
         
        (13) Версия астериска какая?     
         | 
|||
| 
    16
    
        polosov    
     03.11.21 
            ✎
    12:01 
 | 
         
        (13) + Проверяй настройки AMI     
         | 
|||
| 
    17
    
        polosov    
     03.11.21 
            ✎
    12:03 
 | 
         
        С х32 компонентой как теже самые команды отрабатываются?     
         | 
|||
| 
    18
    
        igrned    
     03.11.21 
            ✎
    12:25 
 | 
         
        (15) Версия Asterisk 16     
         | 
|||
| 
    19
    
        igrned    
     03.11.21 
            ✎
    12:30 
 | 
         
        (17) Проверил, да, оказывается также. Значит дело не в компоненте. А в астериске или чем-то еще...     
         | 
|||
| 
    20
    
        polosov    
     03.11.21 
            ✎
    13:20 
 | 
         
        (19) Компонента дергает внешнее событие 1С. Сделай его на форме и смотри чего она тебе будет слать в сообщениях     
         | 
|||
| 
    21
    
        igrned    
     03.11.21 
            ✎
    13:51 
 | 
         
        (20) Через telnet соединился, авторизировался, отправил команду, в ответ получил нормальную реакцию.
 
        https://ibb.co/mRF9m0s Во внешнее событие на форме 1С попадает только соединение: ОбъектКомпоненты.Connect(IP,Port); Вот что получаю: Процедура ВнешнееСобытие(Источник, Событие, Данные) Источник = "ROM-Asterisk-Native"; Событие = "Connected"; Данные = "Server:10.0.0.10 Port:5038"; КонецПроцедуры Авторизация во внешнее не попадает. И остальные команды тоже...  | 
|||
| 
    22
    
        polosov    
     03.11.21 
            ✎
    13:55 
 | 
         
        (21) После логина сделай Компонента.SetRegex("");     
         | 
|||
| 
    23
    
        igrned    
     03.11.21 
            ✎
    14:19 
 | 
         
        (22) 
 
        Метод объекта не обнаружен (SetRegex) ОбъектКомпоненты.SetRegex("");  | 
|||
| 
    24
    
        polosov    
     03.11.21 
            ✎
    14:54 
 | 
         
        (23) SetGegEx попробуй. Чувствительно к регистру чтоль.     
         | 
|||
| 
    25
    
        polosov    
     03.11.21 
            ✎
    14:55 
 | 
         
        (24) *SetRegEx     
         | 
|||
| 
    26
    
        igrned    
     03.11.21 
            ✎
    15:20 
 | 
         
        (25) Да, регистр имел значение.
 
        Но возвращает также "Истина". И во внешнее событие не заходит. Может быть вы бы смогли найти немного времени и подключится ко мне? Думаю так быстрее решится...  | 
|||
| 
    27
    
        polosov    
     03.11.21 
            ✎
    15:22 
 | 
         
        (26) Ну теперь пробуй звонить и смотри события и прочее. Какого рода интеграция нужна? Подключиться не могу.     
         | 
|||
| 
    28
    
        igrned    
     03.11.21 
            ✎
    16:28 
 | 
         
        (27) Нужно при входящем звонке словить кто звонит. Как правильно сделать?     
         | 
|||
| 
    29
    
        polosov    
     03.11.21 
            ✎
    16:31 
 | 
         
        (28) Сейчас при входящем звонке события сыпятся во внешнее событие? Если да, то начинай анализировать их. Если нет - проверяй настройки AMI и/или пробуй установить регулярку типа "."     
         | 
|||
| 
    30
    
        ChMikle    
     03.11.21 
            ✎
    16:47 
 | 
         
        (28) номер получить, по нему искать кто звонит     
         | 
|||
| 
    31
    
        igrned    
     03.11.21 
            ✎
    17:13 
 | 
         
        Блин, я уже не знаю куда смотреть.
 
        Команды же все должны во внешнее событие прилетать? А прилетает только одно. Connect. Ну и соответственно исходящие/входящие звонки также не прилетают. Что нужно посмотреть в настройках АМИ?  | 
|||
| 
    32
    
        ChMikle    
     03.11.21 
            ✎
    17:15 
 | 
         
        (31) смотри тебе надо кешировать один номер , который должен делать переадресацию после 2-3 звонка . Т.е. 1С должен успеть перехватить входящий звонок до того как астериск перенаправит его на оператора .     
         | 
|||
| 
    33
    
        ChMikle    
     03.11.21 
            ✎
    17:15 
 | 
         
        для того чтобы перехватить и проверить работу сейчас , попроси никого не поднимать трубку на твой входящий звонок     
         | 
|||
| 
    34
    
        polosov    
     03.11.21 
            ✎
    17:17 
 | 
         
        (31) Сделай SetRegEx("Event:.*")     
         | 
|||
| 
    35
    
        polosov    
     03.11.21 
            ✎
    17:18 
 | 
         
        +(34) Может при пустом выражении он ничего не кидает во внешнее событие, не помню уже, а в коде лень смотреть.     
         | 
|||
| 
    36
    
        igrned    
     03.11.21 
            ✎
    18:04 
 | 
         
        Может на видосе чето увидите. Записал экран =)
 
        Там видно, что во внешнее событие не заходит. https://www.youtube.com/watch?v=x-QDeo07Lq0  | 
|||
| 
    37
    
        polosov    
     03.11.21 
            ✎
    18:09 
 | 
         
        (36) Ну вот ты подключился, установил регулярное выражение, теперь позвони на какой-нибудь внутренний номер или на внешний, без разницы и жди лог во внешнем событии. Если при звонке ничего не приходит, то смотри настройки AMI. Тут я не подскажу, гугли.     
         | 
|||
| 
    38
    
        polosov    
     03.11.21 
            ✎
    18:11 
 | 
         
        +(37) Что-то типа https://voxlink.ru/kb/book/interfejs-upravlenija-asterisk-ami/     
         | 
|||
| 
    39
    
        Йохохо    
     03.11.21 
            ✎
    18:29 
 | 
         
        CRLF используется для разделения каждой из строк в пакете и двух последовательностей CRLF (она же \r\n) для того, чтобы обозначить завершение передачи команды в Астериск     
         | 
|||
| 
    40
    
        Йохохо    
     03.11.21 
            ✎
    18:29 
 | 
         
        36 -> 8 !!1     
         | 
|||
| 
    41
    
        igrned    
     03.11.21 
            ✎
    19:19 
 | 
         
        (40) Так тоже пробовал...
 
        https://ibb.co/f4vGQfG  | 
|||
| 
    42
    
        Йохохо    
     03.11.21 
            ✎
    19:22 
 | 
         
        (41) напиши формулу срлф     
         | 
|||
| 
    43
    
        Йохохо    
     03.11.21 
            ✎
    19:25 
 | 
         
        CR это ВК, LF это ПС     
         | 
|||
| 
    44
    
        Йохохо    
     03.11.21 
            ✎
    19:25 
 | 
         
        линукс такой линукс     
         | 
|||
| 
    45
    
        Йохохо    
     03.11.21 
            ✎
    19:28 
 | 
         
        и тся ться исправь!     
         | 
|||
| 
    46
    
        igrned    
     03.11.21 
            ✎
    19:28 
 | 
         
        (42) CRLF = Символы.ВК + Символы.ПС;     
         | 
|||
| 
    47
    
        igrned    
     03.11.21 
            ✎
    19:28 
 | 
         
        (44) У меня Windows     
         | 
|||
| 
    48
    
        igrned    
     03.11.21 
            ✎
    19:29 
 | 
         
        (45) Не понял...     
         | 
|||
| 
    49
    
        Йохохо    
     03.11.21 
            ✎
    19:40 
 | 
         
        перехвати отладкой из 1с в текстовый файлик все команды и копипастой сделай через телнет
 
        если у тебя и вправду (8) и (46) код рабочий возможно из-за отладки ты дожидаешься отлупа по таймауту  | 
|||
| 
    50
    
        igrned    
     03.11.21 
            ✎
    20:07 
 | 
         
        Хорошая идея. В отладке скопипастил команду, через телнет вставил, всё ок отрабатывает.
 
        Авторизация: https://ibb.co/YfFG4d1 CoreSettings: https://ibb.co/MRVK9Hy В 1С не работает...  | 
|||
| 
    51
    
        Йохохо    
     03.11.21 
            ✎
    20:31 
 | 
         
        ТекстКоманды = "Action: Login"+username;
 
        Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); ТекстКоманды = "CR"; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); ТекстКоманды = "LF"; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); . . . . ТекстКоманды = "CR"; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); ТекстКоманды = "LF"; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); ТекстКоманды = "CR"; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); ТекстКоманды = "LF"; Флаг = ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); ?  | 
|||
| 
    52
    
        Йохохо    
     03.11.21 
            ✎
    20:37 
 | 
         
        вместо CR символ сам конечно и я бы попробовал /r/n     
         | 
|||
| 
    53
    
        igrned    
     03.11.21 
            ✎
    21:00 
 | 
         
        Ладно, всем спасибо за участие. На одном и том же месте топчусь. Разместил задачу на платном ресурсе, может хоть так помогут. Если есть желающие, кто тут может/хочет помочь на платной основе, напишите пожалуйста на почту.
 
        igrned@gmail.com Спасибо)  | 
|||
| 
    54
    
        igrned    
     04.11.21 
            ✎
    09:47 
 | 
         
        Еще раз привет. Вообщем, решил сам. Если кому интересно, нужно было после авторизации включить режим прослушивания... 
 
        И все Eventы приходят во внешнее событие. Спасибо) ТекстКоманды = "Action: login" + CRLF+ "Username: " + User + CRLF + "Secret: " + Secret + CRLF + CRLF; ОбъектКомпоненты.ВыполнитьКоманду(ТекстКоманды); ОбъектКомпоненты.РежимПрослушивания(Истина);  | 
|||
| 
    55
    
        ChMikle    
     04.11.21 
            ✎
    10:28 
 | 
         
        Утро вечера мудренее ! Я так понял разобрался ?     
         | 
|||
| 
    56
    
        alexinnnn    
     10.11.21 
            ✎
    01:51 
 | 
         
        (3) Файлы к сожаланию удалились((
 
        Обновите пожалуйста!  | 
|||
| 
    57
    
        Shadow_writter    
     09.12.21 
            ✎
    16:25 
 | 
         
        (3) (0) Ребята, поделитесь компонентой, пожалуйста)     
         | 
|||
| 
    58
    
        polosov    
     09.12.21 
            ✎
    17:14 
 | 
||||
| 
    59
    
        Shadow_writter    
     10.12.21 
            ✎
    09:32 
 | 
         
        (58) Огромное спасибо!!!     
         | 
|||
| 
    60
    
        alien-n    
     29.12.21 
            ✎
    11:06 
 | 
         
        Всем привет! Прошу поделиться компонентой для 32 и 64 битных платформ     
         | 
|||
| 
    61
    
        desant14    
     03.06.22 
            ✎
    10:01 
 | 
         
        (55) Добрый день! В параллельной ветке (архивной) "1с: Пример интеграции 1С и АТС типа Asterisk штатными средствами 1С / 1С 8" Вы отсылали на почту исходники, всем желающим, там была обработка и компонента, если что-то осталось не могли бы Вы поделиться со мной? Ранее это было все реализовано (до меня), перестало работать, нужно попробовать восстановить, пытаюсь начать с нуля, по шагам в той ветке, но пока не с чего... если можете помочь, пришлите, пожалуйста, на почту Lost71@inbox.ru.     
         | 
|||
| 
    62
    
        desant14    
     08.06.22 
            ✎
    16:38 
 | 
         
        (58) Добрый день! не могли бы обновить ссылку, нужна для х64     
         | 
|||
| 
    63
    
        ChMikle    
     08.06.22 
            ✎
    20:25 
 | 
         
        (61) после обеда пришлю     
         | 
|||
| 
    64
    
        ChMikle    
     08.06.22 
            ✎
    20:25 
 | 
         
        Завтра     
         | 
|||
| 
    65
    
        ChMikle    
     10.06.22 
            ✎
    10:43 
 | 
         
        (61) почту давайте, отправлю все что осталось     
         | 
|||
| 
    66
    
        ChMikle    
     10.06.22 
            ✎
    10:49 
 | 
         
        (65) отправил     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |