рдПрдХ рдмрдбрд╝рд╛ рднрд╛рд░ рдХреЗ рд╕рд╛рде рдСрдкрд░реЗрдЯрд░реЛрдВ (3-5 рд▓реЛрдЧреЛрдВ) рдХрд╛ рдПрдХ рд╕рдореВрд╣ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рд╣реИ (рдФрд╕рдд рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп> 2 рдорд┐рдирдЯ)
рдпрд╣ рдХрд╛рд░реНрдп рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рднреВрдЧреЛрд▓ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдореБрдХреНрдд рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рди рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗ, рдФрд░ 0 рд╕реБрдирдХрд░ "рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж" рджрдмрд╛рдПрдВред рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рд╡рд╛рдкрд╕ рдмреБрд▓рд╛ рд▓реЗрдВрдЧреЗ тАЭ, рд╕реНрдорд╛рд░реНрдЯ рдХреЙрд▓рдмреИрдХ рджреНрд╡рд╛рд░рд╛ рдСрдкрд░реЗрдЯрд░, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпрд╛ 
рдЖрдо рд▓реЛрдЧреЛрдВ рд╕реЗ рдХреЙрд▓ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВ рдФрд░ рд╢рд╛рдВрддрд┐ рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
рдЯреЗрдмрд▓ рдмрдирд╛рдПрдВ
рдмрдирд╛рдПрдБ рддрд╛рд▓рд┐рдХрд╛ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрдиред
рдЖрдИрдбреА рдЗрдВрдЯ (11) рдирд╣реАрдВ рдкреВрд░реНрдг AUTO_INCREMENT,
dt рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк DEFAULT CURRENT_TIMESTAMP,
cid varchar (32) DEFAULT NULL,
dst varchar (32) DEFAULT NULL,
рд╕реНрдЯреЗрдЯрд╕ рд╕реНрдореЙрд▓рд┐рдВрдЯрди (6) рдлреБрд▓ рдиреЙрдЯ рдбрд┐рдлреЙрд▓реНрдЯ 0,
tot_calls int (11) рд╢реВрдиреНрдп рдкреВрд░реНрдг 0 рдирд╣реАрдВ,
last_call рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк DEFAULT '0000-00-00 00:00:00',
рд╢рд┐рдХрд╛рдпрдд_рдб рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк DEFAULT '0000-00-00 00:00:00',
рдпреВрдирд┐рдХрд┐рдб рд╡рд░реНрдЪрд░ (32) DEFAULT NULL,
рдХрддрд╛рд░ рд╡рд╛рд░реНрдЪрд░ (255) DEFAULT NULL,
рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА (рдЖрдИрдбреА)
)
рдЗрдВрдЬрди = INNODB
рдмрдирд╛рдПрдБ рддрд╛рд▓рд┐рдХрд╛ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрдиред
рдЖрдИрдбреА рдЗрдВрдЯ (11) рдирд╣реАрдВ рдкреВрд░реНрдг AUTO_INCREMENT,
callback_id int (11) рдкреВрд░реНрдг рдирд╣реАрдВ,
dt рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк DEFAULT CURRENT_TIMESTAMP on UPDATE CURRENT_TIMESTAMP,
рд╕реНрдЯреЗрдЯрд╕ рд╡рд░реНрдЪрд░ (32) DEFAULT NULL,
рдкрд░рдо рд╡рд░реНрдЪрд░ (2048) DEFAULT NULL,
рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА (рдЖрдИрдбреА),
CONSTRAINT callback_log_fk1 FOREIGN KEY (callback_id)
рд░реЗрдлрд░реА рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ (рдЖрдИрдбреА) рдЕрджреНрдпрддрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢рд░реНрдд рдкрд░ рдЬрд╛рд░реА рдХрд░реЗрдВ
)
рдЗрдВрдЬрди = INNODB
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╕рдВрдкрд╛рджрди .conf
 exten => 88142590067, s, 1
     рд╡рд╣реА => n, рдЧреЛрдЯреЛрдЖрдИрдПрдл ($ ["$ {CALLERID (рд╕рдВрдЦреНрдпрд╛): 0: 4}" = "8814"]; рдЕрддрд┐рд░рд┐рдХреНрдд);  рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛ рд╕реНрдерд╛рдиреАрдп рд╣реИ, рддреЛ рдХреЙрд▓рдмреИрдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ
 .... рдЖрдк рдпрд╣рд╛рдВ рдФрд░ рдЪреЗрдХ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ ...
     рд╡рд╣реА => n, рдЧреЛрдЯреЛ (рдХреЙрд▓)
     рд╡рд╣реА => n (рдЕрддрд┐рд░рд┐рдХреНрдд), NoOp ($ {CALLERID (рд╕рдВрдЦреНрдпрд╛)} рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ))
     рд╡рд╣реА => n, рд╕реЗрдЯ (ALLOW_CALLBACK = 1)
     рд╕рдорд╛рди => n, рд╕реЗрдЯ (CALLBACK_QUEUE = рдСрдкрд░реЗрдЯрд░)
     рд╕рдорд╛рди => n, рдкреГрд╖реНрдарднреВрдорд┐ (vse / press0-to-callback)
     рд╕рдорд╛рди => n (рдХреЙрд▓), NoOp (рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрдЫреЗрдВред GROUP_COUNT = $ {GROUP_COUNT (рдСрдкрд░реЗрдЯрд░реНрд╕)})
     рд╡рд╣реА => n, рдХрддрд╛рд░ (рдСрдкрд░реЗрдЯрд░реЛрдВ, tThH)
     рд╡рд╣реА => рдПрди, рд╣реИрдВрдЧрдЕрдк
 рд╢рд╛рдорд┐рд▓ рд╣реИрдВ => main_menu_press
 [Main_menu_press]
 exten => 0.1, NoOp ('-------------------- $ {CALLERID (рд╕рдВрдЦреНрдпрд╛)} PRESS BUTTON $ {EXTEN}ред ALLOW_CALLBACK = $ {ALLOW_CALLBACK}ред ')
     рд╡рд╣реА => n, GotoIf ($ [$ {ALLOW_CALLBACK} = 1]; рдХреЙрд▓рдмреИрдХ, s, 1: i, 1)
 [рдХреЙрд▓рдмреИрдХ]
 ext => s, 1, NoOp (рдХреЙрд▓рдмреИрдХ)
     рд╡рд╣реА => n, рдкреНрд▓реЗрдмреИрдХ (рдзрдиреНрдпрд╡рд╛рдж-рдЖрдкрдХреЛ-рдХреЙрд▓рд┐рдВрдЧ рдФрд░ vse / my-vam-perezvonim)
     рд╡рд╣реА => рдПрди, рд╣реИрдВрдЧрдЕрдк
 exten => h, 1, agi (callback.php, gen, 0, $ {CALLBACK_QUE))
 [рдХреНрдпрд╛-рдХреЙрд▓рдмреИрдХ]
 exten => _Xред, 1, NoOp (рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ ($ {CALLBACK_QUEUE}) рдФрд░ $ {CALLBACK_NUM} рдкрд░ рдХреЙрд▓рдмреИрдХ рдХрд░реЗрдВ)
     рд╡рд╣реА => n, рд╕реЗрдЯ (__ DST = "?")
     рд╕рдорд╛рди => n, рд╕реЗрдЯ (CALLERID (рд╕рдВрдЦреНрдпрд╛) = $ {CALLBACK_NUM})
     рд╡рд╣реА => n (рдХреЙрд▓), рдХрддрд╛рд░ ($ {CALLBACK_QUEUE}, tT)
     рд╡рд╣реА => n, NoOp (рдХреЙрд▓рдмреИрдХ рдкреНрд░рд╢реНрдиреЛрддреНрддрд░ = $ {QUEUESTATUS})
 [рдореИрдХреНрд░реЛ-рдкрдВрдХреНрддрд┐-рдЬрд╡];  рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдкрд░ рд╣рдо рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред 
 exten => s, 1, NoOp (рдХрддрд╛рд░ рд╕рджрд╕реНрдп рдиреЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛ uniq = $ {UNIQUEID} cid = $ {CALLERID (num)} рдЪрд╛рди = $ {CHANNEL} callback_id = $ [CALLBACK_ID} callback_num = $ {CALLBACK_NU
     рд╡рд╣реА => n, рдЧреЛрдЯреЛрдЖрдИрдПрдл ($ ["$ {CALLBACK_ID} x" = "x"])
     рд╕рдорд╛рди => n, рд╕реЗрдЯ (DST = $ {CHANNEL})
     рд╡рд╣реА => n, рд╕реЗрдЯ (CALLERID (рд╕рдВрдЦреНрдпрд╛) = 067)
     рд╡рд╣реА => рдПрди, рдкреНрд▓реЗрдмреИрдХ (рдирд┐рдЬреА-рдХреЛрд╢рд┐рд╢);  рдкреНрд▓реЗ рдСрдкрд░реЗрдЯрд░ "рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ"
     рд╡рд╣реА => n, рдПрдЧреА (рдХреЙрд▓рдмреИрдХред рдПрдлрдкреА, рдХрддрд╛рд░-рдЙрддреНрддрд░ рджреЗрдиреЗ рд╡рд╛рд▓рд╛, $ {CALLBACK_ID}, $ {CHANNEL}, $ {UNIQUEID})
     рд╡рд╣реА => n, рдбрд╛рдпрд▓ (рд╕реНрдерд╛рдиреАрдп / $ {CALLBACK_NUM} @from_office_new)
     рд╡рд╣реА => n, NoOp ([рдореИрдХреНрд░реЛ-рдХрддрд╛рд░-рдЙрддреНрддрд░] рдбрд╛рдпрд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ)
     рд╡рд╣реА => n (рдЫреЛрдбрд╝реЗрдВ), NoOp ()
 exten => h, 1, NoOp ([рдореИрдХреНрд░реЛ-рдХрддрд╛рд░-рдЙрддреНрддрд░ рджреЗрдиреЗ рд╡рд╛рд▓рд╛] рдбрд╛рдпрд▓ рд╣реИрдВрдЧрдЕрдк)
     рд╡рд╣реА => n, рдЧреЛрдЯреЛрдЖрдИрдПрдл ($ ["$ {CALLBACK_ID} x" = "x"])
     рд╡рд╣реА => n, NoOp (рдбрд╛рдпрд▓рд╛рд╕реНрдЯрд╕ = $ {DIALSTATUS} hangupcause = $ {HANGUPCAUSE} queuestatus = $ {QUEUESTATUS})
     рд╡рд╣реА => n, NoOp (my_dialstatus = $ {MY_DIALSTATUS} my_hangupcause = $ {MY_HANGUPCAUSE})
     рд╡рд╣реА => n, agi (callback.php, hangup-queue-answering, $ {CALLBACK_ID}, $ {CHANNEL}, $ {UNIQUEID})
     рд╡рд╣реА => n (рдЕрдВрдд), NoOp
 [рдХреЙрд▓рдмреИрдХ: рдкреВрд░реНрдг]
 exten => s, 1, NoOp (рдХреЙрд▓рдмреИрдХ рдкреВрд░реНрдгред CALLBACK_ID = $ {CALLBACK_ID}, uniq = $ {UNIQUEID}, dst = $ {DST} рдЪрд╛рди = = {CHANNEL}}
     рд╡рд╣реА => n, NoOp (рдбрд╛рдпрд▓рд╛рд╕реНрдЯрд╕ = $ {DIALSTATUS} hangupcause = $ {HANGUPCAUSE} queuestatus = $ {QUEUESTATUS})
     рд╡рд╣реА => n, NoOp (my_dialstatus = $ {MY_DIALSTATUS} my_hangupcause = $ {MY_HANGUPCAUSE})
Queues.conf рдлрд╝рд╛рдЗрд▓
 [рдСрдкрд░реЗрдЯрд░реНрд╕]
     рд░рд┐рдВрдЧрд┐рдиреНрдпреВрдЬ = рдирд╣реАрдВ
     strategy = rrmemory
     рд╕рдВрдЧреАрдд = рдбрд┐рдлрд╝реЙрд▓реНрдЯ
     рд╕рджрд╕реНрдп => рдПрд╕рдЖрдИрдкреА / 321
     рд╕рджрд╕реНрдп => рдПрд╕рдЖрдИрдкреА / 322
     рд╕рджрд╕реНрдп => рдПрд╕рдЖрдИрдкреА / 323
     рд╕рджрд╕реНрдп => рдПрд╕рдЖрдИрдкреА / 324
     рд╕рджрд╕реНрдп => рдПрд╕рдЖрдИрдкреА / 325
     рд╕рджрд╕реНрдп => рдПрдЬреЗрдВрдЯ / 1
     рд╕рджрд╕реНрдп => рдПрдЬреЗрдВрдЯ / 2
     рд╕рджрд╕реНрдп => рдПрдЬреЗрдВрдЯ / 3
     рд╕рджрд╕реНрдп => рдПрдЬреЗрдВрдЯ / 4
     рд╕рджрд╕реНрдп => рдПрдЬреЗрдВрдЯ / 5
     рд╕рдВрджрд░реНрдн = main_menu_press
     рд╕рдордпрдмрд╛рд╣реНрдп = реж
     рдШреЛрд╖рдгрд╛-рд╕реНрдерд┐рддрд┐ = рд╣рд╛рдБ
     рдШреЛрд╖рдгрд╛-рдЖрд╡реГрддреНрддрд┐ = ремреж
     рдЖрд╡рдзрд┐рдХ-рдШреЛрд╖рдгрд╛-рдЖрд╡реГрддреНрддрд┐ = 30
     queue-youarenext = рдХрддрд╛рд░- youarenext
     рд╕рджрд╕реНрдпрдордХрд╛рд░реЛ = рдХрддрд╛рд░-рдЙрддреНрддрд░
рдЦреИрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (PHP рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛)
config.php
<?php ob_implicit_flush(true); set_time_limit(6); date_default_timezone_set('Europe/Moscow'); mysql_connect("localhost","asterisk","***") or die('Mysql connect error'); mysql_select_db("asterisk");  
callback.php
 
рдФрд░ рд╣рдо рд╣рд░ 5 рдорд┐рдирдЯ рдореЗрдВ рд╕реБрдмрд╣ 8 рдмрдЬреЗ рд╕реЗ 8 рдмрдЬреЗ рдХреЗ рдмреАрдЪ рдХреЙрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреБрдирд░реНрдЬрдирди рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдХреЙрд▓рдмреИрдХ- regen.php рдлрд╝рд╛рдЗрд▓ рдбрд╛рд▓рддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде, рджреЛрд╣рд░рд╛рдпрд╛ рдХреЙрд▓ рдХрд╛ рд╕рдордп 5 рдорд┐рдирдЯ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдСрдкрд░реЗрдЯрд░ рдХреЛ рдореЙрдХ рдХрд░рдиреЗ рдХреЗ 10 рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рдж, рдмрдВрдж рдХрд░реЗрдВ