Писк при трансфере

От: Никитин Андрей <CGatePro_at_mx_ru>
Дата: Thu 19 Jul 2007 - 15:42:41 MSD


Доброго времени суток!

В связи с переходом на b2bua пришлось сменить функцию трансфера, в результате появился странный эффект, при ответе на звонок оператор слышит короткий высокий писк, звонивший никаких посторонних звуков не слышит. До переключения на b2bua таких эффектов не наблюдалось. Как избавиться от столь неприятного эффекта?

Код

function bridgedLoopHash(peerLeg) external; function callerLeg(parameters,callPending) external;

function callNumber(phoneNumber,timeOut,from) forward;

entry Main is
 if AcceptCall() != null then stop; end if;

 timeOut = 20;
 from = "??????????@???.??.??.??";

 group = NewArray();

 group[0] = "??????@??????";
 group[1] = "??????@??????";
 group[2] = "??????@??????";

 count = Length(group);
 called = false;
 if count > 0 then
  index = 0;
  shift = RandomNumber() % count;
  while index < count and then timeOut > 0 loop    member = group[(index + shift) % count];    called = callNumber(member, timeOut, from);   exitif called;
   index = index + 1;
  end loop;
 end if;
 if not called then RejectCall("408-no answer"); end if; end entry;

function callNumber(phoneNumber,timeOut,from) is  parameters = NewDictionary();

 parameters.("") = EmailToSIPURI(phoneNumber);
 parameters.activeSide = false;
 parameters.From = EmailToSIPURI(from);
 parameters.("Expires") = timeOut;
 parameters.bridgedCall = true;
 parameters.("Call-ID") = PendingRequestData("Call-ID") + ".gr_ser";
 parameters.("Max-Forwards") = PendingRequestData("Max-Forwards")-1;

 peerLeg = callerLeg(parameters,false);

 if not IsTask(peerLeg) then return false; end if;

 while IsConnected() loop
  input = bridgedLoopHash(peerLeg);
 exitif input != "#";
 end loop;

 return true;
end function;

С уважением Никитин Андрей Получено Thu Jul 19 11:42:42 2007

Этот архив был сгенерирован hypermail 2.1.8 : Thu 19 Jul 2007 - 16:13:52 MSD