Настраиваю возможность в разговоре с помощью фич сделать запись разговора, и после завершения отправлять на почту сотрудника.
Внешний поток принимает Asterisk(1.8.22.0) одним портом, вторым портом включен в АТС.
Так как прописана DID таблица на стороне АТС, то просто перенаправляю звонок согласно DID.
Что настроено:
- CEL (cel_odbc)
- Applicationmap (features.conf) - делаю через Macro
- Dialplan (обьявляю фичи)
Описание входящего звонка:
extension.conf
[in]
exten => _4ХХXXXX,1,NoOp(INC Call)
same => n,Set(__DYNAMIC_FEATURES=monitor_on)
same => n,Dial(DAHDI/g1/${EXTEN})
same => n,Hangup()
[macro-record]
exten => s,1,Verbose(1, EXTEN ${CALLERID(num)} STARTS RECORD A CALL)
same => n,Set(_FILENAME=${CALLERID(num)}-${source}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}.wav)
same => n,Set(_dst_peer=${CDR(clid)})
same => n,Set(CHANNEL(userfield)=${FILENAME})
same => n,MixMonitor(${FILENAME},b,${scriptdir}/send_record.php ${CDR(linkedid)})
same => n,MacroExit()
features.conf
monitor_on => *7,self/callee,Macro(record)
Суть проблемы:
Когда DID прописан на АТС приземлен на абонента напрямую, то в переменных CDR канала значение clid=${EXTEN}, но если данный звонок перехватить с другого аппарата то в поле clid=номер сотрудника который перехват осуществил!
Что не донастроено, или каким образом получить необходимое значение?
Заранее благодарен.
ну и не трогать ее в момент перехвата.
_________________
Алексей Милько
| Цитата: |
| ну и не трогать ее в момент перехвата. |
перехват осуществляется средствами АТС, а не Asterisk.