Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
But, when I remove the demo, I can’s open a meeting.
After some searching I think i first have to create a new meeting via the «api commands».
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<response>
<returncode>FAILED</returncode>
<message>Could not find conference.</message>
</response>
—————————————————————————
—————————————————————————
Hangin @ «Connecting to server»
—> Log entry:
11/10/2013 17:24:24.678 [DEBUG] Setting up preferred locale nl_NL
11/10/2013 17:24:24.678 [DEBUG] The locale nl_NL is available
11/10/2013 17:24:24.688 [DEBUG] Setting up preferred locale index 11
11/10/2013 17:24:24.713 [DEBUG] Dependency Order:
11/10/2013 17:24:24.735 [DEBUG] ***** Config Loaded ****
11/10/2013 17:24:25.526 [DEBUG] Loaded locale [nl_NL] but setting [en_US] as fallback
11/10/2013 17:24:25.530 [DEBUG] Received locale version fron locale file.
11/10/2013 17:24:33.546 [ERROR] Failed to connect to RTMP:///
11/10/2013 17:24:33.595 [ERROR] Failed to connect to RTMPT:///
—————————————————————————
—————————————————————————
When i install the demo package, i can connect to the server.
After removing an restarting —> Same errors
—————————————————————————
—————————————————————————
sudo bbb-conf —check
BigBlueButton Server 0.81 (1445)
Kernel version: 2.6.32-53-server
Distribution: Ubuntu 10.04.4 LTS (64-bit)
Memory: 16083 MB
/var/www/bigbluebutton/client/conf/config.xml (bbb-client)
Port test (tunnel): myserver
Red5: myserver
/etc/nginx/sites-available/bigbluebutton (nginx)
server name: myserver
port: 80
bbb-client dir: /var/www/bigbluebutton
/var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties (bbb-web)
bbb-web host: myserver
/usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml (red5)
voice conference: FreeSWITCH
capture video: true
capture desktop: true
/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
playback host: myserver
** Potential problems described below **
—————————————————————————
—————————————————————————
I created a meeting:
Response:
<response>
<returncode>SUCCESS</returncode>
<meetingID>abc123</meetingID>
<attendeePW>111222</attendeePW>
<moderatorPW>333444</moderatorPW>
<createTime>1384103544636</createTime>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
<messageKey/>
<message/>
</response>
I wanted to attend the meeting:
Response:
<response>
<returncode>FAILED</returncode>
<messageKey>invalidMeetingIdentifier</messageKey>
<message>
The meeting ID that you supplied did not match any existing meetings
</message>
</response>
Any idea ???
Thanks
Sven
bigbluebutton / bigbluebutton-api-php
Goto Github
PK
View Code? Open in Web Editor
NEW
28.0
183.0
1 MB
BigBlueButton PHP API
License: GNU Lesser General Public License v3.0
PHP 100.00%
bigbluebutton-api-php’s Introduction
The official and easy to use BigBlueButton API for PHP, makes easy for developers to use BigBlueButton API for PHP 7.3+.
Installation and usage
The wiki contains all the documentation related to the PHP library. We have also written a samples to show a full
install and usage example.
Submitting bugs and feature requests
Bugs and feature request are tracked on GitHub
Contributing guidelines
Code style
Make sure the code style configuration is applied by running PHPCS-Fixer.
Running tests
For every implemented feature add unit tests and check all is green by running the command below.
To run a single test
./vendor/bin/phpunit --filter "BigBlueButtonTest::testApiVersion"
License
bigbluebutton-api-php’s People
bigbluebutton-api-php’s Issues
Change Recording format
Is it possible convert BBB playback recordings to video format?
How to configure for webinar start date
I want to create bbb webinar with API , which will be accessible, for instance, for tomorrow. Is it possible? Thank you in advance.
Join Failed
I tried
$meInfo2 = new BigBlueButtonParametersJoinMeetingParameters($meetId, '***','***'); $meInfo2->setRedirect(true); $meInfo2->setJoinViaHtml5(true); $new =$bbb->joinMeeting($meInfo2);
I received
PHP Fatal error: Uncaught Exception: String could not be parsed as XML in /home/igor/PhpstormProjects/testesbbb/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php:392
Stack trace:
#0 /home/igor/PhpstormProjects/testesbbb/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php(392): SimpleXMLElement->__construct('')
#1 /home/igor/PhpstormProjects/testesbbb/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php(165): BigBlueButtonBigBlueButton->processXmlResponse('http://192.168....')
#2 /home/igor/PhpstormProjects/testesbbb/index.php(44): BigBlueButtonBigBlueButton->joinMeeting(Object(BigBlueButtonParametersJoinMeetingParameters))
#3 {main}
thrown in /home/igor/PhpstormProjects/testesbbb/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 392
But I have
https://3v4l.org/V4L68
The method getJoinMeetinURL works fine.
My php version: 7.2
OS: ubuntu 18.04
BBB on docker demo
bigbluebutton-api-php: ~2.0.0
How to make checksum?
Hi everybody!
I’m trying to create meeting with Laravel. And have problem with checksum, who can write here a small instruction how to make request to create meeting with Laravel?
Get rid of getenv / Env-Parameters???
Why would you use «getenv» to configure the BBB-Api class? Why not just passing those two parameters (secret & url) to the constructor?
Using environment variables has several drawbacks — as for example I cannot instanciate multiple objects of your API for managing different BBB Servers inside my application. Likewise, env-variables are easily available for all php scripts running in the same environment.
get, set and object to array
I know this API is new , so I’ve been trying to follow the API by reading the source, and trying to understand how you guys want to build this. I just want to give a recommendation based on my experience of using this API so far. While this is still in its inception, I’m pretty sure some big changes are still allowed.
This API gives the output by returning XML response by breaking it down one method for each.
Why don’t you just convert the object to array?
public function getMeetingInfo($meetingID, $moderatorPW) { $checksum = sha1("getMeetingInfomeetingID=$meetingID&password={$moderatorPW}{$this->secret}"); $xml = $this->bbb->processXmlResponse($this->url . "api/getMeetingInfo?meetingID=$meetingID&password=$moderatorPW&checksum=$checksum"); return json_decode(json_encode($xml), true); }
That encode+decode+true magically converts the object to array in one line.
That said, if we can store the array to property, the Class itself can be shortened much, e.g.:
namespace BigBlueButtonCore; /** * Class Meeting * @package BigBlueButtonCore */ class Meeting { /** * @var array */ private $meeting; /** * Meeting constructor. * @param $xml SimpleXMLElement */ public function __construct($xml) { $this->meeting = json_decode(json_encode($xml), true); } /** * @return mixed */ public function get($key) { /** * @todo: switch-case to convert string to boolean or int */ return $this->meeting[$key]; } }
This also brings the same idea for set
, eg:
namespace BigBlueButtonParameters; /** * Class CreateMeetingParameters. */ class CreateMeetingParameters extends BaseParameters { /** * @var array */ private $meeting = array(); /** * @var array */ private $meta = array(); /** * CreateMeetingParameters constructor. * * @param $meetingId * @param $meetingName */ public function __construct($meetingId, $meetingName) { $this->meetingId = $meetingId; $this->meetingName = $meetingName; } /** * @param string $key * * @return mixed */ public function get($key) { return $this->meeting[$key]; } /** * @param string $key * @param mixed $val * * @return CreateMeetingParameters */ public function set($key, $val = '') { $this->meeting[$key] = $val; return $this; } /** * @return string */ public function getMeta($key) { return $this->meta[$key]; } /** * @param string $key * @param string $value * * @return CreateMeetingParameters */ public function setMeta($key, $value) { /** * Remove prefix to assure the standard */ $key = preg_replace('/^meta_/', '', $key); $this->meta[$key] = $value; return $this; } /** * @return string */ public function getHTTPQuery() { $queries = $this->meeting; if (!empty($this->meta)) { foreach ($this->meta as $k => $v) { /** * Append prefix to apply the standard */ $queries['meta_' . strtolower($k)] = $v; } } return $this->buildHTTPQuery($queries); } }
By doing so, you don’t have to deal with the typo/different property’s name between the API and the response, eg: creationTime vs createTime.
Less work (even for developer), bulletproof API.
Unhandled curl error: Connection timed out after 10001 milliseconds
«message»: «Unhandled curl error: Connection timed out after 10001 milliseconds»,
«exception»: «RuntimeException»,
«file»: «/var/www/vhosts/cnjxnb/httpdocs/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php»,
«line»: 389,
«trace»: [
{
«file»: «/var/www/vhosts/cnjxnb/httpdocs/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php»,
«line»: 102,
«function»: «processXmlResponse»,
«class»: «BigBlueButtonBigBlueButton»,
«type»: «->»
},
Failed to change status publish records.
There is an error in line
‘publish’, $this->publish ? ‘true’ : ‘false’ |
There have to be
'publish' => $this->publish ? 'true' : 'false'
How do you generate checksum on PHP?
Comment in getRecordingsWithXmlResponseArray() of the class BigBlueButton
Hi!
I think that there is a problem concerning the comment on the method getRecordingsWithXmlResponseArray() of the class BigBlueButton. Indeed, it said that it requires an array
«/* USAGE:
$recordingParams = array(
‘meetingId’ => ‘1234’, — OPTIONAL — comma separate if multiple ids
);»
However the method expects an input «$recordingParams» of type «GetRecordingsParameters» because the method «getHTTPQuery()» of the latter class is called in the line 203.
Sincerly yours
Set presenter for attendee per API call
Hi,
I use bigbluebutton for a lot lightningtalks. We will have many participants.
I want to have the workflow that only the one who is giving a talk gets «presenter» manually, but didn’t want to search that one in a large list.
I got the idea to use a list of names and an external program to enable this option. The current API seems not be able to archieve this.
That may need «room id», «user name», «verify user in room», «get presenter status», «set presenter»
Any idea how that can be done?
regards
Reimar
404 Not Found — Add Presentation
Hello, I Used BigBlueButton PHP API for about 1 Month and everything almost Ok
but tonight I tried to create a meeting and my website shows error
After that, I understood that in backend, API recieved 404 — Not Found Error
finnally I Commented below codes and Website work almost correctly
if (!empty($payload)) {
//curl_setopt($ch, CURLOPT_HEADER, 0);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
/*curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-type: ' . $contentType,
'Content-length: ' . mb_strlen($payload),
]);*/
}
but presentasion slide not showing
can I solve this Problem?
Querying attendees of meeting throws warning
Hi,
I noticed that querying attendees of a meeting throws the following warning:
Warning: BigBlueButtonCoreAttendee::__construct(): Node no longer exists
I used the following code to query the participants of the meeting (simplified and generalized):
// $bigBlueButton is an instance of BigBlueButtonBigBlueButton $response = $bigBlueButton->getMeetings(); $serverMeetings = $response->getMeetings(); foreach ($serverMeetings as $serverMeeting) { foreach ($serverMeeting->getAttendees() as $attendee) { $attendees[] = $attendee->getFullName(); } }
The warning seems to be thrown whenever at least one attendee is in the meeting.
If I remove the following block from the BigBlueButtonCoreAttendee
constructor, everything works fine:
foreach ($xml->customdata->children() as $data) { $this->customData[$data->getName()] = $data->__toString(); }
Tested PHP versions: 7.3 and 7.4.
Wrong code in example
The line
$response = $bbb->createMeeting(createMeetingParams);
must be
$response = $bbb->createMeeting($createMeetingParams);
joinMeeting error
getJoinMeetingURL works great but joinMeeting throws a fatal error
php 7.3
$joinMeetingParameters = new JoinMeetingParameters('','','');
$joinMeetingParameters->setMeetingId('test');
$joinMeetingParameters->setUsername('test');
$joinMeetingParameters->setPassword('test');
$joinMeetingParameters->setJoinViaHtml5(true);
$joinMeetingParameters->setRedirect(false);
$bbb = new BigBlueButton();
$response = $bbb->joinMeeting($joinMeetingParameters);
Warning: SimpleXMLElement::__construct(): Entity: line 6: parser error : Specification mandate value for attribute async in /vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 490
Warning: SimpleXMLElement::__construct(): in /vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 490
Warning: SimpleXMLElement::__construct(): ^ in /vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 490
Fatal error: Uncaught Exception: String could not be parsed as XML in /vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php:490 Stack trace: #0 /vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php(490): SimpleXMLElement->__construct('nprocessXmlResponse('https://server') #2 /getjoinmeetingurl.php(20): BigBlueButtonBigBlueButton->joinMeeting(Object(BigBlueButtonParametersJoinMeetingParameters)) #3 {main} thrown in /vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 490
creating hooks but it didn’t fire any events
Hi @GhaziTriki I have created a hooks but it seems to be not working.
$hookParameter = new HooksCreateParameters("https://enw3jpw6d9p7b.x.pipedream.net"); $hookParameter->setMeetingId($iMeetingId); $hookParameter->setGetRaw(true); $hookRes = $bbb->hooksCreate($hookParameter); Log::info($hookRes->getHookId());
below is the results when I try to list hook so it is registered.
BigBlueButtonCoreHook::__set_state(array(
'rawXml' =>
SimpleXMLElement::__set_state(array(
'hookID' => '2',
'callbackURL' => $hookParameter = new HooksCreateParameters("https://enw3jpw6d9p7b.x.pipedream.net");
$hookParameter->setMeetingId($iMeetingId);
$hookParameter->setGetRaw(true);
$hookRes = $bbb->hooksCreate($hookParameter);
Log::info($hookRes->getHookId());
SimpleXMLElement::__set_state(array(
)),
'meetingID' =>
SimpleXMLElement::__set_state(array(
)),
'permanentHook' => 'false',
'rawData' => '1',
)),
'hookId' => 2,
'meetingId' => 'b4991f917a36b8d9c9666a8087d23f44ab0536f7-1578487391601',
'callbackUrl' => 'https://enw3jpw6d9p7b.x.pipedream.net',
'permanentHook' => false,
'rawData' => false,
)),
maybe a firewall something? or a configuration on my bbb server?
Pre-upload slides
Error «Node no longer exists» when calling getParticipants() in a Meeting
When calling getParticipants()
of a meeting, there is an error in Attendee
constructor because $xml->customdata->children()
fails if customdata
doesn’t exists.
Warning: BigBlueButtonCoreAttendee::__construct(): Node no longer exists
Sample Of présentation pre-upload
Can you please provide a sample of presentation preupload.
Thanks
How to integrate it with CodeIgniter.
Hi Team,
Please give me some reference to integrate and use this fantastic API with codeIgniter.
I am not finding ways to do it.
How to check if URL / Secret are right?
Thank you for that very clear API!
I am in the process of developing a BBB management tool for a CMS and with the methods I am currently applying, if the user entered a wrong SECRET in the configurations, they will only receive an unspecific XML error on the attempt to create a meeting.
I would like to have a way of confirming the correctness of the URL/SECRET combination and I thought that the ApiVersionCheck call would do so, but it works when only the URL is working.
Which function would you use for the checkup of URL/SECRET if there are no meetings running on the server?
Thank you for suggestions!
Unhandled curl error: Could not resolve host: api
I create meeting use api. Please help me!
RuntimeException in BigBlueButton.php line 338:
Unhandled curl error: Could not resolve host: api
in BigBlueButton.php line 338
at BigBlueButton->processXmlResponse(‘api/create?name=BigBlueButton+API+Meeting&meetingID=bbb-meeting-uid-65&record=false&autoStartRecording=false&allowStartStopRecording=false&checksum=bb83a2a318ccd74d17d7b0bd5b7627ad4fb2a9b4’, ») in BigBlueButton.php line 95
at BigBlueButton->createMeeting(object(CreateMeetingParameters)) in FrontendController.php line 31
at FrontendController->home()
at call_user_func_array(array(object(FrontendController), ‘home’), array()) in Controller.php line 256
at Controller->callAction(‘home’, array()) in ControllerDispatcher.php line 164
at ControllerDispatcher->call(object(FrontendController), object(Route), ‘home’) in ControllerDispatcher.php line 112
at ControllerDispatcher->IlluminateRouting{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->IlluminatePipeline{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 114
at ControllerDispatcher->callWithinStack(object(FrontendController), object(Route), object(Request), ‘home’) in ControllerDispatcher.php line 69
at ControllerDispatcher->dispatch(object(Route), object(Request), ‘ModulesFrontendHttpControllersFrontendController’, ‘home’) in Route.php line 203
at Route->runWithCustomDispatcher(object(Request)) in Route.php line 134
at Route->run(object(Request)) in Router.php line 708
at Router->IlluminateRouting{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
Fatal error: Uncaught RuntimeException: Unhandled curl error: Could not resolve host
Hi, I have this same problem in setting up the meeting.
Fatal error: Uncaught RuntimeException: Unhandled curl error: Could not resolve host: api in /var/www/html/bbb-api/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php:388 Stack trace: #0 /var/www/html/bbb-api/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php(101): BigBlueButtonBigBlueButton->processXmlResponse(‘api/create?name…’, ») #1 /var/www/html/bbb-api/create-meeting.php(29): BigBlueButtonBigBlueButton->createMeeting(Object(BigBlueButtonParametersCreateMeetingParameters)) #2 {main} thrown in /var/www/html/bbb-api/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 388
change meetings config
After I Create Meeting…I want to dynamically change some of its config like disable desktop sharing.
based on bigbluebutton document I wrote below code which
I get default config
change it
then I set it using setConfig function …
it successfully done and returned token which I used it to get join url…but when I go to the url and directed to the Conference nothing changed…
setConfig response
Implement all 2.0 API features
- Update API version to 2.0
- Support PHP 5.6 and above http://php.net/supported-versions.php
Support lock settings for create API
Fix SetConfigXMLResponse configToken property
BBB running with HAproxy and Cloudflare SSL
Hello,
I installed BBB on Proxmox and forwarded the ip address with HAproxy but I see the BBP’s Nginx page when I go to the domain
How can I overcome this?
wrong cast for creation time
The function getCreationTime
is casting an integer string to a float value which results in failing joins.
Getting response code FAILED for getMeetingInfo
I am trying to use credentials from api-mate and trying to create metting in localhost using Laravel framework, I am getting FAILED as response code for getMeetingInfo
and meeting ID for createMeeting
can you give some idea how I should proceed?
It is actually returning 404 error, that is what I got when I dumped $data
in processXmlResponse()
.
setConfigXML returns 500 Internal Server Error
I’m trying to use setConfigXML
API, but it returns 500 Internal Server Error.
<!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]> <!--> <html lang="en" class="no-js"> <!-- <![endif]--> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Error</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="/bigbluebutton/static/images/favicon.ico" type="image/x-icon"> <link rel="apple-touch-icon" href="/bigbluebutton/static/images/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="114x114" href="/bigbluebutton/static/images/apple-touch-icon-retina.png"> <link rel="stylesheet" href="/bigbluebutton/static/css/main.css" type="text/css"> <link rel="stylesheet" href="/bigbluebutton/static/css/mobile.css" type="text/css"> <meta name="layout" content="main"> </head> <body> <div id="grailsLogo" role="banner"> <a href="http://grails.org"> <img src="/bigbluebutton/static/images/grails_logo.png" alt="Grails"/> </a> </div> <ul class="errors"> <li>An error has occurred</li> </ul> <div class="footer" role="contentinfo"></div> <div id="spinner" class="spinner" style="display:none;">Loading…</div> <script src="/bigbluebutton/static/js/application.js" type="text/javascript" ></script> </body> </html>
What I’ve set were:
- set the URL up: meetingID=…&configXML=…&checksum=…
- content-type to
application/x-www-form-urlencoded
- post field body as same as the URL (http_build_query($postFields)).
Is there something I missed?
Thanks ahead!
Use of foreach to iterate over a simple Object in GetMeetingInfoResponse
Hi!
I’am a new user of your project. I think that there is a mistake in the line 69 of the file GetMeetingInfoResponse: foreach ($this->rawXml->attendees->attendee as $attendeeXml) {
I guess that you meant $this->rawXml->attendees
because it is a traversable object.
Besides at the line 68 $this->attendess = [];
, there is not such property in the class GetMeetingInfoResponse
and it is never used. I suppose that it is simply a spelling mistake and that you meant $this->attendees[]
.
Sincerely yours
Put return codes in constants
url_encode
Hello
There is a mistake on line 450 in the file CreateMeetingParameters in the method getPresentationsAsXML
there is a urlencode I know this function is use for special caracters but on the server side there is no urldecode and you can’t upload file because you have a message : Malformed URL in BBB log.
If you remove the urlencode everything work fine
Thanks
Fabrice
Failed to change status publish records.
There is an error in line
‘publish’, $this->publish ? ‘true’ : ‘false’ |
There have to be
'publish' => $this->publish ? 'true' : 'false'
Setting up a timed interview
Hello,
Thank you for this great project!
Is it possible to determine the duration of a conversation created?
For example, it is desired to create a 60-minute interview. Redirect to custom page after 60 minutes.
please remove dev trash from composer require section
like:
fabpot/php-cs-fixer
fzaninotto/faker
etc
it should be used in require-dev section
Broken meta bbb-recording-ready-url
Meta bbb-recording-ready-url
is no more built into the URL.
Guest parameter on Join?
This API is great, but why is it missing a simple «guest» parameter for joining meetings?
https://docs.bigbluebutton.org/dev/api.html#join
I’d like to use this to mark guests with the «moderator approval» settings using guestPolicy since most of our attendees are guests at the moment.
currently unable to handle this request.
Dear all,
Sorry to bother you! I am a newbie to this. Anyway, I tried to use this bigbluebutton-api-php, however, i am running into this problem for the past couple of days. Following the instructions on github, I have created a composer project. When I use it as:
api/create not found
Hi I have digitalocean install of bbb and its working on the demo. but right now i can’t create using php api. i got this response from the curl request
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.10.3 (Ubuntu)</center>
</body>
</html>
and on the server logs i got this..
2019/12/02 10:46:34 [error] 26920#26920: *139 open() "/var/www/bigbluebutton-default/api/create" failed (2: No such file or directory), client: 103.95.148.158, server: bbb.learnicus.online, request: "GET /api/create?name=BigBlueButton+API+Meeting&meetingID=bbb-meeting-uid-65&record=false&autoStartRecording=false&allowStartStopRecording=false&webcamsOnlyForModerator=false&lockSettingsDisableCam=false&lockSettingsDisableMic=false&lockSettingsDisablePrivateChat=false&lockSettingsDisablePublicChat=false&lockSettingsDisableNote=false&lockSettingsHideUserList=false&lockSettingsLockedLayout=false&lockSettingsLockOnJoin=true&lockSettingsLockOnJoinConfigurable=false&checksum=cf0a40b6bc76400ab181daf349064637c7150c6d HTTP/1.1", host: "bbb.learnicus.online"
Node no longer exists when i call $meeting->getAttendees()
A PHP Error was encountered
Severity: Warning
Message: BigBlueButtonCoreAttendee::__construct(): Node no longer exists
Filename: Core/Attendee.php
Line Number: 83
code:
$args = new GetMeetingInfoParameters($online_meeting->id,$online_meeting->moderator_password);
$info = $bbb->getMeetingInfo($args);
if($info->success()) {
$meeting = $info->getMeeting();
return (object)[
'meetingId' => $meeting->getMeetingId(),
'attendees' => $meeting->getAttendees()
];
}
$info->getRawXml();
SimpleXMLElement Object
(
[returncode] => SUCCESS
[meetingName] => 55
[meetingID] => f1de5900-8019-11ea-ab74-f1d4e0b38afa
[internalMeetingID] => c913f715fa34eda7c0d61dd382d5bbbf12ec67fd-1587065969604
[createTime] => 1587065969604
[createDate] => Thu Apr 16 19:39:29 UTC 2020
[voiceBridge] => 76257
[dialNumber] => 613-555-1234
[attendeePW] => f1de5902-8019-11ea-ab74-f1d4e0b38afa
[moderatorPW] => f1de5901-8019-11ea-ab74-f1d4e0b38afa
[running] => true
[duration] => 320
[hasUserJoined] => true
[recording] => true
[hasBeenForciblyEnded] => false
[startTime] => 1587065969617
[endTime] => 0
[participantCount] => 2
[listenerCount] => 0
[voiceParticipantCount] => 0
[videoCount] => 0
[maxUsers] => 200
[moderatorCount] => 1
[attendees] => SimpleXMLElement Object
(
[attendee] => Array
(
[0] => SimpleXMLElement Object
(
[userID] => 12991
[fullName] => Umut ÇELİK
[role] => MODERATOR
[isPresenter] => true
[isListeningOnly] => false
[hasJoinedVoice] => false
[hasVideo] => false
[clientType] => HTML5
)
[1] => SimpleXMLElement Object
(
[userID] => 12991
[fullName] => Umut ÇELİK
[role] => VIEWER
[isPresenter] => false
[isListeningOnly] => false
[hasJoinedVoice] => false
[hasVideo] => false
[clientType] => HTML5
)
)
)
[metadata] => SimpleXMLElement Object
(
[bbb-recording-ready-url] => https://app.magistum.com/api/v1/webhook/bbb/hookname/RecordingReadyCallback
[endcallbackurl] => https://app.magistum.com/api/v1/webhook/bbb/hookname/EndCallback
)
[isBreakout] => false
)
Error: «Warning: SimpleXMLElement»
PHP:
<?php
require_once '/home/---/public_html/vendor/autoload.php';
use BigBlueButtonBigBlueButton;
define('BBB_SERVER_BASE_URL','https://bbb.domain.com/bigbluebutton/');
define('BBB_SECRET','J1rF2P34628tKiS5F3V4627140iq9fF4nZkVI');
$bbb = new BigBlueButton();
$createMeetingParams = new BigBlueButtonParametersCreateMeetingParameters('bbb-meeting-uid-65', 'BigBlueButton API Meeting');
$response = $bbb->createMeeting($createMeetingParams);
echo "Created Meeting with ID: " . $response->getMeetingId();
Error:
Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Start tag expected, '<' not found in /home/---/public_html/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 424
Warning: SimpleXMLElement::__construct(): error code: 1003 in /home/---/public_html/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 424
Warning: SimpleXMLElement::__construct(): ^ in /home/---/public_html/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 424
Fatal error: Uncaught Exception: String could not be parsed as XML in /home/---/public_html/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php:424 Stack trace: #0 /home/---/public_html/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php(424): SimpleXMLElement->__construct('error code: 100...') #1 /home/---/public_html/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php(103): BigBlueButtonBigBlueButton->processXmlResponse('api/create?name...', '') #2 /home/---/public_html/test7.php(9): BigBlueButtonBigBlueButton->createMeeting(Object(BigBlueButtonParametersCreateMeetingParameters)) #3 {main} thrown in /home/---/public_html/vendor/bigbluebutton/bigbluebutton-api-php/src/BigBlueButton.php on line 424
What is the reason?
Thank you.
The response content must be string, object given
use BigBlueButtonBigBlueButton;
use BigBlueButtonParametersGetRecordingsParameters;
class BigBlueButtonController {
function getRecordings($param = []) {
$recordingParams = new GetRecordingsParameters();
$bbb = new BigBlueButton();
$response = $bbb->getRecordings($recordingParams);
return $response;
}
}
This is my code and I am getting error
The Response content must be a string or object implementing __toString(), «object» given.
From browser, I can see there is some problem on
public function setContent($content)
{
if (null !== $content && !is_string($content) && !is_numeric($content) && !is_callable(array($content, '__toString'))) {
throw new UnexpectedValueException(sprintf('The Response content must be a string or object implementing __toString(), "%s" given.', gettype($content)));
}
$this->content = (string) $content;
return $this;
}
But I can understand, the problem is not there, so how I should debug and solve this issue.
create meeting room parameters
@ffdixon How can I use the customLogoURL option in creating meeting room API. As mentioned in BigBlueButton documentation there is no option for that.
Failed to join (setRedirect = false)
Hello! I want to get right sessionToken to use it manualy. Code, I used:
$joinMeetingParams = new JoinMeetingParameters($m['meetingID'], $name, $pass);
if ($_POST['type'] == 'html5'){
$joinMeetingParams->setJoinViaHtml5(true);
}
$joinMeetingParams->setRedirect(false);
$url = $bbb->getJoinMeetingURL($joinMeetingParams);
$joinMeetingResponse = $bbb->joinMeeting($joinMeetingParams);
var_dump($url,$joinMeetingResponse);
$url I got is
https://server/bigbluebutton/api/join?meetingID=356a192b7913b04c54574d18c28d46e6395428ab_8f9329121a2844579d346a7f5660372114b08ccf&fullName=Михаил&password=123456&redirect=false&joinViaHtml5=true&checksum=9bd0e52bb2d1cbce9f9ef508365ce80d361ac3b4
$joinMeetingResponse I got is:
BigBlueButtonResponsesJoinMeetingResponse Object
(
[rawXml:protected] => SimpleXMLElement Object
(
[returncode] => SUCCESS
[messageKey] => successfullyJoined
[message] => You have joined successfully.
[meeting_id] => fe17f66b402b8c178785ebc96fe2fb6e96b17b7a-1543763121613
[user_id] => w_gxprjs9w5sdg
[auth_token] => nrmw2bkmxxgo
[session_token] => ljbp2qalayrpgs3p
)
)
When i want to open manualy
https://server/bigbluebutton/api/enter?sessionToken=ljbp2qalayrpgs3p I got
{"response":{"returncode":"FAILED","message":"Could not find conference.","logoutURL":"https://server"}}
BUT WHEN i copy — paste $url to browser I see response like $joinMeetingResponse:
<response>
<returncode>SUCCESS</returncode>
<messageKey>successfullyJoined</messageKey>
<message>You have joined successfully.</message>
<meeting_id>
fe17f66b402b8c178785ebc96fe2fb6e96b17b7a-1543763121613
</meeting_id>
<user_id>w_d3oxc7tvmrqs</user_id>
<auth_token>8ekeftauoftf</auth_token>
<session_token>e09c8uqeq3lhsdbk</session_token>
</response>
Then i used token e09c8uqeq3lhsdbk and it works!
https://server/bigbluebutton/api/enter?sessionToken=e09c8uqeq3lhsdbk
{"response":{"returncode":"SUCCESS","fullname":"Михаил","confname":"Конференция "Нейросети"","meetingID":"fe17f66b402b8c178785ebc96fe2fb6e96b17b7a-1543763457759","externMeetingID":"356a192b7913b04c54574d18c28d46e6395428ab_8f9329121a2844579d346a7f5660372114b08ccf","externUserID":"w_6cepjew2ta42","internalUserID":"w_6cepjew2ta42","authToken":"byinyph7uahw","role":"MODERATOR","guest":false,"conference":"fe17f66b402b8c178785ebc96fe2fb6e96b17b7a-1543763457759","room":"fe17f66b402b8c178785ebc96fe2fb6e96b17b7a-1543763457759","voicebridge":"05635","dialnumber":"613-555-1234","webvoiceconf":"05635","mode":"LIVE","record":"false","isBreakout":false,"logoutTimer":0,"allowStartStopRecording":false,"welcome":"<br>Welcome to <b>Конференция "Нейросети"<u002fb>!<br><br>For help on using BigBlueButton see these (short) <a href="event:http://www.bigbluebutton.org/content/videos"><u>tutorial videos<u002fu><u002fa>.<br><br>To join the audio bridge click the phone button. Use a headset to avoid causing background noise for others.<br><br><br>This server is running <a href="http://docs.bigbluebutton.org/" target="_blank"><u>BigBlueButton<u002fu><u002fa>.","customLogoURL":"","customCopyright":"","muteOnStart":false,"logoutUrl":"http://bbb.loc/conferences.html","defaultLayout":"NOLAYOUT","avatarURL":"https://server/client/avatar.png","customdata":[],"metadata":[{"html5autoswaplayout":"true"},{"html5autosharewebcam":"true"},{"html5hidepresentation":"true"}]}}
Where can be problem?
Download Records
There is no any option to download meeting’s records.
Instance of BBB used on test has wrong version
Hi @GhaziTriki
I was trying to fix test errors. See: #68
But when i’m trying to fix errors on statusCode responses I see that the instance of BBB that is used on test has a wrong version [1] ( testAPIVersion is broken, expected 2.0.0 and returned 0.9 )
Now, I dont know if its better to fix these test errors or if you can upgrade BBB instance using on test.
Feel free to close the issue if I’m wrong.
Thank you in advance!
[1] https://test-install.blindsidenetworks.com/bigbluebutton/api/
401 Session xxyyzz not found
I’ve set up my Working BBB about two weeks ago and a second one integrated in Moodle. Now I try to code my own little Joining-Tool for my custom requirements.
Used the «Full Usage Sample» to code my first example and direct join works well but with setRedirect(false) the URL with the sessionToken doesn’t work: «401, not allowed, Session xxyyzz not found»
My Code (with modifyed URLs and Secret):
error_reporting(E_ALL);
ini_set('display_errors', 1);
$Username = "MyName";
$meetingId = "SuperMeeting1234";
$meetingName = "Welcome Meeting!";
$usertype="moderator"; # moderator/attendee
$passwords = array('moderator' => 'MyHiSecModPW', # Moderator-Passwort
'attendee' => 'MyHiSecAtPw'); # Teilnehmer-Passwort
putenv("BBB_SECRET=SessionKeyFromMyBBBServer");
putenv("BBB_SERVER_BASE_URL=https://bbb.myserver.com/bigbluebutton/");
require_once 'bbb-api/vendor/autoload.php';
use BigBlueButtonBigBlueButton;
use BigBlueButtonParametersCreateMeetingParameters;
use BigBlueButtonParametersJoinMeetingParameters;
// Init BigBlueButton API
$bbb = new BigBlueButton();
// Create the meeting
$createParams = new CreateMeetingParameters($meetingId, $meetingName);
$createParams = $createParams->setModeratorPassword($passwords['moderator'])
->setAttendeePassword($passwords['attendee']);
$bbb->createMeeting($createParams);
// Send a join meeting request
$joinParams = new JoinMeetingParameters($meetingId, $Username, $passwords[$usertype]);
// Ask for immediate redirection
// $joinParams->setRedirect(true);
// echo $bbb->getJoinMeetingURL($joinParams);
// Let the prorgrammer do the redirection later
$joinParams->setRedirect(false);
$joinResponse = $bbb->joinMeeting($joinParams);
// Prepare the server URL
$bbbServerUrl = "https://bbb.myserver.com";
echo '<br>Join-Link: <a target="_blank" href="'.$bbbServerUrl . '/html5client/join?sessionToken=' . $joinResponse->getSessionToken() . '">LinkiWinki</a>';
The meeting ID that you supplied did not match any existing meetings
Step by step:
- i create the meeting
- join as moderator
- join some users as attendees
- end meeting using button in HTML5 client, or using API — doesnt matter
After that i create this meeting one more time without any error
The try to join and this kind of error appears: The meeting ID that you supplied did not match any existing meetings «key»:»invalidMeetingIdentifier»
Nothing like this I do not get:
This conference was already in existence and may currently be in progress.
Hi Joisarjignesh,
first of all many thanks about this wonderful package!
Maybe you could help me or give me a suggestion, i try to get meeting info from two different servers with big blue button, but I’ve not found the right yet.
The first idea is to ask to server1 with a Laravel Scheduled job, and after this one, change env bbb parameters to connect to server2 and make the same things, but all this, unfourtunately not work! Do you ever try a thing like this one?
Thanks a lot!
Dear All, I want to have some reports which related to each session. How can we logs of enter and exit time of each user during the each meeting?
Some user join into some meeting, but their internet or any other events (like closing a browser, turning off the electricity or etc.) cause that they leave each meeting. I want to have an excellent log for this.
With Laravel, I can just log the login time and also logout time (if they came back and not closing the browser) and it is not sufficient.
Please help me in this moment.
@SamuelWei @joisarjignesh
Dear @SamuelWei & @joisarjignesh
How can we get all server names from config file in controller?
'servers' => [
'server1' => [
'BBB_SECURITY_SALT' => '',
'BBB_SERVER_BASE_URL' => '',
],
]
Hi everybody, I want to send each room (meeting) to specific BBB server. Could you help me to integrate and extend @joisarjignesh ‘s library for this improvement?
How can we set a specific range of time for video processing (from raw to published version)?
I want to have meeting session in morning and each of them processing in the afternoon and night.
Also, If we have a specific meeting session in the afternoon, could we cancel the video processing (prev. recordings)
@SamuelWei @joisarjignesh
I’ve added the hooks to both the official bbb api and this to allow guestPolicy settings to be passed during the Create Room method.
Since it requires an update to the BBB api, should I just include the changes here for reference or make a pull request that can be merged when the API is updated? I haven’t made a pull request there yet.
Thanks,
Dwayne
I want to add this BigBlueButton properties with this package:
The BigBlueButton server will automatically remove empty meetings that were created but have never had any users after a number of minutes specified by meetingExpireIfNoUserJoinedInMinutes defined in bigbluebutton.properties.
How to pass meetingExpireIfNoUserJoinedInMinutes properties while creating a meeting in this package?
when i delete a recorded meeting it changes the state of that recording to deleted,
but it is still on the server, how can i remove it completely ?
Hi, How are you? thank you so much for your consideration in advance
I want to set a different constraint when each person want to create a meeting. E.g one person has just 3 live camera and the other has just 8 live webcam.
Dear all, I want to check who are in each meeting. I don’t have any idea how can we check each person by another. Each person logged into the meeting via his/her name and I can’t pass any parameter like as ssid or the other ones.
Therefore, I can’t check somebody when he/she has the same name as the other
What should I do now?
Dear All, How can we detect that anybody is not in the room (with hooks)? E.g. how can we get the duration of each user entrance? also some body maybe have loss internet connection. I want to call some function when anybody’s connection is destroyed
Hi all,
When I want to join into one meeting, it showed me the below message The meeting ID that you supplied did not match any existing meetings
What’s goes on? I create a meeting and then join to it…?
Dear all, I want to create a room which the end-user not share the microphone access and just listen.
I don’t want a modal window which force end-user to select it’s access. I want an access to just listen (like play a music which don’t need any access and the end-user fastly join to the meeting and not wait for checking anything).
I change settings.yml in (/usr/share/meteor/bundle/programs/server/assets/app/config)
autoJoin: true
listenOnlyMode: false
forceListenOnly: false
skipCheck: true
But the modal is also coming and the user must wait for just 3-5 second. I want to create a room with api which the end-user not see any modal and join fast to the meeting.
If the moderator change it’s access to a microphone or moderator from attendee, on that moment the end-user try to access the microphone.
Could you help me in this moment for joining fast like as any other music website which load in just a millisecond?
@SamuelWei
I’d love to embed conference on my own site (in my project view), mine app’s url. Is this possible?
Hello, how to generate these params in conf file, or where to get them?
BBB_SECURITY_SALT=bbb_secret_key
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/
I want to make an invite link like greenlight. How can I do that?
Error:
Unhandled curl error: SSL certificate problem: unable to get local issuer certificate.
how to solve this?
Hi, I want to check some participants’ status.
For example, I want to check which participants’ browser is active and not changed during each session.
Skip to content
Zoom offers the service of video conferencing and has the capability to conduct a meeting or share the content. It is a cloud-based service; sometimes, you might not be able to join the meeting, and the following will be highlighted on the screen stating Zoom invalid meeting id error. Due to the ongoing COVID-19 lockdown, many videoconferencing apps are being used, and Zoom is one the most popular among them.
- How To Use Zoom’s Immersive View?
- Unable To Join Zoom Meeting?
Now how we can resolve this invalid meeting id error shall be discussed stepwise in the article below.
- Once the Zoom app is installed on your desktop or any of your mobile devices; please make sure that it has been updated to the latest version.
- Now launch the app, and if you get Zoom invalid meeting id error; it can be because the id that you have entered might not be alphabetically correct or the id might have expired.
- You can click ok on the error or can simply click the home button of the mobile phone so that you can come out of the zoom app.
- Once you have come out of the app, tap on the bottom right-most-side button of your mobile; it will open all the recent apps that you have opened on your phone. Close the recently opened zoom app through it.
- Once it’s done, re-launch the zoom app. Please re-check the meeting id that you wish to join; and type it correctly on the meeting-id bar of the Zoom app.
If you are still facing the invalid meeting id error, then go to the phone settings and follow the below steps.
- In Settings, Go to the Apps > Manage apps > Zoom app > Clear Data and cache.
Want a step-by-step guide with pictures to do the same? Then, Have a look at our guide to clear data & cache of Snapchat (Procedure to clear cache and data is same for all the Apps).
After
following this step, restart your phone, and it should resolve this issue.
By following the above steps, the Zoom invalid meeting id error should get resolved; ensure that the meeting id is valid and alphabetically correct.
Why is my meeting ID invalid on Zoom?
This error occurs when you don’t have the latest version of Zoom. Try downloading the latest version and join the meeting again.
How do I fix the invalid meeting ID in Zoom?
To fix the invalid meeting in the zoom, go to Settings, then click on Application, then tap on Zoom application, and then tap on Clear Data and Clear Cache.
How long can a free Zoom meeting last?
A free Zoom meeting has a maximum duration of 24 hours.
It shouldn’t affect the way you join that specific meeting for as long as the meeting ID is correct. It’s possible that the meeting is no longer existing or the meeting has been expired.
Instead of the meeting ID, you may ask for the meeting link, you can also paste meeting link aside from the meeting ID.
Thanks for your reply.
Fortunately I was able to get into the meeting with the browser link. As far as I know I was using the correct meeting ID as that is what was posted in the newsletter for the club’s meeting. I even tried some old meeting IDs for some meetings I run and it at least recognized that the ID was valid even though the meeting happened several days ago. Why it decided to reformat the ID I don’t know. But the ZOOM client did not like it.
JohnPD
Just checking if my response solved your concern?
I can’t quite say for sure, but the format doesn’t really matter. You just need to type in the meeting ID and it will automatically be formatted in the correct way.
Just like this:
Maybe you can send some screenshots so that I can check.
Here are the initial screen and the error.
That only means that the meeting is invalid or no longer exists. You can confirm this by reaching out through Zoom chat or email support.
If you have the working meeting link, sometimes the meeting ID is included there. Or one way to find out what is the meeting ID is to check it during the meeting once the meeting started.
You may refer to these screenshots:
Just checking if my response solved your concern/question?
Hi, I just wanted to check in and see if my response has been of help to you. If so, it will be greatly appreciated if you can click the ‘Accept as Solution’ button.
This will be a great help to the community and to people who are having the same concern and are looking for answers.
I think we found the answer. Someone else ran into the same problem. He realized that a «9» had been dropped from the end of the posted meeting ID. The browser link included that additional digit. When I enter the meeting ID with that additional «9» now, it is valid. I am not sure how the number was copied and pasted into the newsletter, but somehow that last digit was dropped. The other possibility is that it was not generated when the info was sent to the clipboard. Normally it is a 10 digit number, but in this case it was an 11 digit number. So this has been resolved. I will have to be aware of this for any future meetings I attend or create in case something is being dropped.
Thanks for your help.
Hello
I’m Esam Abdallah Adam I have meeting right now I don’t know how to reah