class OpenTok::Sip

Public Class Methods

new(client) click to toggle source
# File lib/opentok/sip.rb, line 76
def initialize(client)
  @client = client
end

Public Instance Methods

dial(session_id, token, sip_uri, opts) click to toggle source

Dials a SIP gateway to input an audio-only stream into your OpenTok session. See the {tokbox.com/developer/guides/sip/ OpenTok SIP developer guide}.

@example

opts = { "from" => "14155550101@example.com",
  "auth" => { "username" => sip_username,
    "password" => sip_password },
  "headers" => { "X-KEY1" => "value1",
    "X-KEY1" => "value2" },
  "secure" => "true",
  "video" => "true",
  "observe_force_mute" => "true"
}
response = opentok.sip.dial(session_id, token, "sip:+15128675309@acme.pstn.example.com;transport=tls", opts)

@param [String] session_id The session ID corresponding to the session to which

the SIP gateway will connect.

@param [String] token The token for the session ID with which the SIP user

will use to connect.

@param [String] sip_uri The SIP URI the OpenTok SIP gateway will dial. @param [Hash] opts A hash defining options for the SIP call. For example: @option opts [String] :from The number or string that will be sent to the final

SIP number as the caller. It must be a string in the form of "from@example.com",
where from can be a string or a number. If from is set to a number
(for example, "14155550101@example.com"), it will show up as the incoming
number on PSTN phones. If from is undefined or set to a string (for example,
"joe@example.com"), +00000000 will show up as the incoming number on
PSTN phones.

@option opts [Hash] :headers This hash defines custom headers to be added

to the SIP ​INVITE​ request initiated from OpenTok to the your SIP platform.

@option opts [Hash] :auth This object contains the username and password

to be used in the the SIP INVITE​ request for HTTP digest authentication,
if it is required by your SIP platform.

@option opts [true, false] :secure Whether the media must be transmitted

encrypted (​true​) or not (​false​, the default).

@option opts [true, false] :video Whether the SIP call will include

video (​true​) or not (​false​, the default). With video included, the SIP
client's video is included in the OpenTok stream that is sent to the
OpenTok session. The SIP client will receive a single composed video of
the published streams in the OpenTok session.

@option opts [true, false] :observe_force_mute Whether the SIP end point

observes {https://tokbox.com/developer/guides/moderation/#force_mute force mute moderation}
(true) or not (false, the default).

@option opts [Array] :streams An array of stream IDs for streams to include in the SIP call.

If you do not set this property, all streams in the session are included in the call.
# File lib/opentok/sip.rb, line 50
def dial(session_id, token, sip_uri, opts)
  response = @client.dial(session_id, token, sip_uri, opts)
end
play_dtmf_to_connection(session_id, connection_id, dtmf_digits) click to toggle source

Sends DTMF digits to a specific client connected to an OpnTok session.

@param [String] session_id The session ID. @param [String] connection_id The connection ID of the specific connection that the DTMF signal is being sent to. @param [String] dtmf_digits The DTMF digits to send. This can include 0-9, “*”, “#”, and “p”. A p indicates a pause of 500ms (if you need to add a delay in sending the digits).

# File lib/opentok/sip.rb, line 61
def play_dtmf_to_connection(session_id, connection_id, dtmf_digits)
  raise ArgumentError, "invalid DTMF digits" unless dtmf_digits_valid?(dtmf_digits)
  response = @client.play_dtmf_to_connection(session_id, connection_id, dtmf_digits)
end
play_dtmf_to_session(session_id, dtmf_digits) click to toggle source

Sends DTMF digits to all clients connected to an OpnTok session.

@param [String] session_id The session ID. @param [String] dtmf_digits The DTMF digits to send. This can include 0-9, “*”, “#”, and “p”. A p indicates a pause of 500ms (if you need to add a delay in sending the digits).

# File lib/opentok/sip.rb, line 71
def play_dtmf_to_session(session_id, dtmf_digits)
  raise ArgumentError, "invalid DTMF digits" unless dtmf_digits_valid?(dtmf_digits)
  response = @client.play_dtmf_to_session(session_id, dtmf_digits)
end

Private Instance Methods

dtmf_digits_valid?(dtmf_digits) click to toggle source
# File lib/opentok/sip.rb, line 82
def dtmf_digits_valid?(dtmf_digits)
  dtmf_digits.match?(/^[0-9*#p]+$/)
end