[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,)
[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
exten => *12111*222,hint,Custom:QS111222
#!/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'); } ?>
#!/bin/sh /usr/sbin/asterisk -rx 'dialplan reload'
Source: https://habr.com/ru/post/157211/
All Articles