“FreePBX 12以上的SIP语音问题”的版本间的差异

来自最权威最新完整开源SIP,语音通信,融合通信中文技术文档资料,提供详细的Asterisk Freepbx, FreeSBC, 免费会话边界控制器,网关,语音板卡,IPPBX,SBC配置资料-asterisk,freepbx,freesbc 用户手册 界面配置,呼叫路由,IVR, 网关对接,拨号规则,SIP 分机呼叫,pjsip, IVR, 录音, CDR, 队列呼叫,振铃组,CLI 命令中文资料手册
跳转至: 导航搜索
(创建页面,内容为“'''FreePBX 12 以上版本NAT 用户配置指南''' '''NAT issues''' VoIP 最大的问题就是通常人们说的单通问题,或者几秒钟以后就掉线的...”)
 
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
'''FreePBX 12 以上版本NAT 用户配置指南'''
+
'''关于SIP语音问题相关介绍'''
  
 
'''NAT issues'''
 
'''NAT issues'''
第65行: 第65行:
 
用户可能需要开启端口从10001开始,10000端口可能和Webmin端口冲突。如果没有安装Webmin则无需担心冲突。
 
用户可能需要开启端口从10001开始,10000端口可能和Webmin端口冲突。如果没有安装Webmin则无需担心冲突。
  
'''CODEC issues'''
+
'''语音编码不匹配或者不能转码'''
  
Whenever a call is placed, both ends of the call must agree on the codecs they want to use. If one end speaks only ulaw and the other end refuses to communicate using anything other than gsm, no communication is going to take place. This is why I would recommend that beginners always allow ulaw (also known as g.711u) and alaw (also known as g.711a) unless specifically instructed not to by whomever you are connecting to. There are actually five different places that codecs can be specified:
+
语音编码问题也是导致SIP语音质量问题的关键。当双方建立呼叫时,双方必须确认两者使用的编码。如果一方使用ulaw, 另外一方使用其他编码,那么不会继续通信。 这就是为什么我们推荐初级用户使用 ulaw (也称之为g.711u) 和alaw (也称之为g.711a) 。 通常有五个地方需要指定语音编码:
  
# At an endpoint/device (phone or ATA), typically in the device's configuration.
+
* 终端或者ATA 配置语音编码。
# In a FreePBX EXTENSION configuration; however, it's best to leave those settings blank in most cases.
+
* 在FreePBX中配置了语音编码,但是大部分情况下,为空值。
# In a FreePBX TRUNK configuration using allow= statements coupled with disallow=all. If these are omitted, then the defaults in <nowiki>sip.co</nowiki>nf and <nowiki>iax.co</nowiki>nf are used.
+
* 在FreePBX 的中继 使用了 allow= 赋值和 disallow=all。 如果忽略了那些设置,则使用默认的设置,在 <nowiki>sip.co</nowiki>nf <nowiki>iax.co</nowiki>nf
# In Settings &gt; Asterisk SIP Settings &gt; "General SIP Settings"
+
* 在 Asterisk SIP Settings 中的 "General SIP Settings" 使用了编码。
# In Settings &gt; Asterisk IAX Settings
+
* 在Asterisk IAX Settings 设置中使用了编码。
  
 
http://wiki.freepbx.org/download/attachments/24051965/SipCodecs.png
 
http://wiki.freepbx.org/download/attachments/24051965/SipCodecs.png
  
Asterisk will attempt to translate formats if the codecs are available on the system and allowed for that leg of the call. So if you have a trunk that only allows gsm but your extensions will only communicate in ulaw, that's not a problem as long as you have allowed gsm in the trunk configuration. To see the available codecs and translations, type ''core show translation'' (or just ''show translation'' in Asterisk 1.2 and earlier) from the Command Line Interface. If there is a number showing between two codecs in the grid, then translations are possible. If it's a single line (and it's not to the same codec), then translations are not possible, usually because one of the codecs isn't installed on the system.
+
如果Asterisk支持了设置的语音编码格式,asterisk将执行语音编码格式转换来支持对端的呼叫。 所以,如果中继使用了gsm ,但是分机使用了ulaw, asterisk同样可以允许双方谈话,只要中继设置中支持了gsm。 检测系统支持的语音编码转换,执行Asterisk CLI命令 ''core show translation'' 就可以看到结果。如果两种编码的网格有显示值,那么说明系统支持两种编码之间的转换。 如果显示的值仅是单行,那么说明不支持编码转换,通常情况下是系统没有安装此编码格式。
  
'''Missing files/incorrect paths'''
+
'''文件丢失或者文件路径不对'''
  
If calling into an IVR or voicemail box, and the expected recording isn't played, it's possible that it's missing or not in the expected location. Did you use the System Recordings module to import the recording? If not, are you sure it's in the correct location?
+
如果呼叫进入IVR 或者语音邮箱,系统播放的语音文件丢失,那么可能是文件播放路径不对。检查路由模块是否导入此文件,或者录音文件是否在正确的路径。
  
'''Permissions/ownership issues'''
+
'''语音文件权限不对'''
  
This most commonly occurs when people copy audio files directly onto the system and forget that it's a Linux box and that Linux is finicky about file permissions and ownership. If permissions or ownership aren't correct, Asterisk will be unable to access the file, and therefore can't play it. One thing you can try to resolve this is to run the following from the Linux command prompt:
+
很多时候,用户直接从其他系统拷贝文件到freepbx 系统,linux环境下,文件权限可能有问题。如果文件权限不对,Asterisk 不会播放此文件,执行以下命令获得权限:
  
 
''amportal chown''
 
''amportal chown''
  
This is supposed to set appropriate permissions on files used by Asterisk.
+
设置Asterisk权限。
  
'''Incorrect audio format'''
+
'''播放的语音文件格式不正确'''
  
Sometimes people create system audio files using an external sound file editor, such as&nbsp;[http://audacity.sourceforge.net/ Audacity],&nbsp;in order to get better sound quality. What they don't realize is that Asterisk is very picky about the format of audio files it will play back. For example, if the file is .wav file format, Asterisk wants a file recorded at 8000 Hz, 16 bit, monaural (a.k.a. single channel) format, and if you directly upload a file in any other format, the CLI may show that the file is being played, but callers hear nothing. If normal system files play correctly but the files you've created do not, check the format, especially if you've directly copied it to a particular location on the system instead of importing it with the System Recordings module.
+
很多时候,用户创建的语音文件是使用外部语音编辑软件创建的,通过这些软件创建的语音文件可能有比较好的语音质量。但是用户可能没有意识到,Asterisk 对语音文件属性可能有所要求。例如,如果文件是.wav 文件格式,Asterisk 要求支持的是8000 Hz, 16 bit, monaural (a.k.a. 单通道) 格式, 如果用户直接上传一个其他的文件格式,Asterisk CLI 可能看到播放了此文件,但是用户可能听不到播放的语音。如果系统正常的语音文件可以播放,但是用户自己创建的则不能播放,建议检查语音文件格式。 特别是直接拷贝到系统的文件,而不是通过系统录音模块导入的文件。
  
'''''''''Hardware issues'''
+
'''硬件问题'''
  
Yes, even a hardware problem can cause audio failures. In one case, a T1 card had been installed in the system but not configured, and that stopped all recorded audio from being played. So if all else fails, look for any unconfigured or misconfigured hardware device, particularly if it's a DAHDI card (it appears that having ANY non-configured DAHDI card in a system may cause problems with audio output).
+
同样,如果硬件有问题,也可能导致语音问题。如果安装了语音板卡的话,需要确保语音板卡配置支持了本地配置,错误配置完全可能导致语音问题。
 
+
Related articles
+
 
+
Error rendering macro 'contentbylabel' : <nowiki>com.atlassian.confluence.macro.pa</nowiki>rams.ParameterException: 'TROUB' is not an existing space's key
+
 
+
&nbsp;
+

2015年11月3日 (二) 22:29的最新版本

关于SIP语音问题相关介绍

NAT issues

VoIP 最大的问题就是通常人们说的单通问题,或者几秒钟以后就掉线的问题。这些问题通常就是NAT配置不当导致。

Make sure you have a resolvable address on the Internet.

如果用户没有购买静态IP地址的话,,用户可能经常会修改IP地址。建议设置一个动态的DNS服务。

Adding NAT information in  FreePBX 

在高级配置菜单,点击 Asterisk SIP settings

SipRightMenu.png

然后点击SIP 配置

右边菜单支持的是 FreePBX 12。 FreePBX 11 以下版本是主界面配置

 

Set NAT as yes

Static IP from your ISP 

选择"Static IP" ,输入外部IP地址

settings_nat_static.png

Dynamic IP Updated through dynamic IP service

选择 "Dynamic IP" ,输入主机名称全称,例如"foo.dyndns.net"

settings_nat_dynamic.png

完成配置以后,要点击 "submit" 和点击"APPLY" 按钮。

Local Networks

在 "NAT"下,用户会看到一个勾选值 "Local Networks"。

这里输入内网IP地址和子网地址。

如果用户内网地址是192.168.0.254,那么需要设置为192.168.0.0 / 255.255.255.0

settings_nat_localnet.png

点击提交,然后点击APPLY Config


RTP Port Range

Open the SIP and RTP ports to your Asterisk server

用户必须确认开启了正确的端口,检查防火墙UDP端口设置,设置转发端口到用户的Asterisk端口。 对于SIP协议,用户需要开启UDP(不是TCP) 端口5060 (SIP) ,并且开启端口 10000-20000 来传输语音(RTP 在系统文件/etc/asterisk/rtp.conf中定义)。 所有这些端口都是UDP端口,开启TCP不会对NAT有任何帮助。 配置防火墙时,用户可能还要打开 UDP port 4569 (IAX),用户有时可以通过IAX连接到asterisk服务器。

用户可以看到实际开启的端口

RTPSettings.png


如果实例的端口和本地应用有什么不同,用户需要检查自己的防火墙和相应的实际端口配置。

用户可能需要开启端口从10001开始,10000端口可能和Webmin端口冲突。如果没有安装Webmin则无需担心冲突。

语音编码不匹配或者不能转码

语音编码问题也是导致SIP语音质量问题的关键。当双方建立呼叫时,双方必须确认两者使用的编码。如果一方使用ulaw, 另外一方使用其他编码,那么不会继续通信。 这就是为什么我们推荐初级用户使用 ulaw (也称之为g.711u) 和alaw (也称之为g.711a) 。 通常有五个地方需要指定语音编码:

  • 终端或者ATA 配置语音编码。
  • 在FreePBX中配置了语音编码,但是大部分情况下,为空值。
  • 在FreePBX 的中继 使用了 allow= 赋值和 disallow=all。 如果忽略了那些设置,则使用默认的设置,在 sip.conf 和 iax.conf 。
  • 在 Asterisk SIP Settings 中的 "General SIP Settings" 使用了编码。
  • 在Asterisk IAX Settings 设置中使用了编码。

SipCodecs.png

如果Asterisk支持了设置的语音编码格式,asterisk将执行语音编码格式转换来支持对端的呼叫。 所以,如果中继使用了gsm ,但是分机使用了ulaw, asterisk同样可以允许双方谈话,只要中继设置中支持了gsm。 检测系统支持的语音编码转换,执行Asterisk CLI命令 core show translation 就可以看到结果。如果两种编码的网格有显示值,那么说明系统支持两种编码之间的转换。 如果显示的值仅是单行,那么说明不支持编码转换,通常情况下是系统没有安装此编码格式。

文件丢失或者文件路径不对

如果呼叫进入IVR 或者语音邮箱,系统播放的语音文件丢失,那么可能是文件播放路径不对。检查路由模块是否导入此文件,或者录音文件是否在正确的路径。

语音文件权限不对

很多时候,用户直接从其他系统拷贝文件到freepbx 系统,linux环境下,文件权限可能有问题。如果文件权限不对,Asterisk 不会播放此文件,执行以下命令获得权限:

amportal chown

设置Asterisk权限。

播放的语音文件格式不正确

很多时候,用户创建的语音文件是使用外部语音编辑软件创建的,通过这些软件创建的语音文件可能有比较好的语音质量。但是用户可能没有意识到,Asterisk 对语音文件属性可能有所要求。例如,如果文件是.wav 文件格式,Asterisk 要求支持的是8000 Hz, 16 bit, monaural (a.k.a. 单通道) 格式, 如果用户直接上传一个其他的文件格式,Asterisk CLI 可能看到播放了此文件,但是用户可能听不到播放的语音。如果系统正常的语音文件可以播放,但是用户自己创建的则不能播放,建议检查语音文件格式。 特别是直接拷贝到系统的文件,而不是通过系统录音模块导入的文件。

硬件问题

同样,如果硬件有问题,也可能导致语音问题。如果安装了语音板卡的话,需要确保语音板卡配置支持了本地配置,错误配置完全可能导致语音问题。