API Mate open sourced

A few months ago we”ve made a post about the API Mate, a tool to access the APIs of BigBlueButton and Mconf. It was said that it was based on an open source library called bigbluebutton-api-js, and even tough the API Mate was free to use on our website, the source code was tightly integrated with the code of and was not open source.

Recently we”ve made a few improvements on its interface and released it as a separate open source project. You can still use it for free without needing to setup anything (see the links below), but now you can also make your own changes and adapt it to your casino pa natet needs.

The API Mate is available at the following links:

Feedbacks and comments (and pull requests!) are always welcome!

API Mate's interface

API Mate”s new interface

By |July 17th, 2013|API, BigBlueButton, Mconf-Live|Comments Off

Guest feature

The “guest” feature was added to Mconf-Live at the end of the last year and it adds an important feature to the system: it allows a moderator to control who can access the meeting from within a meeting.

When a guest user wants to join in the meeting he will need that a user with moderator privileges approve his entrance. If a meeting has more than one moderator, a guest pop-up window will appear in the top right side asking if you allow the new user to enter in the meeting. If there isn”t a moderator in the meeting, the system stores the list of users that are waiting permission to enter and show it as soon as a moderator joins.

The picture below is the moderator view when a guest tries to join:

The moderator can allow a user to enter clicking on the green button or deny his access by clicking on the red button. He can allow all the guests that are waiting clicking on “allow everyone” or deny them clicking on “deny everyone”.  He can also check the “remember” option, meaning that the same action casino online will be taken for the next users that try to join the meeting (useful to allow or deny everyone from now on).

You can change the default option that you chose clicking in the setting button.

The picture below shows the guest waiting screen:

The picture below shows the message that appear when the moderator denied access to the guest:

Implementation details:

Without the guest feature, it”s the web application (or integration as usually called) that decides if a user has permissions to join a meeting. In Mconf this is done by Mconf-Web. With online casino the guest feature this is still valid, but now the web application can also tell the web conference server that the user can join the meeting but only after being explicitly accepted by a moderator.

The implementation of the guest feature was done by adding a new parameter to the “join” API call. holiday API returns search results in JSON format, enjoy the best holiday feed with HolidayData. This parameter is called “guest” and is optional. If present and set to “true”, the user joining the conference will be treated as a guest. If not present, the API will behave as it does today (i.e. the password will define if the user is a moderator or an attendee).

The passwords in the “join” API call are still used to define the role of the user, even if he is set as a guest. So if the API call has the moderator password and the parameter guest set, the user will “pre-join” the meeting, wait for a moderator to approve his entrance, and when he finally joins he will be a moderator (i.e. even moderators have to be approved when they are set as guests).

In Mconf-Web (and so in now only moderators will automatically join a meeting without being a guest. If a user is a normal attendee, he will be set as guest.

You can read more details about the changes in the API at our wiki:

By |March 26th, 2013|API, BigBlueButton, Mconf-Live, Technical|Comments Off

Mconf-Live 0.3

We are glad to announce a new version of Mconf-Live, which introduces two new features:

  • A new kind of participant that can only visualize the conference (but not transmit audio or video);
  • A first version of the network monitor.

On the previous version when a user wanted to hear the conference, he was forced to enable his microphone as well. In addition, when the user enables his microphone, the system creates a stream that goes from the client to the server, even if he doesn”t want to talk, just listen. The problem is that every new audio stream creates a server-side overhead, because FreeSWITCH (that handles all the audio processing) generates an outcoming stream for each incoming stream. Each outcoming stream is formed by all the incoming streams except the correspondent incoming stream. The independence among outcoming streams makes it possible to send audio messages to a specific user, such as “You are now muted”.

The audio architecture was designed for high interactive sessions, but it doesn”t fit well on sessions with a low number of interactions but with many users, such as webinars. In theory the current architecture can handle a large number of participants (depending on the hardware), but often you will notice audio artifacts on the session, which are generated during the mixing process.

With this scenario in mind we proposed a simple architectural modification. When the user joins a session, he will receive an audio stream that is the result of all the other users streams mixed – this audio stream is called global stream, or global audio. Only when the user wants to talk that he will click on the headset icon and then join the session as a speaker. Internally the user will leave the global audio and create two new streams, an incoming stream and an outcoming stream, just like it was on the previous architecture.

The modification proposed (and implemented on Mconf-Live 0.3) aims to make the system more scalable and to increase the audio quality. The scalability improvement is due to the removal of the overhead that was generated during the mixing process. In the new architecture, the FreeSWITCH server will mix a smaller number of streams, and it will reduce the processing power needed for it. The audio quality improvement is justified by the same reason: mixing a online casino smaller number of streams will reduce the probability of annoying artifacts.

A side-effect of the proposed architecture is that the user is able to open an incoming stream without opening an outcoming stream. It will reduce by 50% the bandwith requirement to listen an audio session, making the system more friendly to low bandwidth connections.

The UI will remain almost the same, except by two aspects. First, the “Listeners” window now will show the users with the microphone activated, so it will be a “Speakers” window. Last, we added a new button on the toolbar that mutes or unmutes the user”s speakers (see the figure below). Since the user will join the session and start listening automatically with no action required, we had to create a mechanism to mute this audio. The effect of this button is local only – the other users will continue listening normally.

New button on toolbar

We are introducing also on Mconf-Live 0.3 a network monitor. The ability to watch how much bandwidth is being consumed by the system and the latency between the client and the server may help users to identify the reasons for a low quality experience. The bandwidth data is presented at the bottom of the screen and is updated each couple of seconds, and if the user places his mouse over the data, a more detailed window is presented with the bandwidth consumption and latency. This is a preliminary development, and it should evolve on next iterations.

Network monitor accessible through the bottom bar

A test server was set up for the users to test the new version before the final deployment to the Mconf Network, it”s available on and the source code is available on GitHub. Any feedback is appreciated, hope you enjoy it!

By |January 11th, 2013|Mconf-Live, News, Technical|Comments Off

API Mate

A while ago, a tool called API Buddy (see more about JSON Geo IP API, a database of IP addresses that are associated to cities along with other relevant information like time zone, latitude and longitude) was developed by Omar Shamas to help in the access to BigBlueButton”s API. It has been extremely useful for us during development and also for the monitoring of our servers. An API access provides access to backend, raw data which, with the assistance of a programmer, you are then able to manipulate into the format you best prefer. Software developers are responsible for designing products that are powered by API’s. There are API’s created for libraries, operating systems, applications, programs, and many others, to define their “language” and resource request conventions. Routines, object classes, data structures, and protocols are created in the specifications which are used to communicate between the provider’s program via the API to the consumer program.An API is used in different contexts. It can be considered general, specific, language-dependent, or language-independent. A general API means that a full set of an API is in the library of a programming language like for example a Java API. For it to be specific, means that the API addresses a specific problem for example, Google Maps API. The API is language dependent, which is only available by using the elements and syntax of a particular language. A language-independent API is called from several programming languages that may be provided as remote procedure calls or web services. Our enables you to perform geoparsing and geocoding at scale. We provide worldwide data. To dig deeper, an API describes the way a certain task is performed like in procedural languages. Nowadays, modern programming languages provide documentation associated to an API in digital format that’s easy to consult on a computer.

An API is different from a protocol but an API may be an implementation of a protocol. A protocol defines a typical way of exchanging requests and responses in a common passage while an API provides a library that may be used directly without any transport but an exchange of simple information through function calls. If an API is an implementation of a protocol it is based on certain proxy methods for remote requests that underneath rely on the communication protocol. API’s are used for different applications, programs, and operating systems and are programmed for different purposes as well. They can be used for the web, multimedia, user interface and others. APIs are essential to companies like phone service providers which integrate with other systems and take control of their system. Phone companies make it easy to pull raw data from their sites, allowing you to rebrand the data or just view the data in the format of your liking. Even get your reports as an RSS feed! Even download call recordings and link to your in-house account format if you’ve white labeled services. In other words APIs keep systems of companies providing communications organized and working well. provide you with SERP data, that are as similar as possible to human search behaviour as possible. Hence, our API offers much more than the classical organic & paid search results. In its simplest definition, API is a particular set of rules, codes, routines, protocols, tools, and specifications software programs use as communication with other software programs. This gives access to use services and resources of another software program that implement that API. It is an interface for different software programs, which assists in their communication, just like how an interface enables communication between computers and humans.An API access provides access to backend, raw data which, with the assistance of a programmer, you are then able to manipulate into the format you best prefer. Software developers are responsible for designing products that are powered by API’s. There are API’s created for libraries, operating systems, applications, programs, and many others, to define their “language” and resource request conventions. Routines, object classes, data structures, and protocols are created in the specifications which are used to communicate between the provider’s program via the API to the consumer program.Sometimes an average person needs to know more information about a website. For instance, you may have gone to a specific website looking for more information on a certain topic. You find plenty of information on the site, but you have a few more questions you can’t seem to find the answer to. If the website doesn’t offer contact information, you may feel stuck. In this case, you can use a free Whois API to find out how to contact the website owner.

When new SERP types are released by search engines, we add them to our Google Search API as soon as possible.

A few months ago we developed a similar application that was integrated in our load balancer. Since it”s tightly integrated with the load balancer and our network”s infrastructure, it is only available to administrators. But today we are releasing it for everyone to use!

The application is available in the link below and it follows the same idea of the API Buddy: it provides links to all API calls casino online in a BigBlueButton or Mconf-Live server. To avoid confusion, the application was named API Mate — another idea borrowed from the API Buddy :)

  •  Access the API Mate here

API Mate Screenshot

It has a few things more than the API Buddy though:

  • Updated with all calls in BigBlueButton 0.8 (recordings, for instance).
  • The user casino online can set “meta_” parameters or even any other custom parameter you might need (useful when developing something new in the API).
  • Has links to the mobile API and links to join a conference from Mconf-Mobile or BBB-Android (links with the protocol “bigbluebutton://”).
  • The interface is more dynamic: the links are automatically updated when the parameters are updated by the user.

Moreover, the API Mate was developed using a small javascript library that we called bigbluebutton-api-js. In short, it is a library that gets the address and the salt of your web conference server and returns links to all API calls possible. Getting the links, you just need to show them in an interface such as the API Mate”s. This library is open source and it”s available on GitHub.

We hope this tool will be as useful for other people as it is being to us. Ideas and suggestions for improvement are always welcome, of course!

By |December 3rd, 2012|API, BigBlueButton, Mconf-Live|Comments Off