IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> eXosip注册函数与使用说明 -> 正文阅读

[系统运维]eXosip注册函数与使用说明

exosip注册与刷新注册

注册相关函数接口

eXosip_register_build_initial_register

构建初始化注册请求

/**
 * Build initial REGISTER request.
 * 
 * @param excontext    eXosip_t instance.
 * @param from      SIP url for caller.
 * @param proxy     Proxy used for registration.
 * @param contact   Contact address. (optional)
 * @param expires   The expires value for registration.
 * @param reg       The SIP request to build.
 */
  int eXosip_register_build_initial_register (struct eXosip_t *excontext, const char *from, const char *proxy, const char *contact, int expires, osip_message_t ** reg);

eXosip_register_build_initial_register_withqvalue

使用qvalue值构建初始化注册请求

/**
 * Build initial REGISTER request with qvalue for contact.
 * 
 * @param excontext    eXosip_t instance.
 * @param from      SIP url for caller.
 * @param proxy     Proxy used for registration.
 * @param contact   Contact address. (optional)
 * @param expires   The expires value for registration.
 * @param qvalue    The qvalue value for contact header.
 * @param reg       The SIP request to build.
 */
  int eXosip_register_build_initial_register_withqvalue (struct eXosip_t *excontext, const char *from, const char *proxy, const char *contact, int expires, const char *qvalue, osip_message_t ** reg);

eXosip_register_build_register

为一个已经存在的注册构建一个新的注册请求,可用于关闭注册于刷新注册。

/**
 * Build a new REGISTER request for an existing registration.
 * 
 * @param excontext    eXosip_t instance.
 * @param rid       A unique identifier for the registration context
 * @param expires   The expires value for registration.
 * @param reg       The SIP request to build.
 */
  int eXosip_register_build_register (struct eXosip_t *excontext, int rid, int expires, osip_message_t ** reg);

eXosip_register_send_register

为一个已经存在的注册发送注册请求

/**
 * Send a REGISTER request for an existing registration.
 * 
 * @param excontext    eXosip_t instance.
 * @param rid       A unique identifier for the registration context
 * @param reg       The SIP request to build. (NULL for default REGISTER)
 */
  int eXosip_register_send_register (struct eXosip_t *excontext, int rid, osip_message_t * reg);

eXosip_register_remove

在不发送注册请求的情况下,删除已经存在的注册,
在没有发送关闭注册请求的情况下,移除注册,释放内存资源。

/**
 * Remove existing registration without sending REGISTER.
 * 
 * @param excontext    eXosip_t instance.
 * @param rid       A unique identifier for the registration context
 */
  int eXosip_register_remove (struct eXosip_t *excontext, int rid);

注册相关操作

初始化注册

需要提供多个头域,同一个ctx中可以开启多个注册

osip_message_t *reg = NULL;
int rid;
int i;
 
eXosip_lock (ctx);
rid = eXosip_register_build_initial_register (ctx, "sip:me@sip.antisip.com", "sip.antisip.com", NULL, 1800, &reg);
if (rid < 0)
  {
    eXosip_unlock (ctx);
    return -1;
  }
 
osip_message_set_supported (reg, "100rel");
osip_message_set_supported (reg, "path");
 
i = eXosip_register_send_register (ctx, rid, reg);
eXosip_unlock (ctx);
return i;

eXosip_register_build_initial_register 返回值为注册ID,可用于刷新注册

REGISTER中的Contact头域

应该有eXosip单独管理Contact头域,

设置密码

通常,您需要登录/密码才能访问服务。

eXosip可用于同时访问多个服务,因此,如果在同一实例中使用多个服务,则需要提供领域(标识服务)。

当您使用一个用户名与登录名相同的服务时,最简单的方法是:

eXosip_lock (ctx);
eXosip_add_authentication_info (ctx, login, login, passwd, NULL, NULL);
eXosip_unlock (ctx);

或者完整的方式

eXosip_lock (ctx);
eXosip_add_authentication_info (ctx, login, login, passwd, NULL, "sip.antisip.com");
eXosip_add_authentication_info (ctx, from_username, login, passwd, NULL, "otherservice.com");
eXosip_unlock (ctx);

删除所有注册

sip规范中不建议使用这个功能,要求立即删除特定SIP代理的所有活动注册

rid = eXosip_register_build_initial_register (ctx, "sip:me@sip.antisip.com", "sip.antisip.com", "*", 1800, &reg);

更新注册

只需要初始化注册时反馈的注册ID

int i;
 
eXosip_lock (ctx);
i = eXosip_register_build_register (ctx, rid, 1800, &reg);
if (i < 0)
  {
    eXosip_unlock (ctx);
    return -1;
  }
 
eXosip_register_send_register (ctx, rid, reg);
eXosip_unlock (ctx);

关闭注册

软电话在终止时应删除其在SIP服务器上的注册。为此,您必须发送一个注册请求,将expires头设置为值“0”。

与更新注册代码相同,仅是expires的值设置为0即可。

int i;
 
eXosip_lock (ctx);
i = eXosip_register_build_register (ctx, rid, 0, &reg);
if (i < 0)
  {
    eXosip_unlock (ctx);
    return -1;
  }
 
eXosip_register_send_register (ctx, rid, reg);
eXosip_unlock (ctx);

移除注册

如果你不想发送expires为0的注册,直接释放内存,可以使用eXosip_register_remove实现。

int i;
 
eXosip_lock (ctx);
i = eXosip_register_remove (ctx, rid);
if (i == 0) {
}
eXosip_unlock (ctx);
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:45:38  更:2022-05-11 16:46:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:57:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码