Speech API for Ruby on rails

Send automated voice calls with our API for Ruby on rails easily and securely. Try our API for Ruby on rails for free. Our team will help you integrate automated voice delivery into your app at Ruby on rails.

Auto call API functionality

Send voice text-to-speech with Ruby on rails

# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoice";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_from="34900000000";
afilnet_message="voice+test";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/?class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&to="+afilnet_to+"&from="+afilnet_from+"&message="+afilnet_message+"&scheduledatetime="+afilnet_scheduledatetime+"&language="+afilnet_language+"&voice="+afilnet_voice+"&output="+afilnet_output;
	
uri = URI(sUrl) 
response = Net::HTTP.get(uri)
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoice";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_from="34900000000";
afilnet_message="voice+test";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/";

uri = URI(sUrl) 
response = Net::HTTP.post_form(uri, "class" => afilnet_class, "method" => afilnet_method, "user" => afilnet_user, "password" => afilnet_password, "to" => afilnet_to, "from" => afilnet_from, "message" => afilnet_message, "scheduledatetime" => afilnet_scheduledatetime, "language" => afilnet_language, "voice" => afilnet_voice, "output" => afilnet_output)
	
puts response.body
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoice";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_from="34900000000";
afilnet_message="voice+test";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/basic/?class="+afilnet_class+"&method="+afilnet_method+"&to="+afilnet_to+"&from="+afilnet_from+"&message="+afilnet_message+"&scheduledatetime="+afilnet_scheduledatetime+"&language="+afilnet_language+"&voice="+afilnet_voice+"&output="+afilnet_output;
	
uri = URI(sUrl) 

req = Net::HTTP::Get.new(uri)
req.basic_auth afilnet_user, afilnet_password

res = Net::HTTP.start(uri.hostname) {|http|
  http.request(req)
}

puts res.body
# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="sendvoice";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_from="34900000000";
afilnet_message="voice+test";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"to\":\""+afilnet_to+"\",\"from\":\""+afilnet_from+"\",\"message\":\""+afilnet_message+"\",\"scheduledatetime\":\""+afilnet_scheduledatetime+"\",\"language\":\""+afilnet_language+"\",\"voice\":\""+afilnet_voice+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body
Parameter Description Compulsory / Optional
class=voice Class requested: Class to which the request is made Compulsory
method=sendvoice Class method requested: Method of the class to which the request is made Compulsory
user User and e-mail of your Afilnet account Compulsory
password Password of your Afilnet account Compulsory
to Mobile or landline number where the voice call will be sent Compulsory
from Sender of the voice call, it must be a phone number, if an unaccepted sender is included, the voice call will be sent with an unknown sender Compulsory
message Message to be played by voice in voice call Compulsory
scheduledatetime Date and time of shipment in yyyy-mm-dd hh:mm:ss format Optional
language Language in which the voice call will be played, check attached table to see available values Optional
voice Voice with which the voice call will be played, check attached table to see available values Optional
output Output format of the result Optional
Answer:
  • status
  • result (if status=success), here you will receive the following values:
    • messageid
    • credits
  • error (if status=error), here you will receive the error code

Error codes:
Code Description
MISSING_USER User or email not included
MISSING_PASSWORD Password not included
MISSING_CLASS Class not included
MISSING_METHOD Method not included
MISSING_COMPULSORY_PARAM Compulsory parameter not included
INCORRECT_USER_PASSWORD Incorrect user or password
INCORRECT_CLASS Incorrect class
INCORRECT_METHOD Incorrect method
NO_ROUTE_AVAILABLE There are no available paths for the indicated destination
NO_CREDITS Your balance is insufficient

Send voice from template with Ruby on rails

# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="sendvoice";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_from="34900000000";
afilnet_message="voice+test";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"to\":\""+afilnet_to+"\",\"from\":\""+afilnet_from+"\",\"message\":\""+afilnet_message+"\",\"scheduledatetime\":\""+afilnet_scheduledatetime+"\",\"language\":\""+afilnet_language+"\",\"voice\":\""+afilnet_voice+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicefromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_idtemplate="1000";
afilnet_params="mobile:123456789,name:test+name";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/?class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&to="+afilnet_to+"&idtemplate="+afilnet_idtemplate+"¶ms="+afilnet_params+"&scheduledatetime="+afilnet_scheduledatetime+"&language="+afilnet_language+"&voice="+afilnet_voice+"&output="+afilnet_output;
	
uri = URI(sUrl) 
response = Net::HTTP.get(uri)
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicefromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_idtemplate="1000";
afilnet_params="mobile:123456789,name:test+name";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/";

uri = URI(sUrl) 
response = Net::HTTP.post_form(uri, "class" => afilnet_class, "method" => afilnet_method, "user" => afilnet_user, "password" => afilnet_password, "to" => afilnet_to, "idtemplate" => afilnet_idtemplate, "params" => afilnet_params, "scheduledatetime" => afilnet_scheduledatetime, "language" => afilnet_language, "voice" => afilnet_voice, "output" => afilnet_output)
	
puts response.body
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicefromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_idtemplate="1000";
afilnet_params="mobile:123456789,name:test+name";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/basic/?class="+afilnet_class+"&method="+afilnet_method+"&to="+afilnet_to+"&idtemplate="+afilnet_idtemplate+"¶ms="+afilnet_params+"&scheduledatetime="+afilnet_scheduledatetime+"&language="+afilnet_language+"&voice="+afilnet_voice+"&output="+afilnet_output;
	
uri = URI(sUrl) 

req = Net::HTTP::Get.new(uri)
req.basic_auth afilnet_user, afilnet_password

res = Net::HTTP.start(uri.hostname) {|http|
  http.request(req)
}

puts res.body
# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="sendvoicefromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_idtemplate="1000";
afilnet_params="mobile:123456789,name:test+name";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"to\":\""+afilnet_to+"\",\"idtemplate\":\""+afilnet_idtemplate+"\",\"params\":\""+afilnet_params+"\",\"scheduledatetime\":\""+afilnet_scheduledatetime+"\",\"language\":\""+afilnet_language+"\",\"voice\":\""+afilnet_voice+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body
Parameter Description Compulsory / Optional
class=voice Class requested: Class to which the request is made Compulsory
method=sendvoicefromtemplate Class method requested: Method of the class to which the request is made Compulsory
user User and e-mail of your Afilnet account Compulsory
password Password of your Afilnet account Compulsory
to Mobile or landline number where the voice call will be sent Compulsory
idtemplate Identifier of the template that contains the message that the voice call will play Compulsory
params Parameters to be substituted in the template for voice call customization, each {{parameter}} will be replaced by the assigned value Optional
scheduledatetime Date and time of shipment in yyyy-mm-dd hh:mm:ss format Optional
language Language in which the voice call will be played, check attached table to see available values Optional
voice Voice with which the voice call will be played, check attached table to see available values Optional
output Output format of the result Optional
Answer:
  • status
  • result (if status=success), here you will receive the following values:
    • messageid
    • credits
  • error (if status=error), here you will receive the error code

Error codes:
Code Description
MISSING_USER User or email not included
MISSING_PASSWORD Password not included
MISSING_CLASS Class not included
MISSING_METHOD Method not included
MISSING_COMPULSORY_PARAM Compulsory parameter not included
INCORRECT_USER_PASSWORD Incorrect user or password
INCORRECT_CLASS Incorrect class
INCORRECT_METHOD Incorrect method
NO_ROUTE_AVAILABLE There are no available paths for the indicated destination
NO_CREDITS Your balance is insufficient
NOT_ACCESS_TO_TEMPLATE You haven't access to the selected template

Send bulk voice with Ruby on rails

# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="sendvoicefromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_to="34600000000";
afilnet_idtemplate="1000";
afilnet_params="mobile:123456789,name:test+name";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"to\":\""+afilnet_to+"\",\"idtemplate\":\""+afilnet_idtemplate+"\",\"params\":\""+afilnet_params+"\",\"scheduledatetime\":\""+afilnet_scheduledatetime+"\",\"language\":\""+afilnet_language+"\",\"voice\":\""+afilnet_voice+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicetogroup";
afilnet_user="user";
afilnet_password="password";
afilnet_from="34900000000";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_message="sms+test";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_scheduledatetime="";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/?class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&from="+afilnet_from+"&countrycode="+afilnet_countrycode+"&idgroup="+afilnet_idgroup+"&message="+afilnet_message+"&language="+afilnet_language+"&voice="+afilnet_voice+"&scheduledatetime="+afilnet_scheduledatetime+"&output="+afilnet_output;
	
uri = URI(sUrl) 
response = Net::HTTP.get(uri)
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicetogroup";
afilnet_user="user";
afilnet_password="password";
afilnet_from="34900000000";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_message="sms+test";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_scheduledatetime="";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/";

uri = URI(sUrl) 
response = Net::HTTP.post_form(uri, "class" => afilnet_class, "method" => afilnet_method, "user" => afilnet_user, "password" => afilnet_password, "from" => afilnet_from, "countrycode" => afilnet_countrycode, "idgroup" => afilnet_idgroup, "message" => afilnet_message, "language" => afilnet_language, "voice" => afilnet_voice, "scheduledatetime" => afilnet_scheduledatetime, "output" => afilnet_output)
	
puts response.body
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicetogroup";
afilnet_user="user";
afilnet_password="password";
afilnet_from="34900000000";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_message="sms+test";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_scheduledatetime="";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/basic/?class="+afilnet_class+"&method="+afilnet_method+"&from="+afilnet_from+"&countrycode="+afilnet_countrycode+"&idgroup="+afilnet_idgroup+"&message="+afilnet_message+"&language="+afilnet_language+"&voice="+afilnet_voice+"&scheduledatetime="+afilnet_scheduledatetime+"&output="+afilnet_output;
	
uri = URI(sUrl) 

req = Net::HTTP::Get.new(uri)
req.basic_auth afilnet_user, afilnet_password

res = Net::HTTP.start(uri.hostname) {|http|
  http.request(req)
}

puts res.body
# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="sendvoicetogroup";
afilnet_user="user";
afilnet_password="password";
afilnet_from="34900000000";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_message="sms+test";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_scheduledatetime="";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"from\":\""+afilnet_from+"\",\"countrycode\":\""+afilnet_countrycode+"\",\"idgroup\":\""+afilnet_idgroup+"\",\"message\":\""+afilnet_message+"\",\"language\":\""+afilnet_language+"\",\"voice\":\""+afilnet_voice+"\",\"scheduledatetime\":\""+afilnet_scheduledatetime+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body
Parameter Description Compulsory / Optional
class=voice Class requested: Class to which the request is made Compulsory
method=sendvoicetogroup Class method requested: Method of the class to which the request is made Compulsory
user User and e-mail of your Afilnet account Compulsory
password Password of your Afilnet account Compulsory
from Sender of the voice call, it must be a phone number, if an unaccepted sender is included, the voice call will be sent with an unknown sender Compulsory
countrycode Country prefix Compulsory
idgroup Group identifier containing the contacts to which the voice call will be sent Compulsory
message Message to be played by voice in voice call Compulsory
language Language in which the voice call will be played, check attached table to see available values Optional
voice Voice with which the voice call will be played, check attached table to see available values Optional
scheduledatetime Date and time of shipment in yyyy-mm-dd hh:mm:ss format Optional
output Output format of the result Optional
Answer:
  • status
  • result (if status=success), here you will receive the following values:
    • id
    • count
    • credits
    • destinations
      • messageid
      • destination
  • error (if status=error), here you will receive the error code

Error codes:
Code Description
MISSING_USER User or email not included
MISSING_PASSWORD Password not included
MISSING_CLASS Class not included
MISSING_METHOD Method not included
MISSING_COMPULSORY_PARAM Compulsory parameter not included
INCORRECT_USER_PASSWORD Incorrect user or password
INCORRECT_CLASS Incorrect class
INCORRECT_METHOD Incorrect method
NOT_ACCESS_TO_GROUP You are not allowed into the indicated group
NO_CREDITS Your balance is insufficient

Send bulk voice from template with Ruby on rails

# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="sendvoicetogroup";
afilnet_user="user";
afilnet_password="password";
afilnet_from="34900000000";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_message="sms+test";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_scheduledatetime="";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"from\":\""+afilnet_from+"\",\"countrycode\":\""+afilnet_countrycode+"\",\"idgroup\":\""+afilnet_idgroup+"\",\"message\":\""+afilnet_message+"\",\"language\":\""+afilnet_language+"\",\"voice\":\""+afilnet_voice+"\",\"scheduledatetime\":\""+afilnet_scheduledatetime+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicetogroupfromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_idtemplate="1000";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/?class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&countrycode="+afilnet_countrycode+"&idgroup="+afilnet_idgroup+"&idtemplate="+afilnet_idtemplate+"&scheduledatetime="+afilnet_scheduledatetime+"&language="+afilnet_language+"&voice="+afilnet_voice+"&output="+afilnet_output;
	
uri = URI(sUrl) 
response = Net::HTTP.get(uri)
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicetogroupfromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_idtemplate="1000";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/";

uri = URI(sUrl) 
response = Net::HTTP.post_form(uri, "class" => afilnet_class, "method" => afilnet_method, "user" => afilnet_user, "password" => afilnet_password, "countrycode" => afilnet_countrycode, "idgroup" => afilnet_idgroup, "idtemplate" => afilnet_idtemplate, "scheduledatetime" => afilnet_scheduledatetime, "language" => afilnet_language, "voice" => afilnet_voice, "output" => afilnet_output)
	
puts response.body
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="sendvoicetogroupfromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_idtemplate="1000";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/basic/?class="+afilnet_class+"&method="+afilnet_method+"&countrycode="+afilnet_countrycode+"&idgroup="+afilnet_idgroup+"&idtemplate="+afilnet_idtemplate+"&scheduledatetime="+afilnet_scheduledatetime+"&language="+afilnet_language+"&voice="+afilnet_voice+"&output="+afilnet_output;
	
uri = URI(sUrl) 

req = Net::HTTP::Get.new(uri)
req.basic_auth afilnet_user, afilnet_password

res = Net::HTTP.start(uri.hostname) {|http|
  http.request(req)
}

puts res.body
# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="sendvoicetogroupfromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_idtemplate="1000";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"countrycode\":\""+afilnet_countrycode+"\",\"idgroup\":\""+afilnet_idgroup+"\",\"idtemplate\":\""+afilnet_idtemplate+"\",\"scheduledatetime\":\""+afilnet_scheduledatetime+"\",\"language\":\""+afilnet_language+"\",\"voice\":\""+afilnet_voice+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body
Parameter Description Compulsory / Optional
class=voice Class requested: Class to which the request is made Compulsory
method=sendvoicetogroupfromtemplate Class method requested: Method of the class to which the request is made Compulsory
user User and e-mail of your Afilnet account Compulsory
password Password of your Afilnet account Compulsory
countrycode voice.sendvoicetogroupfromtemplate_countrycode Compulsory
idgroup Group identifier containing the contacts to which the voice call will be sent Compulsory
idtemplate Identifier of the template that contains the message that the voice call will play Compulsory
scheduledatetime Date and time of shipment in yyyy-mm-dd hh:mm:ss format Optional
language Language in which the voice call will be played, check attached table to see available values Optional
voice Voice with which the voice call will be played, check attached table to see available values Optional
output Output format of the result Optional
Answer:
  • status
  • result (if status=success), here you will receive the following values:
    • id
    • count
    • credits
    • destinations
      • messageid
      • destination
  • error (if status=error), here you will receive the error code

Error codes:
Code Description
MISSING_USER User or email not included
MISSING_PASSWORD Password not included
MISSING_CLASS Class not included
MISSING_METHOD Method not included
MISSING_COMPULSORY_PARAM Compulsory parameter not included
INCORRECT_USER_PASSWORD Incorrect user or password
INCORRECT_CLASS Incorrect class
INCORRECT_METHOD Incorrect method
NOT_ACCESS_TO_GROUP You are not allowed into the indicated group
NO_CREDITS Your balance is insufficient

Get voice message delivery status with Ruby on rails

# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="sendvoicetogroupfromtemplate";
afilnet_user="user";
afilnet_password="password";
afilnet_countrycode="34";
afilnet_idgroup="1";
afilnet_idtemplate="1000";
afilnet_scheduledatetime="";
afilnet_language="en";
afilnet_voice="Joanna";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"countrycode\":\""+afilnet_countrycode+"\",\"idgroup\":\""+afilnet_idgroup+"\",\"idtemplate\":\""+afilnet_idtemplate+"\",\"scheduledatetime\":\""+afilnet_scheduledatetime+"\",\"language\":\""+afilnet_language+"\",\"voice\":\""+afilnet_voice+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_messages="123456,123457,123458";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/?class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&messages="+afilnet_messages+"&output="+afilnet_output;
	
uri = URI(sUrl) 
response = Net::HTTP.get(uri)
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_messages="123456,123457,123458";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/";

uri = URI(sUrl) 
response = Net::HTTP.post_form(uri, "class" => afilnet_class, "method" => afilnet_method, "user" => afilnet_user, "password" => afilnet_password, "messages" => afilnet_messages, "output" => afilnet_output)
	
puts response.body
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_messages="123456,123457,123458";
afilnet_output="";

# Create an URL request
sUrl = "https://www.afilnet.com/api/basic/?class="+afilnet_class+"&method="+afilnet_method+"&messages="+afilnet_messages+"&output="+afilnet_output;
	
uri = URI(sUrl) 

req = Net::HTTP::Get.new(uri)
req.basic_auth afilnet_user, afilnet_password

res = Net::HTTP.start(uri.hostname) {|http|
  http.request(req)
}

puts res.body
# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_messages="123456,123457,123458";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"messages\":\""+afilnet_messages+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body
Parameter Description Compulsory / Optional
class=voice Class requested: Class to which the request is made Compulsory
method=getdeliverystatus Class method requested: Method of the class to which the request is made Compulsory
user User and e-mail of your Afilnet account Compulsory
password Password of your Afilnet account Compulsory
messages voice.getdeliverystatus_messages Compulsory
output Output format of the result Optional
Answer:
  • status
  • result (if status=success), here you will receive the following values:
    • messageid
    • sms
    • deliverydate
    • deliverystatus
  • error (if status=error), here you will receive the error code

Error codes:
Code Description
MISSING_USER User or email not included
MISSING_PASSWORD Password not included
MISSING_CLASS Class not included
MISSING_METHOD Method not included
MISSING_COMPULSORY_PARAM Compulsory parameter not included
INCORRECT_USER_PASSWORD Incorrect user or password
INCORRECT_CLASS Incorrect class
INCORRECT_METHOD Incorrect method

Get list of voices with Ruby on rails

# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_messages="123456,123457,123458";
afilnet_output="";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"messages\":\""+afilnet_messages+"\",\"output\":\""+afilnet_output+"\"}"
})

puts res.body# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_lang="en";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/?class="+afilnet_class+"&method="+afilnet_method+"&user="+afilnet_user+"&password="+afilnet_password+"&lang="+afilnet_lang;
	
uri = URI(sUrl) 
response = Net::HTTP.get(uri)
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_lang="en";

# Create an URL request
sUrl = "https://www.afilnet.com/api/http/";

uri = URI(sUrl) 
response = Net::HTTP.post_form(uri, "class" => afilnet_class, "method" => afilnet_method, "user" => afilnet_user, "password" => afilnet_password, "lang" => afilnet_lang)
	
puts response.body
# net/http library is required
require 'net/http'

afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_lang="en";

# Create an URL request
sUrl = "https://www.afilnet.com/api/basic/?class="+afilnet_class+"&method="+afilnet_method+"&lang="+afilnet_lang;
	
uri = URI(sUrl) 

req = Net::HTTP::Get.new(uri)
req.basic_auth afilnet_user, afilnet_password

res = Net::HTTP.start(uri.hostname) {|http|
  http.request(req)
}

puts res.body
# Savon library is required
require 'savon'

# We define vars
afilnet_class="voice";
afilnet_method="getdeliverystatus";
afilnet_user="user";
afilnet_password="password";
afilnet_lang="en";

# We create the client instance
client = Savon.client(wsdl: 'https://www.afilnet.com/api/soap/index.php?wsdl', ssl_verify_mode: :none)

# We call to the service
res = client.call(:call, message: {
  user: afilnet_user,
  password: afilnet_password,
  class: afilnet_class,
  method: afilnet_method,
  petition: "{\"lang\":\""+afilnet_lang+"\"}"
})

puts res.body
Parameter Description Compulsory / Optional
class=voice Class requested: Class to which the request is made Compulsory
method=getdeliverystatus Class method requested: Method of the class to which the request is made Compulsory
user User and e-mail of your Afilnet account Compulsory
password Password of your Afilnet account Compulsory
lang voice language Optional
Answer:
  • status
  • result (if status=success), here you will receive the following values:
    • lang
    • gender
    • name
    • default
  • error (if status=error), here you will receive the error code

Error codes:
Code Description
MISSING_USER User or email not included
MISSING_PASSWORD Password not included
MISSING_CLASS Class not included
MISSING_METHOD Method not included
MISSING_COMPULSORY_PARAM Compulsory parameter not included
INCORRECT_USER_PASSWORD Incorrect user or password
INCORRECT_CLASS Incorrect class
INCORRECT_METHOD Incorrect method

Returns the delivery status of certified SMS with PHP Returns the delivery status of certified SMS with Java Returns the delivery status of certified SMS with C Sharp Returns the delivery status of certified SMS with Unix Returns the delivery status of certified SMS with Ruby on rails Returns the delivery status of certified SMS with Python Returns the delivery status of certified SMS with Android Returns the delivery status of certified SMS with Objective C / iPhone Returns the delivery status of certified SMS with SQL Server Returns the delivery status of certified SMS with Oracle Returns the delivery status of certified SMS with Node JS Returns the delivery status of certified SMS with Go lang Returns the delivery status of certified SMS with Scala lang Returns the delivery status of certified SMS with Swift Returns the delivery status of certified SMS with Delphi



ANNEX: List of languages and voices for available voice calls

In this annex you will find all the possible combinations of languages and voices that you can use when sending voice call messages

Language (Language) Gender Name (voice)
ar female Hoda
ar male Naayf
ar female Zeina
ar female Aisha
ar male Farooq
ar male Hussein
ar female Amal
bg male Ivan
bn female Sushmita
bn male Sayan
ca female Conchita
ca female Herena
cs male Jakub
da female Helle
da male Mads
da female Naja
de female Angela
de male Hans
de female Vicki
de male Stefan
de female Marlene
de female Hedda
de-at male Michael
de-ch male Karsten
el female Afroditi
el male Stefanos
el female Sophia
en female Jane
en female Jessica
en female Joanna
en male Joey
en male Justin
en female Kendra
en female Kimberly
en male Matthew
en female Zira
en female Ivy
en male Guy
en male Benjamin
en female Salli
en-au male Russell
en-au female Nicole
en-au female Catherine
en-au female Hayley
en-ca female Heather
en-ca female Alice
en-gb female Rosie
en-gb female Hazel
en-gb male George
en-gb female Emma
en-gb male Brian
en-gb female Amy
en-gb-wls male Geraint
en-ie male Sean
en-in male Ravi
en-in female Aditi
en-in female Heera
en-in female Priya
en-in female Raveena
es female Penelope
es male Miguel
es female Linda
es female Laura
es male Enrique
es female Lupe
es male Pablo
es-cl female Francisca
es-mx female Hilda
es-mx female Mia
es-mx male Raul
fi female Milla
fi female Evelin
fi female Heidi
fr male Picart
fr male Mathieu
fr female Juliette
fr female Lea
fr female Celine
fr female Hortense
fr-ca female Caroline
fr-ca female Chantal
fr-ca female Harmonie
fr-ch male Guillaume
gu female Leela
gu male Dinesh
he male Asaf
hi female Kalpana
hi male Hemant
hi female Aadita
hr male Matej
hu male Szabolcs
id female Indah
id male Andika
id male Reza
id female Nurul
id male Arif
is male Karl
is female Dora
it female Lucia
it male Cosimo
it female Carla
it female Bianca
it male Giorgio
it female Gianna
ja male Ichiro
ja male Takumi
ja female Haruka
ja female Ayumi
ja female Mizuki
kn male Shashank
kn female Namratha
ko male Minho
ko male Himchan
ko female Jina
ko female Sumi
ko female Yumi
ko female Seoyeon
ko female Heami
ml female Kirti
ml male Vishnu
ms male Rizwan
nl male Ruben
nl female Lotte
nl female Hanna
no female Liv
no female Hulda
pl male Jacek
pl female Ewa
pl male Jan
pl female Paulina
pl female Maja
pt-br female Camila
pt-br male Daniel
pt-br female Vitoria
pt-br male Ricardo
pt-br female Heloisa
pt-pt female Abrielle
pt-pt female Jacinda
pt-pt male Jeraldo
pt-pt male Henriques
pt-pt female Ines
pt-pt female Helia
pt-pt male Cristiano
pt-pt female Amalia
ro female Carmen
ro male Andrei
ru female Ekaterina
ru female Irina
ru male Pavel
ru female Tatyana
ru male Maxim
sk male Filip
sl male Lado
sv female Astrid
sv female Hedvig
ta female Shruti
ta male Valluvar
ta male Ganesh
te male Vijay
te female Samantha
te female Chitra
th male Pattara
th female Somsi
tr female Filiz
tr female Seda
vi female Lien
vi male Quan
vi male An
vi male Thao
vi female Mai
wls female Gwyneth
zh-cn female Lin
zh-cn female Akemi
zh-cn female Liu
zh-cn male Wang
zh-cn male Huang
zh-cn male Chen
zh-cn female Zhiyu
zh-cn female Yaoyao
zh-cn female Lily
zh-cn male Kangkang
zh-cn female Huihui
zh-cn male Zhang
zh-tw female Yating
zh-tw male Zhiwei
zh-tw female Hanhan

Afilnet offers you methods to improve security when using our API with Ruby on rails, thanks to the possibility of creating accesses and the possibility of activating filtering by IP.

Which API for Ruby on rails should I use?

Discover the advantages and disadvantages of each of our APIs. Find out which API is best for your Software in Ruby on rails.

This API allows you to connect to us from Ruby on rails to send requests via HTTP GET requests. This request sends the parameters in the same URL as the request.

  • HTTP GET is extremely simple to implement
  • Information is sent unencrypted (passwords could be extracted from logs or cache)
  • Maximum request of ~4000 characters

The POST request API allows you to connect to our API from Ruby on rails by sending request parameters via HTTP POST parameters. The information is sent independently of the URL.

  • HTTP POST is simple to implement
  • Information is sent encrypted
  • There is no limit on the size of the request
  • Medium security

The basic authentication API allows the use of GET and POST requests in Ruby on rails with an additional security layer, since in this case the username and password are sent in the header of the request.

  • Basic authentication is easy to implement
  • Access data is sent encrypted
  • The size limit depends on the use of GET or POST
  • Medium security

SOAP allows you to send requests in XML format with Ruby on rails, SOAP adds an extra layer of security to API requests.

  • SOAP integration is more complex
  • Information is sent encrypted
  • There is no limit on the size of the request
  • Medium / High security

Our JSON API allows you to send requests in JSON format with Ruby on rails, in addition this API adds the oAuth 2.0 protocol in the authentication that allows you to add an additional layer of security.

  • JSON oAuth 2.0 integration is more complex
  • Information is sent encrypted
  • There is no limit on the size of the request
  • High security

Connect Ruby on rails with our TEXT-TO-SPEECH API

01

Register as a client

In order to have access to the API you must be an Afilnet client. Registration will take a few minutes.

02

Request your free trial

Our company will offer you trial balance that will allow you to test with the API you need.

03

Integrate the API

Perform API integration using the programming language of your choice. If you have any questions or suggestions about the API, contact us

04

Welcome to Afilnet!

Everything ready!, has managed to improve its communications with Afilnet. We are here to support our API when you need it


Contact our team with any questions through the contact methods that we offer. Our team will try to offer you an immediate solution and will help you in the integration of our API in your Software.

Try Afilnet for free!

Sign up for free and try Afilnet! We offer you a free trial of our services. *



(*) Promotion only valid for companies that have never used the Afilnet service before. When requesting the free balance, Afilnet may request to verify your company information


Bulk SMS · Email Marketing · Social network · Instant messaging · Certification · and much more
Continue IMPORTANT INFORMATION ABOUT COOKIES: If you continue to use this web we will assume that you accept the terms of use. You will find more information in our Cookies Policy.
Payment methods
Wire transfer
Credit card
Paypal
Western Union
Skrill
Crypto
Afilnet in your language

Copyright © 2024 Afilnet · All rights reserved