exosip注册/认证的例子程序
来源:互联网 发布:安卓软件编程入门 编辑:程序博客网 时间:2024/05/16 06:11
#include <eXosip2/eXosip.h>#include <sys/socket.h>#include <osip2/osip_mt.h>#include <osip2/osip.h>#include <unistd.h>void process_event();void Register();int m_nregid=0;//注册idint main(){int i=0;i=eXosip_init();if(i!=0) return -1;printf("========= %s\n",eXosip_get_version());unsigned short port=7000;//本地sip端口i=eXosip_listen_addr(17,NULL,port,AF_INET,0);//17是udp,不想过多的引入头文件,故用数字表示一下if(i!=0){printf("listen fail!\n");eXosip_quit();return -1;}Register();process_event();sleep(5000);getchar();return 0;}void process_event(){eXosip_event *event;for(;;){ if (!(event = eXosip_event_wait(0, 50))) continue ;eXosip_lock();eXosip_automatic_action();eXosip_unlock();printf("event->type ====== %d\n",event->type);if(event->type==EXOSIP_CALL_ACK){}else if(event->type==EXOSIP_CALL_ANSWERED){}else if(event->type==EXOSIP_REGISTRATION_FAILURE){if(event->response && event->response->status_code==401){printf("====== 401 =%d\n",event->rid);#if 0osip_message_t *reg = NULL; eXosip_lock(); osip_www_authenticate_t *dest = NULL; osip_message_get_www_authenticate(event->response,0,&dest); if(dest == NULL) continue; char realm[256]; eXosip_clear_authentication_info(); strcpy(realm,osip_www_authenticate_get_realm(dest)); eXosip_add_authentication_info("022000000110000","022000000110000","12345678", "MD5",realm);eXosip_register_build_register(event->rid, 3600, ®);if(reg==NULL){printf("eXosip_register_build_register failed!\n"); continue;}printf("authenticate=%s ver=%s\n",realm,reg->sip_version); eXosip_register_send_register(event->rid,reg); eXosip_unlock(); #endif}}else if(event->type==EXOSIP_REGISTRATION_SUCCESS){printf("register sccess!\n");}eXosip_event_free(event);}}void Register(){ printf("1 ====== Register()\n"); char fromuser[256]; char proxy[256]; char route[256]; sprintf(fromuser,"sip:%s@%s","022000000110000","192.168.66.117"); sprintf(proxy,"sip:%s@%s","022000000110000","192.168.66.244"); sprintf(route,"<sip:%s:%d;lr>","192.168.66.244",35060); eXosip_clear_authentication_info(); osip_message_t *reg = NULL; m_nregid = eXosip_register_build_initial_register(fromuser, proxy, NULL,3600,®); //提前输入了验证信息,在消息为401处,用eXosip_automatic_action()自动处理 eXosip_add_authentication_info("022000000110000","022000000110000","12345678", "MD5",NULL); if(reg==NULL)return; osip_message_set_route(reg,route); if(eXosip_register_send_register(m_nregid, reg)!=0)return ;}
0 0
- exosip注册/认证的例子程序
- exosip注册/认证的简单实现方法
- exosip注册/认证的简单实现方法
- eXosip认证/注册过程
- eXosip入门(四):eXosip示例程序——注册/认证
- eXosip入门(四):eXosip示例程序——注册/认证 .
- voip 一个简单的eXosip的register注册例子
- exosip的注册方法
- 一个基于exosip的软电话例子
- 一个基于exosip的软电话例子
- 一个基于exosip的软电话例子
- 一个基于exosip的软电话例子
- eXosip REGISTER认证过程
- exosip注册过程
- 一个用eXosip实现的UAC和UAS的例子
- 一个用eXosip实现的UAC和UAS的例子
- 简单的注册认证
- 自动注册的例子
- java 泛型
- 如何恢复U盘中丢失的文件
- Java XML BOM Issue
- java的反射机制
- 最长公共子序列
- exosip注册/认证的例子程序
- Android checkbox padding 兼容问题
- C++指针、数组、引用、变量作函数参数
- 往META-INF中加入文件
- java--网络编程
- xml特殊字符处理
- 雷锋精神在我心
- IOCP Server: Select
- 努力学习,回报祖国