Asterisk Как проиграть объявление без звонящего абонента

У меня есть следующая задача со звездочкой, и я не знаю, как ее решить.

У меня есть контекст с собственным расширением по умолчанию

[my-context]
exten => s,1,Answer()
        same => n,Dial(SIP/817,10,tTwWA(demo-congrats))
        same => n,Hangup()

Я запускаю его с помощью команды origin в CLI или в AMI через telnet.

originate SIP/814 extension s@my-context

Это просто и работает последовательно:

  1. Звонок SIP/814
  2. Я отвечаю SIP/814
  3. Звонок SIP/817
  4. Другой парень отвечает на SIP/817
  5. Воспроизведение объявления на SIP/817
  6. Повесить трубку

Но это еще не соответствует моему требованию, я не хочу, чтобы вызывающая сторона (в данном случае SIP/814) вообще присоединялась к последовательности, я просто хочу дать вызываемой стороне (SIP/817) объявление и все. , но я не знаю, как это сделать.

Кстати, когда вызываемая сторона исходит из источника DAHDI (например, DAHDI/1/${мой-номер-сотового-телефона}), объявление воспроизводится до того, как я приму вызов, поэтому я просто слышу конечную часть объявления. Как мне это исправить?

Будем признательны за любую помощь
С наилучшими пожеланиями
Лой Данг


person Loi Dang    schedule 21.07.2015    source источник


Ответы (2)


Не используйте Dial в вашем контексте, вместо этого используйте Playback и наберите добавочный номер, на который вы хотите получить объявление.

[my-context]
exten => s,1,Answer()
same => n,Wait(2)
same => n,Playback(demo-congrats)
same => n,Hangup()

а затем запустите свой источник

originate SIP/817 extension s@my-context
person Dustin Anderson    schedule 29.07.2015
comment
Спасибо, Дастин, это помогает решить мою проблему. Я также могу это сделать. Демо-поздравления с воспроизведением приложений SIP/817 С наилучшими пожеланиями - person Loi Dang; 30.07.2015
comment
Это тоже работает! Я только что добавил команду ожидания, чтобы решить проблему с тем, что каналы DAHDI отключают звук слишком рано. - person Dustin Anderson; 30.07.2015
comment
Ну, это не работает, как ожидалось. Когда вы используете аналоговую телефонную линию для набора внешнего телефонного номера, вы не можете знать, когда вызываемый абонент ответит, поэтому ввод команды ожидания в добавочный номер не может воспроизвести сообщение в нужное время. Теперь я освобождаю, что мне нужно использовать линию ISDN вместо аналоговой. - person Loi Dang; 01.08.2015
comment
Используйте BackgroundDetect() и добавьте расширение обсуждения в свой контекст. Это требует тонкой настройки, но должно помочь. - person QuickDanger; 04.08.2015
comment
@LoiDang, когда мой добавочный номер оператора принимает вызов, он говорит, что номер недействителен :( - person shzyincu; 17.10.2017

Вы должны инициировать другой вызов, используя файлы вызовов или другие методы.

В этом звонке вы должны подключить одну ногу к SIP/817, другую ногу к расширению диалплана, который ожидал воспроизведения вашего сообщения.

http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out

Вы можете запустить внешний скрипт, который выполняет вызов с помощью системной команды, или создать демон, который будет прослушивать события/вызовы при определенных условиях (используются AMI/события).

person arheops    schedule 22.07.2015