0222 sip rtp osip sound noise
赶鸭子上架,该死的项目变来变去,弄得我开始人格分裂了,不管了,还是基于开源的自己试一试~~~
看示例程序:
else if (je->type==EXOSIP_CALL_ANSWERED)
&leftsign;
printf( "<- (%i %i) [%i %s ANSWERED] %s",
je->cid, je->did,
je->status_code,
je->reason_phrase,
je->remote_uri);
josua_printf(buf);
call.build(je);
&rightsign;
if (ca->remote_sdp_audio_ip[0]==\’\\0\’)
&leftsign;
osip_strncpy(ca->remote_sdp_audio_ip, je->remote_sdp_audio_ip, 49);
ca->remote_sdp_audio_port = je->remote_sdp_audio_port;
ca->payload = je->payload;
osip_strncpy(ca->payload_name, je->payload_name, 49);
&rightsign;
根据我浅薄的理解,SIP协商语音能力之后,然后用RTP进行传输,那么现在就已经看到了 远程IP和远程端口
那么我就简单的用RTP进行传输一个强行转发为PCMU/PCMA的WAVE文件应该可以正常吧,结果全部是噪音。
FILE *source=fopen("c://12pcmu.wav","rb");
if ( source == NULL )
&leftsign;
cout<<"can\’t access the file"<<endl;
&rightsign;
//#ifdef win32
//#endif
size_t bufRead = 0;
bool Mark=true;
#define bufsize 1024
BYTE buffer[bufsize];
int t;
RTPSession sess;
t=sess.Create(5800);
if(t!=0)cout<<"can\’t create"<<endl;
bool sen;
if(t==0)&leftsign;sen=true;&rightsign;
int nPT ;
int nTSTAMP;
sess.SetMulticastTTL(1); //砞﹚multicastTTL
sess.AddDestination(ntohl(inet_addr("111.168.13.190")),portt); //﹚肚癳ヘ狠
//sess.AddDestination(ntohl(inet_addr("192.168.25.79")),6900);
if(t!=0) cout<<"can\’t add destination"<<endl;
for (int jj=0;j<1000;j++)
&leftsign;
(void) fseek( source, 0, SEEK_SET );
while(!feof(source))
&leftsign;
bufRead = fread(buffer, sizeof(BYTE), bufsize, source );
nPT=rand()%64+1;
nTSTAMP=rand()%1000+1;
t=sess.SendPacket(buffer,bufsize,nPT,Mark,nTSTAMP);
if(t!=0)cout<<"can\’t sending"<<endl;
Sleep(10);
Mark=false;
&rightsign;
&rightsign;
(void) fflush( source );
(void) fclose( source );
cout<<("send success")<<endl;
WSACleanup();
历史博文
- 20081012 c# ironpython - 2009
- 20070919 Minigui 触摸屏 校准 - 2008
- 20070107 Asterisk TAPI incoming call Inbound Calls - 2007
- paypal的钓鱼邮件和微软公司的主流技術支援服務 - 2005