Есть Asterisk к которому подключен sip-ом транк оператора предоставляющего услугу FMC для организации.
Когда на ip-телефон абонента в офисе приходит телефонный звонок из офиса, то на дисплее телефона видно нечто подобное:
Ivanov I.I.
1234
Когда же звонок приходит с мобильного телефона использующего корпоративный FMC на ip-телефон абонента в офисе на дисплее телефона видны только цифры, без имени.
1234
Сотовый оператор не передает нам display name, а только user часть SIP URL.
Абоненты в офисе хотят видеть на экране display name.
Посоветуйте, каким образом это можно осуществить?
Все нужные данные об абонентах лежать в users.conf.
Реализацию пока представляю себе так - grep users.conf по условию номера, вычленение имени абонента (System), затем его подстановка (Set).
Насколько это было бы правильно?
Сотовый оператор не передает нам display name, а только user часть SIP URL.
Ну тогда только держать директорию. Собственно если юзеры общие - то да, можно тупо грепать конфиг
Кстати, а разве там никакой application не даёт user info по экстеншену? Не проще его вывод парсить? А то конфиг и в базе может быть, а не только в файле
Upd: ну да, sippeer, указать callerid_name и можно даже не парсить
Он подставляет callerid_name того кому звонишь. пример:
-- Executing [3333@office:2] Set("SIP/1234-00000018", "foo=SoftPhone") in new stack
-- Executing [3333@office:3] Dial("SIP/1234-00000018", "SIP/3333,30,t") in new stack
В данном случае SoftPhone это callerid_name того, кому я звоню, а мне нужно чтобы подставлялся callerid_name звонящего.
Так же можно параметр указать о каком именно пире идёт речь. Если экстеншен == номер, то можно параметром передавать А-номер. В плане там 2 параметра - о ком речь и что требуется
Инфа из документации разумеется, сам такой случай не тыкал