Имя: Пароль:
1C
1С v8
Интеграция с Asterisk
0 Vladislava-smile
 
18.02.18
18:05
Добрый день, проблема с регистрацией компоненты ROM_Asterisk_Native.

Ошибка - некорректная работа компоненты с памятью.

УТ 10.3 Платформа 8.3.10.2252.

Ставила на платформе ранней версии - все работало. Подскажите, это баг платформы или искать новую компоненту нужно? Если у кого есть, не поделитесь, пожалуйста ...

Валится на:
АдресВнешнейКомпоненты = "ОбщийМакет.ROM_Asterisk_Native";
Результат = ПодключитьВнешнююКомпоненту(АдресВнешнейКомпоненты, "Simplit" , ТипВнешнейКомпоненты.Native);
1 nordbox
 
18.02.18
18:14
Читала?
http://catalog.mista.ru/public/205338/
Тут про Упр, суть мало меняет, но может поможет
обрати внимание где DLL
Сам не ставил по этому только то что попалось
2 Cool_Profi
 
18.02.18
18:18
Какая-то невнятная компонента...
3 Vladislava-smile
 
18.02.18
18:21
(1) - спасибо
(2) невнятная? Это как понять ) ...
4 stopa85
 
18.02.18
18:27
А я все сделал без компонент.

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

А так даже входящие звонки на персональных менеджеров перебрасываются.
5 nordbox
 
18.02.18
18:29
6 Vladislava-smile
 
18.02.18
18:30
(4) а каким образом ты подключаешься и слушаешь события в астериске тогда? без компоненты?
7 Vladislava-smile
 
18.02.18
19:57
(5) - это у меня уже все реализовано. Проблема была в новой платформе, нашла новую длл и вроде заработало. Загружается.
Кому надо - скину на почту.


У меня еще вот какой вопрос будет.

Если Астериск стоял на серваке, то подключались к нему так:
_Телефония.Connect(IP,Port);

А если облачно? Там как подключаться?
8 nordbox
 
18.02.18
20:00
Ну тут я тебе даже посоветовать ничего не могу,
ну попробуй в место IP адрес облака
9 Vladislava-smile
 
18.02.18
20:03
(8) спасибо, попробую
10 Cyberhawk
 
18.02.18
20:13
(6) Не поверишь - через файлики логов
11 Fram
 
18.02.18
21:59
(7) точно так же
12 stopa85
 
18.02.18
22:46
(6) Решение спорное, костылей много. Я бы сейчас смотрел на облачных провайдеров и их API, однако что сделано, то сделано:

1. Чтобы отправить клиента к его менеджеру asterisk сам спрашивает 1С (через веб-сервисы), что ему делать со звонком. Внешний скрипт на питоне делает web-запрос и устанавливает переменные диалплана

2. Также реализована логика работы распределения звонков в праздничные/выходные дни, автоответчики...

3. Записи телефонных звонков аналогично. По окончании формирования файла записи звонка вызывается скрипт на питоне, он вытаскивает всю инфу из БД астриска и отдает 1С через вебсервис

4. Когда нужно определить клиента по номеру телефона 1С-ка сама шлет web-запрос asteriskу (web-серверу подключенному к БД) и оттуда достает нужные события имеющие отношение к внутреннему номеру рабочего места
Условно - нужно нажать кнопочку, чтобы одно с другим сопоставилось
13 stopa85
 
18.02.18
22:52
(7) Я бы на месте облачного провайдера не пустил бы тебя к своему астериску. И не факт, что вообще держал бы астериск.

У облачных провайдеров свой API и не у всех он есть. Вот его и нужно курить.
14 Vladislava-smile
 
19.02.18
16:06
Вопрос еще, кто знает:
Слушаю Астериск, по событию Dial:

Если трубку долго не брать, появляется несколько событий:

Event: Dial
Privilege: call,all
SubEvent: Begin
Channel: Local/012@from-queue-000063f6;2
Destination: SIP/012-000002c6
CallerIDNum: 79144004946
CallerIDName: 79144004946
ConnectedLineNum: 758834_1
ConnectedLineName: <unknown>
UniqueID: 1519044660.51892
DestUniqueID: 1519044660.51893
Dialstring: 012


Event: Dial
Privilege: call,all
SubEvent: End
Channel: Local/012@from-queue-000063f6;2
UniqueID: 1519044660.51892
DialStatus: CANCEL

Event: Dial
Privilege: call,all
SubEvent: Begin
Channel: Local/012@from-queue-000063f8;2
Destination: SIP/012-000002c7
CallerIDNum: 79144004946
CallerIDName: 79144004946
ConnectedLineNum: 758834_1
ConnectedLineName: <unknown>
UniqueID: 1519044682.51897
DestUniqueID: 1519044682.51898
Dialstring: 012


Event: Dial
Privilege: call,all
SubEvent: End
Channel: Local/012@from-queue-000063f8;2
UniqueID: 1519044682.51897
DialStatus: CANCEL

Но по факту звонок только один. Есть ли какое то событие, в котором есть уникальный идентификатор, показывающий, что это 1 звонок!?
15 Fram
 
19.02.18
22:33
(14) на каждый канал (транк и экстеншн) по 2 события (начало и конец звонка)
16 Йохохо
 
20.02.18
00:12
(14) что то помнится что это не все поля, UniqueID это юникс тайм есил что, чтоб не путаться
17 Vladislava-smile
 
20.02.18
17:32
(15) - это ясно, но как тогда определять, что эти два канала осуществляют один звонок?

(16) - UniqueID там разный в этих каналах, или я не поняла, что вы имеете в виду
18 Vladislava-smile
 
20.02.18
18:27
Блин, 2 дня уже бьюсь с этой проблемой, неужели нет людей, знающих хорошо Астер?(
19 Йохохо
 
20.02.18
18:27
(17) UniqueID это время просто в формате unix time. В общем не то событие ловите вроде. Мб попробуйте слушать NewExten
в asterisk -r есть core set debug peer 100 и там
Call-ID: 5021128114237-2044204843891@192.168.0.5
20 Йохохо
 
20.02.18
18:29
даял будет прилетать при любых перенаправлениях между очередями группами по таймауту и т.п.
21 Vladislava-smile
 
20.02.18
18:29
(19) сейчас гляну что астер шлет в этом событии, отпишусь, спасибо.
22 Йохохо
 
20.02.18
18:30
23 Йохохо
 
20.02.18
18:51
и вообще кажется в (14) все нормально и делаете все правильно, просто срабатывают какие то правила на астериске по ожиданию. Разница между даялами 22 секунды, похоже на таймаут. И если SubEvent: Begin и End приходят в разное время то UniqueID использовать можно. Ивент+Сабивент+УникАйДи, кому берем из Channel до собаки. Что там в from-queue уточняйте у того кто астер настраивал
24 Fram
 
20.02.18
19:42
(17) ну из (14) я вижу общее connectedlinenum между каналами, ну channel между begin и end
25 stopa85
 
21.02.18
07:41
(18) Если оператор очереди не отвечает на входящий вызов (т.е. не произошло коммутации каналов), то астер по таймауту прекращает вызов (закрывает канал связанный с оператором очереди), и ставит вызов в очередь снова.
В этом случае, даже если вызов назначается тому же оператору, что и первый раз - канал (астер-оператор) создается снова.

Думаю собака зарыта тут.

UniqueID - ничуть не Unique, и в БД астера могут встречаться записи с одинаковыми UniqueID.

UniqueID - у меня лично не timestamp, время.какое-то_уникальное_число. какое-то_уникальное_число - уникально до перезагрузки астера. Так что от этого не легче.
26 Vladislava-smile
 
21.02.18
10:35
Всем спасибо, просто поставили в астере максимальное время работы канал до закрытия (2 мин), и все, этого достаточно для работы алгоритма. Тех поддержка астреа сказала, что нет никакого события, определяющего, что на открытие несколько каналов идет один вызов. Вот так вот.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн