分析如下:SIP包有如下信息:U 10.0.2.188:58646 -> 10.0.2.3:5060INVITE sip:1001@10.0.2.3 SIP/2.0.Via: SIP/2.0/UDP 10.0.2.188:58646;branch=z9hG4bK-d87543-0074f655ef39ef1f-1--d87543-;rport.Max-Forwards: 70.Contact: <sip:1002@10.0.2.188:58646>.To: "1001"<sip:1001@10.0.2.3>.From: "1002"<sip:1002@10.0.2.3>;tag=9d5a934f.Call-ID: NTFiM2RlMDI2Zjc5OGU4MzE2ZGVmMDBlZjA4NGFkZWY..CSeq: 1 INVITE.Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO.Content-Type: application/sdp.User-Agent: eyeBeam release 1011d stamp 40820.Content-Length: 555..v=0.o=- 9 2 IN IP4 10.0.2.188.s=CounterPath eyeBeam 1.5.c=IN IP4 10.0.2.188.t=0 0.m=audio 25320 RTP/AVP 0 8 101.a=alt:1 1 : h76PIzau cttrFJ1T 10.0.2.188 25320.a=fmtp:101 0-15.a=rtpmap:101 telephone-event/8000.a=sendrecv.a=x-rtp-session-id:17D903A695FE4D439F262A36A8BC9FB2.m=video 4502 RTP/AVP 115 34.a=alt:1 1 : SV/4hv3f t1772boR 10.0.2.188 4502.a=fmtp:115 QCIF=1 CIF=1 I=1 J=1 K=1 MaxBR=1960.a=fmtp:34 QCIF=1 MaxBR=1960.a=rtpmap:115 H263-1998/90000.a=rtpmap:34 H263/90000.a=sendrecv.a=x-rtp-session-id:FCED50798346436B8F2CE675F16CD8CB.可以看出是通过SDP协商endpoint能力的那如何扩展使PJSIP可以传视频呢!pjmedia_transport_udp_attach :Create UDP stream transport from existing socket info.1。endpoint类的pjmedia_endpt_create_sdp,创建一个描述endpoint的SDP2。session类的pjmedia_session_info_from_sdp,通过SDP创建pjmediasession,里面调用pjmedia_stream_info_from_sdp,是通过SDP的描述创建stream。pjmediasession定义如下:
/** * Session info, retrieved from a session by calling * #pjmedia_session_get_info(). */struct pjmedia_session_info{ /** Number of streams. */ unsigned stream_cnt;
/** Individual stream info. */ pjmedia_stream_info stream_info[PJMEDIA_MAX_SDP_MEDIA];};
可以看到可以有多个流。3。调用session的pjmedia_session_create里面传入pjmedia_session_info参数,这个函数创建并启动stream。创建流pjmedia_stream_create启动流pjmedia_stream_start4。创建流pjmedia_stream_create流:一个视频类型m=video/audio一个流,二个RTP session,一个rtcp session,一个media transport 用来向INTENET发送接收数据。5.分好多种,目前不明白
转载于:https://www.cnblogs.com/nanshouyong326/archive/2009/09/16/1567832.html
相关资源:各显卡算力对照表!