sipot eX.osip3.0.1在Windows下编译方法及简单UA示例

eX.osip3.0.1在Windows下编译方法及简单UA示例
[ 2007-2-3 9:37:00 | By: sipot ]
 
说明:
1.以下文章中的osip版本为3.0.1
2.eXosip版本为3.0.1
3.编译环境为:Windows XP 专业版本+VS 2005
4.示例程序是在 http://blog.csdn.net/bat603/中下载,修改而成(原来是在linux下的示例)
5.如要转载此文章,请说明出处
6.本人也是才接触SIP(呵呵,不到一周),其中一定有很多不对之处,请指正。
第一步,下载:
http://www.gnu.org/software/osip/下载最新的osip库并解压
http://savannah.gnu.org/projects/exosip/下载最新的eXsoip库并解压
第二步,编译osip3.0.1:
1.用VS2005打开libosip2-3.0.1/platform/vsnet/osip.sln
2.对osip2和osipparser2项目生成Release DLL
3.其生成的LIB/DLL 位于:libosip2-3.0.1/platform/vsnet/Release DLL/下
第三步,编译eXosip3.0.1:
1.用VS2005打开libeXosip2-3.0.1/platform/vsnet/eXosip.sln
2.将libosip2-3.0.1/include/osip2目录COPY到libeXosip2-3.0.1/include/下
3.将libosip2-3.0.1/include/osipparser2目录COPY到libeXosip2-3.0.1/include/下
4.在libeXosip2-3.0.1目录下新建lib目录
5.将“第二步”中生成的libosip2-3.0.1/platform/vsnet/Release DLL/osip2.lib文件COPY到libeXosip2-3.0.1/lib目录下
6.将“第二步”中生成的libosip2-3.0.1/platform/vsnet/Release DLL/osipparser2.lib文件COPY到libeXosip2-3.0.1/lib目录下
7.修改项目属性,新增Dnsapi.lib Iphlpapi.lib Ws2_32.lib osip2.lib osipparser2.lib库输入
8.修改项目属性,新增库目录../../lib
9.修改项目的输出为.DLL,默认为.lib
10.编译Relase DLL
11.其生成的LIB/DLL 位于:libeXosip2-3.0.1/platform/vsnet/Release/下
第四步,编译示例程序:
将以下程序作为UAS.CPP保存

// UAS.cpp : 定义控制台应用程序的入口点。
//
#i nclude <eXosip2/eXosip.h>
#i nclude <stdio.h>
#i nclude <stdlib.h>
#i nclude <Winsock2.h>
/*
#i nclude <netinet/in.h>
#i nclude <sys/socket.h>
#i nclude <sys/types.h>*/
#pragma comment(lib, "osip2.lib")
#pragma comment(lib, "osipparser2.lib")
#pragma comment(lib, "eXosip.lib")
#pragma comment(lib, "Iphlpapi.lib")
#pragma comment(lib, "Dnsapi.lib")
#pragma comment(lib, "ws2_32.lib")
int
main (int argc, char *argv[])
{
  eXosip_event_t *je = NULL;
  osip_message_t *ack = NULL;
  osip_message_t *invite = NULL;
  osip_message_t *answer = NULL;
  sdp_message_t *remote_sdp = NULL;
  int call_id, dialog_id;
  int i,j;
  int id;
  char *sour_call = "sip:24@10.16.79.24";
  char *dest_call = "sip:24@10.16.79.24:5061";//client ip
  char command;
  char tmp[4096];
  char localip[128];
  int pos = 0;
  //初始化sip
  i = eXosip_init ();
  if (i != 0)
    {
      printf ("Can't initialize eXosip!/n");
      return -1;
    }
  else
    {
      printf ("eXosip_init successfully!/n");
    }
  i = eXosip_listen_addr (IPPROTO_UDP, NULL, 5060, AF_INET, 0);
  if (i != 0)
    {
      eXosip_quit ();
      fprintf (stderr, "eXosip_listen_addr error!/nCouldn't initialize transport layer!/n");
    }
  for(;;)
    {
      //侦听是否有消息到来
      je = eXosip_event_wait (0,5
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值