Re: Отмена трансфера

От: Никитин Андрей <CGatePro_at_mx_ru>
Дата: Mon 16 Apr 2007 - 15:29:51 MSD


>Здравствуйте,

>>Никитин Андрей wrote:
>>День добрый!
>>
>>Сталкнулся с такой проблеммой, есть задача трансфера по списку номеров,
>>т.е. если номер не отвечает, то >>пробуем трансферить на следующий и так
>>далее.
>
>А как вы это делаете сейчас?

функция connectTo возвращает true, false (удачный, неудачный трансфер)

function connectTo(toWhom,useMixer) is
 peerLeg = spawn BridgeCaller;
 if peerLeg == null then
  return false;
 elif SendEvent(peerLeg,"from",RemoteURI()) != null then   return false;
 elif SendEvent(peerLeg,"call",EmailToSIPURI(toWhom)) != null then   return false;
 end if;

 loop
  input = readInput(2);
  exitif isDictionary(input) or else input == "#";  end loop;

 if not IsStartBridgeEvent(input) then
  void(SendEvent(peerLeg,"stop",null));
  return false;
 end if;

 if (useMixer ? AttachMixer(input) : AcceptBridge(input)) != null then return false; end if;
 loop
  input = ReadInput(7200);
  if input == "#" then
   input = readInput(3);
   if input == "#" then return BreakBridge() == null; end if;   end if;
  if IsBreakBridgeEvent(input) then return true; end if;   if IsDisconnectEvent(input) then stop; end if;  end loop;
end function;

функцию взял из примера, не модифицировал

>
>>Все нормально если номер занят или отключен, но если на той стороне просто
>>не берут трубку, то CGP >>пытается дозвониться до победного.
>>
>>Есть ли возможность считать такие соединения неудачными по таймауту
>>(минута например) и переходить к >>следующему номеру?

>С помощью B2BUA приложения - можно. Только это будет не трансфер, а имеено
>бридж между двумя >программками (одна принимает звонок, вторая
>дозванивается.)

>-- Best regards,
>Dmitry Akindinov
Получено Mon Apr 16 11:29:45 2007

Этот архив был сгенерирован hypermail 2.1.8 : Mon 16 Apr 2007 - 16:13:33 MSD