{"id":23885490,"url":"https://github.com/denzs/fsconfregger","last_synced_at":"2025-10-13T16:16:13.691Z","repository":{"id":217477636,"uuid":"260999917","full_name":"denzs/fsconfregger","owner":"denzs","description":"little helper to dynamically register local freeswitch conferences to upstream registrar","archived":false,"fork":false,"pushed_at":"2020-05-21T18:06:49.000Z","size":20,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-30T18:07:14.924Z","etag":null,"topics":["bigbluebutton","cluster","conference","freeswitch","greenlight","registration","scalelite","sip"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/denzs.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-05-03T18:58:19.000Z","updated_at":"2025-05-27T13:29:53.000Z","dependencies_parsed_at":"2024-01-16T18:39:53.757Z","dependency_job_id":"9d636921-f778-43a2-8337-98b73c61b4c3","html_url":"https://github.com/denzs/fsconfregger","commit_stats":null,"previous_names":["denzs/fsconfregger"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/denzs/fsconfregger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denzs%2Ffsconfregger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denzs%2Ffsconfregger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denzs%2Ffsconfregger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denzs%2Ffsconfregger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denzs","download_url":"https://codeload.github.com/denzs/fsconfregger/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denzs%2Ffsconfregger/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016063,"owners_count":26085799,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigbluebutton","cluster","conference","freeswitch","greenlight","registration","scalelite","sip"],"created_at":"2025-01-04T04:50:48.682Z","updated_at":"2025-10-13T16:16:13.658Z","avatar_url":"https://github.com/denzs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Problem\n\nWith BigBlueButton clusters (with Scalelite \u0026 Greenlight) one never knows on which Server the session will be processed.\nThis makes is quite difficult to route SIP-calls to the correct FreeSWITCH instance.\n\n# Approach\n\nfsconfregger runs on BigBlueButton servers and is listening on FreeSWITCH Eventsocket.\nWhen a new conference room is created an external script is executed.\nThe script generates a custom XML snippet which includes the SIP registration information for FreeSWITCH.\nAfter the script is finished, FreeSWITCH gets instructed to reload the XML config and starts to register.\n\nIn combination with a central SIP Registrar server (like Kamailio or Asterisk) you are now able to\nroute incoming SIP calls to the correct BigBlueButton instance.\n\nAfter all participants left the Room, the registration is cleaned up.\n\nTo have stable conference numbers BBB requires you to set the parameter *voiceBridge* accordincly when the rooms is created.\nAt the moment Greenlight does not support this. So you are required to adapt it or find another way.\n\n## Operation\n\nfsconfregger is required to run on the same machine as FreeSWITCH.\nIf you are running multiple BBB servers this means you need one fsconfregger process on every BBB-Server.\n\nYou are required to have a properly configured SIP registrar which accepts the Registrations which are generated by the script.\n\nJust adapt the systemd unitfile and the XML Generator script to your needs.\n\n### Steps\n\nExample steps to build and setup on a BBB node.\nYou propably want to build it once and deploy everything with ansible.\n\n```\n# install golang on ubuntu 16.04\napt install golang-1.10\n\n# get and build fsconfregger\n/usr/lib/go-1.10/bin/go get github.com/denzs/fsconfregger\n\ncd ~/go/src/github.com/denzs/fsconfregger\ncp ~/go/bin/fsconfregger sofia-generator.sh /usr/local/sbin/\ncp fsconfregger.sample /etc/default/fsconfregger\ncp fsconfregger.service /etc/systemd/system/\nsystemctl daemon-reload\nsystemctl enable fsconfregger\nsystemctl start fsconfregger\n```\n\n### Parameters\n\n| Parameter | Default              | Description                                             |\n|-----------|----------------------|---------------------------------------------------------|\n| -eshost   | localhost            | \"FreeSWITCH Event Socket Host (default 'localhost')     |\n| -esport   | 8021                 | FreeSWITCH Event Socket Port (default 8021)             |\n| -espw     | ClueCon              | FreeSWITCH Event Socket Password (default 'ClueCon')    |\n| -script   | ./sofia-generator.sh | \"Path to XML Generator (default ./sofia-generator.sh)\") |\n\n### Script parameters\n\nWhen a room is created the script is called with only one parameter:\n* the room number\n\nWhen a room is destroyed the script is called with two parameters:\n* room number\n* static string: 'del'\n\nSee sofia-generator.sh for an example.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenzs%2Ffsconfregger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenzs%2Ffsconfregger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenzs%2Ffsconfregger/lists"}