Страница 1 из 1

Получить имя пира с телефонного аппарата

СообщениеДобавлено: 12 май 2022, 09:32
alexanderzhirov
Добрый день!

Хочу выгрузить список зарегистрированных пиров с возможностью указания каждому пиру имя абонента, которое забито в телефоне.

Пытаюсь разобраться, как получить имя пира, которое забито в телефоне. Как таковой книги телефонной не существует. Имя привязывается внутри телефонного аппарата (корпоративная телега, сам ещё только разбираюсь, новичок). Включил отладку. Звоню с телефона - нигде не видно информации о том, кто (from) звонит. Сделал дамп пакетов с телефона, через Wireshark глянул - в четвертом отправляемом пакете имеется имя, которое мне необходимо. Думаю, справедливо предположить, что его можно через Asterisk как-то вытащить. Пробовал гуглить и на eng форумах - поиск не дал результатов.

Re: Получить имя пира с телефонного аппарата

СообщениеДобавлено: 13 май 2022, 11:57
ded
alexanderzhirov писал(а):Звоню с телефона - нигде не видно информации о том, кто (from) звонит. Сделал дамп пакетов с телефона, через Wireshark глянул - в четвертом отправляемом пакете имеется имя, которое мне необходимо. Думаю, справедливо предположить, что его можно через Asterisk как-то вытащить.

Теория: Caller ID состоит из CallerID(name) и CallerID(number), имеет формат
"A.Zhirov"<70031>

При оригинации вызова от абонента многие ИП телефоны и софтфоны могут передавать это всё, что у них вбито, в поле From:
Далее звонок маршрутизируется АТС Астериск, где эти данные обычно унифицированы, чтобы не было анрхии в именах. И имена с номерами обычно хранятся в базах - внутренней astdb и MariaDB/MySQL.
Но их можно менять там, через функцию
Set(CALLERIP(name)
Set(CALLERIP(num)
Set(CALLERIP(all)
Надо читать документацию. Если вы используете FreePBX, то использовать модуль SetCallerID, если чистый Астериск - изучать функции и язык диалплана.
Как вытащить? Расставить везде
NoOp(CallerID is ${CALLERID(all)}) при прохождении вызова, и увидеть где он перебивается Астериском.