Добавить в корзинуПозвонить
Найти в Дзене
Телефонизация.

FreePBX настраиваем суфлирование во время разговора.

Привет. Друзья, огромная просьба, если вам помогло решение, поставьте лайк. Не стесняйтесь писать комментарии. Сегодня настраиваем дополнительный функционал подслушивания, суфлирования и конференции на лету во время разговора. Актуально для FreePBX 17. Вариант через app_macro должен работать и на более старых версиях FreePBX. Подключаемся к вашему 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
Оглавление

Привет. Друзья, огромная просьба, если вам помогло решение, поставьте лайк. Не стесняйтесь писать комментарии.

Сегодня настраиваем дополнительный функционал подслушивания, суфлирования и конференции на лету во время разговора. Актуально для FreePBX 17. Вариант через app_macro должен работать и на более старых версиях 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 – режим «конференция». Вы слышите обоих участников разговора, они слышат вас.

Итого
Набираете на номер 5551 слышите бип, вводите внутренний номер для прослушивания активного разговора
Набираете на номер 5552 слышите бип, вводите внутренний номер для суфлирования
Набираете на номер 5553 слышите бип, вводите внутренний номер для конференции

На этом настройка завершена. Вместо 555Х можете поставить любой другой номер который вам по душе.

Если что-то пошло не так - все мои контакты тут.