Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Asteriskβ„’: Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΠΈ Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 99

Автор Π”ΠΆΠΈΠΌ МСггСлСн

МоТно (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°.

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()

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ сообщСниС ΠΈΠ· Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π°