dtmf and kpml

Upload: parag-mahajani

Post on 14-Apr-2018

249 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 Dtmf and Kpml

    1/19

    12/1/2008

    Dual Tone Multi Frequencyand

    Key Press Markup Language

    VoIP Security (COMS W4995)

    Prof. Henning Schulzrinne

    Aniruddha Niranjan

    Computer Science Department

  • 7/27/2019 Dtmf and Kpml

    2/19

    Overview

    DTMF

    Introduction

    Architecture

    Encoding

    Transmission

    Decoding Security

    KPML

    Introduction

    Operation

    Key Concepts

    DRegex

    Security

    2

  • 7/27/2019 Dtmf and Kpml

    3/19

    DTMF

    Method to instruct the telephone switching

    system of number to be dialed

    To issue commands to switching system

    or related telephony systems

    Numbers and commands issued from a

    keypad

    Used mostly in interactive response

    systems

    3

  • 7/27/2019 Dtmf and Kpml

    4/19

    Architecture

    4

    Three modules

    Generation at keypad

    Transmission using RTP

    Decoding

    DecodingTransmissionGeneration

  • 7/27/2019 Dtmf and Kpml

    5/19

    Keypad Frequencies

    Set of low

    frequencies

    Set of high

    frequencies

    Button click

    generates acombination

    8 => S(852, 1336)

    5

  • 7/27/2019 Dtmf and Kpml

    6/19

    Transmission using RTP

    Payload format designated as telephone-

    event

    Media type is audio/telephone-event

    Carried as part of audio stream

    Considered a very highly compressed

    audio codec

    6

  • 7/27/2019 Dtmf and Kpml

    7/19

    Transmission using RTP

    Timestamp and marker bit of RTP

    header used

    Payload format

    Number between 0

    and 255 identifies

    specific telephony

    event

    End of

    event

    Reserved,

    set to 0

    Duration of event or

    segment

    Power level

    of the tone

    7

  • 7/27/2019 Dtmf and Kpml

    8/19

    Decoding

    Firstly checks are performed based on

    Frequency groups

    Inter-digit interval

    Signal strength

    Goertzel algorithm for decoding

    Uses Discrete Fourier Transforms

    8

  • 7/27/2019 Dtmf and Kpml

    9/19

    Security

    Telephone event payload highly

    compressed

    Very high sensitivity to even small

    changes in bit values

    Secure Real Time Protocol must be

    implemented

    9

  • 7/27/2019 Dtmf and Kpml

    10/19

    KPML

    Capturing DTMF tones that are

    supplemental or mid-call key presses

    SIP event notification package

    SUBSCRIBE and NOTIFY methods used

    Goal is to optimize memory usage and

    processing time

    10

  • 7/27/2019 Dtmf and Kpml

    11/19

    SIP Based OperationCaller CalleeApplication Server

    (1) INVITE

    (2) 200 OK

    (3) ACK

    (4) SUBSCRIBE

    (5) 200 OK

    (6) NOTIFY

    (7) 200 OK

    (9) NOTIFY (Digits)

    (10) 200 OK

    (8)

    11

  • 7/27/2019 Dtmf and Kpml

    12/19

    Key Concepts

    Subscription

    Duration

    PersistentNon-persistent

    Single NOTIFY Continuous NOTIFY

    Timers

    Inter-Digit

    Critical

    Extra

    12

  • 7/27/2019 Dtmf and Kpml

    13/19

    Key Concepts

    Pattern matches

    Digit suppression

    User input buffer behavior

    13

  • 7/27/2019 Dtmf and Kpml

    14/19

    DRegex

    Digit Regular expression mapping of

    POSIX extended regular expressions

    POSIX not used directly

    Mapping used

    14

  • 7/27/2019 Dtmf and Kpml

    15/19

    DRegex

    A few example expressions15

  • 7/27/2019 Dtmf and Kpml

    16/19

    DRegex Formal Syntax

    Augmented Backus-Naur Form

    DRegex = 1*( DRegexPosition [ RepeatCount ] )

    DRegexPosition = DRegexSymbol / DRegexSet

    DRegexSymbol = [ "L" ] DRegexCharacter

    DRegexSet = "[" 1*DRegexSetList "]"

    DRegexSetList = DRegexCharacter [ "-" DRegexCharacter ]DRegexCharacter = DIGIT / "A" / "B" / "C" / "D" / R / "*" / "#" /

    "a" / "b" / "c" / "d" / r

    RepeatCount = "." / "{" RepeatRange "}"

    RepeatRange = Count / ( Count "," Count ) /

    ( Count "," ) / ( "," Count )

    Count = 1*DIGIT

    16

  • 7/27/2019 Dtmf and Kpml

    17/19

    KPML Security

    Sensitive information may be typed in

    through keypad

    Unauthenticated subscriptions can create

    problems too

    Use of mechanisms such as TLS, sips,

    S/MIME recommended

    17

  • 7/27/2019 Dtmf and Kpml

    18/19

    Conclusion

    DTMF maps keypad characters to a

    combination of predefined frequencies

    Transported as an RTP payload and

    decoded using Goertzel algorithm

    KPML enables transport of mid-call key

    press information

    A SIP-centric model that makes use of

    DRegex

    18

  • 7/27/2019 Dtmf and Kpml

    19/19

    References

    http://nemesis.lonestar.org/reference/telec

    om/signaling/dtmf.html

    http://www.corp.att.com/history/milestone

    _1963.html

    http://ltl13.exp.sis.pitt.edu/WebSite/Gloss

    ary/Letters/D.htm

    RFC 4733; H. Schulzrinne, M.Taylor

    RFC 4730; E. Burger, M. Dolly19