рдмреАрдПрд▓рдПрдл рдмрдЯрди рдХреЗ рд╕рд╛рде рдлреЛрди рдкрд░ рдХрддрд╛рд░ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд

рдЫрд╡рд┐ рдЖрдЬ рдХрд╛рд░реНрдп рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реНрдкреАрдб рдбрд╛рдпрд▓ рдмрдЯрди рджрдмрд╛рдХрд░ рдХрддрд╛рд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ / рдирд┐рдХрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рдХрддрд╛рд░ рдореЗрдВ рд╣реИ, рддреЛ рдмрдЯрди рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд░реЛрд╢рдиреА рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рдмреНрд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдИрдкреА рдЦреБрдж рдмреАрдПрд▓рдПрдл рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдмрдЯрди рдХреЛ рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдирдВрдмрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ * 12111 * 222, рдЬрд╣рд╛рдВ 111 рдХрддрд╛рд░ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдФрд░ 222 рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдпрд╣ рдЧреНрд░реИрдВрдбрд╕реНрдЯреНрд░реАрдо рдЬреАрдПрдХреНрд╕рдкреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╕рдмрд╕реЗ рд╡рд┐рд╡рд┐рдз рдерд╛ред рд╕рд░реНрд╡рд░ Elastix рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рд╣реИ, рдареАрдХ рд╣реИ, рдЖрдк рд╕рд┐рд░реНрдл Asterisk 1.6+ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдХреА рдХрдореА рд╣реИред рдХрддрд╛рд░ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ, рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред Asterisk рдХреЛ рд░рд╛рдЬреНрдп рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ HINT рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдмрдирд╛рдПрдВрдЧреЗред
рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди.conf рдореЗрдВ рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢_рдУрд╡рд░рд╛рдЗрдб_рдлреНрд░реАрдкреАрдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВрдбрд▓рд░ рдореИрдХреНрд░реЛ рдХреЛ рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
[app-queue-toggle] include => app-queue-toggle-custom exten => s,1(start),Answer exten => s,n,Wait(1) exten => s,n,Macro(user-callerid,) exten => s,n,Set(QUEUESTAT=LOGGEDOUT) exten => s,n,AGI(queue_devstate.agi,getqueues,${AMPUSER}) exten => s,n,AGI(qu.php, ${AMPUSER}, ${QUEUENO}) exten => s,n,NoOp(number my ${CALLERIDMY}) exten => s,n,GotoIf($["${QUEUESTAT}" = "LOGGEDOUT"]?activate) exten => s,n,GotoIf($["${QUEUESTAT}" = "LOGGEDIN"]?deactivate) exten => s,n,GotoIf($["${QUEUESTAT}" = "STATIC"]?static:end) exten => s,n(deactivate),Noop(Agent Logged out) exten => s,n,Macro(toggle-del-agent,) exten => s,n,Set(DEVICE_STATE(Custom:QueueStat${CALLBACKNUM})=RINGING) exten => s,n(logout),Playback(agent-loggedoff) exten => s,n,Macro(hangupcall,) exten => s,n(activate),Noop(Agent Logged In) exten => s,n,Macro(toggle-add-agent,) exten => s,n,Set(DEVICE_STATE(Custom:QueueStat${CALLBACKNUM})=NOT_INUSE) exten => s,n,GotoIf($["${QAGENT_UNAUTHORIZED}"="1"]?logout) exten => s,n,Playback(agent-loginok) exten => s,n,SayDigits(${CALLBACKNUM}) exten => s,n,Macro(hangupcall,) exten => s,n(static),Noop(User is a Static Agent) exten => s,n,Playback(agent-loginok) exten => s,n,Macro(hangupcall,) 

рдФрд░ рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рдирдВрдмрд░ рдкрд░ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╣рдо HINTs рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
 [ext-queues] include => ext-queues-custom exten => _*12111*XXX,1,Set(QUEUENO=111) exten => _*12111*XXX,n,Goto(app-queue-toggle,s,start) #include /etc/asterisk/extensions_override_hints.conf 

рд╕рдВрдХреЗрдд рдПрдХ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ /etc/asterisk/extensions_override_hints.conf рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА:
 exten => *12111*222,hint,Custom:QS111222 

/ Var / lib / asterisk / agi-bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдЖрдкрдХреЛ qu.php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдХреНрд░реЛ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдХреЗрдд рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
 #!/usr/bin/php <?php set_time_limit(0); require('phpagi.php'); $agi = new AGI(); $number = $agi->get_variable('AMPUSER'); $queue = $agi->get_variable('QUEUENO'); $hints_file = '/etc/asterisk/extensions_override_hints.conf'; $str = 'exten => *12'.$queue['data'].'*'.$number['data'].',hint,Custom:QS'.$queue['data'].$number['data']; $strsearch = 'QS'.$queue['data'].$number['data']; $fil = file_get_contents($hints_file); if ( !preg_match('~'.$strsearch.'~ism',$fil) ) { $fp = fopen($hints_file, "a+"); fwrite($fp, $str."\r\n"); fclose($fp); $agi->verbose('Exec reload'); system('/var/lib/asterisk/agi-bin/reload.sh'); } ?> 

рдФрд░ рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг рддрд╛рд░рд╛рдВрдХрди рдореЗрдВ рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрдХ рд╕рдВрдХреЗрдд рдЬреЛрдбрд╝рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ; рдЖрдкрдХреЛ рдбрд╛рдпрд▓рдкреНрд▓рд╛рди рдХреЛ "рд╡рд┐рдХреГрдд" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ рдпрд╣рд╛рдВ рд░рдЦрд╛ рдФрд░ reload.sh рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ред
 #!/bin/sh /usr/sbin/asterisk -rx 'dialplan reload' 

рдЙрд╕реЗ рдЕрдзрд┐рдХрд╛рд░ 733 рджреЗрдВред

рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдЖрдк рдлреЛрди рдкрд░ рдПрдХ рдмрдЯрди рджрдмрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдкреНрд░рдХрд╛рд╢ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдкреНрд░реЗрд╕ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд░рд╛рдВрдХрди рдФрд░ php рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред


Source: https://habr.com/ru/post/In157211/


All Articles