freeswitch的主被叫号码

概述

freeswitch是一款简单好用的VOIP开源软交换平台。

sip信令中对于主被叫号码有多个头域显示,不同的配置参数又有多种头域组合,当我们在使用fs处理信令时,应该如何设置和获取主被叫号码在恰当的头域中。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.6.20

GCC:4.8.5

测试方案

A->fs1(55.138)->fs2(55.137)->B

A号码使用10011,B号码使用13712345678。

其中fs1上设置号码,fs2上展示获取号码。

rpid模式

fs1使用rpid模式 {sip_cid_type=rpid} ,也是fs的默认模式。拨号计划设置如下。

<action application="export" data="effective_caller_id_name=11111"/>

<action application="export" data="effective_caller_id_number=22222"/>

<action application="bridge" data="{sip_cid_type=rpid,sip_invite_full_from='33333' <sip:+44444@test.com>;tag=QN11rSr6yH0vF,sip_invite_to_uri=<sip:12345678@test.com>}sofia/external/$1@10.55.55.137:5080"/>

fs1发出的invite信令如下,头域中会使用“Remote-Party-ID”展示主叫号码。

INVITE sip:13712345678@10.55.55.137:5080 SIP/2.0

From: 33333 <sip:+44444@test.com>;tag=QN11rSr6yH0vF

To: <sip:12345678@test.com>

Remote-Party-ID: "11111" <sip:22222@10.55.55.138>;party=calling;screen=yes;privacy=off

fs2使用log展示不同的通道变量值。日志如下。

EXECUTE sofia/external/+44444@test.com log(destination_number=13712345678)

EXECUTE sofia/external/+44444@test.com log(sip_to_user=12345678)

EXECUTE sofia/external/+44444@test.com log(caller_id_name=11111)

EXECUTE sofia/external/+44444@test.com log(caller_id_number=22222)

EXECUTE sofia/external/+44444@test.com log(sip_from_user=+44444)

EXECUTE sofia/external/+44444@test.com log(sip_from_user_stripped=44444)

pid模式

fs1使用pid模式 {sip_cid_type=pid} 。拨号计划设置如下。

<action application="export" data="effective_caller_id_name=11111"/>

<action application="export" data="effective_caller_id_number=22222"/>

<action application="bridge" data="{sip_cid_type=pid,sip_invite_full_from='33333' <sip:+44444@test.com>;tag=QN11rSr6yH0vF,sip_invite_to_uri=<sip:12345678@test.com>}sofia/external/$1@10.55.55.137:5080"/>

fs1发出的invite信令如下,头域中会使用“P-Asserted-Identity”展示主叫号码。

INVITE sip:13712345678@10.55.55.137:5080 SIP/2.0

From: 33333 <sip:+44444@test.com>;tag=QN11rSr6yH0vF

To: <sip:12345678@test.com>

P-Asserted-Identity: "11111" <sip:22222@10.55.55.138>

fs2使用log展示不同的通道变量值。日志如下。

EXECUTE sofia/external/+44444@test.com log(destination_number=13712345678)

EXECUTE sofia/external/+44444@test.com log(sip_to_user=12345678)

EXECUTE sofia/external/+44444@test.com log(caller_id_name=11111)

EXECUTE sofia/external/+44444@test.com log(caller_id_number=22222)

EXECUTE sofia/external/+44444@test.com log(sip_from_user=+44444)

EXECUTE sofia/external/+44444@test.com log(sip_from_user_stripped=44444)

none模式

fs1使用none模式 {sip_cid_type=none} 。拨号计划设置如下。

<action application="export" data="effective_caller_id_name=11111"/>

<action application="export" data="effective_caller_id_number=22222"/>

<action application="bridge" data="{sip_cid_type=none,sip_invite_full_from='33333' <sip:+44444@test.com>;tag=QN11rSr6yH0vF,sip_invite_to_uri=<sip:12345678@test.com>}sofia/external/$1@10.55.55.137:5080"/>

fs1发出的invite信令如下,头域中只有“from”展示主叫号码。

INVITE sip:13712345678@10.55.55.137:5080 SIP/2.0

From: 33333 <sip:+44444@test.com>;tag=QN11rSr6yH0vF

To: <sip:12345678@test.com>

fs2使用log展示不同的通道变量值。日志如下。

EXECUTE sofia/external/+44444@test.com log(destination_number=13712345678)

EXECUTE sofia/external/+44444@test.com log(sip_to_user=12345678)

EXECUTE sofia/external/+44444@test.com log(caller_id_name=33333)

EXECUTE sofia/external/+44444@test.com log(caller_id_number=+44444)

EXECUTE sofia/external/+44444@test.com log(sip_from_user=+44444)

EXECUTE sofia/external/+44444@test.com log(sip_from_user_stripped=44444)

总结

fs收到invite信令时,通过“caller_id_number”获取主叫号码的头域优先级,Remote-Party-ID,P-Asserted-Identity,From。

fs收到invite信令时,通过“destination_number”获取的被叫号码是requestline中的号码。

fs收到invite信令时,通过“sip_from_user”和“sip_to_user”获取from和to头域中的号码。

空空如常

求真得真

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/449733.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新型生成式 AI 助手 Amazon Q(预览版)上线

今天&#xff0c;我们宣布推出 Amazon Q&#xff0c;这是一种新型的生成式人工智能助手&#xff0c;专门用于满足办公场景需要&#xff0c;可以根据客户业务进行定制。客户可以使用 Amazon Q 进行对话、解决问题、生成内容、获取见解并采取行动&#xff0c;所有这些都基于客户自…

SpringBoot实战2

目录 1.如何返回两个类型的数据&#xff1f;User和Booth 2.如何使用MyBatis遍历一个数组进行查询&#xff1f; 3.前端要的数据太多太杂&#xff0c;我们拼接多个List&#xff0c;前端找数据困难&#xff0c;浪费时间。因此我们进行三表联表查询。 1.首先创建一个vo包&#x…

【个性化的健康管理建议】Health-LLM:解决传统医学大模型,难以充分满足个体化需求

Health-LLM&#xff1a;解决传统医学大模型&#xff0c;难以充分满足个体化需求 提出背景个性化方案 大模型 AutoML 信息检索&#xff08;IR&#xff09;工作流程 效果 论文&#xff1a;https://arxiv.org/pdf/2402.00746.pdf 代码&#xff1a;https://github.com/jmyissb/…

爬虫入门到精通_基础篇4(BeautifulSoup库_解析库,基本使用,标签选择器,标准选择器,CSS选择器)

1 Beautiful说明 BeautifulSoup库是灵活又方便的网页解析库&#xff0c;处理高效&#xff0c;支持多种解析器。利用它不用编写正则表达式即可方便地实线网页信息的提取。 安装 pip3 install beautifulsoup4解析库 解析器使用方法优势劣势Python标准库BeautifulSoup(markup,…

服了,一个ThreadLocal被问出了花

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 故事 地铁上&#xff0c;小帅无力地倚靠着杆子&#xff0c;脑子里尽是刚才面试官的夺命连环问&#xff0c;“用过TheadLocal么&#xff1f;ThreadLocal是如何解决共享变量访问的安全性的呢&#xff1f;你…

跨平台开发:浅析uni-app及其他主流APP开发方式

随着智能手机的普及&#xff0c;移动应用程序&#xff08;APP&#xff09;的需求不断增长。开发一款优秀的APP&#xff0c;不仅需要考虑功能和用户体验&#xff0c;还需要选择一种适合的开发方式。随着技术的发展&#xff0c;目前有多种主流的APP开发方式可供选择&#xff0c;其…

postgres:锁申请

什么是弱锁&#xff0c;强锁&#xff1f; 为了提高并发控制&#xff0c;PG通过将锁信息在本地缓存&#xff08;**LOCALLOCK**&#xff09;和快速处理常见锁&#xff08;fastpath&#xff09;&#xff0c;减少了对共享内存的访问&#xff0c;提高性能。从而出现了弱锁和强锁的概…

羊大师:冬季出行,心血管病患者应做好哪些准备?

羊大师&#xff1a;冬季出行&#xff0c;心血管病患者应做好哪些准备&#xff1f; 冬季将至&#xff0c;气温骤降&#xff0c;寒冷的天气不仅让人感到不适&#xff0c;对于患有心血管病的人来说&#xff0c;更是需要格外注意。在这个寒冷的季节里&#xff0c;心血管病患者需要…

MH-ET LIVE Boards(ATTiny88)实验一---点亮板载灯

MH-ET LIVE Boards(ATTiny88&#xff09;实验一点亮板载灯 在Arduino IDE中添加开发板资源包加入开发板json添加开发板 安装开发板驱动方法一&#xff1a;github下载2.0a4.rar方法二&#xff1a;开发板的package包中自带的2.0a4.rar安装驱动确认安装成功 blink.ino程序测试![在…

C++:输入流/输出流

C流类库简介 C为了克服C语言中的scanf和printf存在的缺点。&#xff0c;使用cin/cout控制输入/输出。 cin&#xff1a;表示标准输入的istream类对象&#xff0c;cin从终端读入数据。cout&#xff1a;表示标准输出的ostream类对象&#xff0c;cout向终端写数据。cerr&#xff…

Jmeter学习系列之四:测试计划元素介绍

测试计划元素 JMeter包含各种相互关联但为不同目的而设计的元素。在开始使用JMeter之前&#xff0c;最好先了解一下JMeter的一些主要元素。 注意:测试计划包含至少一个线程组。 以下是JMeter的一些主要组件: 测试计划&#xff08;Plan&#xff09;线程组(Thread Group)控制器…

数据结构—基础知识:哈夫曼编码

文章目录 数据结构—基础知识&#xff1a;哈夫曼编码哈夫曼编码的主要思想有关编码的概念哈夫曼编码满足两个性质&#xff1a; 数据结构—基础知识&#xff1a;哈夫曼编码 哈夫曼编码的主要思想 在进行数据压缩时&#xff0c;为了使压缩后的数据文件尽可能短&#xff0c;可采…