C# Download MP3 recordings using SDK
Tags: sdk
Jan 25, 2018 at 4:13am • 5 replies • 0 likes
sekar-perumal
Hi,
I am using the RingCentral SDK (https://github.com/ringcentral/ringcentral-csharp) to download call recordings in my C# application.
I am able to make the call using recording id and I am getting the response.
If I save the response as .MP3 format, its not working it.
var recordingRequest = new Request("/restapi/v1.0/account/~/recording/" + item.Recording.Id + "/content");
var recordingResponse = sdk.Platform.Get(recordingRequest);
byte[] byteArray = System.Convert.FromBase64String(recordingResponse.Body);
File.WriteAllBytes(item.Recording.Id + ".mp3", byteArray);
I am converting response text as byte array and storing it as MP3.
Is there anything wrong?
Could any one help me on this?
5 Answers
0
As mentioned by Engineering API Access, the RingCentral endpoint can return a MP3 or a WAV file and you can distinguish this by examining the 'Content-Type' header.
A simple way to do this is check to see if 'Content-Type' header is 'audio/mpeg' in which case use '.mp3' extension, otherwise use '.wav' extension.
Here's a Ruby example:
https://github.com/grokify/ringcentral-sdk-ruby/blob/master/scripts/call-recording_download.rb#L48
A simple way to do this is check to see if 'Content-Type' header is 'audio/mpeg' in which case use '.mp3' extension, otherwise use '.wav' extension.
Here's a Ruby example:
https://github.com/grokify/ringcentral-sdk-ruby/blob/master/scripts/call-recording_download.rb#L48
ext = response_file.headers['Content-Type'].to_s == 'audio/mpeg' ? '.mp3' : '.wav'
0
Hello Sekar,
You can retrieve the recording meta data and check the contentType to determine if the recording is wave or mp3. There is an account wide setting to change from the default mp3 to wave. The setting can only be changed by RingCentral. I have not been able to get much information on this setting. I was told it's an account wide setting and that the recordings would be delivered in that format. Its seems that this is incorrect as I am still getting both formats. Unfortunately, my project I requires wav.
http://ringcentral-api-docs.readthedocs.io/en/latest/calllog_call-recordings/
I hope this helps.
You can retrieve the recording meta data and check the contentType to determine if the recording is wave or mp3. There is an account wide setting to change from the default mp3 to wave. The setting can only be changed by RingCentral. I have not been able to get much information on this setting. I was told it's an account wide setting and that the recordings would be delivered in that format. Its seems that this is incorrect as I am still getting both formats. Unfortunately, my project I requires wav.
http://ringcentral-api-docs.readthedocs.io/en/latest/calllog_call-recordings/
I hope this helps.
1
Hi Sekar,
This SDK is what we recommend: https://github.com/ringcentral/ringcentral-csharp-client
And sometimes the recording is *.wav instead of *mp3.
This SDK is what we recommend: https://github.com/ringcentral/ringcentral-csharp-client
And sometimes the recording is *.wav instead of *mp3.
1
Hi Sekar,
Why don't you try out the sample code from the SDK. I think recording content type is mp3 so I modified the code a little bit here.
+ Phong
Why don't you try out the sample code from the SDK. I think recording content type is mp3 so I modified the code a little bit here.
var callLogs = await account.CallLog().List(queryParams); // download a call recording var callLog = callLogs.records[0]; var content = await account.Recording(callLog.recording.id).Content().Get();
File.WriteAllBytes(callLog.recording.id + ".mp3", content.data);Hope this helps!
+ Phong
1
A new Community is coming to RingCentral!
Posts are currently read-only as we transition into our new platform.We thank you for your patience
during this downtime.
Try Workflow Builder
Did you know you can easily automate tasks like responding to SMS, team messages, and more? Plus it's included with RingCentral Video and RingEX plans!Try RingCentral Workflow Builder