📄 register.c
字号:
#include <eXosip2/eXosip.h>#include <osip2/osip_mt.h>#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>/*************************注册,#if 注视掉的部分为初始化,如否,可单独使用注: 现发送注册请求,然后在返回错误消息中提交授权信息*************************/int myregister() { int i;#if 0 i = eXosip_init();//初始化eXosip if (i != 0) { return -1; } printf("eXosip_init success\n");//监听端口5060 i = eXosip_listen_addr(IPPROTO_UDP, NULL, 5060, AF_INET, 0); if (i != 0) { eXosip_quit(); fprintf(stderr, "could not initialize transport layer\n"); return -1; } printf("eXosip_listen_addr success\n");#endif int flag=0; int id; osip_message_t *reg = NULL; eXosip_lock(); id = eXosip_register_build_initial_register ("sip:77001234@192.168.8.24", "sip:61.233.3.35:5060", NULL, 1800, ®); printf("id = %d", id); if (id < 0) { eXosip_unlock(); fprintf (stderr, "eXosip_register_build_initial_register failed:(bad arguments?)\n"); exit(-1); } i = eXosip_register_send_register(id, reg); if (i != 0) { fprintf (stderr, "eXosip_register_send_register failed: (bad arguments?)\n"); return -1; } eXosip_unlock (); printf("eXosip_register_send_register OK\n"); eXosip_event_t *je; for (;;) { je = eXosip_event_wait (0, 50); eXosip_lock(); eXosip_automatic_action (); eXosip_unlock(); if (je == NULL) { continue; } if (je->type == EXOSIP_REGISTRATION_SUCCESS) { printf("textinfo is %s\n", je->textinfo); break; } if(je->type == EXOSIP_REGISTRATION_FAILURE) { eXosip_add_authentication_info("77001234", "77001234","654987", NULL, NULL); //在返回注册失败中提交授权信息 } if(je->type == EXOSIP_REGISTRATION_REFRESHED) { printf("refreshed"); return 1; } } // eXosip_quit();//退出eXosip sleep(1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -