I think this question is more for the setup group.
Here in development it is not about installations and operating aids.
But here the Answer.
Configuring telephone dial-in via a SIP account
With just a few steps you can configure your BigBlueButton server so that your participants can also dial in by phone. Here you can find the official instructions.
Warning
Dialing in by phone is usually done via an unencrypted connection. Even if the SIP registration itself would be encrypted, telephony as a communication channel is still very easy to eavesdrop on and therefore, in my opinion, more insecure than a dial-in via WebRTC.
Before you can configure your SIP account for dial-in, you need your SIP access data. For example, you can get the free sipgate basic landline from sipgate. After registering, you will receive a landline number which you can use free of charge after confirming your postal address.
For the next steps you need:
The telephone number (e.g. 091418382969)
The SIP user name (e.g. 2821474e0)
The SIP password (e.g. oog4ooNg7pah)
The server of the registrar (e.g.
sipgate.de)
Now log in to your BBB server and change to the root user with su -.
Then create the configuration file for the SIP provider (in this case sipgate):
/opt/freeswitch/conf/sip_profiles/external/sipgate.xml
The variables in the following file are already filled with the sample values from above. Of course, you add your own values here. The content of the file sipgate.xml with my sample values:
<include>
<gateway name="sipgate">
<param name="username" value="2821474e0"/>
<param name="password" value="oog4ooNg7pah"/>
<param name="extension" value="091418382969"/>
<param name="register" value="true"/>
<param name="context" value="public"/>
</gateway>
</include>
In order for the calls from FreeSWITCH to be correctly routed to your session, a so-called dialplan must be created. In this, the caller:in is asked for the five-digit PIN after dialling in and is then forwarded to the BBB room.
Create the configuration file for the dialplan (in this case sipgate):
/opt/freeswitch/conf/dialplan/public/sipgate.xml
Now enter the name of the gateway from the previous file (in this case sipgate) and your telephone number under expression. Do not delete the "roof" (^) in front of it. The content of the file sipgate.xml with my example values:
<extension name="sipgate">
<condition field="destination_number" expression="^091418382969">
<action application="start_dtmf" />
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="play_and_get_digits" data="5 5 3 7000 # conference/conf-pin.wav ivr/ivr-that_was_an_invalid_entry.wav pin \d+"/>
<!-- Uncomment the following block if you want to mask the phone number in the list of participants. -->
<!-- Instead of `01711233121` it will then show `xxx-xxx-3121`. -->
<!--
<action application="set_profile_var" data="caller_id_name=${regex(${caller_id_name}|^.*(.{4})$|xxx-xxx-%1)}"/>
-->
<action application="transfer" data="SEND_TO_CONFERENCE XML public"/>
</condition>
</extension>
<extension name="check_if_conference_active">
<condition field="${conference ${pin} list}" expression="/sofia/g" />
<condition field="destination_number" expression="^SEND_TO_CONFERENCE$">
<action application="set" data="bbb_authorized=true"/>
<action application="transfer" data="${pin} XML default"/>
</condition>
</extension>
<extension name="conf_bad_pin">
<condition field="${pin}" expression="^\d{5}$">
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="play_and_get_digits" data="5 5 3 7000 # conference/conf-bad-pin.wav ivr/ivr-that_was_an_invalid_entry.wav pin \d+"/>
<action application="transfer" data="SEND_TO_CONFERENCE XML public"/>
</condition>
</extension>
If you do not want the phone number of the person dialing in by phone to be visible to all conferees, then comment in the following section (remove <!-- before and --> after):
<!-- Uncomment the following block if you want to mask the phone number in the list of participants. -->
<!-- Instead of `01711233121` it will then show `xxx-xxx-3121`. -->
<action application="set_profile_var" data="caller_id_name=${regex(${caller_id_name}|^.*(.{4})$|xxx-xxx-%1)}"/>
Now set the authorisation for the dialplan so that FreeSWITCH can access it:
chown freeswitch:daemon /opt/freeswitch/conf/dialplan/public/sipgate.xml
And restart FreeSWITCH:
systemctl restart freeswitch
If everything worked, when you call your phone number, a voice will come up asking you for a five-digit conference PIN number.
If the dial-in does not work or there are other problems, you can find more information in the log file /opt/freeswitch/var/log/freeswitch/freeswitch.log.
Now all that is missing is the specification of the dial-in telephone number in the BigBlueButton configuration.
To do this, change the file /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties and enter the dial-in telephone number under defaultDialAccessNumber. You can also use the placeholders %%DIALNUM%% and %%CONFNUM%% in the defaultWelcomeMessageFooter variable. This way, people who are already dialled into the session via WebRTC can also participate in parallel via telephone without leaving the audio stream.
Save the BBB configuration file and restart the BigBlueButton server once with bbb-conf --restart.
Since the defaultDialAccessNumber is no longer
613-555-1234, the option "Participate by telephone" appears next to "With microphone" and "Listen only" when dialing into a conference:
Touch "0" Mic On / Off
Important note
The telephone dial-in only works if at least one person with an activated microphone is in the conference.
Finally, you should secure the SIP endpoint so that it is not unnecessarily bombarded with connection requests by bots. To do this, you need the IP address of your SIP provider from which it will connect to your server as soon as a call comes in. For sipgate you can find a list of all used IP addresses here.
iptables -A INPUT -i eth0 -p tcp --dport 5060 -s
0.0.0.0/0 -j REJECT
iptables -A INPUT -i eth0 -p udp --dport 5060 -s
0.0.0.0/0 -j REJECT
iptables -A INPUT -i eth0 -p tcp --dport 5080 -s
0.0.0.0/0 -j REJECT
iptables -A INPUT -i eth0 -p udp --dport 5080 -s
0.0.0.0/0 -j REJECT
iptables -I INPUT -p udp --dport 5060 -s 217.10.79.9 -j ACCEPT
Bash
If you are using the UFW firewall, the commands are as follows:
ufw deny 5060/tcp
ufw deny 5060/udp
ufw deny 5080/tcp
ufw deny 5080/udp
ufw allow proto udp from
217.10.79.9/32 port 5060
Bash
Ideally, you should add them to /etc/bigbluebutton/bbb-conf/apply-config.sh so that they are applied each time you start BBB.
Thats all....
(thx to
SWEETGOOD )
Detlef