我正在使用Ubuntu v14.04.3 LTS和星号13.3.2。 当我尝试从sipml5客户端打电话给我的分机以播放演示恭喜audio时,我的呼叫立即断开连接。 当我检查星号日志,我得到以下错误
[2016-08-24 06:07:49] ERROR[31730][C-0000000c]: res_rtp_asterisk.c:2042 __rtp_recvfrom: DTLS failure occurred on RTP instance '0x7f547c013c68' due to reason 'sslv3 alert handshake failure', terminating [2016-08-24 06:07:49] WARNING[31730][C-0000000c]: res_rtp_asterisk.c:3911 ast_rtcp_read: RTCP Read error: Unspecified. Hanging up. [2016-08-24 06:07:49] WARNING[31730][C-0000000c]: app_playback.c:493 playback_exec: Playback failed on SIP/104600-00000007 for /var/www/html/fetch_prompt [2016-08-24 06:07:49] ERROR[31730][C-0000000c]: utils.c:1402 ast_carefulwrite: write() returned error: Broken pipe
我使用的是Chrome v54。
我认为这个错误是与openssl,但没有得到一个正确和完整的答案,但解决这个问题。 有谁知道如何解决这个问题?
通过升级openssl解决了这个问题。 使用下面的命令来升级Ubuntu 14中的openssl
# echo 'deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse' > /etc/apt/sources.list.d/xenial.list # aptitude update # aptitude install -y openssl libssl-dev # rm /etc/apt/sources.list.d/xenial.list # aptitude update
使用下面的命令来检查openssl版本
# ldd /usr/sbin/asterisk | grep libssl libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f33ce117000) # strings /lib/x86_64-linux-gnu/libssl.so.1.0.0 | grep 1.0.2 OPENSSL_1.0.2 OPENSSL_1.0.2g SSLv3 part of OpenSSL 1.0.2g-fips 1 Mar 2016 TLSv1 part of OpenSSL 1.0.2g-fips 1 Mar 2016 DTLSv1 part of OpenSSL 1.0.2g-fips 1 Mar 2016 OpenSSL 1.0.2g-fips 1 Mar 2016 # openssl version OpenSSL 1.0.2g-fips 1 Mar 2016
之后删除所有现有的星号键并重新创build密钥
# rm /etc/asterisk/keys/* # cd /usr/src/astersik*/contrb/scripts # sudo ./ast_tls_cert -C pbx.mycompany.com -O "My Super Company" -d /etc/asterisk/keys # asterisk -rx "reload"
资源