#asterisk
#asterisk
Вопрос:
Я использую файл вызовов в asterisk для автоматического набора номера. Как я могу выполнить некоторые действия перед вызовом? В asterisk есть обработчик предварительного набора, но он работает с приложением dial или FollowMe. обратите внимание, что я использую call file.
Комментарии:
1. Почему бы вам просто не создать специальный контекст для ваших файлов вызовов, чтобы выполнять ваши действия перед фактическим подключением к одноранговому узлу?
2. Я новичок в asterisk. сначала asterisk вызывает получателя, а затем выполняет команды расширений. Это правильно? как я могу выполнять команды в контексте перед вызовом?
Ответ №1:
Создайте новый контекст для выполнения команд перед вызовом, например:
[precall]
exten => _X.,1,NoOp(Precall processing)
same => n,System(echo ${EXTEN} call >> /tmp/call.log)
same => n,Dial(SIP/${EXTEN})
А затем в вашем файле вызовов:
Channel: Local/1000@precall
Context: from-internal
Extension: 2000
В этом случае:
- Asterisk запустится в
precall
контексте с расширением1000,1
- Он выполнит
echo 1000 call >> /tmp/call.log
системную команду - Вызываю
SIP/1000
и жду ответа - При
SIP/1000
ответе на вызов Asterisk переходит кfrom-internal
контексту, расширению2000,1
- Если у вас обычная конфигурация, она наберет номер
2000