I’m interested in having a SIP/RTP enabled agent join a meeting and tap into the audio streams and provide additional value to our meeting participants. I’m following instructions provided by Tim Slagle in this blog. So far I don’t have a working solution. Appreciate help diagnosing the following problems:
-
- Tried to join with audio only (disabled video and the SDP offer indicates that), but always get a 480/Temporarily Unavailable message. Contacted customer support and was told that the CRC endpoint (@zoomcrc.com) ALWAYS expects audio AND video. This is different from what was mentioned in the blog.
-
- To make progress, I included video in the offer. It’s not ideal for where I want to be, but wanted to get something end to end working. I was able to establish a connection and can see audio and video frames in my client. I recorded the audio and it is what was spoken in the meeting.
-
2 a. However, the service consistently sends a BYE after exactly 30 seconds. Clearly it is timing out but I have no idea what I’m expected to provide to sustain the conversation beyond 30 seconds.
-
2 b. There is no indication in the meeting, during that 30 seconds, that someone else has joined the meeting. This suggests that the CRC service was in the process of sizing up the client before letting it into the meeting (but as mentioned above, audio/video was sent to the client).
Some additional context:
- Using PJSIP library and tried with both the low level PJSIP+PJMEDIA api as well as the high-level PJSUA2 api. Ultimately they both do the same thing and I get the same response from zoomcrc.
- Here is the offer sent with audio only (set to recvonly), as prescribed in the blog:
v=0
o=- 3773504889 3773504889 IN IP4 10.40.15.46
s=pjmedia
b=AS:84
t=0 0
a=X-nat:0
m=audio 4000 RTP/AVP 98 97 99 104 3 0 8 9 96
c=IN IP4 10.40.15.46
b=TIAS:64000
a=rtcp:4001 IN IP4 10.40.15.46
a=rtpmap:98 speex/16000
a=rtpmap:97 speex/8000
a=rtpmap:99 speex/32000
a=rtpmap:104 iLBC/8000
a=fmtp:104 mode=30
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-16
a=ssrc:840714628 cname:7ee2e508622ab14c
a=recvonly
m=video 0 RTP/AVP 31
c=IN IP4 127.0.0.1
- Here’s the offer sent with audio/video (send and recv in both directions):
v=0
o=ZoomRC 185567 185567 IN IP4 8.5.129.229
s=ZoomRC
c=IN IP4 8.5.129.229
b=AS:352
t=0 0
m=audio 3340 RTP/AVP 9 0 8 101
b=TIAS:64000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
m=video 3342 RTP/AVP 109 110 111
b=TIAS:352000
a=rtpmap:109 H264/90000
a=fmtp:109 profile-level-id=42801f; packetization-mode=0
a=rtpmap:110 H264/90000
a=fmtp:110 profile-level-id=42801f; packetization-mode=1
a=rtpmap:111 H264/90000
a=fmtp:111 profile-level-id=64801f; packetization-mode=1
a=sendrecv
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=rtcp-fb:* ccm tmmbr
a=content:main
a=label:1
- As far as I can tell, there was only an additional INFO with a keyframe from the CRC service sent after the session was connected. Then it disconnects after 30 seconds.
I’ve tried many things but no idea what else to do. Customer Support said my best bet is the dev message board.
Thanks,
Krishna