Определение DTMF сигнала после поднятия трубки
Определение DTMF сигнала после поднятия трубки
Добрый день. Нужна помощь. Пишу на VB.NET используя вашу библиотеку. И стал вопрос: Когда абонент звонит на sprecord? программа поднимает, и ждем ввода какого-нибудь числа например 5 или 6. Как мне отловить что человек послал 5 или 6. Я понимаю что это должно идти через метод PeekMessage (). Заранее спасибо.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Определение DTMF сигнала после поднятия трубки
Вы правильно понимаете. Читайте очередь сообщений через PeekMessage. Если не получается, то пишите конкретно, в чем, и показывайте ваш код.
Re: Определение DTMF сигнала после поднятия трубки
Это кусками собранный код. Мне именно не понятна одна часть именно получение DTFM сигнала.
Как мне получить какую цифру абонент нажал?
Код: Выделить всё
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myChannel1 As SpRecordChannelClientW
Dim sprecord As SpRecordClientW
Dim test as object
sprecord = CreateObject("spsdksw.SpRecordClientW")
myChannel1 = CreateObject("spsdksw.SpRecordChannelClientW")
myChannel1.HandsetTake()
myChannel1.SetDTMFDetect(True)
myChannel1.PeekMessage(test) ' вот тут когда я указываю объект, в который будет помещено сообщние. Как мне именно извлечь сообщение SPR_MSG_C_DTMF (CHANNELMSGDTMFCODE) ?
Label3.Text = test
end sub
Re: Определение DTMF сигнала после поднятия трубки
Это я написал, забыл залогинится. Прошу прощения.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Определение DTMF сигнала после поднятия трубки
Согласно Справке каждое сообщение - это структура, в которой есть поле кода, идентифицирующее сообщение. Структуру и коды сообщений смотрите в Справке.
Re: Определение DTMF сигнала после поднятия трубки
Можете привести хотябы маленький пример кода на VB.NET?
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Определение DTMF сигнала после поднятия трубки
На вб не могу.
Re: Определение DTMF сигнала после поднятия трубки
Ок. попробую написать на С++. Спасибо.
Re: Определение DTMF сигнала после поднятия трубки
Метод peekMessage (obj) в переменную obj вкладывает тип массива байт . В итого получаются массив изображенный на картинке. Как мне получить сообщение которое содержит DTMF сигнал посланный абонентом?
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Определение DTMF сигнала после поднятия трубки
Посмотрите пример на C++ в SDK. А также темы в этой ветке форума.
Re: Определение DTMF сигнала после поднятия трубки
Вы можете аську в личку скинуть? У меня все зацикливается на получении этого DTMF/ Именно это тормозит работу.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Определение DTMF сигнала после поднятия трубки
Что скинуть? SDK?
Re: Определение DTMF сигнала после поднятия трубки
Нет номер icq. Если есть и еще архив из темы forum/viewtopic.php?f=26&t=207 поврежден. Можно его отправить на почту или загрузить заново?
Re: Определение DTMF сигнала после поднятия трубки
Все сообщения закодированы в byte я правильно понимаю? Но когда я раскодироваю их то получается ерунда. Например когда идет звонок в массиве каждый инеу несет номер телефона звонящего. Когда я звонок принял, то он присылает какие то непонятные byte, например я Ж д и т.д. если я превращаю их в Char.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Определение DTMF сигнала после поднятия трубки
Посмотрите пример чтения сообщений в Справке SDK на С++.
Re: Определение DTMF сигнала после поднятия трубки
Я скачал архив с примеров работы SDK на С++. И когда я вставляю код примера он выдает ошибку.
Не определен символ "ISpRecordClientWDisp"
Код: Выделить всё
ISpRecordClientWDisp pMain;
IUnknown* obj;
obj=CreateComObject(CLSID_SpRecordClientW);
pMain=(IDispatch*)obj;
pMain->Connect(0, (BSTR)"",(BSTR)"");
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Определение DTMF сигнала после поднятия трубки
Предлагаю вам разобраться с основами программирования на С++. На этому форуме такое обучение мы не проводим.