Добрый день. Понял, что не корректно сформулировал вопрос в прошлый раз, по-этому решил попытаться вновь. Мне нужно добавить кастомные поля в таблицу cdr, в которые будут записываться IP человека, который позвонил и IP человека, который ответил. Делаю я это следующим образом:
sql> ALTER TABLE asterisk.cdr ADD COLUMN callerIP varchar(15);
sql> ALTER TABLE asterisk.cdr ADD COLUMN operatorIP varchar(15);
CLI> module reload cdr_adaptive_odbc.so
Далее. В extensions_custom.conf добавляю:
[from-pstn-custom]
exten => _X.,1,Answer
exten => _X.,n,Set(CDR(callerIP)=${SIPPEER(104,ip)})
exten => _X.,n,Set(CDR(operatorIP)=${SIPPEER(104,ip)})
CLI> asterisk -r
CLI> dialplan reload
При звонке корректно записывается IP 104-го sip'а в таблицу. Но как мне вместо хардкодного 104-го номера получать реальные IP? В прошлой теме получил рекомендацию смотреть в сторону ${SIPCHANINFO(peerip)} и ${CHANNEL(peerip)}, но
exten => _X.,n,Set(CDR(operatorIP)=${SIPCHANINFO(peerip)})
возвращает мне ip адрес транка, а не extension'а. В общем, надеюсь кто нибудь сможет мне помочь.
...
exten => _X.,n,Set(CDR(operatorIP)=${CHANNEL(recvip)})
...
И искомый IP у Вас в кармане.
Екстеншен у вас будет КУДА позвонили. соответвенно вместо 104 подставляете ${EXTEN}
вообще это очень все от диалплана зависит.
в случае с группами ситуация усложняется, надо использовать макросы по ответу екстеншена.
зы то что вам надо адреса говорит о неверной постановке задачи. вас не должны волновать адреса, только транки и екстеншены.
"то что вам надо адреса говорит о неверной постановке задачи." полностью поддерживаю :)
bandys ( 2013-11-26 10:14:05 +0400 )редактироватьЗадан: 2013-11-26 08:15:25 +0400
Просмотрен: 759 раз
Обновлен: Nov 27 '13
ip телефоны логинятся, нет звонков
Короткий номер вместо кода города с восьмеркой в oficeserv 7400 (VoIP ?)
смена внешнего ip адреса на elastix через web интерфейс
подскажите IP телефон для ресепшена
Asterisk должен отвечать на двух IP адресах
Как настроить запись CDR (писать только нужные звонки)
Частая смена IP у SIP-клиентов
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
meral спасибо за ответ. ${EXTEN} вместо 104 возвращает номер транка. Я использую эластикс. По звонку на номер, включается IVR после чего воодится номер оператора и устанавливается связь. У меня такое подозрение, что я просто не верный контекст использую.
Andrey ( 2013-11-26 08:36:00 +0400 )редактироватьИзвините за вопрос, а зачем вам это? Действительно интересно.
bandys ( 2013-11-26 10:14:32 +0400 )редактироватьМое начальство хочет максимально разгрузить call-центр. Для этого было предложено решение с html-страничкой и маленьким скриптом на ajax'е, который будет дергать специальный сервлет на сервере, который будет возвращать всю информацию о клиенте в момент установления связи с оператором. Иными словами, в тот момент, когда оператор скажет "алло", на его странице в браузере уже должна появиться вся необходимая информация. Такова поставленная передо мной задача.
Andrey ( 2013-11-26 10:56:34 +0400 )редактироватьну так из макроса по ответу всю информацию ложите. все равно непонятно чем оператору поможет АДРЕС ОПЕРАТОРА. он его не знает чтоли?
meral ( 2013-11-26 12:10:03 +0400 )редактироватькогда 104 исходящий номер показывает, обычно CALLERID(num) или CDR(src) показывает кто звонил. но в КЦ может быть что угодно. и мы вам тут сколько б не гадали не поможем. вот читайте и смотрите что у вас получается http://asterisk-support.ru/question/38386/kak-poniat-chto-proiskhodit-na-asteriske/
meral ( 2013-11-26 12:12:07 +0400 )редактироватьпрошу прощения за глупый вопрос, но что такое КЦ? За линк спасибо.
Andrey ( 2013-11-26 14:03:24 +0400 )редактироватьколлцентр,не?
meral ( 2013-11-26 14:33:03 +0400 )редактироватьиз того, что вы описали, и учитывая, что у вас софтфоны, открою вам тайну. В сипе можно передавать не только голос, но к примеру и URL. Кто ответил, тот URL и получил. "максимально разгрузить call-центр" это шедеврально :)
bandys ( 2013-11-26 16:47:02 +0400 )редактировать