2016-04-29 90 views
1

我对Freeswitch 1.6.6有个神秘的问题。Freeswitch sdp响应缺少摘要

我尝试整合sipjs(v0.7.4)与我的中心使用webrtc一起工作。

的应用都没有问题(使用WSS)进行注册,但是当我尝试调用的其他用户,我有一个SDP解析错误:

SIPml-api.js:1 Failed to parse SessionDescription. a=fingerprint:sha-256 
Failed to create fingerprint from the digest.tsk_utils_log_error @ SIPml-api.js:1 

当我在FreeSWITCH的日志检查SDP,这是我收到(IP住址是自愿的蒙面):

o=mozilla...THIS_IS_SDPARTA-45.0.2 3927228173093566425 0 IN IP4 0.0.0.0 
s=- 
t=0 0 
a=sendrecv 
a=fingerprint:sha-256 EE:D6:5C:B1:7D:99:E6:FB:9A:46:89:58:14:19:A5:29:4A:AF:D3:0D:BE:32:06:76:1D:08:F5:3F:F9:DA:8B:DA 
a=ice-options:trickle 
a=msid-semantic:WMS * 
m=audio 63339 UDP/TLS/RTP/SAVPF 109 9 0 8 
c=IN IP4 ***.***.***.*** 
a=rtpmap:109 opus/48000/2 
a=rtpmap:9 G722/8000/1 
a=rtpmap:0 PCMU/8000 
a=rtpmap:8 PCMA/8000 
a=candidate:0 1 UDP 2122252543 ***.***.***.*** 63339 typ host 
a=candidate:2 1 UDP 2122187007 ***.***.***.*** 54708 typ host 
a=candidate:4 1 UDP 2122121471 ***.***.***.*** 56942 typ host 
a=candidate:0 2 UDP 2122252542 ***.***.***.*** 61720 typ host 
a=candidate:2 2 UDP 2122187006 ***.***.***.*** 61984 typ host 
a=candidate:4 2 UDP 2122121470 ***.***.***.*** 63345 typ host 
a=end-of-candidates 
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level 
a=ice-pwd:1caa7d986c87c16de3e4f6f760528544 
a=ice-ufrag:2e86561a 
a=mid:sdparta_0 
a=msid:{2b638262-0603-3942-af0e-24fcb578a272} {5b012d42-d929-c144-8669-4aa5367cb6be} 
a=rtcp:61720 IN IP4 ***.***.***.*** 
a=rtcp-mux 
a=setup:actpass 
a=ssrc:1176697136 cname:{04e0f7d1-9999-ad46-871c-55dcb58e8bbd} 

而这正是FreeSWITCH中发送给客户端:

v=0 
o=FreeSWITCH 1461635251 1461635252 IN IP4 128.179.101.13 
s=FreeSWITCH 
c=IN IP4 ***.***.***.*** 
t=0 0 
a=msid-semantic: WMS SqfRSSh9myFLk84BEDbOTgfOjB1zYaUH 
m=audio 23832 RTP/SAVPF 109 9 0 8 102 101 
a=rtpmap:109 opus/48000/2 
a=fmtp:109 useinbandfec=1; maxaveragebitrate=510000; maxplaybackrate=48000; ptime=20; minptime=10; maxptime=40; stereo=1 
a=rtpmap:9 G722/8000 
a=rtpmap:0 PCMU/8000 
a=rtpmap:8 PCMA/8000 
a=rtpmap:102 telephone-event/48000 
a=rtpmap:101 telephone-event/8000 
a=fingerprint:sha-256 
a=setup:actpass 
a=rtcp-mux 
a=rtcp:23832 IN IP4 ***.***.***.*** 
a=ssrc:1503282107 cname:qZo9Iv9VTEx4Drv7 
a=ssrc:1503282107 msid:SqfRSSh9myFLk84BEDbOTgfOjB1zYaUH a0 
a=ssrc:1503282107 mslabel:SqfRSSh9myFLk84BEDbOTgfOjB1zYaUH 
a=ssrc:1503282107 label:SqfRSSh9myFLk84BEDbOTgfOjB1zYaUHa0 
a=ice-ufrag:VxMFDRjNjad7bYEs 
a=ice-pwd:OTsmer8YVvSpNenyCZ36HdJQ 
a=candidate:2992776492 1 udp 659136 ***.***.***.*** 23832 typ host generation 0 
a=candidate:2992776492 2 udp 659136 ***.***.***.*** 23832 typ host generation 0 
a=ptime:20 
a=sendrecv 

你可以看到,Freeswitch sdp没有sha-256摘要。

有没有人有一个想法,为什么摘要消失?

感谢

+0

您是否看到类似'[ERR] switch_core_cert.c:210 FP FILE ERR !'的消息? – mirkobrankovic

回答

1

最有可能你缺少DTLS-srtp.pem在您的$$ {} certs_dir

检查FreeSWITCH的目录的所有权,用户运行FreeSWITCH的需要对$$ permitions {certs_dir}通常是/ etc/freeswitch/tls来创建dtls-srtp.pem证书。

+0

此文件丢失。这是因为我使用了docker容器,并将certs目录与主机上的certs目录链接起来。所以dtls-srtp.pem文件被破坏了。 我不得不重新启动容器中的freeswitch以重建此文件(docker start/stop不会重新创建文件)。 感谢您的回答 – Marom

+0

np,很高兴它被修复:) – mirkobrankovic