Проблему по форуму почитал, нашел несколько реализаций. Сделал по своему. Интересует могут ли возникнуть проблемы, может что не учел.
Суть в следующем. SIP-транк к провайдеру. Используется только для исходящих. Провайдер пропускает тот CALLERID, который ему приходит. Нужно для разных внутренних телефонов иметь разные CALLERID - по городам, отделам и прочему. Это не проблема - меняем CALLERID(num) на нужный и шлем вызов. Далее возникает проблема со статистикой, т.к. там номер звонящего начинает отображаться не внутренний, а подставленный внешний. Собственно о решении этой задачи и спрашиваю.
Что нашел на форуме:
1. Если номер для всех подменяется на один, то можно в транке указать fromuser=номер, тогда все путем. Не устраивает, что номер не у всех один.
2. Запихивать в статистику внутренний номер в userfield и играться с ним. Работает, но не хочется лезть в поля статистики, т.к. тут можно починить, а в другом месте поломать. Чтоб все было нормально надо перелопатить диалплан.
3. Если freepbx - указать для внутреннего номера соответсвующее поле подмены номера для исходящих. Тут затрудняюсь описать результат - у меня голый asterisk.
4. Придумал сам(может и описано где-то - я не встретил). Делаю одинаковые транки(type=friend), различающимся только полем fromuser=номер. Т.е. логины/пароли, хосты - все одинаковое. Соответственно указываю в диалплане при исходящем нужный для вызова транк и все путем. Вопрос - нет ли у данной схемы подводных камней - можно ли так клонировать транк? По моим знаниям вроде все нормально должно быть: транк используется только для выхода, т.е. при каждом вызове беруться параметры для этого вызова из разных мест.