Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series60 v.2.
От: iand  
Дата: 23.03.05 14:35
Оценка:
Привет всем !
Есть у меня партзадание написать программу, которая дозвонится, и после поднятия трубки на другой стороне, отошлет тоновые сигналы (DTMF). С програмкой dialer из examples разобрался, а вот как отослать DTMF ? Облазил весь инет, везде только вопросы таких же страждущих, или же жалобы на неработающие, или несуществующие функции API. Кто подтолкнет к пути истинному ? Кто поделится с ближним кусочком кода ?
Re: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series60
От: CrystaX Россия https://crystax.me/
Дата: 23.03.05 14:48
Оценка:
Здравствуйте, iand, Вы писали:

I>Привет всем !

I>Есть у меня партзадание написать программу, которая дозвонится, и после поднятия трубки на другой стороне, отошлет тоновые сигналы (DTMF). С програмкой dialer из examples разобрался, а вот как отослать DTMF ? Облазил весь инет, везде только вопросы таких же страждущих, или же жалобы на неработающие, или несуществующие функции API. Кто подтолкнет к пути истинному ? Кто поделится с ближним кусочком кода ?

здесь
Автор: CrystaX
Дата: 14.02.05
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[2]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: Аноним  
Дата: 23.03.05 14:56
Оценка:
Здравствуйте, CrystaX, Вы писали:

CX>Здравствуйте, iand, Вы писали:


I>>Привет всем !

I>>Есть у меня партзадание написать программу, которая дозвонится, и после поднятия трубки на другой стороне, отошлет тоновые сигналы (DTMF). С програмкой dialer из examples разобрался, а вот как отослать DTMF ? Облазил весь инет, везде только вопросы таких же страждущих, или же жалобы на неработающие, или несуществующие функции API. Кто подтолкнет к пути истинному ? Кто поделится с ближним кусочком кода ?

CX>здесь
Автор: CrystaX
Дата: 14.02.05


А можно детальнее, пожалуйста ? Из этого SDK UIQ 2.0 взять только help ? Примеры использования есть ? А то я только и вижу то, что описал "Облазил весь инет, везде только вопросы таких же страждущих, или же жалобы на неработающие, или несуществующие функции API".
Re[3]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: CrystaX Россия https://crystax.me/
Дата: 23.03.05 15:03
Оценка: 2 (1)
Здравствуйте, <Аноним>, Вы писали:

А>А можно детальнее, пожалуйста ? Из этого SDK UIQ 2.0 взять только help ? Примеры использования есть ? А то я только и вижу то, что описал "Облазил весь инет, везде только вопросы таких же страждущих, или же жалобы на неработающие, или несуществующие функции API".


Help и необходимые заголовочные файлы. Библиотеки же (etelmm.lib) есть и в Series 60 SDK. Вот чуточку детальнее:

  ...
  RMobilePhone phone;
  CleanupClosePushL(phone);
  User::LeaveIfError(phone.Open(server, info.iName));
  ...
  RLine line;
  CleanupClosePushL(line);
  User::LeaveIfError(line.Open(phone, lineInfo.iName));
  ...  
  User::LeaveIfError(iCall.Dial(dialnumber));

  RCall::TStatus aStatus;
  iCall.GetStatus(aStatus);
        
  if (aStatus ==  RCall::EStatusConnected)
    phone.SendDTMFTones(dtfm1 );


Выделенное — это и есть ETel multimode API.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[4]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: iand  
Дата: 23.03.05 15:28
Оценка:
Здравствуйте, CrystaX, Вы писали:

CX>Здравствуйте, <Аноним>, Вы писали:


А>>А можно детальнее, пожалуйста ? Из этого SDK UIQ 2.0 взять только help ? Примеры использования есть ? А то я только и вижу то, что описал "Облазил весь инет, везде только вопросы таких же страждущих, или же жалобы на неработающие, или несуществующие функции API".


CX>Help и необходимые заголовочные файлы. Библиотеки же (etelmm.lib) есть и в Series 60 SDK. Вот чуточку детальнее:


CX>
CX>  ...
CX>  RMobilePhone phone;
CX>  CleanupClosePushL(phone);
CX>  User::LeaveIfError(phone.Open(server, info.iName));
CX>  ...
CX>  RLine line;
CX>  CleanupClosePushL(line);
CX>  User::LeaveIfError(line.Open(phone, lineInfo.iName));
CX>  ...  
CX>  User::LeaveIfError(iCall.Dial(dialnumber));

CX>  RCall::TStatus aStatus;
CX>  iCall.GetStatus(aStatus);
        
CX>  if (aStatus ==  RCall::EStatusConnected)
CX>    phone.SendDTMFTones(dtfm1 );
CX>


CX>Выделенное — это и есть ETel multimode API.


Спасибо ! А не подскажете, сколько весят хелпы и заговолочные файлы ? А то почти под 300 метров тянуть
ftp://ftp.symbian.com/sdks/uiq/uiq2.0/uiq20-june03/UIQ20SDK.zip
ftp://ftp.symbian.com/sdks/uiq/uiq2.0/uiq20-june03/UIQ20SDKUpdate1.zip
Re[5]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: CrystaX Россия https://crystax.me/
Дата: 23.03.05 15:34
Оценка:
Здравствуйте, iand, Вы писали:

I>Спасибо ! А не подскажете, сколько весят хелпы и заговолочные файлы ? А то почти под 300 метров тянуть

I>ftp://ftp.symbian.com/sdks/uiq/uiq2.0/uiq20-june03/UIQ20SDK.zip
I>ftp://ftp.symbian.com/sdks/uiq/uiq2.0/uiq20-june03/UIQ20SDKUpdate1.zip

Да, именно все и надо качать. По отдельности не получится. Мои соболезнования.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[6]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: iand  
Дата: 24.03.05 13:56
Оценка:
Здравствуйте, CrystaX, Вы писали:

CX>Да, именно все и надо качать. По отдельности не получится. Мои соболезнования.


Достал SDK. Не инсталировал, прошвырнулся по архивам "на скору руку". Доку распаковал, тоже по быстрому глянул.
etelmm.h там нет, есть у меня в SDK 7.0s v.2.1.

Модифицировал пример dialer.

void CDialerAppUi::DialNumberL(const TDesC& aPhoneNumber)
    {
    //Create a connection to the tel server
    RTelServer server;
    CleanupClosePushL(server);
    User::LeaveIfError(server.Connect());

    //Load in the phone device driver
    User::LeaveIfError(server.LoadPhoneModule(KTsyName));
    
    //Find the number of phones available from the tel server
    TInt numberPhones;
    User::LeaveIfError(server.EnumeratePhones(numberPhones));

    //Check there are available phones
    if (numberPhones < 1)
        {
        User::Leave(KErrNotFound);
        }

    //Get info about the first available phone
    RTelServer::TPhoneInfo info;
    User::LeaveIfError(server.GetPhoneInfo(0, info));

    //Use this info to open a connection to the phone, the phone is identified by its name
    //RPhone phone;
    RMobilePhone phone;

    CleanupClosePushL(phone);
    User::LeaveIfError(phone.Open(server, info.iName));

    //Get info about the first line from the phone
    RMobilePhone::TLineInfo lineInfo;
    User::LeaveIfError(phone.GetLineInfo(0, lineInfo));

    //Use this to open a line
    RLine line;
    CleanupClosePushL(line);
    User::LeaveIfError(line.Open(phone, lineInfo.iName));

    //Open a new call on this line
    TBuf <100> newCallName;
    RCall call;
    CleanupClosePushL(call);
    User::LeaveIfError(call.OpenNewCall(line, newCallName));

    //newCallName will now contain the name of the call
    User::LeaveIfError(call.Dial(aPhoneNumber));

    RCall::TStatus aStatus;
    call.GetStatus(aStatus);

    if (aStatus ==  RCall::EStatusConnected)
        phone.SendDTMFTones(KPhoneNumberDTMF2);
    
    //Close the phone, line and call connections and remove them from the cleanup stack
    //NOTE: This does not hang up the call
    CleanupStack::PopAndDestroy(3);//phone, line, call

    //Unload the phone device driver
    User::LeaveIfError(server.UnloadPhoneModule(KTsyName));

    //Close the connection to the tel server and remove it from the cleanup stack
    CleanupStack::PopAndDestroy(&server);

Ошибка.
D:\SYMBIAN\7.0S\SERIES60_V21\SERIES60EX\DIALER\SRC\Dialerappui.cpp(146) : error C2039: 'SendDTMFTones' : is not a member of 'RMobilePhone'\Symbian\7.0s\Series60_v21\EPOC32\INCLUDE\etelmm.h(13) : see declaration of 'RMobilePhone'
Re[7]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: CrystaX Россия https://crystax.me/
Дата: 24.03.05 14:15
Оценка: 2 (1)
Здравствуйте, iand, Вы писали:

I>Достал SDK. Не инсталировал, прошвырнулся по архивам "на скору руку". Доку распаковал, тоже по быстрому глянул.

I>etelmm.h там нет, есть у меня в SDK 7.0s v.2.1.

Тот, что в Series 60 2.1 — сильно урезанный. В нем ничего нужного нет.

I>Модифицировал пример dialer.


[skipped]

I>Ошибка.

I>D:\SYMBIAN\7.0S\SERIES60_V21\SERIES60EX\DIALER\SRC\Dialerappui.cpp(146) : error C2039: 'SendDTMFTones' : is not a member of 'RMobilePhone'\Symbian\7.0s\Series60_v21\EPOC32\INCLUDE\etelmm.h(13) : see declaration of 'RMobilePhone'

Правильно. Нет полного определения RMobilePhone. Если посмотришь в header, увидишь строку
class RMobilePhone : public RPhone
    {
    // cut-down version of this class for compilation consistency


Нужен нормальный etelmm.h, не "cut-down". Вообще-то я вроде его в UIQ 2.0 SDK видел, но видимо нет. В общем, давай мыло, вышлю полную версию.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[8]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: iand  
Дата: 24.03.05 15:10
Оценка:
Здравствуйте, CrystaX, Вы писали:

CX>Нужен нормальный etelmm.h, не "cut-down". Вообще-то я вроде его в UIQ 2.0 SDK видел, но видимо нет. В общем, давай мыло, вышлю полную версию.


Огромное спасибо, что "возишься" со мной
ianpro [вместо уха] gmail.com

А можешь еще свой номер аськи скинуть в письме ?
Re[8]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: iand  
Дата: 24.03.05 16:25
Оценка:
Здравствуйте, CrystaX, Вы писали:

CX>Нужен нормальный etelmm.h, не "cut-down". Вообще-то я вроде его в UIQ 2.0 SDK видел, но видимо нет. В общем, давай мыло, вышлю полную версию.


Опосля добавления правильных файликов (etelmm.h), и после добавления в dialer.mmp строчки
LIBRARY etel3rdparty.lib

+ перегенерация makmake dialer.mmp VC6
получаем такое
=================================================
LINK : warning LNK4005: no objects used from library \Symbian\7.0s\Series60_v21\EPOC32\RELEASE\WINS\UDEB\ETEL3RDPARTY.LIB
DIALERAPPUI.obj : error LNK2001: unresolved external symbol "public: void __thiscall RMobilePhone::SendDTMFTones(class TRequestStatus &,class TDesC16 const &)const " (?SendDTMFTones@RMobilePhone@@QBEXAAVTRequestStatus@@ABVTDesC16@@@Z)
DIALERAPPUI.obj : error LNK2001: unresolved external symbol "public: __thiscall RMobilePhone::RMobilePhone(void)" (??0RMobilePhone@@QAE@XZ)
\Symbian\7.0s\Series60_v21\EPOC32\BUILD\SYMBIAN\7.0S\SERIES60_V21\SERIES60EX\DIALER\GROUP\DIALER\WINS\UDEB\DIALER.APP : fatal error LNK1120: 2 unresolved externals
=================================================

Раньше я пробовал c32.lib
Почти то же самое.
Где бы достать подходящую либу для SDK ?
Re[9]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: CrystaX Россия https://crystax.me/
Дата: 25.03.05 08:16
Оценка:
Здравствуйте, iand, Вы писали:

I>Опосля добавления правильных файликов (etelmm.h), и после добавления в dialer.mmp строчки

I>LIBRARY etel3rdparty.lib

[]

I>Раньше я пробовал c32.lib

I>Почти то же самое.
I>Где бы достать подходящую либу для SDK ?

Нужно использовать etelmm.lib. Берется в том же UIQ 2.0 SDK.
etel3dparty.lib не нужна.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[9]: Как отправить DTMF ? (Nokia 6670, Symbian 7.0s Series
От: Аноним  
Дата: 21.06.06 06:35
Оценка:
Здравствуйте, iand, Вы писали:

I>Здравствуйте, CrystaX, Вы писали:


CX>>Нужен нормальный etelmm.h, не "cut-down". Вообще-то я вроде его в UIQ 2.0 SDK видел, но видимо нет. В общем, давай мыло, вышлю полную версию.


I>Опосля добавления правильных файликов (etelmm.h), и после добавления в dialer.mmp строчки

I>LIBRARY etel3rdparty.lib

I>+ перегенерация makmake dialer.mmp VC6

I>получаем такое
I>=================================================
I>LINK : warning LNK4005: no objects used from library \Symbian\7.0s\Series60_v21\EPOC32\RELEASE\WINS\UDEB\ETEL3RDPARTY.LIB
I>DIALERAPPUI.obj : error LNK2001: unresolved external symbol "public: void __thiscall RMobilePhone::SendDTMFTones(class TRequestStatus &,class TDesC16 const &)const " (?SendDTMFTones@RMobilePhone@@QBEXAAVTRequestStatus@@ABVTDesC16@@@Z)
I>DIALERAPPUI.obj : error LNK2001: unresolved external symbol "public: __thiscall RMobilePhone::RMobilePhone(void)" (??0RMobilePhone@@QAE@XZ)
I>\Symbian\7.0s\Series60_v21\EPOC32\BUILD\SYMBIAN\7.0S\SERIES60_V21\SERIES60EX\DIALER\GROUP\DIALER\WINS\UDEB\DIALER.APP : fatal error LNK1120: 2 unresolved externals
I>=================================================

I>Раньше я пробовал c32.lib

I>Почти то же самое.
I>Где бы достать подходящую либу для SDK ?

Ну дык вось у вас есть все что бы их послать, достаточно иметь полну версию etelmm.h и нормальный etelmm.lib из под моторолла. И все работает. да кстати, работает только через активный объект.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.