资源简介

按照GBT28181标准,基于osip协议栈,使用osip库和eXosip库实现的sip客户端,包括注册、心跳包、MESSAGE消息、Invite请求处理等GB28181基本功能的实现

资源截图

代码片段和文件信息

#include 
#include “ctrl.h“
#include 
#include 
#include 
#include 
#include 
#include “demo.h“
#include “h264.h“


MEDIA_PARA media_para;
/*设备控制:向左、向右、向上、向下、放大、缩小、停止遥控/开始手动录像、停止手动录像/布防、撤防/报警复位/设备远程启动*/
/*ctrl_cmd:设备控制命令,_device_control类型的枚举变量*/
/*返回值:成功时返回0,失败时返回负值*/
int dt_eXosip_deviceControl(enum _device_control ctrl_cmd)
{
return 0;
}

DWORD WINAPI SendRtpProc(LPVOID lp)
{
SOCKET socket_cli;
SOCKADDR_IN addrser;//Initialize Win Socket
sockaddr_in addrMe; //源端口和地址
NALU_t * n = NULL;
char sendbuf[MAXDATASIZE];
RTP_HEADER  * rtp_hdr = NULL ;
int pocket_number  = 0;   //包号
int frame_number = 0;     //帧号
int total_sent = 0;       //已经发送的总共数据
NALU_HEADER * nalu_hdr = NULL;
char* nalu_payload = NULL; 
int  bytes = 0;           //一次发送的数据
//unsigned int sequence = 65536;
int timestamp = 0;
FU_INDICATOR  *fu_ind = NULL ;
FU_HEADER   *fu_hdr = NULL ;
MEDIA_PARA *pMedia_para = (MEDIA_PARA *)lp;
//创建socket套接字
addrMe.sin_family = AF_INET;
addrMe.sin_port = htons(atoi(device_info.ipc_media_port));//1001你的端口号
addrMe.sin_addr.s_addr = INADDR_ANY; 

socket_cli= socket(AF_INET SOCK_DGRAM/*UDP协议的是流式*/0);
addrser.sin_addr.S_un.S_addr =inet_addr(pMedia_para->media_ip);
addrser.sin_family = AF_INET;
addrser.sin_port = htons(atoi(pMedia_para->media_port));       //网络字节序
    bind(socket_cli (struct sockaddr*)&addrMe sizeof(addrMe));
OpenBitstreamFile(inputfilename);         //打开本地要传输的文件
n = AllocNALU(8000000);                   //分配nal 资源
while(!feof(pinfile) && g_did_realPlay>0)                     //如果未到文件结尾
{
GetAnnexbNALU(n); 
//  dbg(“NALU--- forbidden_bit        :     %d\n“ n->forbidden_bit);
//  dbg(“NALU--- nal_reference_idc    :     %d\n“ n->nal_reference_idc);
//  dbg(“NALU--- Type                 :     %d\n“ n->nal_unit_type);
//  dbg(“NALU--- startcodeprefix_len  :     %d\n“ n->startcodeprefix_len);
  dbg(“NALU--- len                  :     %d\n“ n->len);
  dbg(“NALU--- max_size             :     %d\n“ n->max_size);

memset(sendbuf0MAXDATASIZE);

rtp_hdr =(RTP_HEADER*)&sendbuf[0];            
rtp_hdr->payloadtype     = H264; //Payload type
rtp_hdr->version         = 2;                               //Payload version
rtp_hdr->marker          = 0;     //Marker sign
rtp_hdr->ssrc            = 999999999;                     //帧数
rtp_hdr->timestamp = htonl(timestamp);
if (n->len < 1400)                                          //打单包
{
if(n->buf[3] == 0xC0)
      rtp_hdr->marker = 1;
else
  rtp_hdr->marker = 0;
rtp_hdr->seq_no = htons(pocket_number++); 
nalu_payload = &sendbuf[12];           
memcpy(nalu_payloadn->bufn->len); 
rtp_hdr->timestamp = htonl(timestamp);
bytes = n->len + 12;  
Sleep(40);
sendto(socket_clisendbufbytes0(SOCKADDR *)&addrsersizeof(SOCKADDR));   
total_sent += 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-10-16 15:00  SipClientC\
     目录           0  2018-10-10 11:08  SipClientC\.vs\
     目录           0  2018-10-10 11:08  SipClientC\.vs\SipClient\
     目录           0  2018-10-10 11:08  SipClientC\.vs\SipClient\v14\
     文件      133632  2018-10-11 10:10  SipClientC\.vs\SipClient\v14\.suo
     文件      675876  2018-05-17 13:15  SipClientC\1.264
     文件     2205983  2018-05-17 13:15  SipClientC\3.ps
     目录           0  2018-10-11 10:09  SipClientC\Debug\
     文件      675876  2018-05-17 13:15  SipClientC\Debug\1.264
     文件     2205983  2018-05-17 13:15  SipClientC\Debug\3.ps
     文件      420864  2018-05-17 13:15  SipClientC\Debug\eXosip.dll
     文件      530432  2018-05-17 13:15  SipClientC\Debug\GLC_Encap.dll
     文件     1177088  2018-05-17 13:15  SipClientC\Debug\libeay32.dll
     文件       90112  2018-05-17 13:15  SipClientC\Debug\osip2.dll
     文件      196096  2018-05-17 13:15  SipClientC\Debug\osipparser2.dll
     文件      269824  2018-05-17 13:15  SipClientC\Debug\ssleay32.dll
     文件     1919398  2018-05-17 13:16  SipClientC\Debug\test.ps
     文件      458840  2018-05-17 13:15  SipClientC\Debug\Transform.dll
     目录           0  2018-10-10 11:08  SipClientC\dll\
     文件      675876  2018-05-17 13:16  SipClientC\dll\1.264
     文件     2205983  2018-05-17 13:16  SipClientC\dll\3.ps
     文件      420864  2018-05-17 13:16  SipClientC\dll\eXosip.dll
     文件      530432  2018-05-17 13:16  SipClientC\dll\GLC_Encap.dll
     文件     1177088  2018-05-17 13:16  SipClientC\dll\libeay32.dll
     文件       90112  2018-05-17 13:16  SipClientC\dll\osip2.dll
     文件      196096  2018-05-17 13:16  SipClientC\dll\osipparser2.dll
     文件      269824  2018-05-17 13:16  SipClientC\dll\ssleay32.dll
     文件     1919398  2018-05-17 13:16  SipClientC\dll\test.ps
     文件      458840  2018-05-17 13:16  SipClientC\dll\Transform.dll
     目录           0  2018-10-10 11:08  SipClientC\include\
     目录           0  2018-10-10 11:08  SipClientC\include\eXosip2\
............此处省略185个文件信息

评论

共有 条评论