musho5755 писал(а):Есть 8 канальный Goip. Звонки попадают в сим, потом транслируются в Voip номер(Forwarding to VoIP Number, Use CID as SIP caller ID) (на пример 2000), а когда 2000 вызываеться в астериск, он звонит на 101, 102, ... софтфоны. У каждого софтфона есть свой оператор. Надо, чтобы в имя файла записи было написано имя оператора, который ответил на звонок..
Вот звонок от Маши (+7 901 2323232), которая набрала один из номеров симок, которые работают в GoIP - +7 911 5656565. Откуда вызов пошёл в Астериск, где указана обработка входящих в группе операторов 101-102-103
Изображу так:
Маша <+7 901 2323232> ---> GoIP-sim1 <+7 901 2323232> ---> [Asterisk group call] ---> Smooth operator <101>
Тут вам надо бы отобразить в CDR все эти номера, полагаю: кто звонил, на какой номер и кто поднял.
CID ---> DID ---> extension num.
Каждая инстанция имеет имена и номера: CID name <CID num>, и в этом определении ваш промежуточный номер 2000 не имеет никакого смысла. Туда надо забить в GoIP номер сим карты, которая работает в этом порту. Это гораздо вразумительней.
В стандартных, не самописных конфигах, входящих сценариях вызовов маршрутизация делается по DID (в вашем случае - 2000), очень настойчиво рекомендую сменить! И при выполнении шагов - на 2-м шаге Вы определили имя файла, куда вписали все параметры, Но звонок ещё не пошёл операторам 101-102-103! И неизвестно - кто из них снимет трубку! И как Вы собрались записать номер и/или имя оператора, когда ещё не ясно кто это будет? Неужели Вы этого не видите?
Код: Выделить всё
exten => 2000,1,Background(/var/lib/asterisk/moh/voicemail/bari)
exten => 2000,2,Set(fname=${STRFTIME(${EPOCH},,%d.%m.%Y_%H:%M)}_${CALLERID(dnid)}_${CALLERID(num)})
exten => 2000,3,MixMonitor(/var/www/records/${fname}.wav)
exten => 2000,4,Dial(SIP/101&SIP/102&SIP/103,,t&m)