Dial - как узнать номер по которому прошел вызов
Dial - как узнать номер по которому прошел вызов
Откуда: NiNo
Сообщений: 112
|
Re: Dial - как узнать номер по которому прошел вызов
Есть AGI приложение, у него одна из функций, нечто похожее на 'Follow-Me', есть пользователи которые логинятся в систему имея некий веб интерфейс, создают свой IVR ( физически пользователи не прописаны в астериске ).
Пользователь может в своем интерфейсе ввести список 'номеров' по которым его искать, 'номера' вида:
1647153900,
bill@10.1.11.1
приложение делает вызов по данным номерам, собирая в зависимости от алгоритма вызова, в интересующем случае, строку вида:
Dial(LOCAL/16417153900&SIP/bill@10.1.11.1)
и отдает через AGI астериску.
В статистике собственно хочется видеть куда ушел звонок, на 16417153900 или bill@10.1.11.1.
вот.
|
Откуда: Санкт-Петербург
Сообщений: 931
|
Re: Dial - как узнать номер по которому прошел вызов
Потестил еще:) Снова предлагаю вернуться к функции cdr() только уже выбирать поле dst.
Переменная BRIDGEPEER действительно содержит не полный sip uri.
Создам аварийную ситуацию. Дорого. На долго =)
|
Сообщений: 1573
|
Re: Dial - как узнать номер по которому прошел вызов
Alekz: Потестил еще:) Снова предлагаю вернуться к функции cdr() только уже выбирать поле dst.
это поле будет содержать (в данном случае) тем более не то, что вы ожидаете ...
Alekz: Переменная BRIDGEPEER действительно содержит не полный sip uri.
что вы ожидаете там увидеть? )
|
Откуда: NiNo
Сообщений: 112
|
Re: Dial - как узнать номер по которому прошел вызов
Alekz: Потестил еще:) Снова предлагаю вернуться к функции cdr() только уже выбирать поле dst.
Переменная BRIDGEPEER действительно содержит не полный sip uri.
тут другая засада:
asterisk 1.4.24
GET FULL VARIABLE - возвращает почему то на любую запрашиваемую переменную ее имя а не занчение ( то есть на запрос 'GET FULL VARIABLE cdr(dst)' возвращает 'cdr(dst)' )
через 'GET VARIABLE' на сколько я в курсе до функций не добраться... :(
|
Откуда: Санкт-Петербург
Сообщений: 931
|
Re: Dial - как узнать номер по которому прошел вызов
Я хочу иметь возможность собрать конструкцию вида bill@10.1.11.1
Хотя надо это не мне :)
Создам аварийную ситуацию. Дорого. На долго =)
|
Сообщений: 1573
|
Re: Dial - как узнать номер по которому прошел вызов
Есть AGI приложение, у него одна из функций, нечто похожее на 'Follow-Me', есть пользователи которые логинятся в систему имея некий веб интерфейс, создают свой IVR ( физически пользователи не прописаны в астериске ).
Пользователь может в своем интерфейсе ввести список 'номеров' по которым его искать, 'номера' вида:
1647153900,
bill@10.1.11.1
приложение делает вызов по данным номерам, собирая в зависимости от алгоритма вызова, в интересующем случае, строку вида:
Dial(LOCAL/16417153900&SIP/bill@10.1.11.1)
и отдает через AGI астериску.
В статистике собственно хочется видеть куда ушел звонок, на 16417153900 или bill@10.1.11.1.
вот.
...
exten => _X.,n,Dial(LOCAL/16417153900&SIP/bill@10.1.11.1)
...
exten => h,1,Set(PEER=${CUT(BRIDGEPEER,/,2)})
exten => h,n,Set(PEER=${CUT(PEER,-,1)})
exten => h,n,Set(CDR(accoutcode)=${PEER})
exten => h,n,Hangup()
|
Сообщений: 866
|
Re: Dial - как узнать номер по которому прошел вызов
asterisk 1.4.24
GET FULL VARIABLE - возвращает почему то на любую запрашиваемую переменную ее имя а не занчение ( то есть на запрос 'GET FULL VARIABLE cdr(dst)' возвращает 'cdr(dst)' )
через 'GET VARIABLE' на сколько я в курсе до функций не добраться... :(
GET FULL VARIABLE ${cdr(dst)}
пробовали?
|
Откуда: Санкт-Петербург
Сообщений: 931
|
Re: Dial - как узнать номер по которому прошел вызов
cron333, при конструкции bill@10.1.11.1 в команде Dial в переменную BRIDGEPEER помещается SIP/10.1.11.1-0827a7a8 (например). А если 2 пользователя укажут на свои имена на одном хосте?
Создам аварийную ситуацию. Дорого. На долго =)
|
Откуда: NiNo
Сообщений: 112
|
Re: Dial - как узнать номер по которому прошел вызов
cron333: Есть AGI приложение, у него одна из функций, нечто похожее на 'Follow-Me', есть пользователи которые логинятся в систему имея некий веб интерфейс, создают свой IVR ( физически пользователи не прописаны в астериске ).
Пользователь может в своем интерфейсе ввести список 'номеров' по которым его искать, 'номера' вида:
1647153900,
bill@10.1.11.1
приложение делает вызов по данным номерам, собирая в зависимости от алгоритма вызова, в интересующем случае, строку вида:
Dial(LOCAL/16417153900&SIP/bill@10.1.11.1)
и отдает через AGI астериску.
В статистике собственно хочется видеть куда ушел звонок, на 16417153900 или bill@10.1.11.1.
вот.
...
exten => _X.,n,Dial(LOCAL/16417153900&SIP/bill@10.1.11.1)
...
exten => h,1,Set(PEER=${CUT(BRIDGEPEER,/,2)})
exten => h,n,Set(PEER=${CUT(PEER,-,1)})
exten => h,n,Set(CDR(accoutcode)=${PEER})
exten => h,n,Hangup()
мне из AGI скрипта все это надо сделать.
exten => _X., 1, AGI( /agi/script.agi )
AGI на перле если это актуально.
значения пробовал получать
$agi->get_full_variable('cdr(dst)');
Команда Dial из AGI приложения может вызываться несколько раз.
|
Откуда: Санкт-Петербург
Сообщений: 931
|
Re: Dial - как узнать номер по которому прошел вызов
Смотрит пост dimas по Формату команды. Поле смотрите lastdata. Прошу прощения за сумбур в своих постах - дергают меня :)
Создам аварийную ситуацию. Дорого. На долго =)
|
|