VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Самодельный CDR и грамотное определение участников вызовов.

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
sysardex
Сообщения: 3
Зарегистрирован: 10 фев 2013, 23:54

Самодельный CDR и грамотное определение участников вызовов.

Сообщение sysardex »

Приветствую!

Прошу помощи по вопросу грамотного определения участников вызовов при формировании собственного cdr в нескольких примерах.
Asterisk 1.8.19.0

1. Определение пира который перехватил вызов используя функцию из features.conf либо используя Pickup() на примере простенького диалплана

[incoming]
exten => какойто_номер,1,Answer()
exten => какойто_номер,n,Queue(test_queue)

exten => h,1,Noop(${BRIDGEPEER}) ; Решение выдирать информацию из bridgepeer но она не помогает в случае если вызов был трансфернут.

[pickip_exten]
exten => **,1,Pickup() ; На этом действие данного контекста заканчивается, он не будет продолжен и здесь не сработает h exten включая h exten того контекста куда этот контекст инклюдится.

Родной cdr в dst укажет номер того пира с которого перехватили звонок, хотя фактически разговаривал другой участник сети а именно перехвативший вызов.
Каким образом правильно понять кто перехватил вызов для примера просто звонка где позвонили - перехватили - завершили вызов.

2. Смысл тот-же но интересует информация обо всех пирах участвовавших в рамках одного "внешнего" входящего разговора со множеством attended трансферов. Где и на каком этапе можно понять кто и сколько участников было для того чтобы иметь возможность загнать в базу под видом
таблица а) uid, время, callerid (к примеру сотовый), общее время разговора.
таблица б) uid, участник1, его длительность, его аудиозапись разговора
таблица б) uid, участник2, его длительность, его аудиозапись разговора
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Самодельный CDR и грамотное определение участников вызов

Сообщение zzuz »

На каждый пункт ваших вопросов можно ответить - При каждом событии звонка пишите свой CDR в свою таблицу так , как Вам угодно.
Линия24 - Системы Массового Телефонного Обслуживания
Аватара пользователя
noize
Сообщения: 117
Зарегистрирован: 01 сен 2010, 11:29

Re: Самодельный CDR и грамотное определение участников вызов

Сообщение noize »

используйте CEL
sysardex
Сообщения: 3
Зарегистрирован: 10 фев 2013, 23:54

Re: Самодельный CDR и грамотное определение участников вызов

Сообщение sysardex »

zzuz писал(а):На каждый пункт ваших вопросов можно ответить - При каждом событии звонка пишите свой CDR в свою таблицу так , как Вам угодно.
Как определять кто выполнил pickup() ?
ded
Сообщения: 15626
Зарегистрирован: 26 авг 2010, 19:00

Re: Самодельный CDR и грамотное определение участников вызов

Сообщение ded »

У меня другой вопрос: если входящие поступают в Queue(test_queue), то зачем pick-up?
Или очередь (со всеми её премудростями и точной механикой) или ring group, где будет уместен pick-up.
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: Самодельный CDR и грамотное определение участников вызов

Сообщение Samael28 »

http://samael28.blogspot.com/2010/10/blog-post.html
2ded. Иногда имеет смысл пикап из очереди.
Мой профайл на Upwork
sysardex
Сообщения: 3
Зарегистрирован: 10 фев 2013, 23:54

Re: Самодельный CDR и грамотное определение участников вызов

Сообщение sysardex »

switch писал(а):CEL не панацея, да и слишком много избыточной информации дает. Я делаю CDR вручную, но с трансфером пока вопрос. Ведь есть два инициализатора трансфера - самим сервером и телефоном (SIP командами). Более того, есть разные типы трансфера - с уведомлением создает еще один канал. Как это логически в одну кучу объединять я пока не придумал.
Подумываю об AMI анализаторе, собирать все event'ы создания/завершения/бриджевания каналов по каким то общим критериям понимать связь между ними. Конечная реализация все равно пока не ясна.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH