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

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

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

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ спарСнных Π»ΠΈΠ½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ 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)