{"id":9125,"date":"2023-03-31T14:47:18","date_gmt":"2023-03-31T11:47:18","guid":{"rendered":"https:\/\/trueconf.com\/blog\/?p=9125"},"modified":"2025-09-30T15:55:44","modified_gmt":"2025-09-30T12:55:44","slug":"trueconf-protocol-designed-to-interact-with-trueconf-client-applications","status":"publish","type":"post","link":"https:\/\/trueconf.com/blog\/knowledge-base\/trueconf-protocol-designed-to-interact-with-trueconf-client-applications","title":{"rendered":"\u201ctrueconf:\u201d Protocol Designed to Interact with TrueConf Client Applications"},"content":{"rendered":"<p class=\"primary-medium-text ui-mb-sm-1\"> TrueConf client applications support the special <b>trueconf:<\/b> protocol that operates at the system level and allows you to manage calls and other functions using short commands that can be placed in a browser link or button, run in a console, or inserted into a script.<\/p>\n<p class=\"primary-medium-text ui-mb-sm-1\">The <b>trueconf:<\/b> protocol is supported in all <a href=\"https:\/\/trueconf.com\/downloads\/\" target=\"_blank\" rel=\"noopener\">TrueConf client applications<\/a> (Windows, Linux, macOS, Android\/Android TV, iOS\/iPadOS) and the <a href=\"https:\/\/trueconf.com\/products\/room.html\" target=\"_blank\" rel=\"noopener\">software-based endpoint TrueConf Room<\/a>.<\/p>\n<div class=\"accent-note accent-note--line ui-mb-sm-1\">\n<p class=\"primary-medium-text\">The previous protocol name \u2014\u00a0<b>visicall:<\/b> \u2014 is currently obsolete; new applications may not support this version, and we do not recommend using it.<\/div>\n<p class=\"primary-medium-text ui-mb-sm-1\">This article describes the main features and use cases of this protocol; we will use a browser link as an example.<\/p>\n<h2 id=\"\" class=\"h4--main h4--thick black-text ui-mb-xs-3 ui-mt-md-1\">Format of Access to \u00abtrueconf:\u00bb Protocol<\/h2>\n<p>All possible <b>trueconf:<\/b> protocol calls can be described as follows:<\/p>\n<pre class=\"lang:default decode:true\">trueconf:[target][@server]&amp;[param_1]=[value_1]&amp;[...]&amp;[param_n]=[value_n]<\/pre>\n<p class=\"primary-medium-text ui-mb-sm-1\">Where:<\/p>\n<ul class=\"ui-list ui-list--medium\" style=\"margin-bottom: 18px;\">\n<li class=\"ui-list__item ui-list__item--disc\"><b>[target]<\/b> may be a user login (<a href=\"https:\/\/trueconf.com\/blog\/wiki\/trueconf-id\" target=\"_blank\" rel=\"noopener\">TrueConf ID<\/a>), <a href=\"https:\/\/trueconf.com\/blog\/wiki\/conference-id\" target=\"_blank\" rel=\"noopener\">conference ID<\/a> or any other <a href=\"https:\/\/docs.trueconf.com\/server\/en\/user\/connecting#format-call-string\" target=\"_blank\" rel=\"noopener\">call string<\/a><\/li>\n<li class=\"ui-list__item ui-list__item--disc\"><b>[server]<\/b> is an IP address or FQDN to which a call should be made<\/li>\n<li class=\"ui-list__item ui-list__item--disc\"><b>[param_n]<\/b>\u00a0is a name of an additional parameter<\/li>\n<li class=\"ui-list__item ui-list__item--disc\"><b>[value_n]<\/b>\u00a0is a value of an additional parameter<\/li>\n<\/ul>\n<h2 id=\"\" class=\"h4--main h4--thick black-text ui-mb-xs-3 ui-mt-md-1\">Protocol Actions<\/h2>\n<table style=\"overflow-x: auto; display: block;\" class=\"ui-mb-sm-1\">\n<thead>\n<tr>\n<th style=\"padding: 8px 16px; text-align: left; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\"><strong>Function<\/strong><\/th>\n<th style=\"padding: 8px 16px; text-align: left; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\"><strong>Call Format and Examples<\/strong><\/th>\n<\/tr>\n<tr>\n<th style=\"padding: 8px 16px; text-align: left; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\" colspan=\"2\"><strong>Launch and Authorization<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n\tApplication launch<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n\t<strong>trueconf:<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n\tAuthorization<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:login=[login]&amp;password=[password]&amp;encrypt=1&amp;force=1<\/b><\/p>\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:login=user&amp;password=pswd&amp;encrypt=1&amp;force=1<\/b><\/p>\n<p class=\"primary-smallest-text ui-mb-sm-1\">The <b>encrypt=1<\/b> parameter is needed for encrypting the password before it is sent to the server. It is a <b>required<\/b> parameter.<\/p>\n<p class=\"primary-smallest-text ui-mb-sm-1\">The <b>force=1<\/b> parameter ensures mandatory authorization and is needed in cases when a user is already signed in to the application.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\nAuthorization on another server<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<b>trueconf:h=[TrueConfServer]&amp;login=[login]&amp;password=[password]&amp;encrypt=1&amp;force=1<\/b><\/p>\n<p class=\"primary-smallest-text ui-mb-sm-1\"><strong>trueconf:h=192.168.12.123&amp;login=user&amp;password=pswd<b>&amp;encrypt=1&amp;force=1<\/b><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\" colspan=\"2\">\n      <strong>Open User Profile\/Chat (including users from other federated servers)<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\"> Open user profile<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:[user]@[domain.name]&#038;do=profile trueconf:user@video.example.com&#038;do=profile<\/b><\/p>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">Open chat<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:[user]@[domain.name]&#038;do=chat<br \/>\ntrueconf:user@video.example.com&#038;do=chat<\/b><\/p>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\" colspan=\"2\">\n      <strong>Calling User<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">Call within a server<\/td>\n<\/p>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><strong>trueconf:[user]<br \/>\ntrueconf:smith<br \/>\n<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\" colspan=\"2\">You can use any <a href=\"https:\/\/docs.trueconf.com\/server\/en\/user\/connecting#format-call-string\" target=\"_blank\" rel=\"noopener\">call string<\/a> instead of the username registered on the server. For example:<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">Call to another server<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:[user]@[TrueConfServer]<\/b><br \/>\n        <strong>trueconf:smith@conf.company.com<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n\tConnection to an RTSP stream<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:#[rtsp_address]<\/b><\/p>\n<p class=\"primary-smallest-text ui-mb-sm-1\"><span style=\"font-size: 10pt; color: red;\">all slashes <code>\/<\/code> must be replaced with <code>%2f<\/code><\/span><br \/>\n<strong>trueconf:#rtsp:%2f%2fdomainn.company.com:554<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\" colspan=\"2\"><strong>Joining Conference<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">Joining a conference with <a href=\"https:\/\/trueconf.com\/blog\/wiki\/conference-id\" target=\"_blank\" rel=\"noopener\">its ID<\/a> <b>[CID]<\/b><\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:\\c\\[CID]<\/b><\/p>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:\\c\\4154248070<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">Joining a conference hosted on a different server with the <a href=\"https:\/\/trueconf.com\/blog\/wiki\/conference-id\" target=\"_blank\" rel=\"noopener\">conference ID<\/a> <b>[CID]<\/b><\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:\\c\\[CID]@[server]%vcs<\/b><br \/>\n <b><strong>trueconf:\\c\\4154248070@video.example.com%vcs<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">Call to the conference where <b>[user]<\/b> is the moderator<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<p class=\"primary-smallest-text ui-mb-sm-1\"><b>trueconf:[user]&amp;conftype=hotquery<\/b><\/p>\n<p class=\"primary-smallest-text ui-mb-sm-1\"><strong>trueconf:smith&amp;conftype=hotquery<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\" colspan=\"2\"><strong>Other Features<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">Close the application after the end of a call\/conference (this option is available only if the application had not been started beforehand)<\/td>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\u00a0Add\u00a0<b>&amp;autoclose=1<\/b> to the end of any command<\/p>\n<td style=\"padding: 8px 16px; border: 1px solid #d7d8d8; vertical-align: middle;\" class=\"primary-smallest-text\">\n<strong>trueconf:smith&amp;autoclose=1<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"primary-medium-text ui-mb-sm-1\">A single link can be used to combine multiple commands, for example, it is possible to combine user authentication on the server <b>truevideo.example.com<\/b> and a call to a conference hosted on the server <b>video.example.com<\/b>:<\/p>\n<pre class=\"lang:default\" decode=\"true\">trueconf:\\c\\737734033583@video.example.com%23vcs&amp;h=truevideo.example.com&amp;login=user&amp;password=pswd&amp;encrypt=1&amp;force=1<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>TrueConf client applications support the special trueconf: protocol that operates at the system level and allows you to manage calls and other functions using short commands that can be placed in a browser link or button, run in a console, or inserted into a script. The trueconf: protocol is supported in all TrueConf client applications [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[260],"tags":[246],"class_list":["post-9125","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\/9125","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=9125"}],"version-history":[{"count":43,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts\/9125\/revisions"}],"predecessor-version":[{"id":39059,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts\/9125\/revisions\/39059"}],"wp:attachment":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/media?parent=9125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/categories?post=9125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/tags?post=9125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}