{"id":24,"date":"2025-10-09T06:05:25","date_gmt":"2025-10-09T10:05:25","guid":{"rendered":"https:\/\/beckesch.dev\/ops\/?p=24"},"modified":"2025-10-29T04:47:27","modified_gmt":"2025-10-29T08:47:27","slug":"how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx","status":"publish","type":"post","link":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/","title":{"rendered":"How a 2010 Shell Script Keeps the Music Playing on Your PBX"},"content":{"rendered":"\n<p>Back in 2010, telephony systems often required a practical solution for delivering music on hold. Professional hardware and software components could be costly or inflexible, but for those comfortable with Linux, simple shell scripts offered an adaptable alternative. The following blog post explores a classic Bash script that continuously feeds a telephone system with MP3 files, ensuring that callers are always greeted with music when they are on hold.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Does the Script Do?<\/h2>\n\n\n\n<p>The script is designed to play all MP3 files found in a configured directory, looping through them endlessly. The typical use case is to provide &#8216;waiting music&#8217;\u2014music on hold\u2014for PBX (Private Branch Exchange) systems. The shell script leverages standard Linux tools, with the MP3 player <code>mpg321<\/code> serving as the playback engine.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configuration<\/h2>\n\n\n\n<p>All configuration options are stored in a separate file (default: <code>\/usr\/local\/etc\/telko-musik.sh.conf<\/code>). The most important setting is <code>mp3dir<\/code>, which specifies the directory containing MP3 files:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mp3dir=\/usr\/local\/mp3<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">How the Script Works<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Environment Setup:<\/strong><br>The script checks for its configuration file and sources it. It then verifies if the <code>mp3dir<\/code> exists.<\/li>\n\n\n\n<li><strong>Process Management:<\/strong><br>Several helper functions are defined for logging, error handling, debugging, and cleanup.<\/li>\n\n\n\n<li><strong>Argument Handling:<\/strong><br>It accepts arguments for verbosity, a running-check mode, and help.<\/li>\n\n\n\n<li><strong>File Copying:<\/strong><br>The script copies all MP3s into a temporary directory, reducing the risk of issues if files are changed during playback.<\/li>\n\n\n\n<li><strong>Main Playback Loop:<\/strong><br>It iterates over all MP3 files in the temporary location, playing them one by one with <code>mpg321<\/code>. It sleeps briefly between tracks and repeats indefinitely.<\/li>\n\n\n\n<li><strong>Dynamic Updates:<\/strong><br>Because the script periodically re-reads the contents of the specified directory (after each loop iteration), new MP3 files will be detected without needing to restart the script.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">How to Use the Script<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Install mpg321:<\/strong><br>Ensure the MP3 player <code>mpg321<\/code> is installed on your Linux system.<\/li>\n\n\n\n<li><strong>Set up MP3 Directory:<\/strong><br>Place all hold music MP3 files in the directory specified by <code>mp3dir<\/code>.<\/li>\n\n\n\n<li><strong>Configure the Script:<\/strong><br>Edit <code>\/usr\/local\/etc\/telko-musik.sh.conf<\/code> to point <code>mp3dir<\/code> to the correct folder.<\/li>\n\n\n\n<li><strong>Run the Script:<\/strong><br>Execute the script with <code>.\/telko-musik.sh<\/code> (preferably as a dedicated service or background process).<\/li>\n\n\n\n<li><strong>Integration with PBX:<\/strong><br>Make sure your telephone system\u2019s hardware is set to accept the audio output generated by the script.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Advantages of This Approach<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Simplicity:<\/strong> Only a few dependencies and easy to configure.<\/li>\n\n\n\n<li><strong>Automatic Updates:<\/strong> New music files are picked up without a restart.<\/li>\n\n\n\n<li><strong>Open Source:<\/strong> Distributed under GPL v3, it\u2019s free to use and modify.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>This Bash script, typical of early 2010s Linux telephony solutions, offers a robust, simple way to manage <strong>hold music<\/strong> for small business telephone systems using free and open-source utilities. It demonstrates how Linux can bridge the gap between legacy PBX hardware and modern audio file formats.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back in 2010, telephony systems often required a practical solution for delivering music on hold. Professional hardware and software components could be costly or inflexible, but for those comfortable with Linux, simple shell scripts offered an adaptable alternative. The following blog post explores a classic Bash script that continuously feeds a telephone system with MP3 &#8230; <a title=\"How a 2010 Shell Script Keeps the Music Playing on Your PBX\" class=\"read-more\" href=\"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/\" aria-label=\"Read more about How a 2010 Shell Script Keeps the Music Playing on Your PBX\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":26,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-24","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-from-the-archives"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How a 2010 Shell Script Keeps the Music Playing on Your PBX - Ralf Beckesch - Devops<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How a 2010 Shell Script Keeps the Music Playing on Your PBX - Ralf Beckesch - Devops\" \/>\n<meta property=\"og:description\" content=\"Back in 2010, telephony systems often required a practical solution for delivering music on hold. Professional hardware and software components could be costly or inflexible, but for those comfortable with Linux, simple shell scripts offered an adaptable alternative. The following blog post explores a classic Bash script that continuously feeds a telephone system with MP3 ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/\" \/>\n<meta property=\"og:site_name\" content=\"Ralf Beckesch - Devops\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-09T10:05:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-29T08:47:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"2048\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"rb\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"rb\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/\"},\"author\":{\"name\":\"rb\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"headline\":\"How a 2010 Shell Script Keeps the Music Playing on Your PBX\",\"datePublished\":\"2025-10-09T10:05:25+00:00\",\"dateModified\":\"2025-10-29T08:47:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/\"},\"wordCount\":448,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"image\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg\",\"articleSection\":[\"From the archives\"],\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/\",\"name\":\"How a 2010 Shell Script Keeps the Music Playing on Your PBX - Ralf Beckesch - Devops\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg\",\"datePublished\":\"2025-10-09T10:05:25+00:00\",\"dateModified\":\"2025-10-29T08:47:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/#primaryimage\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg\",\"contentUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg\",\"width\":2048,\"height\":2048},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2025\\\/10\\\/09\\\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How a 2010 Shell Script Keeps the Music Playing on Your PBX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#website\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/\",\"name\":\"Ralf Beckesch - Devops\",\"description\":\"Evolving from linux freak to devops and cloud-native engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\",\"name\":\"rb\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"contentUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"width\":1534,\"height\":307,\"caption\":\"rb\"},\"logo\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\"},\"sameAs\":[\"https:\\\/\\\/beckesch.dev\\\/ops\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ralf-beckesch\\\/\"],\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/author\\\/rbadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How a 2010 Shell Script Keeps the Music Playing on Your PBX - Ralf Beckesch - Devops","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/","og_locale":"en_US","og_type":"article","og_title":"How a 2010 Shell Script Keeps the Music Playing on Your PBX - Ralf Beckesch - Devops","og_description":"Back in 2010, telephony systems often required a practical solution for delivering music on hold. Professional hardware and software components could be costly or inflexible, but for those comfortable with Linux, simple shell scripts offered an adaptable alternative. The following blog post explores a classic Bash script that continuously feeds a telephone system with MP3 ... Read more","og_url":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/","og_site_name":"Ralf Beckesch - Devops","article_published_time":"2025-10-09T10:05:25+00:00","article_modified_time":"2025-10-29T08:47:27+00:00","og_image":[{"width":2048,"height":2048,"url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg","type":"image\/jpeg"}],"author":"rb","twitter_card":"summary_large_image","twitter_misc":{"Written by":"rb","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/#article","isPartOf":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/"},"author":{"name":"rb","@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"headline":"How a 2010 Shell Script Keeps the Music Playing on Your PBX","datePublished":"2025-10-09T10:05:25+00:00","dateModified":"2025-10-29T08:47:27+00:00","mainEntityOfPage":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/"},"wordCount":448,"commentCount":0,"publisher":{"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"image":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/#primaryimage"},"thumbnailUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg","articleSection":["From the archives"],"inLanguage":"en-CA","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/","url":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/","name":"How a 2010 Shell Script Keeps the Music Playing on Your PBX - Ralf Beckesch - Devops","isPartOf":{"@id":"https:\/\/beckesch.dev\/ops\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/#primaryimage"},"image":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/#primaryimage"},"thumbnailUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg","datePublished":"2025-10-09T10:05:25+00:00","dateModified":"2025-10-29T08:47:27+00:00","breadcrumb":{"@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/"]}]},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/#primaryimage","url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg","contentUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg","width":2048,"height":2048},{"@type":"BreadcrumbList","@id":"https:\/\/beckesch.dev\/ops\/2025\/10\/09\/how-a-2010-shell-script-keeps-the-music-playing-on-your-pbx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beckesch.dev\/ops\/"},{"@type":"ListItem","position":2,"name":"How a 2010 Shell Script Keeps the Music Playing on Your PBX"}]},{"@type":"WebSite","@id":"https:\/\/beckesch.dev\/ops\/#website","url":"https:\/\/beckesch.dev\/ops\/","name":"Ralf Beckesch - Devops","description":"Evolving from linux freak to devops and cloud-native engineer","publisher":{"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/beckesch.dev\/ops\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":["Person","Organization"],"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69","name":"rb","image":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","contentUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","width":1534,"height":307,"caption":"rb"},"logo":{"@id":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg"},"sameAs":["https:\/\/beckesch.dev\/ops","https:\/\/www.linkedin.com\/in\/ralf-beckesch\/"],"url":"https:\/\/beckesch.dev\/ops\/author\/rbadmin\/"}]}},"jetpack_featured_media_url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/10\/1052307d-fa8b-4626-b55c-fec71fa4ca58.jpeg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/comments?post=24"}],"version-history":[{"count":4,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/24\/revisions"}],"predecessor-version":[{"id":47,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/24\/revisions\/47"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/media\/26"}],"wp:attachment":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/media?parent=24"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/categories?post=24"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/tags?post=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}