-
Я как понимаю это перевод вызова.. попробовал сделать так: var
line: THLine;
call: THCall;
callParams: TlineCallParams;
buffPhone: array[0..30] of Char;
buff2Phone: array[0..30] of Char;
begin
StrPCopy(buffPhone, Edit1.Text);
StrPCopy(buff2Phone, Edit2.Text);
CallParams.dwMediaMode := LINEMEDIAMODE_DATAMODEM;
lineMakeCall(line, call, buffPhone, 0, @callParams);
lineRedirect(call, buff2Phone, 0);
.. и не работает.. набирается только первый номер и все.. пробовал еще перед функцией lineRedirect использовать функцию lineHold, тоже не дало результатов..
-
> с аналового
Они все цифровые.
Какая м.б. FLASH на аналоговом аппарате)..
Если я не ошибаюсь, нажание FLASH на стандартных современных аппаратах эквивалентно опусканию трубки на 0,5 сек и последующее ее поднятие на допотопных аналоговых аппаратах.
Конкретная программируемая УАТС будет реагировать на это событие так как ее запрограммировали. В твоем случае это удержание текущего соединение и переключение в режим набора номера для вызова других абонентов с целью организации конфы.
Т.е. тебе следует сосредоточиться на TAPI-программировании модема в части реализации описанной выше FLASH-логики.
-
-
lineGenerateDigits The exclamation (!) is a valid character. This character causes a "hookflash" operation, as described for dialable addresses.
Как только ты сделал lineMakeCall, про любые другие функции, кроме lineGenerateDigits/lineGenerateTone - забудь - аналоговая линия понимает только DTMF... Все конференции/консультационные звонки/удержания/и т.д. - происходят в контексте одного вызова(call), по одному голосовому каналу - коммутация многих к одному целиком делается на станции...
-
> han_malign © (14.05.08 15:45) [23]
> аналоговая линия понимает только DTMF
Кстати да.
Результат нажатия FLASH в обычных (не системных) аппаратах - посыл в линию DTMF-кода, соответствующего (!).
А реакция на этот посыл определяется текущими настройками АТС.
Например, наша УАТС реагирует на него в зависимости от входящего или исходящего соединения по-разному - либо удерживает линию вх.соединения и позволяет набрать номер для переадресации, либо сбрасывает исх.соединение (эквив-но кратковременному опусканию трубы на аппарат) и инициирует новое исх.соединение (зуммер ГС)
-
Кстати по поводу [16] - прелюбопытное плане ПО предлагает компания Teleon в продукте Skype-PSTN/PBX Gateway.
С его помощью суровый шеф может сидя с ноутбуком или коммуникатором/смартфоном в сортире в любой точке мира, где имеется более-менее сносный доступ в Тырнет, получить практически нахаляву (не считая расходов на Тырнет-трафик) доступ к своей УАТС и устроить, скажем, ту самую конференцию для снятия стружки с подчиненных и просто дабы душу отвести)
-
где-то в дебрях интернета нашел вот это: lineGenerateDigits(call, LINEDIGITMODE_DTMF, '!,,\0', 0);
но он что-то не работает.. гудка в линии нету(для набора следующего номера).. И как потом набирать следующий номер? этой же функцией lineGenerateDigits?
-
> Интересно, каким это макаром к ней подключен системный аппарат, > если он требует 4-хпроводную схему подключения ..
Сергей М. в данной АТС системник подключается по двухпроводной схеме. Режим работы порта (PULSE, DTMF, DKTU) определяется настройкой порта в АТС. > Результат нажатия FLASH в обычных (не системных) аппаратах > - посыл в линию DTMF-кода, соответствующего (!). Хм...не всегда. Например, нажатие сброса линии - просто разрывает линию, при этом никакой посылки не будет. Но на АТС при разрыве запускается таймер (время работы программируется) и если линия перейдет в состояние активно до окончания работы таймера - то входящий абонент будет поставлен на удержание. Такая реализация позволяет реализовать режим HOLD на телефонах где нет данной "магической" кнопки. Поэтому по сабжу (конференция по нажатию HOLD) - есть мысль инициировать разрыв линии и повторную активацию. Но опять же по умолчанию настройки таймера LG Nortell 300 - 650 ms по идее - должно хватить. :)))
-
> получить практически нахаляву (не считая расходов на Тырнет- > трафик) доступ к своей УАТС
Стандартный режим DISA с линии ISDN BRI позволяет легко организовать не только это, но и доступ к режиму программирования АТС, что вполне необходимо для удаленного управления, к примеру, подведомственной АТС в пуле. :)))
-
Что-то всеравно не срабатывает Flash..(( Я и так пробовал: lineGenerateDigits(call, LINEDIGITMODE_DTMF, '!,,\0', 0); и так: lineGenerateDigits(call, LINEDIGITMODE_DTMF, '!', 0); и так: var
buffFlash: array[0..5] of Char;
..
StrPCopy(buffFlash, '!');
lineGenerateDigits(call, LINEDIGITMODE_DTMF, buffFlash, 0);
-
> medved_68 © (15.05.08 10:21) [28]
Далеко не для всех АТС он стандартный
-
> Далеко не для всех АТС он стандартный
Разумеется, но на практике - он либо есть (тогда он обязан соответствовать, и такое наблюдается), либо его попросту нет. :))
-
И еще, когда я набираю номер, я не хочу чтобы выскакивало окно дозвона, поэтому я сделал так: CallParams.dwMediaMode := LINEMEDIAMODE_DATAMODEM; и после снятия трубки все вроде нормально, все слышно, но почему-то какие-то непонятьные гудки идут... При CallParams.dwMediaMode := LINEMEDIAMODE_INTERACTIVEVOICE; таких гудков нету.. Подскажите еще с этим пожалуйста..
-
2 Dmitry_177 (15.05.08 14:34) [32]
Поле dwMediaMode указывает вид вызова. Типа голос,факс и прочее. И на окно, указанное в [32] это поле не влияет.
-
> Поле dwMediaMode указывает вид вызова. Типа голос,факс > и прочее. > И на окно, указанное в [32] это поле не влияет.
хм.. если поставить LINEMEDIAMODE_INTERACTIVEVOICE то это окно какраз и выскакивает..
-
Хм...а почему собственно lineMakeCall, а не lineDial? Она как раз делает многоступенчатый набор номера и обычно используется в конференц-связи.
Далее...есть же куча служебных элементов набора. p,t,w,@ и т.д. Если у тебя АТС, то вероятно , нужно дождаться гудка, а только потом делать набор(w). Или делать паузы в наборе(,)
-
Более того, до вызова lineMakeCall или lineDial, ты должен вызвать LineOpen. Что в ней ? Показывай весь код
|