; ; Asterisk Call Management support ; [general] enabled = yes ; asterisk manager interface (AMI) port = 5038 bindaddr = 127.0.0.1 ; webenabled = no ; Each user has a section labeled with the username ; so this is the section for the user named "mark" [user] ; secret = qwerty ; deny=0.0.0.0/0.0.0.0 ; permit=127.0.0.1/255.255.255.0 read = system,call,log,verbose,command,agent,user,originate ; write = system,call,log,verbose,command,agent,user,originate
include('phpagi.php'); $manager = new AGI_AsteriskManager(); $manager->connect(); // phpagi.conf , , .
function dump_events($ecode,$data,$server,$port) { $date_now = date('Ym-d'); $time_now = date('H:i:s'); echo "$time_now : received event '$ecode' from $server:$port\n"; print_r($data); } include('phpagi.php'); $manager = new AGI_AsteriskManager(); $manager->connect(); $manager->add_event_handler('*', 'dump_events'); // // AMI // $manager->wait_response(); // , // sleep() $manager->disconnect();
function donglenewussd($ecode, $data) { if($model = Trunk::model()->find('value = :value', array( ':value' => $data['Device']))){ if(!empty($data['MessageLine0'])){ $balance = explode(' ', $data['MessageLine0']); switch($model->carrier){ case '0': break; case '1': $model->balance = $balance[0]; $model->save(); echo $balance[0]."\n"; break; case '2': $model->balance = $balance[2]; $model->save(); echo $balance[2]."\n"; break; case '3': preg_match('/[+-]?\d+\.?\d*/', $balance[1], $match); $model->balance = $match[0]; $model->save(); echo $match[0]."\n"; break; } } } } $manager = new AGI_AsteriskManager(); $manager->connect(); $manager->add_event_handler('donglenewussd', 'donglenewussd'); $manager->wait_response(); $manager->disconnect();
$manager = new AGI_AsteriskManager(); $manager->connect(); $trunks =Trunk::model()->findAll(); foreach($trunks as $trunk){ switch($trunk->carrier){ case '1': $manager->Command('dongle ussd '.$trunk->value.' *101#'); break; case '2': $manager->Command('dongle ussd '.$trunk->value.' *111#'); break; case '3': $manager->Command('dongle ussd '.$trunk->value.' *111#'); break; } } $manager->disconnect();
$manager->Originate( ' , SIP/1001', ' ', ' ', ' ', ' , playback', ' , ', '', ' ', ' ', 'account - , ', ' ( )', 'actionid - ' );
Source: https://habr.com/ru/post/155111/
All Articles