Thursday, July 16, 2015

How to determine if DTMF Digits are being passed SIP using RTP-NTE

Call Flow Example: PSTN>>>CUBE>>>CVP>>>ICM

Example Scenerio : Customers call 800-555-1234, and press 9 to dial by extension  at IVR prompt and then press desired extension  78945.


You check the route call detail for the call and see that caller entered digits does not equal 78945. (7894 for example)

You check CVP logs and the caller entered digits the same as shown in ICM.

Next, you want to determine if CUBE is receiving the correct digits from the telco and if its forwarding the correct digits.


Use debug voip rtp session named-event on the CUBE to see the DTMF digits entered by the caller.


Example Output

40579832: .Jul 16 14:41:03.899:          s=VoIP d=DSP payload 0x64 ssrc 0xA8633D3B sequence 0x6057 timestamp 0xC371A6EC
40579833: .Jul 16 14:41:03.899:  <<<Rcv> Pt:100    Evt:8       Pkt:0A 00 00
40579834: .Jul 16 14:41:03.899:          s=DSP d=VoIP payload 0x64 ssrc 0xA8633D3B sequence 0x6057 timestamp 0xC371A6EC
40579835: .Jul 16 14:41:03.899:          Pt:100    Evt:8       Pkt:0A 00 00  <Snd>>>
40579836: .Jul 16 14:41:03.919:          s=VoIP d=DSP payload 0x64 ssrc 0xA8633D3B sequence 0x6059 timestamp 0xC371A6EC
40579837: .Jul 16 14:41:03.919:  <<<Rcv> Pt:100    Evt:8       Pkt:0A 00 A0
40579838: .Jul 16 14:41:03.919:          s=DSP d=VoIP payload 0x64 ssrc 0xA8633D3B sequence 0x6059 timestamp 0xC371A6EC
40579839: .Jul 16 14:41:03.919:          Pt:100    Evt:8       Pkt:0A 00 A0  <Snd>>>
40579840: .Jul 16 14:41:03.939:          s=VoIP d=DSP payload 0x64 ssrc 0xA8633D3B sequence 0x605B timestamp 0xC371A6EC
40579841: .Jul 16 14:41:03.939:  <<<Rcv> Pt:100    Evt:8       Pkt:0A 01 40
40579842: .Jul 16 14:41:03.939:          s=DSP d=VoIP payload 0x64 ssrc 0xA8633D3B sequence 0x605B timestamp 0xC371A6EC
40579843: .Jul 16 14:41:03.939:          Pt:100    Evt:8       Pkt:0A 01 40  <Snd>>>
40579844: .Jul 16 14:41:03.959:          s=VoIP d=DSP payload 0x64 ssrc 0xA8633D3B sequence 0x605D timestamp 0xC371A6EC
40579845: .Jul 16 14:41:03.959:  <<<Rcv> Pt:100    Evt:8       Pkt:0A 01 E0
40579846: .Jul 16 14:41:03.959:          s=DSP d=VoIP payload 0x64 ssrc 0xA8633D3B sequence 0x605D timestamp 0xC371A6EC
40579847: .Jul 16 14:41:03.959:          Pt:100    Evt:8       Pkt:0A 01 E0  <Snd>>>
40579848: .Jul 16 14:41:03.979:          s=VoIP d=DSP payload 0x64 ssrc 0xA8633D3B sequence 0x605F timestamp 0xC371A6EC
40579849: .Jul 16 14:41:03.979:  <<<Rcv> Pt:100    Evt:8       Pkt:0A 02 80
40579850: .Jul 16 14:41:03.979:          s=DSP d=VoIP payload 0x64 ssrc 0xA8633D3B sequence 0x605F timestamp 0xC371A6EC
40579851: .Jul 16 14:41:03.979:          Pt:100    Evt:8       Pkt:0A 02 80  <Snd>>>

Based on the output above 

EVT:8 would be the digit pressed by the caller.

SSRC = Synchronization source identifier uniquely identifies the source of a stream. Therefore , if customer dialed 8 to dial by extension then ext. 78945 all the digits pressed on this call would have the same SSRC ID.

<<<Rcv>/ <Snd>>> = Received and sent packets under normal behavior a packet that is received from one leg of the call is sent to the other leg of the call.


SequenceThe sequence number is incremented by one for each RTP data packet sent and is to be used by the receiver to detect packet loss and to restore packet sequence.