В астериск заведен SIP транк на десять линий. Для регистрации у провайдера у транка, соответственно, есть единый callerID, он же логин, ну и пароль тоже один на всех.
Операторы звонят с локальных номеров с 3200 по 32020 через этот транк. Одновременно можно совершать 10 вызовов.
Есть другой сервер, на нем стоит база телефонов. Этот сервер слушает астериск по AMI и определяет, когда оператор звонит, а когда положил трубку.
Последнее как раз определяется криво, а точнее не определяется совсем. Удаленный сервер ждем создание нового канала с callerID оператора (типа 32001, 32002 и т.д.), но при звонке сервере передает в качестве параметра канала не callerID оператора, а общий callerID. Если менять callerID на местных операторов, но тогда звонки вообще не проходят, так как не передается основной callerID и провайдер реджектит авторизацию.
Т.е. Местный callerID нужно передавать, чтобы его видел сервер через AMI, и внешний общий callerID тоже нужно передавать при создании канала, чтобы авторизоваться у провайдера, и все в одном звонке. Как быть?