Конференция "WinAPI" » TAPI набор номера, конференция [D7, WinXP]
 
  • Dmitry_177 (14.05.08 14:45) [20]
    Я как понимаю это перевод вызова.. попробовал сделать так:

    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, тоже не дало результатов..
  • Сергей М. © (14.05.08 15:05) [21]

    > с аналового


    Они все цифровые.

    Какая м.б. FLASH на аналоговом аппарате)..

    Если я не ошибаюсь, нажание FLASH на стандартных современных аппаратах эквивалентно опусканию трубки на 0,5 сек и последующее ее поднятие на допотопных аналоговых аппаратах.

    Конкретная программируемая УАТС будет реагировать на это событие так как ее запрограммировали. В твоем случае это удержание текущего соединение и переключение в режим набора номера для вызова других абонентов с целью организации конфы.

    Т.е. тебе следует сосредоточиться на TAPI-программировании модема в части реализации описанной выше FLASH-логики.
  • Сергей М. © (14.05.08 15:09) [22]
  • han_malign © (14.05.08 15:45) [23]
    lineGenerateDigits
    The exclamation (!) is a valid character. This character causes a "hookflash" operation, as described for dialable addresses.

    Как только ты сделал lineMakeCall, про любые другие функции, кроме lineGenerateDigits/lineGenerateTone - забудь - аналоговая линия понимает только DTMF...
    Все конференции/консультационные звонки/удержания/и т.д. - происходят в контексте одного вызова(call), по одному голосовому каналу - коммутация многих к одному целиком делается на станции...
  • Сергей М. © (14.05.08 16:01) [24]

    > han_malign ©   (14.05.08 15:45) [23]


    > аналоговая линия понимает только DTMF


    Кстати да.

    Результат нажатия FLASH в обычных (не системных) аппаратах - посыл в линию DTMF-кода, соответствующего (!).

    А реакция на этот посыл определяется текущими настройками АТС.

    Например, наша УАТС реагирует на него в зависимости от входящего или исходящего соединения по-разному - либо удерживает линию вх.соединения и позволяет набрать номер для переадресации, либо сбрасывает исх.соединение (эквив-но кратковременному опусканию трубы на аппарат) и инициирует новое исх.соединение (зуммер ГС)
  • Сергей М. © (14.05.08 16:11) [25]
    Кстати по поводу [16] - прелюбопытное плане ПО предлагает компания Teleon в продукте Skype-PSTN/PBX Gateway.

    С его помощью суровый шеф может сидя с ноутбуком или коммуникатором/смартфоном  в сортире в любой точке мира, где имеется более-менее сносный доступ в Тырнет, получить практически нахаляву (не считая расходов на Тырнет-трафик) доступ к своей УАТС и устроить, скажем, ту самую конференцию для снятия стружки с подчиненных и просто дабы душу отвести)
  • Dmitry_177 (15.05.08 09:52) [26]
    где-то в дебрях интернета нашел вот это:
    //issue hook flash
    lineGenerateDigits(call, LINEDIGITMODE_DTMF, '!,,\0', 0);


    но он что-то не работает.. гудка в линии нету(для набора следующего номера)..

    И как потом набирать следующий номер? этой же функцией lineGenerateDigits?
  • medved_68 © (15.05.08 10:02) [27]

    > Интересно, каким это макаром к ней подключен системный аппарат,
    >  если он требует 4-хпроводную схему подключения ..

    Сергей М. в данной АТС системник подключается по двухпроводной схеме. Режим работы порта (PULSE, DTMF, DKTU) определяется настройкой порта в АТС.
    > Результат нажатия FLASH в обычных (не системных) аппаратах
    > - посыл в линию DTMF-кода, соответствующего (!).
    Хм...не всегда. Например, нажатие сброса линии - просто разрывает линию, при этом никакой посылки не будет. Но на АТС при разрыве запускается таймер (время работы программируется) и если линия перейдет в состояние активно до окончания работы таймера - то входящий абонент будет поставлен на удержание. Такая реализация позволяет реализовать режим HOLD на телефонах где нет данной "магической" кнопки. Поэтому по сабжу (конференция по нажатию HOLD) - есть мысль инициировать разрыв линии и повторную активацию. Но опять же по умолчанию настройки таймера LG Nortell 300 - 650 ms по идее - должно хватить. :)))
  • medved_68 © (15.05.08 10:21) [28]

    > получить практически нахаляву (не считая расходов на Тырнет-
    > трафик) доступ к своей УАТС

    Стандартный режим DISA с линии ISDN BRI позволяет легко организовать не только это, но и доступ к режиму программирования АТС, что вполне необходимо для удаленного управления, к примеру, подведомственной АТС в пуле. :)))
  • Dmitry_177 (15.05.08 10:27) [29]
    Что-то всеравно не срабатывает 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);

  • Сергей М. © (15.05.08 10:32) [30]

    > medved_68 ©   (15.05.08 10:21) [28]


    Далеко не для всех АТС он стандартный
  • medved_68 © (15.05.08 10:47) [31]

    > Далеко не для всех АТС он стандартный

    Разумеется, но на практике - он либо есть (тогда он обязан соответствовать, и такое наблюдается), либо его попросту нет. :))
  • Dmitry_177 (15.05.08 14:34) [32]
    И еще, когда я набираю номер, я не хочу чтобы выскакивало окно дозвона, поэтому я сделал так:
    CallParams.dwMediaMode := LINEMEDIAMODE_DATAMODEM;


    и после снятия трубки все вроде нормально, все слышно, но почему-то какие-то непонятьные гудки идут... При CallParams.dwMediaMode := LINEMEDIAMODE_INTERACTIVEVOICE; таких гудков нету.. Подскажите еще с этим пожалуйста..
  • GanibalLector © (16.05.08 11:00) [33]
    2 Dmitry_177   (15.05.08 14:34) [32]

    Поле dwMediaMode  указывает вид вызова. Типа голос,факс и прочее.
    И на окно, указанное в [32] это поле не влияет.
  • Dmitry_177 (16.05.08 11:37) [34]

    > Поле dwMediaMode  указывает вид вызова. Типа голос,факс
    > и прочее.
    > И на окно, указанное в [32] это поле не влияет.

    хм.. если поставить LINEMEDIAMODE_INTERACTIVEVOICE то это окно какраз и выскакивает..
  • GanibalLector © (16.05.08 13:25) [35]
    Хм...а почему собственно lineMakeCall, а не lineDial?
    Она как раз делает многоступенчатый набор номера и обычно используется в конференц-связи.

    Далее...есть же куча служебных элементов набора. p,t,w,@ и т.д.
    Если у тебя АТС, то вероятно , нужно дождаться гудка, а только потом делать набор(w). Или делать паузы в наборе(,)
  • GanibalLector © (16.05.08 13:33) [36]
    Более того, до вызова lineMakeCall или lineDial, ты должен вызвать LineOpen.
    Что в ней ?
    Показывай весь код
 
Конференция "WinAPI" » TAPI набор номера, конференция [D7, WinXP]
Есть новые Нет новых   [134433   +22][b:0][p:0.001]