Ситуация такая:
Elastix 2.0, Asterisk 1.6.
Необходимо из стороннего php скрипта узнать по номеру extension caller id звонящего. Вопрос решился через "core show channels concise". (По требованию, Event не подходят). Все хорошо получается, находим channel связанный с extension, смотрим с каким channel он связан и смотрим caller id в этом канале. Но вот незадача когда с extension связано больше чем один channel, то тяжело определить с каким именно он разговаривает. Например, если один channel на удержании, а со вторым идет разговор, то невозможно понять какой на удержании.
Если есть вариант как нибудь узнать что канал на удержании или другой способ определения caller id с которым разговаривает extension, пожалуйста подскажите...
Выдержка из АМИ
Event: Link
Privilege: call,all
Channel1: SIP/750-09b23340
Channel2: SIP/SIM_21-b7b16110
Uniqueid1: 1310678202.771
Uniqueid2: 1310678202.772
CallerID1: 750
CallerID2: 0676813ХХХ
Event: Hold
Privilege: call,all
Channel: SIP/750-09b23340
Uniqueid: 1310678202.771
Ответ: Следите за ID-шками.
есть вариант заказать у профессионалов модуль, который будет "сразу в бд" складывать. и выдавать нужную вам инфу.
show channels постоянно использовать не советую. ибо начинает глючить с 100-го или 1000-го раза...особенно если много звонков.
Задан: 2011-07-14 23:01:20 +0400
Просмотрен: 2,177 раз
Обновлен: Jul 19 '11
Asterisk AMI: как по extension определить номер абонента, с которым он разговаривает
Отслеживание HOLD для Биллинга
Почему после переименования канала AMI Event:Rename используется старое имя канала?
CALLERID(name) и перенос строки
Extension Mobility как раз рулить?
Ограничить максимальное время ожидания звонка
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.