Sha256: f4031419de378bf090b9e57f5091030ef4c6e56f3322b630a930673f0ee2ad9d

Contents?: true

Size: 966 Bytes

Versions: 22

Compression:

Stored size: 966 Bytes

Contents

module OverSIP::SIP

  module Tags

    PREFIX_FOR_TOTAG_SL_REPLIED = ::SecureRandom.hex(4) + "."
    REGEX_PREFIX_FOR_TOTAG_SL_REPLIED = /^#{PREFIX_FOR_TOTAG_SL_REPLIED}/

    ROUTE_OVID_VALUE = ::SecureRandom.hex(4)
    ROUTE_OVID_VALUE_HASH = ROUTE_OVID_VALUE.hash

    ANTILOOP_CONST = ::SecureRandom.hex(1)


    def self.totag_for_sl_reply
      PREFIX_FOR_TOTAG_SL_REPLIED + ::SecureRandom.hex(4)
    end

    def self.check_totag_for_sl_reply totag
      return nil unless totag
      totag =~ REGEX_PREFIX_FOR_TOTAG_SL_REPLIED
    end

    def self.value_for_route_ovid
      ROUTE_OVID_VALUE
    end

    def self.check_value_for_route_ovid value
      return nil unless value
      value.hash == ROUTE_OVID_VALUE_HASH
    end

    def self.create_antiloop_id request
      # It produces a 32 chars string.
      ::Digest::MD5.hexdigest "#{ANTILOOP_CONST}#{request.ruri.uri}#{request.call_id}#{request.routes[0].uri if request.routes}"
    end

  end

end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
oversip-1.2.1 lib/oversip/sip/tags.rb
oversip-1.2.0 lib/oversip/sip/tags.rb
oversip-1.1.2 lib/oversip/sip/tags.rb
oversip-1.1.1 lib/oversip/sip/tags.rb
oversip-1.1.0 lib/oversip/sip/tags.rb
oversip-1.1.0.beta5 lib/oversip/sip/tags.rb
oversip-1.1.0.beta4 lib/oversip/sip/tags.rb
oversip-1.1.0.beta3 lib/oversip/sip/tags.rb
oversip-1.1.0.beta2 lib/oversip/sip/tags.rb
oversip-1.1.0.beta1 lib/oversip/sip/tags.rb
oversip-1.0.7.beta1 lib/oversip/sip/tags.rb
oversip-1.0.6.beta3 lib/oversip/sip/tags.rb
oversip-1.0.6.beta2 lib/oversip/sip/tags.rb
oversip-1.0.6.beta1 lib/oversip/sip/tags.rb
oversip-1.0.5 lib/oversip/sip/tags.rb
oversip-1.0.4 lib/oversip/sip/tags.rb
oversip-1.0.3 lib/oversip/sip/tags.rb
oversip-1.0.2 lib/oversip/sip/tags.rb
oversip-1.0.1 lib/oversip/sip/tags.rb
oversip-1.0.0 lib/oversip/sip/tags.rb