Queue(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AgentLogin(), queues.conf
ADSIProg()
ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ADSI-ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π² ΡΠ΅Π»Π΅ΡΠΎΠ½, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ADSI
ADSIProg(ΡΡΠ΅Π½Π°ΡΠΈΠΉ)
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Analog Display Services Interface (ADSI), Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π΅ Π·Π°Π΄Π°Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, asterisk.adsi. ΠΠ»Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Asterisk (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ /etc/asterisk/). Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ CPE ID ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ADSI-ΡΠ΅Π»Π΅ΡΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ GetCPEID():
; ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌ ADSI-ΡΠ΅Π»Π΅ΡΠΎΠ½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ telcordia-l.adsi exten => 123,1,ADSIProg(telcordia-1.adsi)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
GetCPEID(), adsi.conf
AgentCallbackLogin()
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π°Π³Π΅Π½ΡΠ° Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
AgentCallbackLogln([ΠΠΎΠΌΠ΅ΡΠΠ³Π΅Π½Ρa][,[ΠΎΠΏΡΠΈΠΈ][,[Π΄ΠΎΠ±aΠ²ΠΎΡΠ½ΡΠΉΠ½ΠΎΠΌΠ΅Ρ]@ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ]])
Π Π°Π·ΡΠ΅ΡΠ°Π΅Ρ Π°Π³Π΅Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΠΎΠΌΠ΅Ρ- ΠΠ³Π΅Π½ΡΠ°, ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°Π³Π΅Π½ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΊ Π½Π΅ΠΌΡ.
ΠΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°Π³Π΅Π½ΡΠ° Asterisk Π·Π²ΠΎΠ½ΠΈΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΠΉ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ (Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ).
ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π±ΡΠΊΠ²Ρ s, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΊΡΡΡΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ:
ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΊΡΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΊ Π°Π³Π΅Π½Ρ Π½ΠΎΠΌΠ΅Ρ 42 ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°Π³Π΅Π½ΡΠ° Asterisk Π±ΡΠ΄Π΅Ρ Π·Π²ΠΎΠ½ΠΈΡΡ Π½Π° Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ 123 Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ internal exten => 123,1,AgentCallbackLogin(42,s, [email protected])
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ, Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΌΠ΅ΡΠ΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π° Π½Π° AEL, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ doc/queues-with-callbackmembers.txt Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Asterisk.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Queue(), AgentLogin(), AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AGENT, agents.conf, queues.conf
AgentLogin()
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π°Π³Π΅Π½ΡΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅
AgentLogin([ΠΠΎΠΌΠ΅ΡΠΠ³Π΅Π½ΡΠ°][, ΠΎΠΏΡΠΈΠΈ])
Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½ΡΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΊΠ°ΠΊ Π°Π³Π΅Π½ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΠΎΠΌΠ΅ΡΠΠ³Π΅Π½ΡΠ°). ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π°Π³Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΡΠ°ΡΡ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΠ³Π½Π°Π» Π² Π»ΠΈΠ½ΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΠ³Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅ΡΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ², Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠΎ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΎΠΉ (*). ΠΡΠ»ΠΈ ΠΠΎΠΌΠ΅ΡΠΠ³Π΅Π½ΡΠ° Π½Π΅ Π·Π°Π΄Π°Π½, Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ Π°Π±ΠΎΠ½Π΅Π½ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²Π²Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ Π°Π³Π΅Π½ΡΠ°. ΠΠ³Π΅Π½ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ agents.conf.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π±ΡΠΊΠ²Ρ s, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΊΡΡΡΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ:
; ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌ Π² ΡΠΊΡΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½ΡΠ° ΠΊΠ°ΠΊ ; Π°Π³Π΅Π½ΡΠ° Π½ΠΎΠΌΠ΅Ρ 42, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² agents.conf exten => 123,1,AgentLogin(42,s)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
Queue(), AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AGENT, agents.conf, queues.conf
AgentMonitorOutgoing()
Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π°Π³Π΅Π½ΡΠ°
AgentMonitorOutgoing([ΠΎΠΏΡΠΈΠΈ])
Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π°Π³Π΅Π½ΡΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΡΡΠ½ΠΈΡΡ ID Π°Π³Π΅Π½ΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ², Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Caller ID (ID Π·Π²ΠΎΠ½ΡΡΠ΅Π³ΠΎ) ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ AgentCallbackLogin(). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ (ΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ!) Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ AgentCallbackLogin(). ΠΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Monitor(), Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Ρ chan_agent. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠ°ΠΉΠ»Π΅ agents.conf. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π·Π²ΠΎΠ½ΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ /var/spool/ asterisk/monitor/. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° savecallsin Π² ΡΠ°ΠΉΠ»Π΅ agents.conf.
ΠΡΠ»ΠΈ Caller ID ΠΈ/ΠΈΠ»ΠΈ ID Π°Π³Π΅Π½ΡΠ° Π½Π° Π½Π°ΠΉΠ΄Π΅Π½, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ n + 1, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ (Π³Π΄Π΅ n - ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ). ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡΠΈΠ΅ΠΉ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ 0. ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
d
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° n + 101 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ -1.
c
ΠΠ΅Π½ΡΠ΅Ρ Call Detail Record (ΠΠ°ΠΏΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΡΠ·ΠΎΠ²Π°) ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π²ΡΠ·ΠΎΠ²Π° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΠ³Π΅Π½Ρ/id_Π°Π³Π΅Π½ΡΠ°.
ΠΠ΅ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Caller ID ΠΈΠ»ΠΈ ID Π°Π³Π΅Π½ΡΠ° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½Π°, Π΅ΡΠ»ΠΈ Π²Ρ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄Π»Ρ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π°Π³Π΅Π½ΡΠΎΠ² ΠΈ Π½Π΅-Π°Π³Π΅Π½ΡΠΎΠ².
; Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π²ΠΎΠ½ΠΊΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°Π³Π΅Π½ΡΠ° ΠΈ ΠΌΠ΅Π½ΡΠ΅ΠΌ ; CDR, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π·ΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π·Π²ΠΎΠ½ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π³Π΅Π½ΡΠΎΠΌ exten => 123,1,AgentMonitorOutgoing(c)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
AgentCallbackLogin(), agents.conf
AGI()
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ΅ Ρ AGI ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
[E]AGI(ΠΏΡΠΎΠ³ΡaΠΌΠΌa[, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ])
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ Asterisk Gateway Interface ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. AGI-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ) ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠΌ ΡΠ²ΡΠ·ΠΈ ΠΏΡΡΠ΅ΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠ΅Π½ΠΈΡ DTMF-ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ Ρ. Π΄. Asterisk ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Ρ AGI-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²Π²ΠΎΠ΄Π° Π²ΡΠ²ΠΎΠ΄Π° STDIN ΠΈ STDOUT. ΠΠ°Π΄Π°Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² AGI-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π΄Π°Π½ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅ΡΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ AGI Asterisk, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ /var/lib/asterisk/agi-bin/. ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ AGI, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° (ΠΊΠ°ΠΊ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° h), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DeadAGI(). ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ AGI ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FastAGI().
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΌΡ Π°ΡΠ΄ΠΈΠΎΠΏΠΎΡΠΎΠΊΡ ΠΈΠ· ΡΠ²ΠΎΠ΅ΠΉ AGI-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΠΌΠ΅ΡΡΠΎ AGI() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ EAGI(). Π’ΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π°ΡΠ΄ΠΈΠΎΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΡΠ°ΡΡΡΡ Π² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π° 3. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°Π·ΡΡΠ² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΡΡ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ AGI, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π°Π½ ΡΠΈΠ³Π½Π°Π» HUP, ΠΈΠ·Π²Π΅ΡΠ°ΡΡΠΈΠΉ ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡ ΡΡΠΎΡ ΡΠΈΠ³Π½Π°Π», ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°. ΠΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π·Π°Π΄Π°Π² Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π»Π° AGISIGHUP Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0: ; Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ AGI-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ exten => 123,1,AGI(agi-test) exten => 123,2,EAGI(eagi-test)
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
DeadAGI(), FastAGI(), Π³Π»Π°Π²Ρ 9
AlarmReceiver()
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Ρ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΎΡ ΡΠ°Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠΆΠ°ΡΠ½ΠΎΠΉ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
AlarmReceiver()
ΠΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΡΠ΅Π²ΠΎΠ³ΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Asterisk ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΏΠΎΠΆΠ°ΡΠ½ΠΎΠΉ ΠΈ/ΠΈΠ»ΠΈ ΠΎΡ ΡΠ°Π½Π½ΠΎΠΉ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠΌΠ°Ρ Ademco Contact ID.
ΠΡΠ΄ΡΡΠΈ Π²ΡΠ·Π²Π°Π½Π½ΡΠΌ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ AlarmReceiver() ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ Ρ ΠΏΠ°Π½Π΅Π»ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΈΡ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠ°Π½Π΅Π»Ρ Π½Π΅ ΡΠ°Π·ΠΎΡΠ²Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°Π½Π΅Π»Ρ ΡΠ°Π·ΠΎΡΠ²Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΡΠΎΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π·Π°Π΄Π°Π½Π½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ eventcmd Π² ΡΠ°ΠΉΠ»Π΅ alarmreceiver.conf, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π€Π°ΠΉΠ» alarmreceiver.conf ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ DTMF ΠΈ Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ ΡΠΎΠ½ΠΎΠ² ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ°. ; Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Asterisk, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΠΎΡΠ²Π΅ΡΠ°Π»Π° Π½Π° Π²ΡΠ·ΠΎΠ²Ρ ; ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΠΎΠΆΠ°ΡΠ½ΠΎΠΉ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ exten => s,1,AlarmReceiver()
ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡΠ΅ΡΡ Π½Π° Π½Π΅Π³ΠΎ Π±Π΅Π· Π²ΡΠ΅ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²Ρ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΠΆΠΈΠ·Π½Ρ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
alarmreceiver.conf
AMD()
ΠΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΎΡΠ²Π΅ΡΡΠΈΠΊΠ°
AMD([initialSilence[,greeting[,afterGreetingSilence[,totalAnalysisTime[, minimumUordien gth[,betweenUordsSilence[, maximumNumberOfUords[, silenceThreshold]]]]]]]])
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π°Π²ΡΠΎΠΎΡΠ²Π΅ΡΡΠΈΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ, Π±Π΅ΡΡΡΠΈΠΌΠΈ Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ»ΠΈ Π² ΡΠ°ΠΉΠ»Π°Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΈΠ»ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Asterisk Manager. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π²ΡΠ·ΠΎΠ²Π° Π±ΡΠ» Π²ΡΡΠ²Π»Π΅Π½, Π·Π°Π΄Π°Π²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ AMDSTATUS ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: MACHINE (ΠΌΠ°ΡΠΈΠ½Π°)
Π‘ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠΎΡΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΎΡΠ²Π΅ΡΡΠΈΠΊΠΎΠΌ. HUMAN (ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ)
Π‘ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠΎΡΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Π° Π½Π΅ Π°Π²ΡΠΎΠΎΡΠ²Π΅ΡΡΠΈΠΊΠΎΠΌ.
NOTSURE (Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½)
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠΎΡΠΎΠ½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΎΡΠ²Π΅ΡΡΠΈΠΊΠΎΠΌ.
HANGUP (ΡΠ°Π·ΡΡΠ²)
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ°Π·ΡΡΠ² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ AMD() ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π»Π° AMDCAUSE ΠΏΡΠΈΡΠΈΠ½Ρ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π΅Π»Π°Π΅ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ AMDSTATUS. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ AMDCAUSE Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: TOOLONG-ΠΎΠ±ΡΠ΅Π΅_Π²ΡΠ΅ΠΌΡ
INITIALSILENCE-ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ_ΠΏΠ°ΡΠ·Ρ-Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ_ΠΏΠ°ΡΠ·Π° HUMAN-ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ_ΠΏΠ°ΡΠ·Ρ-ΠΏΠ°ΡΠ·Π°_ΠΏΠΎΡΠ»Π΅_ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ MAXWORDS-ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ_ΡΠ»ΠΎΠ²-ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅_ΡΠΈΡΠ»ΠΎ_ΡΠ»ΠΎΠ² LONGGREETING-ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ_ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ°-ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΠΈ Π°Π²ΡΠΎΠΎΡΠ²Π΅ΡΡΠΈΠΊΠΎΠΌ. ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Asterisk ΠΏΡΠΎΡΠΈΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² amd.conf. Π ΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ: