class SippyCup::Media::DTMFPayload

Constants

DTMF
END_OF_EVENT
PTIME
RTP_PAYLOAD_ID
TIMESTAMP_INTERVAL

Attributes

ptime[RW]

Public Class Methods

new(digit, opts = {}) click to toggle source
Calls superclass method
# File lib/sippy_cup/media/dtmf_payload.rb, line 14
def initialize(digit, opts = {})
  super RTP_PAYLOAD_ID
  @flags = 0
  @digit = atoi digit
  @ptime = opts[:ptime] || PTIME

  volume opts[:volume] || 10
end

Public Instance Methods

atoi(digit) click to toggle source
# File lib/sippy_cup/media/dtmf_payload.rb, line 31
def atoi(digit)
  DTMF.index digit.to_s
end
end_of_event() click to toggle source
# File lib/sippy_cup/media/dtmf_payload.rb, line 41
def end_of_event
  @flags & END_OF_EVENT
end
end_of_event=(bool) click to toggle source
# File lib/sippy_cup/media/dtmf_payload.rb, line 23
def end_of_event=(bool)
  if bool
    @flags |= END_OF_EVENT
  else
    @flags &= (0xf - END_OF_EVENT)
  end
end
media() click to toggle source
# File lib/sippy_cup/media/dtmf_payload.rb, line 45
def media
  [@digit, @flags, timestamp_interval].pack 'CCn'
end
timestamp_interval() click to toggle source
# File lib/sippy_cup/media/dtmf_payload.rb, line 49
def timestamp_interval
  TIMESTAMP_INTERVAL
end
volume(value) click to toggle source
# File lib/sippy_cup/media/dtmf_payload.rb, line 35
def volume(value)
  value = [value, 0x3f].min # Cap to 6 bits
  @flags &= 0xc0 # zero out old volume
  @flags += value
end