|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Добрый день уважаемые, столкнулся со следующей проблемой. Есть приложение в котором исользуется tapi для звонков, с этим проблем нет, регистрируюсь на линии, совершаю звонки, отлавливаю статусы звонков, но никак не получается из софтины поднять трубку. Почитал форум, примеры, msdn, даже сделал это в .Net, но вот на vb6(нужно именно на нем) никак не полчается Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Line_ соответственно зарегистрирована. Сразу бросается в глаза что a2 и b2 разных типов, но вот во всех применрах что я нашел(а они на .net) прекрастно работают Код: plaintext 1. 2.
Может кто сталкивался, не подскажете как из треклятого ITCallInfo2 получить или вытащить ITBasicCallControl2 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:22 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
Здесь соответственно исключение ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:23 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
airmaxxx, ITBasicCallControl2 interfaceThe ITBasicCallControl2 interface is created by calling QueryInterface on ITCallInfo.ITCallInfo2 interfaceThe ITCallInfo2 interface is an extension of the ITCallInfo interface.QueryInterface в VB6 делаеЦЦа при Set, так что в теории Код: vbnet 1. 2. 3. 4.
должно работать. На практике - хз, надо бы смотреть по крайней мере 2 вещи: 1) действительно ли конкретный объект, поддерживающий ITCallInfo[2], поддерживает ITBasicCallControl2, то есть не возвращает ли ITCallInfo::QueryInterface(IID_ITBasicCallControl2) код E_NOINTERFACE; 2) параноидальное предположение, но: правильный ли IID у ITBasicCallControl2 в используемой в VB6 библиотеке типов? И что это за библиотека типов, кстати? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 12:35 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
ЦЦадолжно работать. На практике - хз, надо бы смотреть по крайней мере 2 вещи: 1) действительно ли конкретный объект, поддерживающий ITCallInfo[2], поддерживает ITBasicCallControl2, то есть не возвращает ли ITCallInfo::QueryInterface(IID_ITBasicCallControl2) код E_NOINTERFACE; 2) параноидальное предположение, но: правильный ли IID у ITBasicCallControl2 в используемой в VB6 библиотеке типов? И что это за библиотека типов, кстати? 1) Вообще должно поддерживаться, во всех примерах что находил было сделано именно так, даже нашел пример на vb6, но к слову там тоже исключение на месте присвоения, хотя собо в код не углублялся, но вот ссылочка http://www.tapi.info/default.aspx/TAPI/PSDKSamples.html Incoming - TAPI 3.0 INCOMING Sample Application 2) биьлиотека tapi3.dll, она стандартная лежит в Windows\system32\tapi3.dll ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 12:55 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
airmaxxx, да, есть в Platform SDK такой пример, причём с комментариями: Код: vbnet 1. 2. 3. 4. 5. 6.
Я бы всё-таки проверил явно код возврата QueryInterface, примерно так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Если код возврата будет E_NOINTERFACE, попробовать запросить ITBasicCallControl, как в Incoming. olelib здесь . ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 15:19 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
hr Unk.QueryInterface(IID_ITBasicCallControl2, a2) возвращает -2147467262 и со-но и в одну из ветвей кейса не заходит. Что делать с этим калл контролом и калл инфо совершенно непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 11:12 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Ошибся, как раз заходит по ветке E_NOINTERFACE, то есть интерфейс не поддрерживается. Но в примерах же делается подобное, и как то это работает... куда дальше мне копать то? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 11:21 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
ЦЦаЕсли код возврата будет E_NOINTERFACE, попробовать запросить ITBasicCallControl, как в Incoming. пробывал, то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 11:24 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
http://computer-programming-forum.com/64-vb-com/3d1ce8ecfedef46b.htm http://bit.pirit.info/forum/viewtopic.php?t=7263 http://bbs.vbstreets.ru/viewtopic.php?f=1&t=4827 везде схожие примеры, но ITCallInfo никак не хочет конвертиться в ITBasicCallControl, в чем же подвох? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 12:14 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Вы для начала определитесь, что вам нужно, ITBasicCallControl или ITBasicCallControl2 это все-таки разные вещи. В примерах фигурирует ITBasicCallControl, кто дал гарантии что тоже самое будет работать с ITBasicCallControl2? airmaxxx ITCallInfo никак не хочет конвертиться в ITBasicCallControl, в чем же подвох?В такой постановке вопрос тянет на двойку по информатике. Это разные интерфейсы и один не может быть сконвертирован во второй в принципе. Это же основы ООП. Другое дело объект. Я хз, что вы там делаете, но Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 13:24 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Вот пример от производителя, никаких упоминаний ITBasicCallControl 2 нет и в помине. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 13:35 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Antonariy, Что только и в каких только вариантах я не пробывал и ITBasicCallControl и ITBasicCallControl2 и ITCallInfo и ITCallInfo2 и вариации с ними, все Type mismatch, делал как в примерах, делал не как в примерах, результат один. И к сжалению ни это Код: vbnet 1. 2.
Ни это Код: vbnet 1. 2. 3.
не работает =( ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 14:00 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Тогда сделайте из примера на с++ отдельную длл, которая снимает трубку. Когда-то давно я тоже наткнулся на проблему с tapi3, которой не возникало в аналогичном с++-коде. Возможно на эту же, какое-то дежавю прямо просыпается. Попытался переписать на api, тоже не пошло. И не только в tapi есть такие непонятные проблемы. На тапи я в итоге забил, а эту проблему решил (не решить было нельзя) именно с помощью с++. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 14:20 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Antonariy, А по другому никак? уж больно большой это изврат писать компоненту которая отвечает на вызовы, для компоненты которая работает с телефонией, для того что бы в свою очередь это вся каша заработала на 1С... ужс. Не покидает меня мысль что ответ том как же CallInfo превратить в BasicCallControl лежит где то на поверхности. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2012, 14:54 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Собвственно проблема решена работой приложения не в дэбаге, если его запускать из среды, то вылетает скатина, но как только проэкт собран в релиз, какой то невероятной магией оно работает, почему так происходит это вопрос за гранью, но факт, этот код работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 17:43 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
airmaxxx, а можно через TAPI узнать во время звонка номер звонящего (наподобие команды +CLCC, во время RING) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 16:05 |
|
TAPI поднять/положить трубку
|
|||
---|---|---|---|
#18+
Какой смысл узнавать время именно через TAPI, а не простым человеческим способом через Now? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 16:07 |
|
|
start [/forum/topic.php?fid=60&fpage=61&tid=2157084]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 410ms |
0 / 0 |