PDA

Просмотр полной версии : интеграция с телефонией



dimap
21.03.2013, 17:27
Интересует возможность интеграции с SIP-телефонией, но без UCS Call Centre.
От компании, поставлявшей R-Keeper получили информацию, что возможна интеграция через COM-порт (нам не подходит) и через mailslot.
В итоге мы написали приложение, которое отправляет номер звонящего в SIP-телефоне в mailslot, только вот на этом и застряли...

Остается загадкой имя mailslot, который слушает модуль Delivery.
Также хотелось бы понять команды передаваемые в mailslot.

- что сделает команда CALL:<номер вызывающего> ? найдет клиента и откроет его карточку ?
- обязательна ли команда END ?
- что делает команда <любые символы, кроме цифр>:<номер вызывающего> ?

Написали в тех.поддержку UCS - молчат. Компания, поставлявшая R-Keeper тоже молчит.

А может есть свой SIP-клиент (например от Call Center), который уже интегрирован с Delivery, и который можно перенастроить на другую IP-АТС (у нас Asterisk) ?

---
dimap

BatistA
22.03.2013, 10:19
У меня работает через TCP-IP в 2.25.7.17. Могу поделиться программой передающей номер в оператор (работает только с IP-АТС 3CX). Через mailslot пытались сделать не получилось.

dimap
22.03.2013, 10:52
У меня работает через TCP-IP в 2.25.7.17. Могу поделиться программой передающей номер в оператор (работает только с IP-АТС 3CX). Через mailslot пытались сделать не получилось.

Поделитесь, пож на dimap101@mail.ru. Мне главное понять как она передает номер в оператор, а там уже напишем сами что надо.
У нас нет возможности с АТС напрямую передавать, так как АТС виртуальная за пределами офиса. Но есть SIP-клиент, который имеет запускать внешнее приложение при входящем звонке.

---
dimap

BatistA
22.03.2013, 11:11
2119
Пользуйтесь) При входящем звонке запускайте программу с параметрами указанными в test.bat
Настройки оператора могу позже скинуть.
И есть один баг, при включении определения номера по TCP оператор начинает грузить проц. Раньше пришлось менять процессора на 2-х ядерные)

dimap
22.03.2013, 16:01
2119
Пользуйтесь) При входящем звонке запускайте программу с параметрами указанными в test.bat
Настройки оператора могу позже скинуть.
И есть один баг, при включении определения номера по TCP оператор начинает грузить проц. Раньше пришлось менять процессора на 2-х ядерные)

спасибо за программку.
Да, настройки оператора тоже скиньте, плз.
В ini-файле - это адрес/порт по которому оператор слушает команды ? или адрес биллингового порта 3cx (3cx на этой же машине ??? вряд ли..)


---
dimap

BatistA
22.03.2013, 18:03
В PD_Operator
[CallerID]
boUseCallID=1
/*Порт RS232 или TCP*/
inCallPort=12323
/*Скорость порта RS232*/
inCallBaud=115200
/*Включение/отключение соответствующих параметров для RS232*/
boDTR=1
boRTS=1
/*Включаение/отключение TCP сервера для получения телефонного номера*/
boUseTCPSrv=1
/*код страны, отрезается в ascpars dll*/
stCountryCode=38
/*Mailslot или путь к реестру*/
stMailSlot=
/*команда нового входящего звонка при boUseTCPSrv=1 */
stCMDNewCall=NewCall:
/*команда окончания звонка при boUseTCPSrv=1 */
stCMDEndCall=EndCall:

В PhonesClient.ini можно ничего не менять, если Оператор и PhonesClient находятся на одном компьютере

SIP клиент я так понимаю там же где и оператор установлен?
Если да, то при входящем звонке на SIP клиент, укажите чтоб он запускал PhonesClient.exe и передавал ему параметры /N:S/T:I /C:номертелефона

dimap
22.03.2013, 18:20
Спасибо, теперь все понятно.
Также стало понятно где имя mailslot указывается - этот вариант тоже проверим, приложение для передачи номера через mailslot уже написано. Компания, устанавливавшая R-Keeper на этот вопрос не смогла ответить.

P.S. и последний вопрос - а у вас 3cx phone (клиент) умеет запускать внешнее приложение при входящем звонке ? не нашел там такого функционала...

BatistA
22.03.2013, 18:41
У нас 3cx myphone запускает внешнее приложение.

---------- Добавлено в 15:41 ---------- Предыдущее сообщение было размещено в 15:31 ----------

Если через mailslot то есть следующая информация:

В PD_Operator.ini в секции [CallerID] добавляем след. параметры:

stMailSlot=
stDevName=SIP3DUB
или
stDevName=UCSCallCenter

Если stMailSlot - пустой, то
если stDevName содержит UCS в названии, то
stMailSlot=\\.\mailslot\nomertelefona по-умолчанию
если stDevName содержит SIP3DUB в названии, то
stMailSlot=\\.\mailslot\sample_mailslot по-умолчанию


Для stDevName=SIP3DUB используется протокол CALL:Номер телефона и
END:Номер телефона

Для stDevName=UCSCallCenter
Строка содержащая END - окончание вызова

Любое другая строка обрабатывается как входящий вызов и забираются из
неё все цифры

dimap
27.03.2013, 06:56
Воспользовался рекомендациями и вот что вышло:

1. TCP сервер не поднялся, в ini парамерта boUserTCPServ изначально небыло, добавил - открытого tcp-порта на машине не вижу...

2. через mailslot - тут несколько лучше.
сделал stDevName = SIP3DUB
stMailSlot пустой оставил, в итоге работает \\.\mailslot\sample_mailslot.

Отправляю в mailslot команду CALL:89625013121
в operator.log вижу следующее:
27:03:2013 10:42:20: >> whileslot handle=572
27:03:2013 10:43:34: >> ReadFile : A L L : 8 9 6 2 5 0 1 3 1 2 1
27:03:2013 10:43:34: >> Before ParsString A L L : 8 9 6 2 5 0 1 3 1 2 1 / aAscMSG^=3
27:03:2013 10:43:34: >> After ParsString / aAscMSG^=3

Съедается символ "C"... Добавил перед командой команду "-" для компенсации потерянного символа, в итоге в operator.log вижу следующее:
27:03:2013 10:45:41: >> whileslot handle=572
27:03:2013 10:46:32: >> ReadFile : C A L L : 8 9 6 2 5 0 1 3 1 2 1
27:03:2013 10:46:32: >> Before ParsString C A L L : 8 9 6 2 5 0 1 3 1 2 1 / aAscMSG^=3
27:03:2013 10:46:32: >> After ParsString / aAscMSG^=3

в модуле Оператор реакции никакой не наблюдается.
Как я понимаю, то модуль Оператор строку получает, только после пропуска через парсер (это делает ascpars.dll) - на выходе ничего нет, парсер не нашел сообветствия шаблону.

В ascpars.ini мои попытки тоже видны:
27.03.13 10:11:58 >> : Enter Str 9 6 2 5 0 1 3 1 2 1
27.03.13 10:25:04 >> : Enter Str 9 6 2 5 0 1 3 1 2 1
27.03.13 10:34:33 >> : Enter Str a l l : 8 9 6 2 5 0 1 3 1 2 1
27.03.13 10:37:49 >> : Enter Str a l l : 8 9 6 2 5 0 1 3 1 2 1
27.03.13 10:38:15 >> : Enter Str C a l l : 8 9 6 2 5 0 1 3 1 2 1
27.03.13 10:39:37 >> : Enter Str e w C a l l : 8 9 6 2 5 0 1 3 1 2 1
27.03.13 10:43:43 >> : Enter Str N e w C a l l : 8 9 6 2 5 0 1 3 1 2 1
27.03.13 10:44:08 >> : Enter Str C a l l : 8 9 6 2 5 0 1 3 1 2 1
27.03.13 10:44:58 >> : Enter Str C A L L : 8 9 6 2 5 0 1 3 1 2 1
27.03.13 10:46:32 >> : Enter Str C A L L : 8 9 6 2 5 0 1 3 1 2 1

Т.е. я пытался отправлять и Call:<номер>, и NewCall:<номер>, и просто <номер>, и CALL: <номер> (вдруг регистр принципиален) - результата нет.
Интересный вопрос - в лог-файлах Оператора в моих командах после каждого символа идет пробел, но в mailslot я отправляю явно без пробелов (у меня есть тестовое приложение для приема из mailslot - без пробела). Может в конце еще отправлять \n ?
В общем непонятно.

---
dimap

dimap
27.03.2013, 09:00
1. TCP сервер не поднялся, в ini парамерта boUserTCPServ изначально небыло, добавил - открытого tcp-порта на машине не вижу...


тут конечно же boUseTCPServ, без "r" имелось ввиду...

BatistA
27.03.2013, 10:55
Если параметра небыло, то скорее всего версия Delivery ниже 225.7.17. Надо обновлять.

---------- Добавлено в 07:55 ---------- Предыдущее сообщение было размещено в 07:51 ----------

По mailslot пробуйте через stDevName=UCSCallCenter

dimap
27.03.2013, 11:07
Если параметра небыло, то скорее всего версия Delivery ниже 225.7.17. Надо обновлять.

---------- Добавлено в 07:55 ---------- Предыдущее сообщение было размещено в 07:51 ----------

По mailslot пробуйте через stDevName=UCSCallCenter

Спасибо ! Понял, завтра проверю.

---
dimap

dimap
02.04.2013, 08:28
Итак, продолжение чудесной истории о стыковке телефонии с Delivery.

Попробовал stDevName=UCSCallCenter и чудо, Delivery стал не только подбирать данные из mailslot и передавать в ascparse.dll, но и получать результат парсинга после ascparse.dll, но победы еще нет, так как после парсинга мы получаем только одну цифру:

Operator.LOG:

02:04:2013 10:34:27: >> ReadFile : C A L L 7 1 2 3 4 5 6 7 8 9
02:04:2013 10:34:27: >> Before ParsString C A L L 7 1 2 3 4 5 6 7 8 9 / aAscMSG^=3
02:04:2013 10:34:27: >> After ParsString 3/aAscMSG^=0
02:04:2013 10:34:27: >> cdsGetClientsByPhone.Text : Select * From DLV_GETCLIENTBYPHONE('3')Order by C_ID,A_ID
02:04:2013 10:34:27: >> cdsGetClientsByPhone.Open exception : SQL Server Error: Procedure unknown
DLV_GETCLIENTBYPHONE
At line 1, column 41
02:04:2013 10:34:27: >> FillPhonesTree OK 3
----

Цифирку выделил - это 4-ая цифра из номера.
При этом также съедается первый символ при передачи строки через mailslot, любые символы, кроме цифр игнорятся.
Пробовал предварять CALL:, NewCall: в различных вариантах (с пробелами, двоеточиями, без пробелов и т.д.) - результат всегда один и тот же.

Непонятно что такое aAscMSG^=3 - такое ощущение, что это правило парсинга.

Все это передается в SQL... но и тут проблема - судя по логам такой процедуры в SQL (DLV_GETCLIENTBYPHONE) нет.
Правда это уже другая проблема.

Проапгрейдится до 2.25.7.17 сейчас возможности нет - человек уехал.
В связи с чем просьба - поделитесь своей версией ascparse.dll.

---
dimap

BatistA
03.04.2013, 13:06
2130
Вот dll
Если надо, могу полностью архив деливери на почту скинуть

dimap
04.04.2013, 08:57
2130
Вот dll
Если надо, могу полностью архив деливери на почту скинуть

спасибо за файлик. весь не надо - я апгрейдить все равно не буду, кто ставил - тот пусть и апгрейдит.

---
dimap

intent
26.06.2013, 18:35
Тоже бьюсь с мейлслотами, результат точно такой же как и у dimap. Может кто-то победил это чудо?

dimap
16.07.2013, 11:03
Проапгрейдится до 2.25.7.17 сейчас возможности нет - человек уехал.


Проапгрейдились до 3.1.1.124. ascpars.dll в новой версии остался тот же что и присылал мне BatistA.Результат прежний.
Что странно - не могу активировать вариант с TCP-портом, ставлю boUseTCPSrv=1, inCallPort=xxxx (любой пишу, разные пробовал), в "netstat -a" нету открытого tcp-порта..

Чудесный продукт однако...

---
dimap

intent
24.07.2013, 12:43
на 2.25.7.17 по tcp работает, попробуй может откатиться назад до этой версии

BatistA
30.07.2013, 14:41
3.1.1.124 Это Delivery под RK7...
Под RK6 надо использовать 2.25.7.17

SH
22.01.2014, 19:35
Коллеги, а какой самый кошерный вариант интеграции Доставки RK7 с ip-телефонией?
Есть ли какие-то требования к телефонии?
Тут упоминался Call Center, он что дает?

sibgaba
23.01.2014, 08:58
За телефонию ничего не скажу. CallCentre это другое. Это когда у тебя операторы сидят в одном месте, а фактическая доставка осуществляется из нескольких ресторанов. CallCentre позволяет принять заказ и отправить его на производство в нужный ресторан. Какой ресторан "нужный" определяет оператор исходя из адреса доставки, загруженности кухни на точке и расположения звезд на небосклоне.

Mortelo
28.03.2015, 11:12
Добрый день,
сразу хочу поблагодарить sigbaba за помощь в интеграции rk6 delivery с сайтом для принятия интернет заказов, разобрались.
Однако возникла еще одна проблема - телефония. Вообще, ее смысл - подключить CRM базу что бы ускорить принятие заказов по телефону, посредством подгрузки данных из базы(посредством определителя номера как я понимаю?). На данный момент имеем обычную АТС, не IP(готовы заменить по нужде). Возможно ли это реализовать?

mnekin
21.08.2015, 15:21
Уважаемые гуру,
Это вопрос тем, кто ставил Delivery v7 с софтом SIPModule.
Проблема такая, что у всех операторов 10 шт. отображается список всех входящих звонков.
Оператор1 решил "Принять звонок", то у остальных 9 операторов этот входящий звонок висит еще 7 секунд, который естественно пытаются упорно принять операторы, а он ни как не принимается. Это напрягает всех операторов жутко, тормозит работу.
АТС Астериск
Как обошли данную проблему?

Ruslan26
19.01.2016, 15:26
Добрый день, скажите есть ли возможность интеграции Delivery v7 + SIP Module с 3CX V10?
Не хочет регистрироваться, как только не менял operator.ini

sibgaba
04.02.2016, 10:42
Вопрос в тему.

Стыдно признаться, но никогда не имел дел с IP телефонией и слова SIP & mailslot мне ни о чем не говорят.

Как стыковать это все со стороны доставки примерное понимание есть (есть дока, есть возможность помучить UCS). Затык в другом, как и что должно работать в плане телефонии у службы доставки?

Пытался гуглить - запутался в терминах еще больше.

Задача осложняется тем что объект действующий и сейчас есть 3 телефонных номера через которые принимаются звонки.
Один городской (от ГТС) и 2 мобильных от разных операторов.
Как и посредством чего 3 этих номера можно подключить к одной АТС (ну или как правильно назвать эту штуку) что бы эта АТС отдавала номера в mailslot?

От провайдера телефонии что то требуется (поддержка чего то с его стороны) или разные входящие линии можно объединить чем то уже на предприятии, не трогая 3-х разных операторов?

Буду благодарен за любую информацию по теме.