#0
by Vladislava-smile
Добрый день, кто сталкивался - подскажите как определять входящий вызов или исходящий. Библиотеку подкрутила, 1с - ка отлавливает события AMI. Из событий VarSet параметры value, Channel, ID гружу в ТЗ При снятии трубки по Bridge есть Channel1 и Channel2 и ID1 и ID2. Ищу в ТЗ файл записи. Как я думала, если найден по Channel1 и ID1, то номером клиента является CallerID1, а звонок входящий, но нет ((( По Hangup с отбором ТЗ чиститься.
#1
by ADirks
Лучше беги от этой шляпы куда подальше Разбирать протоколы от астериска - это то ещё развлечение. кстати, там ещё там перевод звонка бывает... Ну а если не убежать, то берёшь полные протоколы, и куришь их, пока из ушей не полезет. у нас вот, к примеру, такое накурилось
#2
by Vladislava-smile
- примерно то же самое и у меня, как я понимаю у Вас в базе у пользователей прописан свой внутренний номер (МойТелефон). Я думала, что по средствам астериска есть какой-то способ определять тип звонка. Но все равно спасибо.
#3
by ADirks
ну да, у нас такой вот частный случай, потому я и говорю "например" Думаю, что есть более правильные способы, но лезть слишком глубоко ни желания ни времени не было.
#4
by Fedor-1971
Получи трассу звонка в текстовом виде. Примерно такую: Дальше несколько способов: 1.Анализируешь: CallerIDNum: - Номер с которого набирали Exten: - набранный номер и определяешь если короткий 1, то звонок исходящий, если 2, то звонок входящий 2. Правильно называешь контексты звонка Например, Context: для входящих всегда начинаем с IN, для исходящих OUT. В обеих случаях будет проблема если нужно определить внутренний звонок был входящим или исходящим, и выход только один - как-то зафиксировать номер сотрудника, относительно которого проверяем (например, сохранить его в справочнике)
#10
by Fedor-1971
9+ Трасса исходящего звонка К стати, в надо опираться не на Exten, а на DestCallerIDNum - номер куда звонили, в данном случае нашему сотруднику Всё зависит от версии Asterisk и библиотеки захвата событий AMI. Так что, успехов в анализе
#12
by Йохохо
исходящего? "DialString: SIP/3001" это чистый астериск или поверх еще что то? "Context: from-Mango"
#13
by Fedor-1971
Это правильно. Есть много готовых решений. Плюс в том, что какую-то поддержку от поставщика получить всё-таки удастся (пока деньги не заплачены и не подписан акт внедрения).
#14
by Fedor-1971
DialString: SIP/oTrunk553, практически чистый лог, контексты и номера игрушечные, на боевой нормально названы контексты
#19
by Fedor-1971
Да, лопухнулся. Это входящий. обрати внимание, что при настройке Dial(sip, sip, sip ...) Hungup то же будет несколько и ты почистишь ТЗ до завершения звонка
#21
by Fedor-1971
надёжно отследить звонок можно только так: DialBegin (иногда их несколько) - BridgeEnter (может быть несколько) - Hangup (может быть несколько). Пишем данные в РС с измерениями Linkedid (от первого BridgeEnter) и датой звонка - обеспечит уникальность звонка за день. После того как положили трубку (BridgeLeave - их то же может быть несколько) будут идти ещё некоторое время события закрытия канала, поэтому просто пишем события в РС и если нужно, отображаем пользователю. Как показывает опыт эксплуатации - на начальном этапе: "мы хотим ВСЁ и сразу прямо On-Line", а по факту: "достаточно загрузить лог звонков за вчерашний день".
#23
by Fedor-1971
Если ни кто трубку не взял, будет запись с признаком "Недозвон" (есть DialBegin - Hangup но внутри нет событий для регистрации, трубку сотрудники не поднимали), если кто-то трубку поднял - ему зарегистрируется звонок, остальным в группе ничего не регистрируется. Можно посмотреть трассу звонка на группу и определить события вызова адресатов группы (Queue скорее всего) и если нужно можно писать в РС и эту информацию, только придётся добавить в измерения "Внутренний номер"
#28
by CodeFinder
астериск ведет базу логов. подключаешся как ко внешней базе и поехали. яндекси cdr
#29
by Vladislava-smile
Товарищи, вопрос с входящими решен с помощью события: ... Теперь встал вопрос с исходящими вызовами из 1с. ТекстКоманды = "Action: Originate" + CRLF + Софтфон срабатывает, но после поднятия трубки не проиходит дальнейшего звонка. Что не так?
#34
by Shved_72
платный. хотя там тоже Астерикс "AMI (интерфейс управления сервером Asterisk) — интеграция с другими системами управления взаимоотношениями с клиентами (CRM)."
#35
by Vladislava-smile
и что? Зачем мне это? я уже прикрутила все через библиотеку к 1с. Может у кого пример есть? Или в каких логах посмотреть?
#36
by trdm
С астериксом не возился, но делал ч/з коммуникейшинАссистент. Та еще гемороища. И не любая станция подходит.
#37
by Йохохо
вроде все верно. -> не нравится, вроде в конец надо еще 1 пустую строку добавить, один црлф. А что на софтфоне после поднятия трубки?
#38
by Йохохо
уберите это, потом можно так попробовать "Callerid: " + СокрЛП(ВходящийНомерТелефона) + CRLF
#39
by Fedor-1971
Проверяй на консоли Астериска: возможно твой контекст просто не имеет выхода наружу (имеет смысл специально сделать отдельный контекст для звонков из 1С, т.е. с софтофона -одни правила набора, а из 1С другие, с полными префиксами разрешенных направлений звонка, т.к. пользователь их не набирает). Как тест без консоли: набери внутренний номер. У меня Asnc=false и CallerID=внутренний номер
#46
by Йохохо
проверьте контекст "Context: from-internal" он такой у внутренних? у внешнего абонента есть звонок? шел есть на астериск?
#47
by Йохохо
если астер вообще чужой, еще бы права ами пользователя проверить, есть ли право звонить
#48
by Fedor-1971
нужно посмотреть в консоль сервера астериск (строка запуска: "asterisk -rvvvv", т.е. подробная информация об установке соединения) посмотреть что происходит на стороне астериска CallerID - просто внутренний номер телефона, а не тот на который звоним "CallerID:" + СокрЛП(ВнутреннийНомерПользователя) + CRLF + "Exten: " + СокрЛП(ВходящийНомерТелефона) + CRLF + тут точно номер на который звоним?
#51
by Vladislava-smile
"Exten: " + СокрЛП(ВходящийНомерТелефона) + CRLF + тут точно номер на который звоним? Абсолютно точно - по отладчику проверяла.
#60
by Fedor-1971
таймаут нужен - иначе астериск тупо кладёт трубку в канале, типа пользователь не ответил, Async:false - ждём когда пользователь снимет трубку на софтофоне правильно, Звоним себе, когда сняли трубку - инициируем вызов внешненго номера
#64
by Fedor-1971
можно попробовать софтофон: MicroSIP, и как-бы пора добраться до консоли астериск и контекстов
#68
by Fedor-1971
на сервере Астериска, в файлах extension*.* находишь [fom_internal] и смотришь куда из него можно звонить и можно ли вообще, в файлах sip*.* (pjsip*.*) ищешь [внутренний номер телефона] и смотришь контекст. Если сама не настраивала, лучше дёрни админа и вместе с ним глянете на настройки и консоль сервера.
#69
by Йохохо
или попросите вывод "sip show peer 104" из консоли астериска asterisk -r , строка Context
#71
by Vladislava-smile
Если убрать контекст или поставить office, тогда звонок идет, НО поле Exten при Event: Newchannel не заполнено (если звонить из 1С), но если звонить из микросипа, тогда поле заполнено. Почему?
#72
by Vladislava-smile
Спросила у админа, он сказал, что астериске все поля заполняются и контекст стоит office
#73
by Vladislava-smile
Вот что я получаю: CallerIDNum: CallerIDName: AccountCode: Exten: CallerIDNum: CallerIDName: AccountCode: Exten:
#74
by Fedor-1971
не парься, NewChannel начинается на Originate, т.е. с вызова своего софтофона, Async=true параллельно отправляет вызов на внешний номер. Опирайся на: UniqueID: 1479362841.249 - он одинаковый до конца звонка по нему записывай события в регистр сведений и сможешь отследить когда началась обработка звонка (NewChannel), подняли трубку (Bridge ), положили трубку(Hungup)- если надо, то кто первый положил трубку) Дальше анализируй Bridge по "CallerID1: 104" и "CallerID2: 89144004946" для определения направления звонка (или можно опереться на контекст, но его может поменять админ без всяких мыслей, что он где-то используется) Завершение звонка: последнее событие Hungup c "CallerIDNum: 104"
#75
by Vladislava-smile
да я так и сделал все уже, просто не понятно почему??? Ладно, тема закрыта, Fedor-1971, отдельное спасибо )
#76
by Fedor-1971
потому что, вызов инициирует сервер Астериск, поэтому первое событие не содержит ни каких данных о телефонах, за то определяет UniqueID.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Интеграция 1с и продуктов Autodesk
- Интеграция 1С 8 с PowerPoint
- Интеграция 1С и Asterisk
- КД: Выгрузка из 7, Исходящие/Входящие Данные
- Интеграция Asterisk с Outlook
- Интеграция Asterisk с 1С
- Интеграция 1С: Битрикс: корпоративный портал и 1С: Документооборот КОРП
- AMI Asterisk, переадресация
- УТ 10.3 некорректный статус ТТН ЕГАИС(входящие)
- Бесшовная интеграция УНФ и ДО, используя БСП "Интеграция с 1С:Документооборотом"
В этой группе 1С
- Автоматическое получение писем УТ 10.3
- Выключение nestloop в связке 1с 8.3+postgresql
- Доработки УТ 11.1 для обмена через универсальный формат
- УПП 43 счет
- Информационная база находится в состоянии обновления.
- 1с Розница 2.2 себестоимость
- Конвертация данных: выгрузка документа "ОперацияБух" с проводками
- Разобрать строку по разделителю в справочник
- В такси можно открыть отчет в отдельном окне?
- Загадка доступа к документу "Перемещение товаров" с неполными правами
- Обмен БП3 - ЕРП2
- ШТРИХ-М пропуск строк при печати чека
- 1С + РМИС
- 1С Контрагент и получение реквизитов по ИНН
- ошибка при обновлении базы
- УПП 1.3 Продажи , себестоимость продаж упр.учет/бух. учет
- Группировка колонок в табличном документе
- Конвертация данных Как выгрузить физлиц по другим полям поиска?
- Ошибка эквайринговой системы 4309 Сбербанк
- Как определить через метаданные подчинён ли регистратору регистр?