⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 register.c

📁 在linux下的osip小程序
💻 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, &reg);        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 + -