CallFire Solutions

Create Sound



Creates a new CallFire-hosted sound for use in calls

There are two ways to create a sound: (1) uploading a pre-recorded WAV or MP3, or (2) initiating a call to record a sound over the phone.

Duplicate uploads are not allowed. If a duplicate sound is provided, a new sound is not created. Instead, the ID of the previous sound is returned.

Recording a sound over the phone works by first creating a sound asset using the RecordingCall option, then calling the ToNumber to record live voice as sound. If a sound is created using RecordingCall, then it needs to wait for the sound to be active by calling GetSoundMeta until Status = 'ACTIVE'.

Use the returned soundId in a subsequent SendCall request.


ParameterDemo ValueDescriptionData Type
CreateSound   Create Sound using attached info object
Name The name of your sound. This name is included in SoundMeta and shown in the web interface. string
Data * MP3 or WAV bytes. Base64 encoded bytes can be provided inline. Capable clients can avoid the 33% encoding overhead by sending the data as an MTOM attachement base64Binary
RecordingCall *   Initiates a call to record a new sound over the phone. object
ToNumber E.164 11 digit number to call to record a new sound. List[PhoneNumber]
SoundText *   string
SoundTextVoice   Voice


ParameterDescriptionData Type
CreatedId Unique ID of resource long


using System;
using RestSharp;
using System.IO;

namespace [your-namespace]
    public class [your-class]
        public string CreateSound()
            byte[] audioBytes = File.ReadAllBytes("test.mp3");
            string base64EncodedFile = Convert.ToBase64String(audioBytes);

            var client = new RestClient("");
            client.Authenticator = new HttpBasicAuthenticator("YourLoginId", "password");

            var request = new RestRequest("call/sound", Method.POST);
            request.AddParameter("Name", "My API Test Sound");
            request.AddParameter("Data", base64EncodedFile);

            var response = client.Execute(request);
            string content = response.Content;
            return content;

The XML returned is:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<r:ResourceReference xmlns="" xmlns:r="">




Have more questions? Submit a request