利用exosip DNS CACHE自定义SIP服务器地址和端口
文章标题可能表述不清,罢了,我这里描述一个场景:
当使用exosip开发UA时,服务器地址是域名example.com和端口形式,但存在两个限制:
1、example.com没有DNS记录、没有NAPTR记录,或者example.com的A记录地址不是真实的服务器地址,此时我们得自定义该地址;
2、端口不是使用默认5060端口,而是自定义的端口,比如5001,此时得显示指定UDP发送的目的端口;
如上,domain和ip地址没有A记录、NAPTR记录关系,对端端口是5001,且信令上有要求,不可显示指定port。
关于端口的更改,我在exosip里没有找到相关API,但是domain和IP的解析关系有API,使用exosip提供的DNS_CACHE机制,当然也可以手动添加DNS缓存到系统DNS记录中;
//close dns and naptr query
int val=0;
eXosip_set_option (ctx->context_eXosip, EXOSIP_OPT_DNS_CAPABILITIES, &val);
struct eXosip_dns_cache entry;
strcpy(entry.host,"example.com");strcpy(entry.ip,"10.0.0.111");
eXosip_set_option (ctx->context_eXosip, EXOSIP_OPT_ADD_DNS_CACHE , &entry);
对端端口目前没有找到相关API,我修改了exosip在so中写死了目的端口,如下:
src/eXutils.c:786
791 if(strncmp(hostname,"10.0.0.111",10)==0){strcpy(portbuf,"5001");}
792 error = getaddrinfo (hostname, portbuf, &hints, addrinfo);
如果你知道如何在exosip api中指定对端端口地址,希望能告诉我。
利用exosip DNS CACHE自定义SIP服务器地址和端口的更多相关文章
- java发送邮件基础方法(另附部分主流邮箱服务器地址、端口及设置方法)
java发送邮件基础方法,可通过重载简化参数 import java.io.File; import java.io.UnsupportedEncodingException; import java ...
- 各邮箱服务器地址及端口<转>
gmail(google.com) POP3服务器地址:pop.gmail.com(SSL启用端口:995) SMTP服务器地址:smtp.gmail.com(SSL启用 端口:587) 21cn.c ...
- 利用netsh命令设置IP地址/DNS服务器地址
一.设置IP地址 1. 自动获取IP地址: netsh interface ip set address [name=]"本地连接" [source=]dhcp 2. 手动设置IP ...
- 全国各地电信DNS服务器地址
全国各地电信DNS服务器地址 北京DNS地址:202.96.199.133 202.96.0.133 202.106.0.20 202.106.148.1 202.97.16.195 上海DNS地址: ...
- 国内外DNS服务器地址列表
DNS(Domain Name System)是域名解析服务器的意思,它在互联网的作用是把域名转换成为网络可以识别的IP地址.目前国内电信运营商通过使用DNS劫持的方法,干扰用户正常上网,使得用户无法 ...
- 中国内地、台湾、香港、澳门和国外DNS服务器地址列表
中国内地.台湾.香港.澳门和国外DNS服务器地址列表 详细内容 作者:网路岗 来源:局域网监控软件 DNS(Domain Name System)是域名解析服务器的意思,它在互联网的作用是把域名转换成 ...
- DNS服务器地址汇总
如果修改DNS服务器地址就可以访问google等服务,你还等什么?使用免费DNS解析服务除了去掉了运营商的各种广告,还有个最大的好处就是不会重定向或者过滤用户所访问的地址,这样就防止了很多网站被电信. ...
- ubuntu系统中添加DNS服务器地址后诡异消失的解决办法
今天查看了一下自己电脑里的ubuntu14.04系统,发现无法上网,于是ping了一下百度,出现unknown host,查了一下/etc/resolv.conf中的DNS地址,却发现我之前的修改被清 ...
- 最新可靠好用的DNS服务器地址汇总
如果修改DNS服务器地址就可以访问google等服务,你还等什么?使用免费DNS解析服务除了去掉了运营商的各种广告,还有个最大的好处就是不会重定向或者过滤用户所访问的地址,这样就防止了很多网站被电信. ...
随机推荐
- 值得收藏:一份非常完整的 MySQL 规范
一.数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割. 所有数据库对象名称禁止使用 MySQL 保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来). 数据库对象的命名要能 ...
- Git冲突和解决冲突-测试方法
原文链接:https://www.cnblogs.com/blogslee/p/6828659.html
- JS(JavaScript)的初了解(更新中···)
1.js介绍 Js全称叫javascript,但不是java,他不仅是是一门前台语言,经过发展,现在也是一门后台语言:而java是后台语言. Js作者是布兰登艾奇. 前台语言:运行在客户端的 后台语言 ...
- BinaryTree
public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode ...
- 多台linux主机间免密码登录
即在一台主机上登录另一台主机. 有2台linux主机A.B.A输入命令ssh B的ip地址以连接B,发现需要输入B的登录密码,怎样不需要输入密码呢? 步骤1: 在主机A中,输入ssh-keygen - ...
- P3829 [SHOI2012]信用卡凸包
思路 注意到结果就是每个信用卡边上的四个圆心的凸包周长+一个圆的周长 然后就好做了 注意平行时把距离小的排在前面,栈中至少要有1个元素(top>1),凸包中如果存在叉积为0的点也要pop,否则可 ...
- 源码mysql-5.7.23在cmake时出现的小问题
我是写的脚本安装mysql,cmake的步骤,另外用了一个小脚本,然后在脚本中用的bash执行的cmake命令,所以导致cmake实在子shell中执行的, 如果你是在命令行上一步一步的执行,报这个错 ...
- linux 新建用户、用户组 以及为新用户分配权限的基本操作
分享下Linux系统中创建用户.设置密码.修改用户.删除用户的命令: 创建用户:useradd testuser 创建用户testuser设置密码:passwd testuser 给已创建的用户t ...
- [原]编译flightGear
参考:flightgear编译博客201705 flightGear是三维飞行仿真软件,这个款软件是开源的,我们尝试用其源码完整编译一遍这个工程,并使用它. 它用到里以下扩展库: 空气动力学库:JSB ...
- spark streaming将处理结果存入mysql中(使用c3p0连接池)
1.c3p0相应的架包导入工程中 将以下四个架包导入工程, 主要有三个架包:c3p0-0.9.5.2.jar c3p0-oracle-thin-extras-0.9.5.2.jar mchange-c ...