ΠΠΎΠΆΠ½ΠΎ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, Π·Π°Π΄Π°Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ_ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ°.
exten => 123,1,Answer()
exten => 123,2,Set(COUNT=1)
exten => 123,3,SayNumber(${COUNT})
exten => 123,4,Set(COUNT=$[ ${COUNT} + 1 ])
exten => 123,5,Goto(3)
; ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°
exten => 124,1,Answer()
exten => 124,2,Set(COUNT=1)
exten => 124,3(repeat),SayNumber(${COUNT})
exten => 124,4,Set(COUNT=$[ ${COUNT} + 1 ])
exten => 124,5,Goto(repeat)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
GotoIf(), GotoIfTime(), Gosub(), Macro()
GotoIf()
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π² Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ
GotoIf(ΡΡΠ»ΠΎΠ²ΠΈΠ΅? ΠΌΠ΅ΡΠΊΠ°1:ΠΌΠ΅ΡΠΊΠ°2)
ΠΠ°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ² Π² ΠΌΠ΅ΡΠΊΠ°1, Π΅ΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎ, ΠΈΠ»ΠΈ Π² ΠΌΠ΅ΡΠΊΠ°2, Π΅ΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΊΠ°1 ΠΈ ΠΌΠ΅ΡΠΊΠ°2 ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΡΠ΅Π½Ρ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΡΠΈ ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠΈ), Π½ΠΎ Π½Π΅ ΠΎΠ±Π° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΠΆΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ:
β’ ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 10.
β’ ΠΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 123,10.
β’ ΠΠΎΠ½ΡΠ΅ΠΊΡΡ, Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ incoming,
123,10.
β’ ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ passed.
ΠΡΠ΅ ΡΠΈΠΏΡ ΠΌΠ΅ΡΠΎΠΊ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
[globals]
; ΠΏΡΠΈΡΠ²ΠΎΠΈΠΌ TEST ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΡΠΎΠΌΠ΅ 101, ΡΡΠΎΠ±Ρ ; ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ GotoIf(), ΠΊΠΎΠ³Π΄Π° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ TEST=101
[incoming] ; Π·Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
; ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ 10, Π΅ΡΠ»ΠΈ ${TEST} ΡΠ°Π²Π½Π° 101, ; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ 20 exten => 123,1,GotoIf($[ ${TEST} = 101 ]?10:20) exten => 123,10,Playback(the-monkeys-twice) exten => 123,20,Playback(tt-somethingwrong)
; ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π²ΡΡΠ΅, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ; Π·Π°Π΄Π°Π΄ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ exten => 124,1,GotoIf($[ ${TEST} = 101 ]?123,10:123,20)
; ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π²ΡΡΠ΅, Π½ΠΎ ΡΡΠΈ ΠΌΠ΅ΡΠΊΠΈ ΠΈΠΌΠ΅ΡΡ ; ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ
exten => 125,1,GotoIf($[ ${TEST} = 101 ]?incoming,123,10:incoming,123,20)
; ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π²ΡΡΠ΅, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ; Π±ΡΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ exten => 126,1,GotoIf($[ ${TEST} = 101 ]?passed:failed) exten => 126,15(passed),Playback(the-monkeys-twice) exten => 126,25(failed),Playback(the-monkeys-twice)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Goto(),GotoIfTime(), GosubIf(), MacroIf()
GotoIfTime()
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π½Ρ
GotoIfTime(Π²ΡΠ΅ΠΌΡ,Π΄Π½ΠΈ_Π½Π΅Π΄Π΅Π»ΠΈ,Π΄Π½ΠΈ_ΠΌΠ΅ΡΡΡΠ°,ΠΌΠ΅ΡΡΡΡ?ΠΌΠ΅ΡΠΊΠ°)
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² Π·Π°Π΄Π°Π½Π½ΡΠΉ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ * (Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π²), ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: Π²ΡΠ΅ΠΌΡ
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² 24-ΡΠ°ΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
Π΄Π½ΠΈ_Π½Π΅Π΄Π΅Π»ΠΈ
ΠΠ½ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ (mon, tue, wed, thu, fri, sat, sun).
Π΄Π½ΠΈ_ΠΌΠ΅ΡΡΡΠ°
ΠΠ½ΠΈ ΠΌΠ΅ΡΡΡΠ° (1-31).
ΠΌΠ΅ΡΡΡΡ
ΠΠ΅ΡΡΡΡ (jan, feb, mar, apr ΠΈ Ρ. Π΄.).
; ΠΡΠ»ΠΈ ΠΌΡ ΠΎΡΠΊΡΡΡΡ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ open ; ΠΡ ΠΎΡΠΊΡΡΡΡ Ρ 9 ΡΡΡΠ° Π΄ΠΎ 6 Π²Π΅ΡΠ΅ΡΠ° ; Ρ ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡΠ½ΠΈΠΊΠ° ΠΏΠΎ ΠΏΡΡΠ½ΠΈΡΡ
exten => s,1,GotoIfTime(09:00-17:59,mon-fri,*,*?open,s,1)
; Π’Π°ΠΊΠΆΠ΅ ΠΌΡ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΠΎ Π²ΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ³Π°ΠΌ
exten => s,n,GotoIfTime(09:00-19:59,tue&thru,*,*?open,s,1)
; Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΠΎΡΠΊΡΡΡΡ Ρ 9 ΡΡΡΠ° Π΄ΠΎ ΠΏΠΎΠ»ΡΠ΄Π½Ρ ΠΏΠΎ ΡΡΠ±Π±ΠΎΡΠ°ΠΌ exten => s,n,GotoIfTime(09:00-11:59,sat,*,*?open,s,1)
; ΠΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ Π·Π°ΠΊΡΡΡΡ exten => s,n,Goto(closed,s,1)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
GotoIf(), IFTIME
Hangup()
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΡΠ°Π·ΡΡΠ² ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΊΠ°Π½Π°Π»Ρ
Hangup( ΠΊΠΎΠ΄-ΠΏΡΠΈΡΠΈΠ½Π°)
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ ΡΠ°Π·ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°Π½Π°Π». ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ΄-ΠΏΡΠΈΡΠΈΠ½Π° ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠΈΠ½Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠΌ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ΄-ΠΏΡΠΈΡΠΈΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 16 (Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Π°). ΠΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠ΄-ΠΏΡΠΈΡΠΈΠ½Π°: 16
ΠΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Π°.
17
ΠΠ°Π½ΡΡΠΎ.
19
ΠΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ°.
21
ΠΡΠ·ΠΎΠ² ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½.
34
ΠΠΈΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π°.
exten => 123,1,Answer()
exten => 123,2,Playback(im-sorry)
exten => 123,3,Hangup()
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Answer(), Busy(),Congestion()
HasNewVokemail()
ΠΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΡΠΈΠΊΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ
HasNewVoicemail(ΡΡΡΡΠΈΠΊ[@ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ][:ΠΏΠ°ΠΏΠΊΠ°][, ΠΈΠΌΡΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ[, ΠΎΠΏΡΠΈΠΈ]])
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ·Π½Π°Π½ΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ VMC0NNK ).
Π ^
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ HasVoicemail(). ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π΅Ρ Π΄Π»Ρ VMSTATUS Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1 ΠΈΠ»ΠΈ 0, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ (Π½Π΅ΠΏΡΠΎΡΠ»Ρ- ΡΠ°Π½Π½ΠΎΠ³ΠΎ) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΈΠΊΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ, Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΡΡΡΠΈΠΊ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ, Π° ΠΏΠ°ΠΏΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠ°ΠΏΠΊΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ. ΠΡΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠ° Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ Π½Π΅ Π·Π°Π΄Π°Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, INBOX. ΠΡΠ»ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠΌΡΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, HasNewVoicemail() ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π² Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅.
ΠΡΠ»ΠΈ Π΄Π»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΠΏΡΠΈΠΈ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ j, Asterisk Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π»ΠΈΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ·ΠΎΠ² Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ n + 101.
; ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ΠΏΡΠΎΡΠ»ΡΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ; Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ Π² INBOX ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ° 123 ; Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
exten =>=> 123,1,Answer() exten => 123,n,HasNewVoicemail( [email protected]) exten => 123,n,GotoIf($[${HASVMSTATUS} > 0]?newvm) exten => 123,n,Playback(vm-youhave) exten => 123,n,Playback(vm-no) exten => 123,n,Playback(vm-messages) exten => 123,n,Goto(done) exten => 123,n(newvm),Playback(vm-youhave) exten => 123,n,SayNumber(${HASVMSTATUS}) exten => 123,n,Playback(vm-INBOX) exten => 123,n,Playback(vm-messages) exten => 123,n(done),NoOp()Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
HasVoicemail(), MailboxExists(), VMCOUNT
HasVoicemail()
ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΈΠΌΠ΅ΡΡΡΡ Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΡΠΈΠΊΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ
HasVoicemail(vmΡΡΠΈΠΊ[@ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ][:ΠΏΠ°ΠΏΠΊΠ°][|ΠΈΠΌΡΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ[, ΠΎΠΏΡΠΈΠΈ]])
ΠΠ°Π΄Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π»Π° HASVMSTATUS, ΡΡΠΎΠ±Ρ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠΈΠΊΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ ΡΡΡΡΠΈΠΊ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ, Π° ΠΏΠ°ΠΏΠΊΠ° - ΠΏΠ°ΠΏΠΊΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ. ΠΡΠ»ΠΈ ΠΏΠ°ΠΏΠΊΠ° Π½Π΅ Π·Π°Π΄Π°Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, INBOX. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠΌΡΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π² ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅. ΠΡΠ»ΠΈ Π΄Π»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΠΏΡΠΈΠΈ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ j, Asterisk Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π»ΠΈΡΠΈΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ·ΠΎΠ² Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ n + 101.
; ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π΅ΡΡΡ Π»ΠΈ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ; Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ Π² INBOX ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ° 123 ; Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ exten => 123,1,Answer()
exten => 123,2,HasVoicemail( [email protected],COUNT) exten => 123,3,GotoIf(${VMSTATUS}?1000) exten => 123,4,Playback(vm-youhave) exten => 123,5,Playback(vm-no) exten => 123,6,Playback(vm-messages) exten => 123,1000,Playback(vm-youhave) exten => 123,10O1,SayNumber($COUNT) exten => 123,1002,Playback(vm-messages)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
HasNewVoicemail(), MailboxExists()
IAX2Provision()
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ IAXy-ΡΡΡΡΠΎΠΉΡΡΠ²Π°
IAX2Provlslon([ΡΠ°Π±Π»ΠΎΠ½])
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° IAXy (ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΡΠ±ΡΠ΅ΠΊΡ - ΡΡΠΎ IAXy) Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΡΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½ Π½Π΅ Π·Π°Π΄Π°Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ IAXy ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ iaxprov.conf.
; Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ IAXy-ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ; ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π°Π±ΠΈΡΠ°ΡΡ ΡΡΠΎΡ ; Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ
exten => 123,1,IAX2ProviSion(default)
ICES()
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ΄ΠΈΠΎΠ΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Icecast
ICES([ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ])
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ΄ΠΈΠΎΠ΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Icecast (ΠΈΠ»ΠΈ
ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ices.
Π‘ΠΌ. ΡΠ°ΠΉΠ»-ΠΎΠ±ΡΠ°Π·Π΅Ρ config Π² contrib/asterisk-ices.xml.
exten => 123,1,Answer()
exten => 123,n,ICES(/tmp/my-ices-config.xml)
ImportVar()
ΠΠ°Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π»Π°, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°
ImportVar(Π½ΠΎΠ²Π°ΡΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ=ΠΊΠ°Π½Π°Π», .Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
ΠΠ°Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½ΠΎΠ²Π°ΡΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° (Π½Π΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π°). ΠΡΠ»ΠΈ Π½ΠΎΠ²Π°ΡΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° _, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΎΠ½Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² _ _, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ; ΡΠΈΡΠ°Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Caller ID ΠΈΠ· ΠΊΠ°Π½Π°Π»Π° Zap/1 exten => 123,1,Answer()
exten => 123,n,ImportVar(cidinfo=Zap/1,CALLERID(all))
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Set()
Log()
ΠΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π°