Имя: Пароль:
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: [email protected]
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 мин), и все, этого достаточно для работы алгоритма. Тех поддержка астреа сказала, что нет никакого события, определяющего, что на открытие несколько каналов идет один вызов. Вот так вот.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс