Course14:IT Connect - 08.1 Conferencing

From innovaphone wiki
Revision as of 14:00, 16 May 2024 by Viktor.gruenauer (talk | contribs) (Created page with "{{#moodlebook: Master Templates / V14 Templates / Connect| Conferencing | 141 }}")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
There are also other versions of this article available: Course13 | Course14 (this version)

Configuring conferences and maintain overview.

Overview

The purpose of the Conferencing object is to administer conference rooms that enable multi-party conferencing. While ad-hoc conferences, which can be initiated over the phone, are limited to 3 parties, a multi-party conference can handle a larger number of participants. The actual number a gateway can handle depends on how many conference channels are available on this device. In case you wonder what a conference channels is, consider it simply as a hardware property of a gateway/device (e.g. an IP811 has 10, an IP3011 has 30) - we will go more into detail later (you will find the respective characteristics of your gateway device in the corresponding data sheet or in the CONF column of the table in fish-help.png How to implement large PBXs or on the devices screenshot.png home page).

In addition to a hardware conference interface, screenshot.png a soft conference interface (SCNF) is available on all modern innovaphone appliances, which allows for audio, video and application sharing conferences as well. The soft conference interface is not bound to a hardware device, which means it can run on an IPVA.

Please note that the SCNF and CONF interfaces are separate interfaces. Since a single conference cannot run on more than one interface, you cannot combine the two to get one large conference room, but you can combine them to have several small ones.

How the conference interface works

Both types of interfaces perform the following tasks:
  • mix the audio streams received from the participants, which is then sent back to all participants
  • receive the video streams from all participants, which are then distributed to requesting participants on demand. In other words, video streams are not mixed, but multiplexed to all receiving participants
Audio mixing is based on PCM. Therefore, incoming audio streams using anything but G.711u/a as codec must be converted to PCM first. For this, a coder channel is required and must be available. Note that only the CONF interface can do this, not the SCNF interface. As a result, participants can call in to a conference running on an SCNF interface with G.711u/a only. Calling into a conference running on a CONF interface however is possible using any coder that is supported by the platform used (as screenshot.png can be seen in the General/Info page as Coder, e.g. 10 Channels of G.711,G.722,G.729,G.723,OPUS on an IP811).

As said before, for video and app-sharing (which is implemented as a video stream) no mixing is done. Instead, each client can offer up to three streams with different resolution to the conference interface. These streams are established but not data is sent unless a participant requests it. When multiple participants request the same stream, it is multiplexed by the conference interface.

For video, in contrast to audio (see above), no transcoding whatsoever is done. Therefore, all video connections must be established using the same coder (either VP8 or H.264). This is a configuration option of the conference object.

(Further Hints) At the time of writing (14r1final), H.264 is not supported by all platforms. We therefore recommend always using VP8 (which is also the default setting). For an up-to-date listing of supported codecs, see the Codecs section in fish-help.png Concept myApps platform services.

You can find a more in-depth explanation in this wiki article fish-help.png Concept Multi-Video-Conference.

When you initiate application sharing, your shared application is transmitted instead of the high-definition video.

Configuration

If you want to configure conferencing you need to create a Conferencing object at first.

This is done in the PbxManager plugin called screenshot.png Conferences by screenshot.png adding a conference. A configuration dialog would appear which allows you to configure the following parameters:
  • Name: This is the name of the Conference object
  • SIP: This value is used for the internal communication. You don't need to change it.
  • Number: Any number you configure here will be the prefix for your conference rooms. If you assign the number 60 and your room number is 10, you need to dial 6010 to get to the conference room

    (Further Hints) Name, SIP and Number must be unique in the system

  • Allow web access: This option has to be enabled to invite external participants via an HTTP link (don't worry we will talk about this feature in more detail later on in this book)
  • International number: External phone number of the PBX. This number is used for the construction of dial-in numbers within meeting invitations. It is usually the concatenation of a plus sign (+), your country code, your area code (if there is any) and your subscriber number (e.g. +496213428231)
Let's go ahead and screenshot.png create a Conference object
  • which is called Conference
  • has SIP set to conference
  • and uses 60 as Number
  • please also activate the Allow web access option and
  • add +496213428231 as International number
You can leave anything else untouched for now.
     

Announcements

If you call the conference room, you will probably expect to hear a greeting or a prompt to enter your PIN. Therefore the PBX needs to retrieve media files via HTTPS to be able to play an announcement.

You can use https://class.innovaphone.com/moodle2/pix/f/zip.png English announcement files or you can refer to fish-help.png our wiki to find the files in different languages.

These files are already converted, so you can video2.png upload them to the Files App right away:
  • open the Files App and create a new folder called conference
  • click on Mark on the upper right and then select only the new folder (you can also press and hold your left mouse key for a few seconds to see a check-mark next to it)
  • click screenshot.png the share icon on the right
  • select Share as link with filekey and leave User and Password empty
  • drag the announcement files you just downloaded to your conference folder (my browser behaved a little sluggish when I did this, so keep your patience)
  • switch to the Conference PbxManager plug-in
  • open the details of your conference object
  • open the Announcements section and
  • video2.png select the dvl-ckl2.net/files/UI/conference folder

(Further Hints) If you wonder how the plugin knows which of your shared folders to display: it simply looks in to all of those and considers only those, where a file input_room_number.<coder> exists in (which is one of the audio prompts used by the conference object).

Conference Interface

As said before, there are two types of conference interfaces. You can either use a purely software-based interface (SCNF) that uses only G.711a/u as a codec, or you can use the hardware resources (CONF) of a device to use as a conference interface.

To link the conference object to the conference interface you just have to press the screenshot.png search button in the Conferences PBX-Manager plugin. This will screenshot.png show all conference interfaces on all previously provisioned gateways. As opposed to the hardware based CONF interfaces, the software based interfaces (SCNF) have the note (Software Conference) attached to their names.

Conferencing- and Coder-channels

Let's talk about the different interface types in some more detail.

You can use either the hardware based CONF interface or the software based SCNF interface to implement conferences.

The CONF interface is not present on all models (e.g. it is missing on your IP411 and also on the virtual IPVA). The benefit of using a CONF interface is that it is able to connect with VoIP endpoints that do not use G.711u/a as a codec (e.g. due to bandwidth considerations). However, in order to do so, it requires an additional Coder channel per audio call.

The SCNF interface must connect callers using G.711u/a and therefore also does not require Coder channels.


Let's take an example. Your IP411 has
  • 6 Coder channels
  • no Conference channels for CONF (and hence no CONF interface)
  • 5 Soft Conference channels (and hence an SCNF interface)
So a conference object using the IP411 can support 5 G.711u/a-only participants. 5 Soft Conference channels but no Coder channels would be used for this.

The IP811 has
  • 10 Coder channels
  • 10 Conference channels for CONF (and hence a CONF interface)
  • 10 Soft Conference channels (and hence an SCNF interface)
So a conference object using the IP811 can support
  • 10 G.711u/a-only participants on the SNCF using 10 Soft Conference channels and
  • 10 multi-coder participants on the CONF using 10 Coder channels and 10 Conference channels
(Further Hints) Note that Coder channels are also required for using B-channels on ISDN interfaces as well as for Audio-Fax transmissions! If you use either of them on the same box, you might want to utilize the SCNF instead of the CONF in order to not cannibalize the Coder channels which are available.

The screenshot.png the Conferences PBX Manager plugin will show you how many Conference/Soft Conference Channels are available on your device. The number of such channels actually used is configurable. This may make sense if you are using a CONF interface which will also consume Coder channels and you need to reserve some for ISDN or audio-fax.

(Further Hints) Note that each participant of a conference, regardless if running on a CONF or SCNF interface requires a PBX-Channels license! You should therefore always screenshot.png activate the PBX Channels licenses switch so that these licenses are fetched from the PBX (that has all the licenses installed). To be even more precise, the number of PBX Channels licenses set forth in the Used channels field are allocated when the conference is configured

More details about how that interferes with using an ISDN interface on the same platform can be found in fish-help.png Conferences, Resources and Licenses.




Now let's get practical and video2.png link the conference object to the CONF interface on your IP811:
  • in the Conferences PBX Manager plugin, open the Conference interface section
  • click the Search button and screenshot.png see all the CONF/SCNF interfaces available
  • select the hq-Gateway-IP811-my little IP811 interface (this is the CONF interface, the SCNF interface has an additional (Software conference) attached to the name)

    (Further Hints) If you can't see your IP811 you need to redo the step Adding a Gateway in the Managing Devices book

  • leave the Used channels as is (so all available channels are used)
  • activate the PBX Channels licenses switch (this is to say that the required licenses for using the CONF channels are taken from the PBX, which is the recommended configuration)

Rooms

As a next step to get your conference object up and running you have to create so-called rooms for dial-in.

A room conceptually is the place where a single conference happens. The conference object can manage multiple rooms and each of them has a distinct extension. Users will select a specific room by dialing its corresponding extension. All rooms share the resources of the conference interface we have linked to the Conference App in the previous step.

The PBX will create an App for each room you create. This app can be assigned to users and enables managing of a conference room in real-time.

To video2.png create a room, proceed as follows:
  • click on screenshot.png Add room in the Rooms section of the conference object in the PBX Manager plugin

  • a screenshot.png new dialog will appear which allows you to configure the following parameter:

    • Display name
      This will be the name of your room and also its corresponding conference App. Please use HQ Conf

    • Number
      Together with the previously defined prefix (60 in our case) this number will be the extension of your conference room to dial in. You can leave the default (which is 01), which results in an extension 6001 for your new room

    • Reserved channels
      You can leave the default (which is 0). Callers can always call in to a room even if the number of participants then would exceed the reservation, as long as there are free conference (and coder) channels available. This will take into account the channels which are reserved by other rooms. The reservation of channels takes place when the first participant calls in to a room. In other words: if you call in to a room with reservations, the call will only succeed if there are enough free channels available to satisfy the reservation. If so, you can be sure that there will be enough channels for participants calling in later. If not, you get a busy right away. This avoids setting up a conference where some of the participants can not call in due to missing channels

    • PIN
      To protect non-authorized access to this room, you can define a PIN. If you don't set any PIN, the room is not restricted and everybody can join. We suggest you use 0000 (in the training, not in real life wink). Note that the PIN Must be either 4-digit or empty

    • Meetings
      Keep the default (which is Allowed)

    • Video coder
      You can define a preferred video coder here. As mentioned in Conferencing: How the conference interface works, use VP8
       
Do not forget to click on OK wink
     

Configuration Templates

As a final step, we want to allow all users who inherit their configuration from the Config User template to use the HQ Conf App (the App that has been created by the PBX for your new HQ Conf room).

In order to do this we just need to tick the screenshot.png check mark Config User which will result in a new App in the user's All Apps overview.

Yeah, more Apps!

Searching for a Conference room in the phone app (hq IP Phone IP232 009033300dad)


Open your phone app and screenshot.png search for con. This will find the HQ Conf room. You see screenshot.png various ways to reach the conference room:
  • the extension number (6001) which is the concatenation of the conference's Number property (60) and the room's Number property (01)

  • the external number (+4962134282316001) which can be used to dial-in to the conference. This is the concatenation of the International number property (+496213428231) of the conference and the room's extension number as above

  • the SIP URI (conference?room=01) to call the room. This is made up of the the conference object's SIP property (conference) and the room's Number property (01)

(Further Hints) When enabling the Config User template in the Conference PBX Manager Plugin, the plugin screenshot.png activated two apps in the Apps part of the Config User template:
  • Conference itself so that any user who inherits from the Config User can use the the conference search API which allows to find conference rooms in your phone app
  • HQ Conf which gives access to the conference app for this particular room

Go for it!

We can now try it and call 6001 (60 for the conference object and 01 for our room). We should hear a welcome message asking us for the PIN (as we already selected the room number. If we'd called 60 only, we would be asked for the room number first). You are now connected to the HQ Conf room, however, you're alone.

Call 6001 again from another phone (or from the myApps phone app) and you can talk to yourself.




(Further Hints) In case your conferencing app isn't working as expected and you already did the Reverse Proxy configuration, we recommend to read section Allowing Registrations via Reverse Proxy in The individual Device User Interface to fix it.

Using the App

The conference object provides one distinct App for each room, which is called like the room's Name property. In our case, where we have created a single room named HQ Conf, there is a single App called HQ Conf.

(Further Hints) Technically speaking, there is also another App provided, the one that provides the search-API so that users can search for conference rooms (we have seen this before, it is called like the Name property of the conference object itself, Conference in our case). However, while this is an App indeed, it is hidden because it does not have a user interface of its own. Therefore, from the user's perspective, it does not exist.

When you start screenshot.png the HQ Conf App you'll see a header bar with multiple options.
  • screenshot.png the top left button is called Show meetings. If you click on it you can see a list of current meetings besides the main conference room. We will talk later in this book how to create those meeting rooms

  • by pressing the screenshot.png handset icon the conference room's full extension number (6001) will be called. As a nice benefit if you use this button, you don't have to enter the PIN. The needed DTMF digits will be dialed automatically

  • the number of already connected participants is shown right next to it. If you click on this button, the screenshot.png number of reserved channels is shown too. This value corresponds to screenshot.png the Reserved channels property of the room. Channels on the conference interface are reserved when the first participant enters the room

  • We ignore screenshot.png the next button for a moment

  • you can see, edit (or remove) the screenshot.png current PIN using the lock icon on the right end of the header bar
The list below shows the current participants. The current speaking participant is highlighted and screenshot.png marked as Speaking. You can:
  • screenshot.png mute a participant (e.g. if noise is disturbing the conference)

  • set the participant to screenshot.png exclusive speaker mode (that is, all other participants are muted)

  • or screenshot.png disconnect a specific participant

(Further Hints) Be aware that a innovaphone-pbx-conference license is required for opening the conference app. As usual, find more information on licensing in link_intern.png innovaphone's licensing guidelines.

As you see, this App has some sensitive administrative functions, so you may or you may not want to assign it to all potential participants. The App is not required to join a conference.

How to call in

There are the following options to call in to a conference room:

  • calling from the PSTN using a phone
    You would call from extern by calling the PBX's subscriber number followed by the conference object's extension and the room number (+4962134282316001 in our case). You are then asked for a PIN. You can also omit the room number in which case you hear an announcement asking for it.

    In this case, audio only is supported, as the PSTN does not allow any other media type

  • calling through VoIP
    This allows external users whose PBX is connected to yours (this setup is also known as federation) using the SIP id of your room (which is conference?room=01@dvl-ckl2.net in our case). Also, PBX-internal users can call the same way (or by simply dialing the internal number of the room (6001 in our case).

    In these cases, audio, video, chat and application sharing is supported - if the calling endpoint supports it. The myApps client for example does so, but 3rd party SIP endpoints may not.

    (Further Hints) Setting up federation is beyond the scope of this course, see fish-help.png Setup Federation with innovaphone V12r1 for details if need be.

  • using a web browser using the web link
    This is an interesting option as it allows anybody to call in. The only thing required is a standard web browser with internet access.

    This is the preferred method to allow external users to participate as it also supports audio, video, chat and application sharing

Web Access

Creating the web link
Enabling the web access method requires the Allow web access switch to be activated in the Conference object (we have screenshot.png already done this). Also the room's App (such as e.g. HQ Conf) must be made available.

Here is how:
As soon as the link is shown, you have the screenshot.png option to copy it to the clipboard, create an invitation e-mail or create a calendar item.

You can now copy the link to your clipboard and then paste it to the address bar of a new browser tab or window. Try it out!

(Further Hints) Using web access to a single Conference object consumes a single Port license on the PBX (regardless of how many users connect or how many rooms are used). However, separate Conference objects consume their own Port licenses. In other words: you need one per Conference object.
Note though that the Port licenses will only be consumed as soon as the first web access client connects to the Conference object.

Access from an MSN trunk

Dialing in to a room uses long numbers. You need to dial-in to the subscriber number (e.g. +496213428231) plus the object number (60) plus the room number (01). This will obviously not work for MSN trunk lines (where you cannot dial more then the MSN itself). But even for many DDI lines, adding 4 digits to the subscriber number may not work.

In such cases, you can implement a two-stage dialing mechanism to reach conference rooms. As you probably remember, we have already implemented such a mechanism in our book Waiting Queues: Two Stage Dialing.

Let us try this using the steps below:
  • Go to the DTMF two stage dialing section in our Waiting Queue object called Headquarter Switchboard (use the Waiting Queues PBX Manager Plugin) and add another DTMF map to it as follows:
  • Click on the + icon and select the empty line
  • Type 4 on the left side of the map
  • Type 6001 on the right side of the map
  • Click on the check-mark icon and then on OK
Now call the switchboard from outside (+4962134282310) and select 4 from the voice menu. You will be transferred to the conference room.

(Further Hints) Note that the Tel link of a meeting invitation is always generated based on the previously configured value of the object's International number property to which the conference object number and the conference room number are appended. This is good for DDI trunks only obviously. This means that the user must manually edit the generated number in the meeting invitation if he or she has an MSN trunk.



Meetings

Meetings are temporary rooms. They can be created using any conference room App (e.g. HQ Conf) if it is allowed in the rooms configuration (the Meetings drop-down is set to either Allowed or Only meetings).

A meeting is created by filling in screenshot.png the Create meeting form underneath the room sharing area we discussed before.


To create a Meeting (that is, a temporary room)
  • start the screenshot.png App that corresponds to the room (HQ Conf)
  • click on the screenshot.png share button. Depending on whether you previously made it available for web access or not, either a This conference room is available or a This conference room is not available message appears. In either case a new dialog titled Create meeting appears
  • fill in screenshot.png the form underneath the Create meeting header
    • set Start date and Time to the current date and time
    • set End date and Time an hour later
    • set Number of participants to a reasonable number (less or equal to the number of channels available for the conference as set in the Used channels field in the conference object). Use 5 in our case
As soon as the link is shown, you have the screenshot.png option to copy it to the clipboard, create an invitation e-mail or create a calendar item.

You can now copy the link to your clipboard and then paste it to the address bar of a new browser tab or window. Try it out!

(Further Hints) Web access for the room itself and for meetings in the room are configured independently. That is, you can for example disallow web access to the room but still generated web links to access meetings in the room. However, you cannot have meetings without web access as calling the URL is the only way to start the meeting. The Conferences PBX Manager plugin lets you screenshot.png choose for each room, if only the room or only meetings in the room or both are allowed.

Meeting access

A meetings is temporary insofar as its access key (the key that would be the PIN for a normal room) is valid only in the time frame defined by its Start date and End date property. No PIN is required. You can therefore provide a link to a potential participant which is good to enter the meeting only during this time frame.

As opposed to this, if you provide the room's share link, you also need to provide the PIN and the participant can then enter the room at any time from there on. If you invite external participants, this might not be what you want.

The aforementioned access key is in fact the share link for the meeting. Within this link, all properties are encoded and only participants that use the exact same link will join the same meeting.

If you aren't scared and you want to know how this is done, you can have a look at the chapter fish-help.png Data Content in the respective reference article.

Listing meetings

As mentioned before, all the meeting data is part of the share link URL. Therefore, the system does not keep track of the meetings created so far.

However, the room's App will screenshot.png list all meetings that currently take place (that is, all meetings where at least one participant has joined).

Calling in to a meeting using a phone

To call in to a meeting using a phone, you would dial into the room as we did before (that is, you would call 6001). If there is a meeting taking place currently, a voice prompt would ask for the screenshot.png meeting ID instead of the room PIN. As soon as you type it in, you will be connected to the meeting.

If you ignore the question for the meeting ID, you will be asked for the main room's PIN instead. If you type it in, you will be connected to the main room instead.

(Further Hints) Note that the meeting must be opened by accessing it using the web link before people can dial in to it as described above.



Limiting the number of participants

(Further Hints) screenshot.png The Number of participants option in the creation of a meeting (as well as the Reserved channels option of the room) allows you to define a minimum number of supported participants to join in to the meeting or room. When the first participant enters the room or meeting, a corresponding number of channels in the conference interface will be reserved. This ensures that further joining participants will have access to such a channel.

However, this option is not the maximum number as you might assume. The conference room can be overbooked, so more people can join the meeting as initially anticipated.

Let me give you an example. You ordered a table for 4 people in a restaurant. When you enter the restaurant, you expect to get a table with at least 4 seats. If less than 4 people show up, it doesn't matter, you just don't use the extra seats. If you meet a friend who would also like to join the table, they can simply pull up a chair and sit at the table. Additional chairs may or may not available.

If the number of reserved channels is not available when the first participant joins, the room or meeting can not be entered at all.