Once I installed a Chinese TDM410P card for connecting analog telephone lines and a bundle of Asterisk + Dahdi.
Since the board has no hardware noise cancellation, Oslec had to be installed.
When making calls, there was no echo from the side of the analog telephone, but whoever spoke into the IP phone heard himself.
Category Archives: Asterisk
Installing and configuring GoIP SMS server
For example, setting up a GoIP SMS server in Ubuntu Server 14.04 LTS x64.
Switch immediately to root user:
Zabbix notifications by phone via Asterisk
One night at the station, the air conditioners turned off and the temperature started to rise, naturally, I received email notifications on the phone, but since it was night, I only saw them in the morning, so it was necessary for such an emergency to quickly make the possibility of phone call notifications.
Continue reading “Zabbix notifications by phone via Asterisk”Asterisk compile error solution “‘pjsip_tcp_transport_cfg’ has no member named ‘sockopt_params’”
Once I compiled Asterisk version 13.13.1 and when running make I noticed the following error:
‘pjsip_tcp_transport_cfg’ has no member named ‘sockopt_params’
pjproject-2.2.1 has already been compiled.
Solved the problem by compiling a newer version of pjproject-2.4.5
cd /usr/src wget http://www.pjsip.org/release/2.4.5/pjproject-2.4.5.tar.bz2 tar -xjvf pjproject-2.4.5.tar.bz2 cd pjproject-2.4.5 CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr make dep make make install
After that, the error disappeared.
Configuring Fail2Ban for Asterisk
On the test I will use Asterisk 13.1.0 and Fail2Ban 0.9.3-1 installed in Ubuntu Server 16.04.1 LTS.
Install Fail2Ban as I wrote in this article – Installing and Configuring Fail2ban
Open the configuration file Asterisk responsible for logging events in /var/log/asterisk/messages:
sudo nano /etc/asterisk/logger.conf
Add security to messages:
messages => notice,warning,error,security
Restart the asterisk logging system:
sudo asterisk -rvv logger reload quit
Add the Asterisk configuration file to the directory with the Fail2Ban configuration, thus activating the monitoring of its logs:
sudo nano /etc/fail2ban/jail.d/asterisk.conf
where 86400 in seconds = 24 hours, that is, the attacker will be blocked for a day.
[asterisk] enabled = true bantime = 86400
Or, change the file /etc/fail2ban/jail.conf where [asterisk-tcp] and [asterisk-udp] are false to true.
Restart fail2ban for the new configuration file to load:
sudo fail2ban-client reload
Let’s check the work:
sudo fail2ban-client status asterisk
Done, now Fail2Ban will block IP addresses from which the passwords to Asterisk accounts are not correctly entered.
Sending Asterisk voicemail to multiple emails
Let’s say the voice mail is configured as I described in the article – Setting up voicemail in Asterisk.
There is the following context:
[voicemailcontext] 207 => 1111,Username,[email protected],,attach=yes|tz=ua|delete=yes
If you want to send a voice message to several email addresses, then instead of [email protected], for example, testmail:
[voicemailcontext] 207 => 1111,Username,testmail,,attach=yes|tz=ua|delete=yes
Then open the /etc/aliases file in a text editor:
sudo nano /etc/aliases
And let’s specify aliases for testmail:
testmail: [email protected],[email protected]
For the changes to take effect, you need to update the alias database with the command:
cd /etc sudo newaliases
Done, Asterisk will send a message to testmail, and it will be automatically forwarded to the specified addresses.
See also:
Redirecting mail for the root user
Setting up voicemail in Asterisk
For example, I’ll set up voice mail for SIP number 207.
Voice messages will be sent to the email using Postfix.
How to install it I described in this article – Installing and Configuring Postfix.
Asterisk time based routing
Here is an example of routing calls over time in Asterisk.
Assume that the /etc/asterisk/extensions.conf file has a configured context for the trunk with the following parameters:
[Trunk_2] exten => s,1,DIAL(SIP/6004&SIP/6003,19) exten => s,2,Hangup()
And to resolve the time calls to different phones, we will point out for the context of this trunk only nested contexts:
[Trunk_2] include => daytime,8:00-18:00,mon-sat,*,* include => nighttime,18:00-8:00,mon-sun,*,* include => sunday,8:00-22:00,sun,*,*
In fact, daytime, nighttime, sunday are only the names of contexts for which the time is written in the context of [Trunk_2], they can be called anything.
And then in these separate contexts we will already add the necessary extensions.
That is, in the afternoon:
[daytime] exten => s,1,DIAL(SIP/6004&SIP/6003,19) exten => s,2,Hangup()
At night:
[nighttime] exten => s,1,DIAL(SIP/6002,19) exten => s,2,Hangup()
And on Sunday:
[sunday] exten => s,1,DIAL(SIP/6002,19) exten => s,2,Hangup()
You can also, for example, create a holiday context with holidays:
include => holiday,*,*,1,jan include => holiday,*,*,8,mar
etc.
For those who want to paint more in detail by day, I’ll give you a list of days in English:
mon – Monday
tue – Tuesday
wed – Wednesday
thu – Thursday
fri – Friday
sat – Saturday
sun – Sunday
Similarly, up to three letters and names of months are shortened.
Configuring Automatic Calls in Asterisk
Asterisk can automatically make a call if you put a .call file in the (default) /var/spool/asterisk/outgoing/ directory. If the date of the file change is greater than the current one, the call will be made on or after this time.
For automatic calls, the pbx_spool.so module must be loaded, it must be registered in modules.conf or autoload=yes must be specified.
Asterisk warning “leave_voicemail: No more messages possible”
I noticed the following error on one of the servers:
WARNING[21992][C-00000b27]: app_voicemail.c:6559 leave_voicemail: No more messages possible
It turned out that the mailbox was full of voice messages and they ceased to exist, in response the caller was informed “The subscriber’s voice box is full”.
To solve this problem there are several options:
1) Delete the messages in the voice mailbox by calling the voice mail number.
2) Increase the value of maxmsg in the voicemail.conf file, thereby increasing the maximum number of messages in the mailbox, but again it may be full. After the changes in the voicemail.conf file, you need to apply them:
sudo asterisk -rvv voicemail reload quit
3) In the context of the voice mailbox, add delete=yes, for example:
[voicemailcontext] 207 => 1111,Username,[email protected],,attach=yes|tz=ua|delete=yes
In this case, voice messages will be sent to e-mail, and they will be immediately deleted from the server, that is, they can not be listened to by calling to the voice mail number and accordingly the mailbox will never be full. I consider this option the best.
See also:
Setting up voicemail in Asterisk