ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΠΏΠ°ΡΠ΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ°ΠΉΠ»Π΅ doc/sla.pdf Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Asterisk.
exten => 123,1,SLAStation(station1)
exten => 124,1,SLAStation(station1_line2)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
SLATrunk(), sla.conf
SLATrunk()
ΠΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°Π½Π°Π» Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΏΠ°ΡΠ΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ
SLATrunk( ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉΠΊΠ°Π½Π°Π»)
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠΌ SLA Π΄Π»Ρ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΠ°Π½Π°Π», Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ SLA, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ
ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉΠΊΠ°Π½Π°Π».
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΡΠΏΠ°ΡΠ΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ°ΠΉΠ»Π΅ doc/sla.pdf Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Asterisk.
exten => 123,1,SLATrunk(line2)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
SLAStation(), sla.conf
SoftHangup()
ΠΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ°Π·ΡΡΠ² ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ
SoftHangup(ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ/ΡΠ΅ΡΡΡΡ, ΠΎΠΏΡΠΈΠΈ)
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°Π·ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°. ΠΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΠΏΡΠΈΠΈ Π·Π°Π΄Π°Π½Π° Π±ΡΠΊΠ²Π° a, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
; ΡΠ°Π·ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Π²ΡΠ΅ Π·Π²ΠΎΠ½ΠΊΠΈ ΠΏΠΎ Zap/4, ; ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ exten => 123,1,SoftHangup(Zap/4,a) exten => 123,2,Wait(2) exten => 123,3,Dial(Zap/4/5551212)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Hangup()
StackPop()
Π£Π΄Π°Π»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Gosub()
StackPop()
Π£Π΄Π°Π»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Gosub(). Π§Π°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Gosub(), ΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΎΡΠΊΡ Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Gosub().
exten => s,1,Read(input,get-input) exten => s,n,Gosub(validate,1) exten => s,n,Dial(SIP/${input})
; ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ Π²Π²ΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 400 Π΄ΠΎ 499 exten => validate,1,GotoIf($[ ${input} > 499 ]?error,1)
exten => validate,n,GotoIf($[ ${input} < 400 ]?error,1) exten => validate,n,Return exten => error,1,StackPop() exten => error,2,Goto(s,1)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Return(), Gosub()
StartMusicOnHold()
ΠΠ°ΡΠΈΠ½Π°Π΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΡΠ·ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ
StartMusicOnHold([ΠΊΠ»Π°ΡΡ])
ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΌΡΠ·ΡΠΊΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, Π·Π°Π΄Π°Π½Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠ»Π°ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ Π² ΡΠ°ΠΉΠ»Π΅ musiconhold.conf. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΡΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ ΠΌΡΠ·ΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»Π°. ΠΠ°Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΌΡΠ·ΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ CHANNEL(ΠΊΠ»Π°ΡΡΠΌΡΠ·ΡΠΊΠΈ). ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.
; ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Ρ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΏΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ
; Π½Π° ΡΡΠΎΡ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°Π½ΡΡΡ ΠΈΡ
exten => 123,1,Answer()
exten => 123,2,Playback(tt-allbusy)
exten => 123,3,StartMusicOnHold(default)
exten => 123,4,Wait(600)
exten => 123,5,StopMusicOnHold()
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
WaitMusicOnHold(), StopMusicOnHold()
StopMixMonitor()
ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ
StopMixMonitor()
ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (Π·Π°ΠΏΠΈΡΡ) ΠΊΠ°Π½Π°Π»Π°. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΊΠ°Π½Π°Π»Π° Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π²Π΅Π΄Π΅ΡΡΡ.
exten => 123,1,Answer() exten => 123,2,MixMonitor(monitor_test.wav) exten => 123,3,SayDigits(12345678901234567890) exten => 123,4,StopMixMonitor()
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
MixMonitor()
StopMonitor()
ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ
StopMonitor()
ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (Π·Π°ΠΏΠΈΡΡ) ΠΊΠ°Π½Π°Π»Π°. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΊΠ°Π½Π°Π»Π° Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π²Π΅Π΄Π΅ΡΡΡ.
exten => 123,1,Answer() exten => 123,2,Monitor(wav,monitor_test,mb) exten => 123,3,SayDigits(12345678901234567890) exten => 123,4,StopMonitor()
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
ChangeMonitor()
StopPlaytones()
ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΡΠΎΠ½ΠΎΠ²
StopPlaytones()
ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΠΎΠ½ΠΎΠ².
exten => 123,1,Playtones(busy)
exten => 123,2,Wait(2)
exten => 123,3,StopPlaytones()
exten => 123,4,Playtones(congestion)
exten => 123,5,Wait(2)
exten => 123,6,StopPlaytones()
exten => 123,7,Goto(1)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Playtones(), indications.conf
StopMusicOnHold()
ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΡΠ·ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ
StopMusicOnHold()
ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΡΠ·ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ. ΠΡΠ»ΠΈ ΠΌΡΠ·ΡΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π½Π΅ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π»Π°ΡΡ, Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
; ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Ρ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΏΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ
; Π½Π° ΡΡΠΎΡ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°Π½ΡΡΡ ΠΈΡ
exten => 123,1,Answer()
exten => 123,2,Playback(tt-allbusy)
exten => 123,3,StartMusicOnHold(default)
exten => 123,4,Wait(600)
exten => 123,5,StopMusicOnHold()
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
WaitMusicOnHold(), StartMusicOnHold()
System()
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
System(ΠΊΠΎΠΌΠ°Π½Π΄Π°)
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π΅Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π»Π° SYSTEMSTATUS Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ FAILURE ΠΈΠ»ΠΈ SUCCESS Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΏΠ΅ΡΠ½ΠΎ Π»ΠΈ Asterisk Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° TrySystem(), Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΎΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ -1, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TrySystem() Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 0. exten => 123,1,System(echo hello > /tmp/hello.txt)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
TrySystem()
Transfer()
ΠΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½ΡΠ° Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ
TraΠΏsfer([Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ/]Π²ΡΠ·ΡΠ²aΠ΅ΠΌΡΠΉΠ½ΠΎΠΌΠ΅Ρ[, ΠΎΠΏΡΠΈΠΈ)
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ Π°Π±ΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½ Π½Π° Π½ΠΎΠΌΠ΅Ρ, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉΠ½ΠΎΠΌΠ΅Ρ (ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ). ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ IAX2, SIP, Zap ΠΈ Ρ. Π΄., ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΡΡΡΠΏΠΈΠ» ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°.
ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π΅Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π»Π° TRANSFERSTATUS ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
SUCCESS
ΠΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ.
FAILURE
ΠΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ Π±ΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ.
UNSUPPORTED
ΠΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°.
ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΎΠΏΡΠΈΠΈ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ j, ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΡΠ΄Π°Π»Π°ΡΡ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ n + 101 (Π³Π΄Π΅ n - ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ), Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² ΡΡΠΎΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ.
; ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π·Π²ΠΎΠ½ΠΊΠΈ Ρ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° 123 ; Π½Π° Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ SIP/ [email protected] exten => 123,1,Transfer(SIP/ [email protected])
TryExec()
ΠΠ΅Π»Π°Π΅Ρ ΠΏΠΎΠΏΡΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Asterisk
TryExec(ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅(Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ))
ΠΠ΅Π»Π°Π΅Ρ ΠΏΠΎΠΏΡΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Asterisk. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Exec(), Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΎΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Exec() Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ°ΡΡΡ Π²ΡΡ ΠΎΠ΄Π°. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π»ΠΎ Π±Ρ ΠΊ ΡΠ±ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. exten => 123,1,TryExec(VMAuthenticate(@default))
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Exec()
TrySystem()
ΠΠ΅Π»Π°Π΅Ρ ΠΏΠΎΠΏΡΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
TrySystem(ΠΊΠΎΠΌΠ°Π½Π΄Π°)
ΠΠ΅Π»Π°Π΅Ρ ΠΏΠΎΠΏΡΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠ°Π½Π°Π»Π° SYSTEMSTATUS. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
FAILURE
ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
SUCCESS
Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ.
APPERROR
Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠ»Π° ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° System(), Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ System() Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΈΡΡΠ΅ΠΌΡ.
exten => 123,1,TrySystem(echo hello > /tmp/hello.txt)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
System()
UnpauseMonitor()
ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ ΠΊΠ°Π½Π°Π»Π°
UnpauseMonitor()
ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡ ΠΊΠ°Π½Π°Π»Π°, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ PauseMonitor().
exten => 123,1,Answer()
exten => 123,n,Monitor(wav,monitor_test)
exten => 123,n,Playback(demo-congrats)
; Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π·Π°ΠΏΠΈΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠ° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ exten => 123,n,PauseMonitor() exten => 123,n,Read(NEWPASS,vm-newpassword) exten => 123,n,SayDigits(${NEWPASS})
; Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π·Π°ΠΏΠΈΡΡ Π·Π²ΠΎΠ½ΠΊΠ° exten => 123,n,UnpauseMonitor() exten => 123,n,Dial(${JOHN})
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Monitor(),StopMonitor(), Page()
UnpauseQueueMember()
ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ²
UnpauseQueueMember([ΠΈΠΌΡΠΎΡΠ΅ΡΠ΅Π΄ΠΈ,]ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ[,ΠΎΠΏΡΠΈΠΈ])
ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (Π·Π²ΠΎΠ½ΠΊΠΈ ΠΊ Π½Π΅ΠΌΡ). Π―Π²Π»ΡΠ΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ PauseQueueMember() ΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ, Π° Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π΅Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π»Π° UPQMSTATUS Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ UNPAUSED (Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½) ΠΈΠ»ΠΈ NOTFOUND (Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½). ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΎΠΏΡΠΈΠΈ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ j , ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ n + 101 (Π³Π΄Π΅ n - ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ), ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΡΡΠΎΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. exten => 123,1,PauseQueueMember(myqueue,SIP/300) exten => 124,1,UnpauseQueueMember(myqueue,SIP/300)