Re: как решить: соеденить два исходящих звонка вместе.
Вариант 1. На флеш-панели перетащить звонки в конфу.
Вариант 2. На одном из телефонов повесить звонок на холд, позвонить на спец exten, на котором запустится скрипт, который загонит оба конца в конфу, снять звонок с холда.
Сначала все проделай вручную, если запашет, тогда можно автоматизировать.
в консоли show channels (посмотри как называются нужные тебе 2 канала). В создай exten, в котором будет запускаться MeetMe()
exten => 800,1,Answer
exten => 800,n,MeetMe(800)
telnet localhost 5038
ACTION: LOGIN
USERNAME: username
SECRET: password
<Enter>
параметры авторизации в manager.conf
ACTION: Redirect
Channel: SIP/1234-6378
ExtraChannel: SIP/4321-4580
Exten: 800
Priority: 1
Context: default
<Enter>
Action: logoff
Т.е. 2 канала загоняешь на exten 800, а там они будут уже попадать в конфу.
Если работает. Пишем простой скрипт на php
<?php
// подразумеваю, что php-agi установлен
require_once('phpagi-asmanager.php');
...
$logf = fopen("/tmp/redirect.log", "w");
if ($asm->connect("localhost", "user", "passwd")) {
fwrite($logf, "Manager connected\n");
$res = $asm->Redirect($chan1, $chan2, $ext, "default", "1");
fwrite($logf, "Redirect result: " . $res['Response'] . " " . $res['Message']. "\n");
$asm->disconnect();
} else {
fwrite($logf, "Manager Not connected");
exit(1);
}
...
?>
Тут уж сам решай, как запускать. Или через agi или через System
Если через agi, то нужно подключить phpagi.
Можно конечно и без phpagi, но замудохаешься. А так уж можно пользоваться готовыми классами.
Соответственно $chan1, $chan2, $ext ты должен передать как параметры.
Один из методов. Имена каналов записать во встроенную DB астериска
DbPut(/LINE1/channame=${CHANNEL})
LINE1/channame
LINE2/channame
А дальше из скрипта считать названия каналов (из agi скрипта)
|