<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.newlc.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>NewLC - Delay in sending DTMF tones on S60 3rd edition - Comments</title>
 <link>http://www.newlc.com/forum/delay-sending-dtmf-tones-s60-3rd-edition</link>
 <description>Comments for &quot;Delay in sending DTMF tones on S60 3rd edition&quot;</description>
 <language>en</language>
<item>
 <title>Re: Delay in sending DTMF tones on S60 3rd edition</title>
 <link>http://www.newlc.com/forum/delay-sending-dtmf-tones-s60-3rd-edition#comment-48858</link>
 <description>&lt;p&gt;For any information contact&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;eval(unescape(&#039;%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%2e%73%79%61%6d%6b%75%6d%61%72%40%67%6d%61%69%6c%2e%63%6f%6d%22%3e%6d%2e%73%79%61%6d%6b%75%6d%61%72%40%67%6d%61%69%6c%2e%63%6f%6d%3c%2f%61%3e%27%29%3b&#039;))&lt;/script&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 01 Oct 2008 12:52:42 +0200</pubDate>
 <dc:creator>syamkumarm</dc:creator>
 <guid isPermaLink="false">comment 48858 at http://www.newlc.com</guid>
</item>
<item>
 <title>Re: Delay in sending DTMF tones on S60 3rd edition</title>
 <link>http://www.newlc.com/forum/delay-sending-dtmf-tones-s60-3rd-edition#comment-48857</link>
 <description>&lt;p&gt;/*&lt;br /&gt;
============================================================================&lt;br /&gt;
 Name		: CEngine.h&lt;br /&gt;
 Author	  : Syam&lt;br /&gt;
 Version	 :&lt;br /&gt;
 Copyright   : Your copyright notice&lt;br /&gt;
 Description : CCEngine declaration&lt;br /&gt;
============================================================================&lt;br /&gt;
*/&lt;/p&gt;

&lt;p&gt;#ifndef CENGINE_H&lt;br /&gt;
#define CENGINE_H&lt;/p&gt;

&lt;p&gt;#include &lt;e32base.h&gt;        // For CActive, link against: euser.lib&lt;br /&gt;
#include &lt;Etel3rdParty.h&gt;&lt;/p&gt;

&lt;p&gt;class CCallDialer1;&lt;br /&gt;
class CEngine : public CActive&lt;br /&gt;
{&lt;br /&gt;
public:// Cancel and destroy&lt;br /&gt;
~CEngine();&lt;/p&gt;

&lt;p&gt;static CEngine* NewL();&lt;/p&gt;

&lt;p&gt;static CEngine* NewLC();&lt;/p&gt;

&lt;p&gt;public: // New functions&lt;/p&gt;

&lt;p&gt;void StartEngine();&lt;br /&gt;
void Dil(TDesC &amp;crdno);&lt;br /&gt;
void DoCancel();&lt;br /&gt;
private:&lt;br /&gt;
// C++ constructor&lt;br /&gt;
CEngine();&lt;/p&gt;

&lt;p&gt;void ConstructL();&lt;/p&gt;

&lt;p&gt;private: // From CActive&lt;/p&gt;

&lt;p&gt;void RunL();&lt;/p&gt;

&lt;p&gt;TInt RunError( TInt aError );&lt;/p&gt;

&lt;p&gt;private:&lt;br /&gt;
CTelephony* iTelephony;&lt;/p&gt;

&lt;p&gt;CTelephony::TRemotePartyInfoV1 iRemInfoUse;&lt;br /&gt;
CTelephony::TCallInfoV1                   iCallInfoUse;&lt;br /&gt;
CTelephony::TCallSelectionV1   iCallSelectionUse;&lt;/p&gt;

&lt;p&gt;CTelephony::TRemotePartyInfoV1Pckg         iRemParty;&lt;br /&gt;
CTelephony::TCallInfoV1Pckg                 iCallInfo;&lt;br /&gt;
CTelephony::TCallSelectionV1Pckg         iCallSelection;&lt;/p&gt;

&lt;p&gt;CTelephony::TCallStatusV1 iCallStatus;&lt;br /&gt;
CTelephony::TCallStatusV1Pckg iCallStatusPkg;&lt;br /&gt;
CTelephony::TCallId iCallId;&lt;br /&gt;
CCallDialer1*	tel1;&lt;/p&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;//this class is used for making a call&lt;/p&gt;

&lt;p&gt;class CCallDialer1 : public CActive&lt;br /&gt;
{ &lt;br /&gt;
public:&lt;br /&gt;
CCallDialer1();&lt;br /&gt;
void ConstructL(const TDesC&amp; aNumber);&lt;br /&gt;
~CCallDialer1();&lt;/p&gt;

&lt;p&gt;private:&lt;br /&gt;
void RunL();&lt;br /&gt;
void DoCancel();&lt;br /&gt;
private:&lt;/p&gt;

&lt;p&gt;CTelephony* 			iTelephony;&lt;br /&gt;
CTelephony::TCallParamsV1 callParams;&lt;br /&gt;
CTelephony::TCallId 	iCallId;&lt;/p&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;//this class is used for sending DTMF tone&lt;/p&gt;

&lt;p&gt;class CCallDialer2 : public CActive&lt;br /&gt;
{ &lt;br /&gt;
public:&lt;br /&gt;
CCallDialer2();&lt;br /&gt;
void ConstructL();&lt;br /&gt;
~CCallDialer2();&lt;/p&gt;

&lt;p&gt;private:&lt;br /&gt;
void RunL();&lt;br /&gt;
void DoCancel();&lt;br /&gt;
private:&lt;/p&gt;

&lt;p&gt;CTelephony* 			iTelephony;&lt;br /&gt;
CTelephony::TCallParamsV1 callParams;&lt;br /&gt;
CTelephony::TCallId 	iCallId;&lt;/p&gt;

&lt;p&gt;};&lt;br /&gt;
#endif // CENGINE_H&lt;/p&gt;

&lt;p&gt;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
#include &quot;CEngine.h&quot;&lt;/p&gt;

&lt;p&gt;#include &lt;UTF.H&gt;&lt;br /&gt;
#include &lt;APGCLI.H&gt;&lt;/p&gt;

&lt;p&gt;CEngine* CEngine::NewL()&lt;br /&gt;
{&lt;br /&gt;
        CEngine* self = CEngine::NewLC();&lt;br /&gt;
        CleanupStack::Pop(); // self;&lt;br /&gt;
        return self;&lt;br /&gt;
}&lt;br /&gt;
CEngine* CEngine::NewLC()&lt;br /&gt;
{&lt;br /&gt;
        CEngine* self = new ( ELeave ) CEngine();&lt;br /&gt;
        CleanupStack::PushL( self );&lt;br /&gt;
        self-&gt;ConstructL();&lt;br /&gt;
        return self;&lt;br /&gt;
}&lt;/p&gt;

&lt;p&gt;CEngine::CEngine() : CActive( EPriorityHigh ),        // Standard priority                                                                       &lt;br /&gt;
                                                               iRemParty(iRemInfoUse),&lt;br /&gt;
                                                               iCallInfo(iCallInfoUse),&lt;br /&gt;
                                                               iCallSelection(iCallSelectionUse),&lt;br /&gt;
                                                               iCallStatusPkg(iCallStatus)       &lt;br /&gt;
        {&lt;br /&gt;
        iCallStatus.iStatus = CTelephony::EStatusUnknown;&lt;br /&gt;
        }&lt;/p&gt;

&lt;p&gt;void CEngine::ConstructL()&lt;br /&gt;
        {&lt;br /&gt;
        iTelephony = CTelephony::NewL();&lt;br /&gt;
        tel1 =  new (ELeave)CCallDialer1();&lt;br /&gt;
        CActiveScheduler::Add( this );&lt;br /&gt;
        }&lt;/p&gt;

&lt;p&gt;CEngine::~CEngine()&lt;br /&gt;
        {&lt;br /&gt;
                Cancel();&lt;br /&gt;
                if (iTelephony)&lt;br /&gt;
        {&lt;br /&gt;
        delete iTelephony;&lt;br /&gt;
        iTelephony = NULL;&lt;br /&gt;
        }&lt;br /&gt;
        }&lt;/p&gt;

&lt;p&gt;void CEngine::DoCancel()&lt;br /&gt;
        {&lt;br /&gt;
        iTelephony-&gt;CancelAsync(CTelephony::EVoiceLineStatusChangeCancel);&lt;br /&gt;
        }&lt;/p&gt;

&lt;p&gt;void CEngine::StartEngine()&lt;br /&gt;
        {&lt;br /&gt;
       &lt;br /&gt;
        iTelephony-&gt;NotifyChange(iStatus, CTelephony::EVoiceLineStatusChange, iCallStatusPkg);&lt;br /&gt;
        SetActive();&lt;br /&gt;
        &lt;br /&gt;
        }&lt;/p&gt;

&lt;p&gt;void CEngine::RunL()&lt;br /&gt;
{   &lt;br /&gt;
    if(iStatus==KErrNone)&lt;br /&gt;
            {&lt;br /&gt;
                      &lt;br /&gt;
            CTelephony::TCallStatus status = iCallStatus.iStatus;&lt;br /&gt;
              &lt;br /&gt;
              &lt;br /&gt;
               switch ( status )&lt;br /&gt;
                                 {&lt;br /&gt;
                                         case CTelephony::EStatusRinging:&lt;br /&gt;
                                                 {&lt;br /&gt;
                                                &lt;/p&gt;

&lt;p&gt;                                               // iTelephony-&gt;AnswerIncomingCall(iStatus,iCallId,CTelephony::EVoiceLine);&lt;br /&gt;
                                               &lt;br /&gt;
                                                }&lt;br /&gt;
                                          break;&lt;br /&gt;
                                 &lt;br /&gt;
                           &lt;br /&gt;
                                     case CTelephony::EStatusDialling:&lt;br /&gt;
                                             {&lt;br /&gt;
                                            &lt;/p&gt;

&lt;p&gt;                                 			}&lt;br /&gt;
                            break;      &lt;br /&gt;
                                     case CTelephony::EStatusConnected:&lt;br /&gt;
                                    	 {&lt;br /&gt;
                                    	//hear we will send pass code&lt;br /&gt;
                                    	 CCallDialer2* tele =  new ( ELeave )CCallDialer2;&lt;br /&gt;
                                    	&lt;br /&gt;
                                    	tele-&gt;ConstructL();&lt;br /&gt;
                                    		 &lt;br /&gt;
                                    	&lt;br /&gt;
                                    	 }break;&lt;br /&gt;
                                                           &lt;br /&gt;
                                  }&lt;br /&gt;
                              &lt;br /&gt;
                               iTelephony-&gt;NotifyChange( iStatus,&lt;br /&gt;
                              CTelephony::EVoiceLineStatusChange,&lt;br /&gt;
                              iCallStatusPkg );&lt;br /&gt;
                               SetActive();&lt;br /&gt;
                 }&lt;br /&gt;
             &lt;br /&gt;
        }&lt;/p&gt;

&lt;p&gt;TInt CEngine::RunError( TInt aError )&lt;br /&gt;
{&lt;br /&gt;
        return aError;&lt;br /&gt;
}&lt;br /&gt;
void CEngine::Dil(TDesC &amp;crdno)&lt;br /&gt;
	{&lt;br /&gt;
	//crdno means number to dial&lt;/p&gt;

&lt;p&gt;	CCallDialer1* tel =  new ( ELeave )CCallDialer1;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	tel-&gt;ConstructL(crdno);&lt;br /&gt;
	}&lt;br /&gt;
//---------------------------------------------&lt;/p&gt;

&lt;p&gt;CCallDialer1::~CCallDialer1()&lt;br /&gt;
{&lt;br /&gt;
    Cancel();&lt;br /&gt;
    delete iTelephony;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void CCallDialer1::ConstructL(const TDesC&amp; aNumber)&lt;br /&gt;
{&lt;br /&gt;
    iTelephony = CTelephony::NewL();&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
    CTelephony::TTelNumber telNumber(aNumber);&lt;br /&gt;
 &lt;br /&gt;
    &lt;br /&gt;
    callParams.iIdRestrict = CTelephony::ESendMyId;&lt;br /&gt;
    CTelephony::TCallParamsV1Pckg callParamsPckg(callParams);&lt;br /&gt;
    &lt;br /&gt;
    iTelephony-&gt;DialNewCall(iStatus, callParamsPckg, telNumber, iCallId);&lt;br /&gt;
   &lt;br /&gt;
	SetActive();&lt;br /&gt;
}&lt;/p&gt;

&lt;p&gt;CCallDialer1::CCallDialer1()&lt;br /&gt;
: CActive(EPriorityNormal)&lt;br /&gt;
{&lt;br /&gt;
    CActiveScheduler::Add(this);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void CCallDialer1::RunL()&lt;br /&gt;
{&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void CCallDialer1::DoCancel()&lt;br /&gt;
{&lt;br /&gt;
    iTelephony-&gt;CancelAsync(CTelephony::EDialNewCallCancel);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------&lt;br /&gt;
CCallDialer2::~CCallDialer2()&lt;br /&gt;
{&lt;br /&gt;
    Cancel();&lt;br /&gt;
    delete iTelephony;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void CCallDialer2::ConstructL()&lt;br /&gt;
{&lt;br /&gt;
    iTelephony = CTelephony::NewL();&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    callParams.iIdRestrict = CTelephony::ESendMyId;&lt;br /&gt;
    CTelephony::TCallParamsV1Pckg callParamsPckg(callParams);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    TBuf&lt;100&gt; passNum;&lt;br /&gt;
    passNum.Copy();&lt;br /&gt;
    passNum.Append(_L(&quot;p&quot;));&lt;br /&gt;
    passNum.Append();&lt;br /&gt;
// for example passnumber contains 1p2&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    iTelephony-&gt;SendDTMFTones(iStatus,passNum);&lt;br /&gt;
   &lt;br /&gt;
	SetActive();&lt;br /&gt;
}&lt;/p&gt;

&lt;p&gt;CCallDialer2::CCallDialer2()&lt;br /&gt;
: CActive(EPriorityNormal)&lt;br /&gt;
{&lt;br /&gt;
    CActiveScheduler::Add(this);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void CCallDialer2::RunL()&lt;br /&gt;
{&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void CCallDialer2::DoCancel()&lt;br /&gt;
{&lt;br /&gt;
    iTelephony-&gt;CancelAsync(CTelephony::EDialNewCallCancel);&lt;br /&gt;
}&lt;br /&gt;
&lt;/p&gt;</description>
 <pubDate>Wed, 01 Oct 2008 12:49:01 +0200</pubDate>
 <dc:creator>syamkumarm</dc:creator>
 <guid isPermaLink="false">comment 48857 at http://www.newlc.com</guid>
</item>
<item>
 <title>Delay in sending DTMF tones on S60 3rd edition</title>
 <link>http://www.newlc.com/forum/delay-sending-dtmf-tones-s60-3rd-edition</link>
 <description>&lt;p&gt;I am trying to send DTMF tones on a connected call (using CTelephony::SendDTMFTones). According to my experience, sending 10 digits takes more than 5 sec.&lt;/p&gt;

&lt;p&gt;Kindly suggest an approach of sending the DTMF faster.&lt;br /&gt;
What could be the reasons of such a behavior? Please help!  &lt;img src=&quot;/sites/all/modules/smileys/packs/example/puzzled.png&quot; title=&quot;Puzzled&quot; alt=&quot;Puzzled&quot; /&gt; &lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.newlc.com/forum/delay-sending-dtmf-tones-s60-3rd-edition&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.newlc.com/forum/delay-sending-dtmf-tones-s60-3rd-edition#comments</comments>
 <category domain="http://www.newlc.com/forums/telephony">Telephony</category>
 <pubDate>Fri, 02 May 2008 13:31:03 +0200</pubDate>
 <dc:creator>swatitrehan</dc:creator>
 <guid isPermaLink="false">20849 at http://www.newlc.com</guid>
</item>
</channel>
</rss>
