{"id":17398,"date":"2021-06-23T16:11:02","date_gmt":"2021-06-23T13:11:02","guid":{"rendered":"https:\/\/trueconf.com/blog\/?p=17398"},"modified":"2025-09-04T12:23:09","modified_gmt":"2025-09-04T09:23:09","slug":"how-to-enable-recording-of-ongoing-conferences","status":"publish","type":"post","link":"https:\/\/trueconf.com/blog\/knowledge-base\/how-to-enable-recording-of-ongoing-conferences","title":{"rendered":"How to enable recording of ongoing conferences"},"content":{"rendered":"<p style=\"text-align: justify;\">The first and most convenient method to enable conference recording on the server is by using this feature in <strong>Real-time meeting management<\/strong> tool, directly within the TrueConf app (starting with version 5.2.9.11282 and later):\n<\/p>\n<ul class=\"ui-list ui-list--medium\" style=\"margin-bottom: 18px;\">\n<li class=\"ui-list__item ui-list__item--num\">In an ongoing conference, open <strong>Real-time meeting management<\/strong>.<\/li>\n<li class=\"ui-list__item ui-list__item--num\">In the upper-right corner of the window that appears, click the <img decoding=\"async\" src=\"https:\/\/trueconf.com\/blog\/wp-content\/uploads\/2021\/06\/2.png\" alt=\"\" width=\"36\" height=\"19\" class=\"inline-img\" style=\"padding-left: 6px; vertical-align: middle\" loading=\"lazy\" title=\"\">.<\/li>\n<li class=\"ui-list__item ui-list__item--num\">From the menu, select <strong>Recording<\/strong>.<\/li>\n<li class=\"ui-list__item ui-list__item--num\">Click the <img decoding=\"async\" src=\"https:\/\/trueconf.com\/blog\/wp-content\/uploads\/2021\/06\/1-150x150.png\" alt=\"\" width=\"29\" height=\"29\" class=\"inline-img\" style=\"padding-left: 6px; vertical-align: middle\" loading=\"lazy\" title=\"\"> button that appears, after which the conference recording timer will begin.<\/li>\n<li class=\"ui-list__item ui-list__item--num\">To stop recording, click the same <img decoding=\"async\" src=\"https:\/\/trueconf.com\/blog\/wp-content\/uploads\/2021\/06\/1-150x150.png\" alt=\"\" width=\"29\" height=\"29\" class=\"inline-img\" loading=\"lazy\" title=\"\"> button again.<\/li>\n<\/ul>\n<\/ul>\n<p>For more details on how to properly configure recording, <a href=\"https:\/\/trueconf.com\/docs\/client\/en\/conf-recordings\/\" target=\"_blank\" rel=\"noopener\">see our documentation<\/a>.<\/p>\n<p>If you are not connected to the conference or are not its host and therefore cannot use <strong>Real-time meeting management<\/strong> for recording, you can start recording using TrueConf Server API requests. With these, you can control the recording process, including starting it for an already ongoing conference. This method is also useful if automatic recording of all conferences is disabled on the server and you forgot to enable it for the <a href=\"https:\/\/trueconf.com\/docs\/server\/en\/admin\/web-config\/#create-conference\" target=\"_blank\" rel=\"noopener\">created conference<\/a>, or if you want to manage recording \u201con the fly\u201d. For example, you could save only one <a href=\"https:\/\/trueconf.com\/docs\/client\/en\/installation\/#conference-user-roles\" target=\"_blank\" rel=\"noopener\">speaker\u2019s<\/a> presentation during a <a href=\"https:\/\/trueconf.com\/features\/modes\/virtual-meeting.html\" target=\"_blank\" rel=\"noopener\">moderated-role based<\/a> conference.<\/p>\n<div class=\"marked_note\" style=\"text-align: justify;\">Managing the recording process using API is available for conferences only (video calls cannot be recorded via API). The system will execute your requests even if conference recording is disabled in the <a href=\"https:\/\/docs.trueconf.com\/server\/en\/admin\/web-config#recording-tab\" target=\"_blank\" rel=\"noopener\">TrueConf Server control panel<\/a>.<\/div>\n<h2 style=\"text-align: justify;\">Getting started<\/h2>\n<p style=\"text-align: justify;\">Read our article <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/how-to-get-started-with-trueconf-api.html\" target=\"_blank\" rel=\"noopener\">Getting Started with TrueConf API<\/a> to learn how to use TrueConf Server API and what steps you need to take. You will also need to create a conference in any convenient way: in the <a href=\"https:\/\/docs.trueconf.com\/client\/en\/conference#main-tab\" target=\"_blank\" rel=\"noopener\">client application<\/a>, in the TrueConf Server control panel or <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/how-to-get-started-with-trueconf-api.html#Step_3_Creating_a_Multipoint_Conference\" target=\"_blank\" rel=\"noopener\">via API<\/a>.<\/p>\n<h2 style=\"text-align: justify;\">Step 1: Starting a conference<\/h2>\n<p style=\"text-align: justify;\">You can only record an ongoing event; therefore, you need to start your conference using a <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-RunConference\" target=\"_blank\" rel=\"noopener\">Run Conference<\/a> POST request. Make sure that it\u2019s started successfully by making a <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-GetConference\" target=\"_blank\" rel=\"noopener\">Get Conference<\/a> GET request:<\/p>\n<pre class=\"wrap:true lang:default decode:true\">https:\/\/{{$server_name}}\/api\/v3.3\/conferences\/{{$conference_id}}?access_token={{$access_token}}<\/pre>\n<p style=\"text-align: justify;\">where:<\/p>\n<ul style=\"text-align: justify;\">\n<li aria-level=\"1\"><code>{{$server_name}}<\/code>\u2013 is an IP address or external address of your TrueConf Server control panel from the <a href=\"https:\/\/docs.trueconf.com\/server\/admin\/web-config#web-settings\" target=\"_blank\" rel=\"noopener\">Web \u2192 Settings<\/a> section, e.g., <code>server.company.name<\/code>.<\/li>\n<li aria-level=\"1\"><code>{{$access_token}}<\/code>\u2013 is an access token created as shown in the <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/how-to-get-started-with-trueconf-api.html#Step_2_Creating_an_Access_Token\" target=\"_blank\" rel=\"noopener\">article on how to get started with API<\/a>, e.g., example, <code>dvN1tpoy7BmVhN8nUMzXcqJ8vsDYt4IN<\/code>.<\/li>\n<li aria-level=\"1\"><code>{{$conference_id}}<\/code>\u2013 is your conference ID, e.g., <code>0007<\/code>.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Our case:<\/p>\n<pre class=\"wrap:true lang:default decode:true \">https:\/\/server.company.name\/api\/v3.3\/conferences\/0007?access_token=dvN1tpoy7BmVhN8nUMzXcqJ8vsDYt4IN<\/pre>\n<p style=\"text-align: justify;\">In the conference\u2019s JSON object you\u2019ve received as the response, you need to pay attention to the <code>\"state\"<\/code> parameter. It can have one of the following values:<\/p>\n<ul style=\"text-align: justify;\">\n<li aria-level=\"1\"><code>\"running\"<\/code> means an ongoing conference.<\/li>\n<li aria-level=\"1\"><code>\"stopped\"<\/code> means a stopped conference.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Eventually, you should get the following value: <code>\"state\": \"running\"<\/code>.<\/p>\n<h2 style=\"text-align: justify;\">Step 2: Start recording<\/h2>\n<p style=\"text-align: justify;\">To start or resume recording, you need to use a <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-ConferenceRecordStart\" target=\"_blank\" rel=\"noopener\">Conference Record Start<\/a> POST request:<\/p>\n<pre class=\"wrap:true lang:default decode:true \">https:\/\/{{$server_name}}\/api\/v3.3\/conferences\/{{$conference_id}}\/start-record?access_token={{$access_token}}<\/pre>\n<p style=\"text-align: justify;\">Here\u2019s the case for a conference with the ID 0007:<\/p>\n<pre class=\"wrap:true lang:default decode:true \">https:\/\/server.company.name\/api\/v3.3\/conferences\/0007\/start-record?access_token=dvN1tpoy7BmVhN8nUMzXcqJ8vsDYt4IN<\/pre>\n<h2 style=\"text-align: justify;\">Step 3: Checking the recording status<\/h2>\n<p style=\"text-align: justify;\">To check the recording status, you need to get a <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Objects-Conference\" target=\"_blank\" rel=\"noopener\">Conference object<\/a> again by its ID using a <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-GetConference\" target=\"_blank\" rel=\"noopener\">Get Conference<\/a> GET request.<\/p>\n<p style=\"text-align: justify;\">In the JSON object you\u2019ve received as the response, you need to pay attention to the <code>\"stream_recording_state\"<\/code> parameter. It can have one of the following values:<\/p>\n<ul style=\"text-align: justify;\">\n<li><b>0<\/b> \u2014 No recording<\/li>\n<li><b>1<\/b> \u2014 Recording<\/li>\n<li><b>2<\/b> \u2014 Recording paused<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Eventually, you should get the following value: <code>\"stream_recording_state\": 1<\/code>.<\/p>\n<h2 style=\"text-align: justify;\">Step 4: Pausing the recording<\/h2>\n<p style=\"text-align: justify;\">To pause the recording for a while, you need to use a <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-ConferenceRecordPause\" target=\"_blank\" rel=\"noopener\">Conference Record Pause<\/a> POST request:<\/p>\n<pre class=\"wrap:true lang:default decode:true\">https:\/\/{{$server_name}}\/api\/v3.3\/conferences\/{{$conference_id}}\/pause-record?access_token={{$access_token}}<\/pre>\n<p style=\"text-align: justify;\">For instance:<\/p>\n<pre class=\"wrap:true lang:default decode:true\">https:\/\/server.company.name\/api\/v3.3\/conferences\/0007\/pause-record?access_token=dvN1tpoy7BmVhN8nUMzXcqJ8vsDYt4IN<\/pre>\n<p style=\"text-align: justify;\">You can pause and resume recording as in Steps 2 and 4 as many times as you want. Once you\u2019ve resumed the recording process, the system uses an existing video file rather than creates a new one.<\/p>\n<h2 style=\"text-align: justify;\">Step 5: Stop the recording<\/h2>\n<p style=\"text-align: justify;\">Stop recording using a <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-ConferenceRecordStop\" target=\"_blank\" rel=\"noopener\">Conference Record Stop<\/a> POST request:<\/p>\n<pre class=\"wrap:true lang:default decode:true \">https:\/\/{{$server_name}}\/api\/v3.3\/conferences\/{{$conference_id}}\/stop-record?access_token={{$access_token}}<\/pre>\n<p style=\"text-align: justify;\">In this case:<\/p>\n<pre class=\"wrap:true lang:default decode:true\">https:\/\/video.trueconf.com\/api\/v3.3\/conferences\/0007\/stop-record?access_token=dvN1tpoy7BmVhN8nUMzXcqJ8vsDYt4IN<\/pre>\n<p style=\"text-align: justify;\">The recording process will stop automatically when your conference comes to an end.<\/p>\n<div class=\"marked_note\" style=\"text-align: justify;\">Similarly, you can record even a group conference <a href=\"https:\/\/docs.trueconf.com\/client\/conference#create-conference\" target=\"_blank\" rel=\"noopener\">created on the fly in the client application<\/a> using its ID on the server. You can get the ID in the application on the <strong>Conference Management \u2192 Tools<\/strong> tab or in the TrueConf Server control panel in the <a href=\"https:\/\/docs.trueconf.com\/server\/admin\/web-config#call-history-main-list\" target=\"_blank\" rel=\"noopener\"><b>Reports \u2192 Call History<\/b> section<\/a>.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The first and most convenient method to enable conference recording on the server is by using this feature in Real-time meeting management tool, directly within the TrueConf app (starting with version 5.2.9.11282 and later): In an ongoing conference, open Real-time meeting management. In the upper-right corner of the window that appears, click the . From [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[260],"tags":[246],"class_list":["post-17398","post","type-post","status-publish","format-standard","hentry","category-knowledge-base","tag-api-and-sdk","wpautop"],"_links":{"self":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts\/17398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/comments?post=17398"}],"version-history":[{"count":26,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts\/17398\/revisions"}],"predecessor-version":[{"id":38259,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts\/17398\/revisions\/38259"}],"wp:attachment":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/media?parent=17398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/categories?post=17398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/tags?post=17398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}