1、eXosip使用实例ifeq (1,1)PWD=$(shell pwd)LIBCODEPATH=/usr/srcLIBPATH=/usr/localall: osip2 eXosip2 myprojosip2: echo will make osip2;echo;echo cd $(LIBCODEPATH)/libosip2-3.6.0;echo -n pwd is: ;pwd;echo;echo;make;make install;cd $(PWD) eXosip2: echo will make eXosip2;echo;echo cd $(LIBCODEPATH)/libeXosip2-
2、3.5.0;echo -n pwd is: ;pwd;echo;echo;make;make install;cd $(PWD)ifeq (1,2)myproj: echo will make myproj;echo;echo -rm -f sipuac gcc -o sipuac sipuac.c -I$(LIBPATH)/include -L$(LIBPATH)/lib -losip2 -losipparser2 -leXosip2else$(warning 1111 $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(LIBS)CC := gccCFLAGS
3、 += -g -O2CPPFLAGS += -I$(LIBPATH)/includeLDFLAGS += -L$(LIBPATH)/libLIBS += -losip2 -losipparser2 -leXosip2myproj: sipuac.o gcc -o sipuac sipuac.o $(LDFLAGS) $(LIBS) rm *.oendiftest: echo here is make all if 1 -eq 2 ;then echo here is make all if ; echo pwd is $(shell pwd) ; echo will make osip2 ;
4、echo ; cd $(LIBCODEPATH)/libosip2-3.6.0;echo -n pwd is: ;pwd;echo;echo;make;make install;cd $(PWD) ; echo pwd is $(shell pwd) ; echo ; echo ; echo will make eXosip2 ; echo ; cd $(LIBCODEPATH)/libeXosip2-3.5.0;echo -n pwd is: ;pwd;echo;echo;make;make install;cd $(PWD) ; echo pwd is $(shell pwd) ; ech
5、o ; echo ; echo will make myproj ; rm -f sipuac ; gcc -o sipuac sipuac.c -I$(LIBPATH)/include -L$(LIBPATH)/lib -losip2 -losipparser2 -leXosip2 ; else echo here is make all else ; ficlean: echo will clean osip2;echo;echo cd $(LIBCODEPATH)/libosip2-3.6.0;echo -n pwd is: ;pwd;echo;echo;make clean;cd $(
6、PWD) echo will clean eXosip2;echo;echo cd $(LIBCODEPATH)/libeXosip2-3.5.0;echo -n pwd is: ;pwd;echo;echo;make clean;cd $(PWD) echo will clean myproj;echo;echo rm -f sipuac.PHONY: all osip2 eXosip2 myproj test cleanEndif/代码#include #include #include #define ENABLE_TRACE /打开osip log用的#include #include
7、 int reg();int unreg();int invite();int bye();int hold();int unhold();int quit();int show();#define COM_REG reg#define COM_UNREG unreg#define COM_INVITE invite#define COM_BYE bye#define COM_HOLD hold#define COM_UNHOLD unhold#define COM_QUIT quit#define COM_SHOW showtypedef enum REG = 0, UNREG, INVIT
8、E, BYE, HOLD, UNHOLD, QUIT, SHOW, MAX,com_type;typedef int (*COM)();COM comMAX = reg,unreg,invite,bye,hold,unhold,quit,show;char * localip = 192.168.247.130;char * serverip = 192.168.247.130;char * username = 8001;char * passwd = 8001;char * realm = asterisk;/这个字段可以不用int localport = 15061;int server
9、port = 5061;char reg_from50 = 0;char registrar50 = 0;char contact50 = 0;int ring_timeout = 20;/20秒是振铃超时int flag = 0;int g_r_id = 0;int g_call_id = 0,g_dialog_id = 0;char * g_body = NULL;int reg() int r_id = 0; osip_message_t *reg_m = NULL; eXosip_event_t * je = NULL; eXosip_clear_authentication_info
10、(); if (eXosip_add_authentication_info(username, username, passwd, NULL, NULL/*realm*/) printf(# Add_authentication_info failedn); exit(1); r_id = eXosip_register_build_initial_register(reg_from,registrar,contact,120,®_m); if(r_id 0) printf(# Register failed!n); exit(1); printf(# r_id is %dn,r_id
11、); g_r_id = r_id; eXosip_register_send_register(r_id,reg_m); je = eXosip_event_wait(1,0); eXosip_lock(); eXosip_default_action(je); eXosip_unlock(); printf(# will return from regn); return 0;int unreg()#if 0 int i = 0; osip_message_t *reg_m = NULL; eXosip_event_t * je = NULL; eXosip_clear_authentica
12、tion_info(); if (eXosip_add_authentication_info(username, username, passwd, NULL, NULL/*realm*/) printf(# Add_authentication_info failedn); exit(1); i = eXosip_register_build_initial_register(reg_from,registrar,contact,0,®_m); if(i 0) printf(# unregister failed!n); exit(1); eXosip_register_send_r
13、egister(i,reg_m); je = eXosip_event_wait(1,0); eXosip_lock(); eXosip_default_action(je); eXosip_unlock();#else osip_message_t *reg_m = NULL; eXosip_event_t * je = NULL; if(eXosip_register_build_register(g_r_id,0,®_m) != 0) printf(# eXosip_register_build_register failed!n); exit(1); eXosip_registe
14、r_send_register(g_r_id,reg_m); je = eXosip_event_wait(1,0); eXosip_lock(); eXosip_default_action(je); eXosip_unlock();#endif return 0;int invite() int i = 0,invite_flg = 0; osip_message_t * invite_m = NULL; osip_message_t * ack_m = NULL; eXosip_event_t * je = NULL; static char body4096 = 0; char dial20 = 0; char inv_from50 = 0; char inv_to50 = 0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1