Страница 3 из 5

Re: Альтернатива FOP от Lynks

Добавлено: 26 апр 2011, 16:10
yalexand
mcsa2003 писал(а):

Код: Выделить всё

exten => s,n+2(normdial),noop(=normdial=)
exten => s,n,Set(DB(CURRCALL/${EXTTOCALL}/NUM)=${CALLERID(num)})
exten => s,n,Set(DB(CURRCALL/${EXTTOCALL}/NAME)=${CALLERID(name)})
exten => s,n,Dial(${ds})                             
exten => s,n,Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})})
exten => s,n,GosubIf($["${SCREEN}" != ""]?${DIALSTATUS},1)

FreePBX 2.6.0.3, Asterisk 1.6.2.17.2, PHP 5.2
А мне помог Ваш code. У меня FreePBX 2.5.1.5, Trixbox v2.8.0.1, Asterisk 1.6.0.9

Однако при попытке сделать вызов получаю сообщение справа вверху на жёлом фоне "Permission denied" и номер моего экстеншена на зелёном 'n/a' хотя поле "Your number" я заменил на номер своего SIP экстеншена. Есть разработчик, что нужно ещё подкрутить?

Re: Альтернатива FOP от Lynks

Добавлено: 26 апр 2011, 19:29
mcsa2003
Для Астера 1.6 еще надо как минимум заменить show channels concise на core show channels concise

Re: Альтернатива FOP от Lynks

Добавлено: 26 апр 2011, 22:12
mcsa2003
А у меня есть такой вопросик.
А почему Вы отслеживаете изменение статуса экстеншенов через show chennels, а не через события?

Re: Альтернатива FOP от Lynks.

Добавлено: 27 апр 2011, 09:22
yalexand
mcsa2003 писал(а):Заработало, но как-то очень странно
Аналогично - странно. Номер набирать позволяет, но кнопки все серые даже мой экстеншн. Видать тоже "не совпадает формат" :?: . Может подскажете как "формат" поправить, и где? Я чистый админ, php или JS не владею.

И, кстати, на скриншоте в правом верхнем углу зелёный номер и имя, а у меня всё так-же "n/a". Так и должно быть?
Уважаемый Автор, чем отличается "полная" версия от "неполной", кроме того, что не запрашивается PIN?

Re: Альтернатива FOP от Lynks

Добавлено: 27 апр 2011, 11:50
SVoy
switch, а как же "мы в ответе за тех, кого приручили.." (можно не отвечать;)

Re: Альтернатива FOP от Lynks

Добавлено: 27 апр 2011, 22:17
mcsa2003
to yalexand:
Скорее всего Вам надо в PHP.ini поставить значение register_globals в ON http://www.php.net/manual/ru/security.globals.php
Я об этом писал в одном из сообщений в этой теме.

Также приведите что у Вас показывает core show channels concise в момент, когда установлено хотя-бы одно соединение.

Re: Альтернатива FOP от Lynks

Добавлено: 28 апр 2011, 07:45
yalexand
mcsa2003 писал(а): to yalexand:
Скорее всего Вам надо в PHP.ini поставить значение register_globals в ON http://www.php.net/manual/ru/security.globals.php
Я об этом писал в одном из сообщений в этой теме.
Спасибо за помощь, моё сообщение было как раз обращением к Вам, тогда как Автор решил что я ему что-то предъявляю... Поскольку я с php абсолютно не знаком по ссылке http://phpfaq.ru/globals не ходил. А развёрнутого объяснения вы не давали.

По сути проблемы: register_globals в ON в файле /etc/php.ini уже было установлено, но это не помогает. Может где-то другой php.ini есть.
Также приведите что у Вас показывает core show channels concise в момент, когда установлено хотя-бы одно соединение.
Вот вызов в Ringing

Код: Выделить всё

SIP/2355-08a22890!from-internal!2355!1!Ringing!AppDial!(Outgoing Line)!2355!ast_h323!3!4!(None)!1303958471.187
OOH323/10.74.100.5-b874!macro-dial!s!10!Ring!Dial!SIP/2355,"",t!2182!ast_h323!3!4!(None)!1303958470.186
Вот тот же вызов уже в процессе разговора

Код: Выделить всё

[root@TrixSIPtest init.d]# asterisk -rx 'core show channels concise'
SIP/2355-08a22890!from-internal!!1!Up!AppDial!(Outgoing Line)!2355!ast_h323!3!10!OOH323/10.74.100.5-b874!1303958471.187
OOH323/10.74.100.5-b874!macro-dial!s!10!Up!Dial!SIP/2355,"",t!2182!ast_h323!3!10!SIP/2355-08a22890!1303958470.186
Похоже есть "лишнее" последнее поле, но оно для разбора наверное не мешает.

Re: Альтернатива FOP от Lynks

Добавлено: 28 апр 2011, 11:07
mcsa2003
Текущее значение параметров php можно увидеть через phpinfo() http://php.net/manual/ru/function.phpinfo.php

что показывает, в броузере http://server/panel/extensions-realtime ... y=extstate ?

Формат не такой как надо, но это не влияет на индикацию зарегистрирован экстеншн или нет.
Ищите фрагмент

Код: Выделить всё

//если два абонента уже соединены
            $tmp2=explode("!",$value);
            if($tmp2[5]=="Bridged Call" )
меняйте if($tmp2[5]=="Bridged Call" ) на if($tmp2[4]=="Up")

Ищите функцию function ExtrId($string)
меняйте содержимое на

Код: Выделить всё

function ExtrId($string)
{
    if($string!="n/a")
    {
        //$string=" $string-";
        //$leg1=substr($string,0,strpos($string,"-"));
        //$leg1=substr($leg1,strpos($leg1,"/")+1);
        //$leg1=strpos($leg1,"@")?substr($leg1,0,strpos($leg1,"@")):$leg1;
        //$leg1=strpos($leg1,"|")?substr($leg1,0,strpos($leg1,"|")):$leg1;
        //return $leg1;
		$string=" $string-";
		if(strpos($string, ',')!=0)
		{
		  $leg1=substr($string, 0, strpos($string, ','));
		}
		else
		{
		 $leg1=$string;
		}

		if(strpos($leg1, '-')!=0)
		{
		  $leg1=substr($string,0,strpos($string,"-"));
		}

		if(strpos($leg1,"/")!=0)
		{
		  $leg1=substr($leg1,strpos($leg1,"/")+1);
		}

		if(strpos($leg1,"@")!=0)
		{
		  $leg1=strpos($leg1,"@")?substr($leg1,0,strpos($leg1,"@")):$leg1;
		}
		if(strpos($leg1,"|")!=0)
		{ 
		$leg1=strpos($leg1,"|")?substr($leg1,0,strpos($leg1,"|")):$leg1;
		}
		return $leg1;
    }
}

Re: Альтернатива FOP от Lynks

Добавлено: 29 апр 2011, 08:24
yalexand
mcsa2003 писал(а):Текущее значение параметров php можно увидеть через phpinfo() http://php.net/manual/ru/function.phpinfo.php

что показывает, в броузере http://server/panel/extensions-realtime ... y=extstate ?
К сожалению не знаю как вообще отлаживать php, ведь всё что этот скрипт выполняет не напрямую попадает на страницу, там же JS... Поэтому с отладкой у меня большая проблема. Кроме манов на PHP ещё нужно JS изучить, ни то ни другое точно не в рамках этой задачи :)
Может в Вашей помощью удастся заставить работать этот инструмент.

До и После изменений обеих функций в extensions-realtime.php

Код: Выделить всё

{"0562395":{"Status":"0"},"0562396":{"Status":"0"},"2351":{"Status":"0"},"2352":{"Status":"0"},"2355":{"Status":"0"},"2391":{"Status":"0"},"2394":{"Status":"0"},"":{"Status":null},"0":""}

{"0562395":{"Status":"0"},"0562396":{"Status":"0"},"2351":{"Status":"0"},"2352":{"Status":"0"},"2355":{"Status":"0"},"2391":{"Status":"0"},"2394":{"Status":"0"},"":{"Status":null},"0":""}
И вот счастье (!) во время вызова:

Код: Выделить всё

{"0562395":{"Status":"0"},"0562396":{"Status":"0"},"2351":{"Status":"0"},"2352":{"Status":"0"},"2355":{"Status":"9"},"2391":{"Status":"0"},"2394":{"Status":"0"},"":{"Status":null},"0":""}
и во время разговора:

Код: Выделить всё

{"0562395":{"Status":"0"},"0562396":{"Status":"0"},"2351":{"Status":"0"},"2352":{"Status":"0"},"2355":{"Status":"1"},"2391":{"Status":"0"},"2394":{"Status":"0"},"":{"Status":null},"0":""}
Вот только почему-то на странице никаких изменений, все экстеншены, в т.ч. и 2355 постоянно серые.

Re: Альтернатива FOP от Lynks

Добавлено: 29 апр 2011, 12:51
mcsa2003
Какой броузер и какой PHP у Вас?