一个eXosip的例子

一个eXosip的例子

ID:38732097

大小:45.50 KB

页数:13页

时间:2019-06-18

一个eXosip的例子_第1页
一个eXosip的例子_第2页
一个eXosip的例子_第3页
一个eXosip的例子_第4页
一个eXosip的例子_第5页
资源描述:

《一个eXosip的例子》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一个基于exosip的软电话例子exosip针对UA是对osip进行扩展,oSIP不提供任何快速产生请求消息和响应消息的方法,所有请求消息和响应消息的形成必须调用一组sipmessageapi来手动组装完成,所以作者在osip上基础上开发了exosip,用exosip开发软电话非常方便,仅需几个API就可以完成.exosip中附带一个例子:josua,不过josua相对复杂了点,下面给出一个最简单的例子供大家参考,因为例子实在太简单所以没有给出注释,用到exosip的API的参数请参看exosip源代码,看懂这个例子再研究josu

2、a就很简单了.我使用的是osip2.0.9+exosip0.77.#include"assert.h"#include#include#include#include#includeusingnamespacestd;classjcall;classjcall{public: intcid; intdid;  charreason_phrase[50]; int status_code

3、;  chartextinfo[256]; charreq_uri[256]; charlocal_uri[256]; charremote_uri[256]; charsubject[256];  charremote_sdp_audio_ip[50]; int remote_sdp_audio_port; int payload; charpayload_name[50];  intstate;  jcall(){}  intbuild(eXosip_event_t*je) {  jcall*ca=this;    ca->c

4、id=je->cid;  ca->did=je->did;    if(ca->did<1&&ca->cid<1)  {   assert(0);   return-1;/*notenoughinformationforthisevent??*/  }    osip_strncpy(ca->textinfo,  je->textinfo,255);  osip_strncpy(ca->req_uri,   je->req_uri,255);  osip_strncpy(ca->local_uri, je->local_uri,2

5、55);  osip_strncpy(ca->remote_uri,je->remote_uri,255);  osip_strncpy(ca->subject,   je->subject,255);    if(ca->remote_sdp_audio_ip[0]=='')  {   osip_strncpy(ca->remote_sdp_audio_ip,je->remote_sdp_audio_ip,49);   ca->remote_sdp_audio_port=je->remote_sdp_audio_port; 

6、  ca->payload=je->payload;   osip_strncpy(ca->payload_name,je->payload_name,49);     }    if(je->reason_phrase[0]!='')  {   osip_strncpy(ca->reason_phrase,je->reason_phrase,49);   ca->status_code=je->status_code;  }    ca->state=je->type;  return0; } };jcallcall;voi

7、d__exit(intr){ charline[256]; gets(line); exit(r);}voidjosua_printf(char*buf){ printf("");}intjosua_event_get(){ intcounter=0; /*useeventstoprintsomeinfo*/ eXosip_event_t*je; for(;;) {  charbuf[100];  je=eXosip_event_wait(0,50);  if(je==NULL)   break;  counter++;  i

8、f(je->type==EXOSIP_CALL_NEW)  {   printf("<-(%i%i)INVITEfrom:%s",    je->cid,je->did,    je->remote_uri);   josua_printf(buf

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。