[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()[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()В 21 версии asterisk (Напоминаю freepbx 17 на момент 2024 года ставится с 21 версией астериска по дефолту) app_macro был выпилен так как устарел. В логе вы будете видеть ошибку - No application 'Macro' for extension (from-internal). Альтернатива macro - Gosub.