ОТОБРАТЬ разговор
Добавлено: 19 апр 2012, 12:26
Может кому пригодится: http://wapo-spb.livejournal.com/7753.html
Код: Выделить всё
#!/usr/bin/php -q
<?php
$par=$argv[1];
list($abonent,$chan_dist)= split (":",$par);
$asm = new AGI_AsteriskManager();
if($asm->connect()) {
$call = $asm->Command('core show channels');
$poz1=strpos($call['data'],"SIP/".$abonent."-");
$poz2=strpos($call['data'],' ',$poz1);
$chan=substr($call['data'],$poz1,($poz2-$poz1));
$call=$asm->Command('core show channel '.$chan);
$poz1=strpos($call['data'],"Direct Bridge: ");
$poz2=strpos($call['data'],"\n" ,$poz1);
$chan=substr($call['data'],($poz1+15),($poz2-($poz1+15)));
$call=$asm->send_request('Redirect',array('Channel'=>"$chan",'Exten'=>"305",'Context' => "incoming",'Priority' => 1));
};
$asm->disconnect();
?>
Не подскажите команду, которой можно активировать подробный вывод событий в cliWapo писал(а):Есть 2 способа:
1. Команда Redirect - перекинуть активный канал в некое место диалплана. Соответственно там надо выполнять какие-либо действия.
2. А вот теперь изучите команду Bridge - может именно ЭТОГО вам хочется?
Разные режимы отбора - 1. с уведомлением 2. без уведомления.
Ну и не мешает в CLI наблюдать за происходящем - тогда бы поймали ЗАНЯТОСТЬ
Код: Выделить всё
Executing [66202@incoming:1] AGI("SIP/305-00004c51", "/var/lib/asterisk/agi-bin/info.php,202:SIP/305-00004c51") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/info.php
-- <SIP/305-00004c51>AGI Script /var/lib/asterisk/agi-bin/info.php completed, returning 0
-- Executing [66202@incoming:2] Hangup("SIP/305-00004c51", "") in new stack
== Spawn extension (incoming, 66202, 2) exited non-zero on 'SIP/305-00004c51'
боюсь показаться банальным, но:bartholo1984 писал(а):подскажите команду
Код: Выделить всё
CLI> agi set debug on
В бездумном копипасте.bartholo1984 писал(а):как и куда копать дальше, где искать проблему
И откуда по вашему ваш же скрипт должен узнать что такое AGI_AsteriskManager ?bartholo1984 писал(а):$asm = new AGI_AsteriskManager();