A minimal Slybroadcast Ruby client implementation. Based on Slybroadcast API Version 2.1
See slybroadcast.com for information about this product.
require 'slybroadcast'
Slybroadcast::Client.credentials = { c_uid: '[email protected]', c_password: 'xxx' }
or
Slybroadcast::Client.verify({ c_uid: '[email protected]', c_password: 'secret' })
To verify your slybroadcast Username and Password.
Slybroadcast::Client.credentials = { c_uid: '[email protected]', c_password: 'xxx' }
result = Slybroadcast::Client.verify
result.success?
true
result.failed?
false
Posibles Params
Param name | Definition | Example |
---|---|---|
c_uid | Your Email Address | value="[email protected]" |
c_password | Your Password | value="12345678" |
c_url | URL for audio file if recorded elsewhere | value="http://www.yoursite.com/wav" |
c_audio | Audio file type (WAV or Mp3) | value="WAV" |
c_record_audio | Audio file name if recorded through the Slybroadcast Recording Center | name="MeetupRecording1" |
c_phone | Destination phone numbers | MAX: 10,000 per submission |
session_id | Session/Campaign ID | value="9123456789" |
c_callerID | Caller ID of campaign | value="6173999980" |
c_date | Date/Time of delivery (EST) YYYY-MM-DD HH:MM:SS Must use military time format | value="2015-12-31 15:00:00" value="now" |
mobile_only | Campaign sent to mobile numbers only | value="1" |
c_endtime | End Time for campaign (EST) HH:MM:SS | Must use military time format value="17:59:59" |
c_sys_audio_name | Use ONLY if sending the system file name of your audio file | value="r18904b140407197964.wav" |
c_dispo_url | URL that will receive call status post backs | value=https://www.yoursite.com/results" |
Campaign submission with audio file previously uploaded.
result = Slybroadcast::Client.campaign_call(
c_phone: "+16173999981, +16173999982, +16173999983",
c_record_audio: "Meetup1",
c_callerID: "+16173999980",
c_date: "now",
mobile_only: "1"
)
result.success?
true
result.session_id
1234567788
result.failed?
false
result.error
"Bad Audio, can't download"
Campaign submission using a client's audio file.
result = Slybroadcast::Client.campaign_call(
c_phone: "+16173999981, +16173999982, +16173999983",
c_url: "https://user_audio_url",
c_callerID: "+16173999980",
c_date: "now",
mobile_only: "1",
c_audio: "mp3"
)
result.success?
true
result.session_id
1234567788
result.failed?
false
result.error
"Bad Audio, can't download"
To receive a status of each call, MobileSphere uses webhook. The POST HTTP Form method is used. Clients should provide a URL to which each call status data can be posted automatically. This is optional.
Example: c_dispo_url = "https://www.yoursite.com/results"
If c_dispo_url is provided, each call status is sent back using POST and you can use Slybroadcast::Utilities.callback_parser to parse this POST
Posible response :
session_id, phone_number, status, failure_reason, delivery_time, carrier
Example
example_body = "9996130985|9996449444|OK||2017-05-11 17:38:18|verizon wireless:6006 - svr/2"
Slybroadcast::Utilities.callback_parser(example_body) do |session_id, phone_number, status, failure_reason, delivery_time, carrier|
{
session_id: session_id,
phone_number: phone_number,
status: status,
failure_reason: failure_reason,
delivery_time: delivery_time,
carrier: carrier
}
end
To request the call status of one phone number, the following parameters must be included. Be sure the session_id is the one received in response to your initial campaign submission.
result = Slybroadcast::Client.campaign_status(
session_id: "123456",
c_phone: "9996449444"
)
result.success?
true
result.call
{
:session_id=>"123456",
:phone_number=>"9996449444",
:status=>"OK",
:failure_reason=>"",
:delivery_time=>"2017-05-11 17:38:18",
:carrier=>"verizon wireless:6006 - svr/2"
}
To temporarily pause a campaign or session, but not cancel it.
result = Slybroadcast::Client.campaign_pause(session_id: "6045428032")
result.success?
true
result.session_id
1234567788
result.failed?
false
result.error
"already finished"
To resume a campaign.
result = Slybroadcast::Client.campaign_resume(session_id: "6045428032")
result.success?
true
result.session_id
1234567788
result.failed?
false
result.error
"already finished"
To cancel a campaign.
result = Slybroadcast::Client.campaign_cancel(session_id: "6045428032")
result.success?
true
result.session_id
1234567788
result.failed?
false
result.error
"already finished"
To request the number of remaining messages in your account.
result = Slybroadcast::Client.account_message_balance
result.success?
true
result.remaining_messages
"12345"
result.pending_messages
"123"
result.failed?
false
To view a full list of your audio files.
result = Slybroadcast::Client.list_audio_files
result.success?
true
result.list
[
{:system_file_name=>"170425242023265.wav", :audio_file_name=>"123456", :created=>"2017-04-25 22:42:25"},
{:system_file_name=>"294b755.wav", :audio_file_name=>"recording20160425-31049-1mq2hk7", :created=>"2017-05-03 20:39:11"},
{:system_file_name=>"15213094.wav", :audio_file_name=>"Test01", :created=>"2017-05-03 20:38:16"}
]
result.failed?
false