Всем привет. Сегодня расскажу как настроить на freepbx суфлирование, подслушивание разговора, а так же бонусом подключение к разговору в режиме конференции.
Для freepbx 16 где еще работает app_macro
Подключаемся к вашему freepbx по ssh, изменяем файл extensions_custom.conf и сохраняем. Выполняем rasterisk -rx"dialplan reload"
[app-chanspy-custom]
exten => 5551,1,Macro(user-callerid,)
exten => 5551,n,Answer
exten => 5551,n,Wait(1)
exten => 5551,n,Read(SPYEXT,beep,3)
exten => 5551,n,GotoIf($["${SPYEXT}" = ""]?invalid)
exten => 5551,n,ChanSpy(PJSIP/${SPYEXT},q)
exten => 5551,n,Hangup()
exten => 5551,n(invalid),Playback(invalid)
exten => 5551,n,Hangup()
exten => 5552,1,Macro(user-callerid,)
exten => 5552,n,Answer
exten => 5552,n,Wait(1)
exten => 5552,n,Read(SPYEXT,beep,3)
exten => 5552,n,GotoIf($["${SPYEXT}" = ""]?invalid)
exten => 5552,n,ChanSpy(PJSIP/${SPYEXT},w)
exten => 5552,n,Hangup()
exten => 5552,n(invalid),Playback(invalid)
exten => 5552,n,Hangup()
exten => 5553,1,Macro(user-callerid,)
exten => 5553,n,Answer
exten => 5553,n,Wait(1)
exten => 5553,n,Read(SPYEXT,beep,3)
exten => 5553,n,GotoIf($["${SPYEXT}" = ""]?invalid)
exten => 5553,n,ChanSpy(PJSIP/${SPYEXT},B)
exten => 5553,n,Hangup()
exten => 5553,n(invalid),Playback(invalid)
exten => 5553,n,Hangup()
Для freePBX 17 с GoSub ( этот вариант на 16 версии тоже работает)
[app-chanspy-custom]
exten => 5551,1,GoSub(app-user-callerid,s,1)
exten => 5551,n,Answer
exten => 5551,n,Wait(1)
exten => 5551,n,Playback(extension)
exten => 5551,n,Read(SPYEXT,beep,3)
exten => 5551,n,GotoIf($["${SPYEXT}" = ""]?invalid)
exten => 5551,n,ExecIf($["${DEVICE_STATE(PJSIP/${SPYEXT})}" != "INUSE"]?Goto(invalid))
exten => 5551,n,ChanSpy(PJSIP/${SPYEXT},q)
exten => 5551,n,Hangup()
exten => 5551,n(invalid),Playback(im-sorry)
exten => 5551,n,Playback(connection-failed)
exten => 5551,n,Playback(not-yet-connected)
exten => 5551,n,Hangup()
exten => 5552,1,GoSub(app-user-callerid,s,1)
exten => 5552,n,Answer
exten => 5552,n,Wait(1)
exten => 5552,n,Playback(extension)
exten => 5552,n,Read(SPYEXT,beep,3)
exten => 5552,n,GotoIf($["${SPYEXT}" = ""]?invalid)
exten => 5552,n,ExecIf($["${DEVICE_STATE(PJSIP/${SPYEXT})}" != "INUSE"]?Goto(invalid))
exten => 5552,n,ChanSpy(PJSIP/${SPYEXT},w)
exten => 5552,n,Hangup()
exten => 5552,n(invalid),Playback(im-sorry)
exten => 5552,n,Playback(connection-failed)
exten => 5552,n,Playback(not-yet-connected)
exten => 5552,n,Hangup()
exten => 5553,1,GoSub(app-user-callerid,s,1)
exten => 5553,n,Answer
exten => 5553,n,Wait(1)
exten => 5553,n,Playback(extension)
exten => 5553,n,Read(SPYEXT,beep,3)
exten => 5553,n,GotoIf($["${SPYEXT}" = ""]?invalid)
exten => 5553,n,ExecIf($["${DEVICE_STATE(PJSIP/${SPYEXT})}" != "INUSE"]?Goto(invalid))
exten => 5553,n,ChanSpy(PJSIP/${SPYEXT},B)
exten => 5553,n,Hangup()
exten => 5553,n(invalid),Playback(im-sorry)
exten => 5553,n,Playback(connection-failed)
exten => 5553,n,Playback(not-yet-connected)
exten => 5553,n,Hangup()
exten => 5551,n,ChanSpy(PJSIP/${SPYEXT},q)
q – режим «прослушивание». Вы слышите обоих участников разговора, вас не слышно.
exten => 5552,n,ChanSpy(PJSIP/${SPYEXT},w)
w – режим «помощи». Вы слышите обоих участников разговора, вас слышит только оператор.
exten => 5553,n,ChanSpy(PJSIP/${SPYEXT},B)
B – режим «конференция». Вы слышите обоих участников разговора, они слышат вас.
q – режим «прослушивание». Вы слышите обоих участников разговора, вас не слышно.
exten => 5552,n,ChanSpy(PJSIP/${SPYEXT},w)
w – режим «помощи». Вы слышите обоих участников разговора, вас слышит только оператор.
exten => 5553,n,ChanSpy(PJSIP/${SPYEXT},B)
B – режим «конференция». Вы слышите обоих участников разговора, они слышат вас.
Итого
Набираете на номер 5551 слышите бип, вводите внутренний номер для прослушивания активного разговора
Набираете на номер 5552 слышите бип, вводите внутренний номер для суфлирования
Набираете на номер 5553 слышите бип, вводите внутренний номер для конференции
Набираете на номер 5551 слышите бип, вводите внутренний номер для прослушивания активного разговора
Набираете на номер 5552 слышите бип, вводите внутренний номер для суфлирования
Набираете на номер 5553 слышите бип, вводите внутренний номер для конференции
На этом настройка завершена. Вместо 555Х можете поставить любой другой номер который вам по душе.
В 21 версии asterisk (Напоминаю freepbx 17 на момент 2024 года ставится с 21 версией астериска по дефолту) app_macro был выпилен так как устарел. В логе вы будете видеть ошибку - No application 'Macro' for extension (from-internal). Альтернатива macro - Gosub.
Если нужна помощь с настройкой, оставьте заявку тут