[Linphone-users] problems when using ortp 0.13.1 to send dtmf
From:
god lu
Subject:
[Linphone-users] problems when using ortp 0.13.1 to send dtmf
Date:
Tue, 1 Apr 2008 16:46:33 +0800
Hi all, I am using ortp-0.13.1 to send dtmf, but I am confused with some problems :
1, In file telephonyevents.c, function rtp_session_send_dtmf, this function calls rtp_session_send_dtmf2 whose fourth parameter is 480,
Would you please explain it? Why 480 is used here?
2. In ortp-0.13.1/src/tests, there is a file called tevrtpsend.c, in the 'while' loop of the main function, the variable user_ts is incremented by (160+160+160) after calling rtp_session_send_dtmf(session, '*', user_ts). Is there some relationshiop between these three 160s and the 480 mentioned in my first question? If it does, Would you please give me a simple example ?
3. In file telephonyevents.c, function rtp_session_send_dtmf2, rtp_session_add_telephoone_event is call with various duration, and which figure should be incremented by duration, 160 or some others? Is there a formula to calculate it? For the original 160 didn't work.
By the way, DTMF using rfc2833 sent by linphone-2.0.0 also can't be recogonised by my PBX which connecting PSTN network and Internet. Have this functionality been proved to work correctly?
Also, I think there are two bugs in ortp-0.13.1; They are
1, In file telephonyevents.c, function rtp_session_send_dtmf2, rtp_session_sendm_with_ts is call with various timestamp when sending the same digits. In rfc2833: If an event contiunes for more than one period, the source generating the events should send a new event packet with the RTP timestamp value correspoding to the beginning of the event and the duration of the event increased correspondingly. (The RTP sequence number is incremented by one for each packet.)
So should we use the same timestamp here when we sending the same digits?
2.In file rtpsession.c, fucntion rtp_session_sendm_with_ts, lets take a look at following code if(session->snd.telephone_events_pt == rtp->paytype) { session->rtp.snd_seq++; rtp->seq_number = session->rtp.snd_seq; } else session-.rtp.snd_seq = rtp->seq_number+1;
I think should be this: if(session->snd.telephone_events_pt == rtp->paytype) { rtp->seq_number = session->rtp.snd_seq; session->rtp.snd_seq++; } else session-.rtp.snd_seq = rtp->seq_number+1;
or when rtp_session_sendm_with_ts is called to send dtmf digit, the sequence number will be like this ..........................................................................................................
sending rtp packet with seq is 56 sending rtp packet with seq is 57 sending rtp event packet wtih seq is 59
sending rtp event packet with seq is 60 sending rtp packet with seq is 60 .
end.
Any suggestion will be appreciated!
Thank you in advance.
--
Today is most important.
[Prev in Thread]
Current Thread
[Next in Thread]
[Linphone-users] problems when using ortp 0.13.1 to send dtmf,
god lu<=