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.
_______________________________________________
Linphone-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/linphone-users

Reply via email to