Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Dial - как узнать номер по которому прошел вызов

Dial - как узнать номер по которому прошел вызов

Dial - как узнать номер по которому прошел вызов
<12 3
Откуда: NiNo
Сообщений: 112

Re: Dial - как узнать номер по которому прошел вызов

dimas:

asterisk 1.4.24
GET FULL VARIABLE - возвращает почему то на любую запрашиваемую переменную ее имя а не занчение ( то есть на запрос 'GET FULL VARIABLE cdr(dst)' возвращает 'cdr(dst)' )

через 'GET VARIABLE' на сколько я в курсе до функций не добраться... :(
GET FULL VARIABLE ${cdr(dst)}
пробовали?
из AGI без $ надо.
http://code.google.com/p/virtual-pbx - я не червонец, чтобы нравиться всем....
2009-04-15 17:16

Сообщений: 1573

Re: Dial - как узнать номер по которому прошел вызов

мне из AGI скрипта все это надо сделать.
exten => _X., 1, AGI( /agi/script.agi )

AGI на перле если это актуально.
значения пробовал получать
$agi->get_full_variable('cdr(dst)');

Команда Dial из AGI приложения может вызываться несколько раз.

Как то сильно мы ушли от первоначального поста ... ) :
День добрый,

А как узнать по какому номеру прошел вызов при звонке вида:
Dial(SIP/agent1&SIP/agent2&LOCAL/123);

Alekz:

Поле смотрите lastdata. Прошу прощения за сумбур в своих постах - дергают меня :)

Поле lastdate будет содержать - SIP/agent1&SIP/agent2&LOCAL/123, поле dst - то что набирается для вызова этой команды (Dial), но ни как не то, что вы ждете.

Alekz:

при конструкции bill@10.1.11.1 в команде Dial в переменную BRIDGEPEER помещается SIP/10.1.11.1-0827a7a8 (например). А если 2 пользователя укажут на свои имена на одном хосте?

при таком раскладе и приведенном мной примере здесь будет только IP (10.1.11.1. Почему, описывал выше). Если все же нужно получать полный вид(bill@10.1.11.1), тогда нужно подойти по другому. Но это уже решение под ключ ... )

to gosha-regs, вы куда хотите записать полученные этим скриптом данные? Где вы собираете записи CDR (и собираете ли)?

Почему не сделать так, что ваш скрипт будет "кидать" вызов в нужную точку плана набора, а не сам вести вызов?
Пример плана написал выше ... При этом в поле accountcode у вас появится "номер" ... ) (с некоторыми издержками, которые так же можно решить)

В статистике собственно хочется видеть куда ушел звонок

Судя по всему - статистика есть
2009-04-15 17:35

Откуда: NiNo
Сообщений: 112

Re: Dial - как узнать номер по которому прошел вызов

to: cron333

Я не сильно понимаю, что мне даст направление звонка в план набора... Приведенный выше пример с CUT(BRIDGEPEER) и в AGI отрабатывает, только нужного значения там нет.

CDR генерируются свои, то есть каждое пользовательское действие логируется (прослушал музыку, записал сообщение проголосовал, позвонил, и тд... ).

Я вот думаю если к Dial макрос добавить, который будет в astdb нечто писать. Вопрос опять в том, что писать...

Как вариант конечно распарсить логи астериска и вытащить от туда все звонки и считать успешным тот, что со статусом ANSWER но это на крайний случай наверное...
http://code.google.com/p/virtual-pbx - я не червонец, чтобы нравиться всем....
2009-04-15 18:19

Сообщений: 866

Re: Dial - как узнать номер по которому прошел вызов

из AGI без $ надо.
ну если у вас без $ не работает... что стоит попробовать? get_full_variable имхо _выражения_ получает и их вычисляет. А значит доллар нужен.


2. Не хотите через Local-врапперы все это загнать?
То есть для каждого возможного эндпоинта генерится враппер:

exten => wrap-001234,s,Set(DEST=SIP/bill@10.1.11.1)
exten => wrap-001235,s,Set(DEST=Local/123)
...
exten => _wrap-.,2,Dial(${DEST})

и тогда Dial делать уже на Dial(Local/wrap-001234&Local/wrap-001235) - в результате у вас будет проставлена переменная который путь сработал.

список эндпоинтов лежит в базе - через вьюшку подсасывается в switch/realtime - всегда актуальная инфа....

Ну не очень прямо конечно :)
2009-04-15 18:43

Сообщений: 866

Re: Dial - как узнать номер по которому прошел вызов

3. Можно еще наверно очередями сделать - собирать динамически очереди из всех эндпоинтов со стратегией ringall и потом смотреть на значение переменной MEMBERINTERFACE - она по идее говорит который из мемберов принял звонок. Тоже не проверял...
2009-04-15 20:13

Сообщений: 1573

Re: Dial - как узнать номер по которому прошел вызов

Да уж ...

to: cron333
Я не сильно понимаю, что мне даст направление звонка в план набора... Приведенный выше пример с CUT(BRIDGEPEER) и в AGI отрабатывает, только нужного значения там нет.

А у меня - есть. Что не так делаю ... )
Ну в общем то ладно, главное, что вы поняли меня ...

P.S. Уверен, вашу задачу можно решить только диалпланом!
2009-04-15 23:07

Откуда: NiNo
Сообщений: 112

Re: Dial - как узнать номер по которому прошел вызов

to cron333:
в том виде, что вы предлагали нужного значения там нет.

to dimas:
слишком сложно...

Решение нашел: в переменной DIALEDPEERNUMBER интересующее меня значение.

http://code.google.com/p/virtual-pbx - я не червонец, чтобы нравиться всем....
2009-04-16 10:51

Сообщений: 1573

Re: Dial - как узнать номер по которому прошел вызов

Хотите верьте, хотите нет, но сохранилось сообщение, которое я корректировал, но оно не сохранилось. Вместо этого:
при таком раскладе и приведенном мной примере здесь будет только IP (10.1.11.1. Почему, описывал выше). Если все же нужно получать полный вид(bill@10.1.11.1), тогда нужно подойти по другому. Но это уже решение под ключ ... )

должно было быть:
при таком раскладе и приведенном мной примере здесь будет только IP (10.1.11.1. Почему, описывал выше). Попробуйте еще переменную ${DIALEDPEERNUMBER}
2009-04-16 13:27

Сообщений: 866

Re: Dial - как узнать номер по которому прошел вызов

to dimas:
слишком сложно...
ну это вопрос спорный :)

Вам же откуда-то эти энжпоинты на которые для каждого юзера звонить все равно брать нужно - они наверняка уже в базе лежат...

Сделать такое через динамическую очередь это одна пара табличек или вьюшек в базе и одна строчка диалплана.
Конечно если вы реалтайм до этого не цепляли к астериску, то да, поковыряться придется. Но в любом случае результат выглядит очень простым.
2009-04-17 15:03

<12 3
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru