![带有软件电话和网络电话的 Asterisk](https://linux22.com/image/669615/%E5%B8%A6%E6%9C%89%E8%BD%AF%E4%BB%B6%E7%94%B5%E8%AF%9D%E5%92%8C%E7%BD%91%E7%BB%9C%E7%94%B5%E8%AF%9D%E7%9A%84%20Asterisk.png)
我在使用 Asterisk 时遇到了问题。我编写了一个 WebPhone,因此我应该向我的同事添加一些配置详细信息:
encryption = yes
avpf = yes
icesupport = yes
dtlsenable =yes
dtlsverify = no
dtlssetup = actpass
dtlscertfile = valid path to certyficate
dtlsprivatekey = valid path to certyficate
force_avp = yes
并且所有功能都可以通过网络电话进行。但是当我想通过软件电话(如 zoiper 或 linphone)呼叫我的同伴(使用上述配置)时,我收到错误“488 此处不可接受,承载能力目前不可用”,并且在 Asterisk 控制台中:
[Oct 27 12:00:23] NOTICE[2214][C-00000001]: chan_sip.c:10148 process_sdp: Received AVP profile in audio answer but AVPF is enabled, disabling: audio 8000 RTP/AVP 3 110 8 0 98 101
[Oct 27 12:00:23] WARNING[2214][C-00000001]: chan_sip.c:10543 process_sdp: We are requesting SRTP for audio, but they responded without it!
我的问题很简单..我可以配置 Asterisk 对等体以使其能够与软件电话和网络电话配合使用吗?:)
提前致谢!马特。
答案1
这不是将软电话与网络电话连接的问题。用户代理(我假设是您编写的代理 - 但您没有指定)没有正确响应。另一个 UA(或中间的软交换机)正在尝试建立 RTP 连接。一个 UA 表示它支持 SRTP(安全),但它没有使用安全的 RTP 通道。这让另一个 UA 感到困惑。所以我怀疑通话中断了(尽管您没有显示任何详细信息)。
解决方案很可能是修复 UA,使其不广播它支持 SRTP,或者让它实现 SRTP。
根据您上面发布的 2 行,您使用 Asterisk 作为软交换机。我建议您在 Asterisk 上启用 RTP 和 SIP 调试,并确保 UA 不允许重新邀请(也称为直接媒体)。这将强制 RTP 流通过 Asterisk,您将看到标头清楚地显示不匹配。