RFC 2833 RTP Event Sequential Events and End End Bit

Why do I get dtmf sound when bit E is 0 and there is no sound when it is 1? (RTP packets appear in wirehark anyway)

Story:

I can send the RFC 2833 dtmf event as described in http://www.ietf.org/rfc/rfc2833.txt receiving the following behavior when bit E is NOT set:

If keys are pressed 7874556332111111145855885#3, then ALL events are sent and displayed in the program, for example wirehark, but only sound 87456321458585#3. Thus, the first key (which, I believe, may be a separate issue), and any repetitions of the event (i.e. 11111) do not sound.

In section 3.9, Figure 2 of the aforementioned linked document, they give an example of 911, where all but the last event have bit E.

When I set the “E” bit to 1 for all numbers, I never get a sound event.

I thought of some possible reasons, but I don’t know if they are the reason:

1) Figure 2 shows the types of payloads 96 and 97 sent. I did not send these headers. In section 3.8, codes 96 and 97 are described as “dynamic payload types 96 and 97 were assigned to the reservation mechanism and telephone event payload, respectively”

2) In section 3.5 "E:" "the sender MAY delay the setting of the final bit until the last packet for the tone is retransmitted, and not its first transmission." Does anyone have an idea of ​​how to actually do this

3) , , .

4) RTP.

. :

6590 31.159045000 xx.x.x.xxx --.--.---.-- RTP EVENT Payload type=RTP Event, DTMF Pound # (end)
Real-Time Transport Protocol
 Stream setup by SDP (frame 6225)
  Setup frame: 6225
  Setup Method: SDP
 10.. .... = Version: RFC 1889 Version (2)
 ..0. .... = Padding: False
 ...0 .... = Extension: False
 .... 0000 = Contributing source identifiers count: 0
 0... .... = Marker: False
 Payload type: telephone-event (101)
 Sequence number: 0
 Extended sequence number: 65536
 Timestamp: 2000
 Synchronization Source identifier: 0x15f27104 (368210180)
RFC 2833 RTP Event
 Event ID: DTMF Pound # (11)
 1... .... = End of Event: True
 .0.. .... = Reserved: False
 ..00 0000 = Volume: 0
 Event Duration: 1000

: - , ietf.org/rfc/rfc2833.txt:

": DTMF , , , 0 . 0 -63 0. DTMF 0 -36 0 ( ); -55 0 (TR-TSY-000181, - Q.24A). , . DTMF. ". , " " .

+3
3

RFC 4733 :

, DTMF:

  • . M E . ​​ .
  • ( ). M E. , , (. RFC ).
  • ( ). M, E.

? , :

  • RFC (2.5.1.2. " " ), :

    , .

  • (2.5.1.4. " " ), :


    .
    , , .

:

, , 7874556332111111145855885 # 3 - , , wirehark, 87456321458585 # 3 . , (, , ) (.. 11111) .

WireShark , , , 1 , ; 1 , .

+6

, 0; ?

0

! laurent. . ( - )

, :

  • .
  • Setting all "E to 0" means that repeating the same key events have been ignored.
  • Setting all “E-1” means that I signaled the end of the event, but not the actual event - hence the silence.

Here is an example of a generic stream:

Event_ID    M    E    Timestamp      Duration    Sequence_number  
3           1    0    400            400          1
3           0    0    400            800          2
3           0    0    400            1200         3
3           0    0    400            1600         4
3           0    1    400            1600         5
3           0    1    400            1600         6
3           0    1    400            1600         7
7           1    0    800            400          8
7           0    0    800            800          9
7           0    0    800            1200         10
7           0    0    800            1600         11
7           0    1    800            1600         12
7           0    1    800            1600         13
7           0    1    800            1600         14

* Note: just looked at the first rfc4733 example in section 5, and that's great! much better than 2833

0
source

Source: https://habr.com/ru/post/1744029/


All Articles