问题标签 [diameter-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
206 浏览

java - 直径堆栈重新启动时如何处理请求/应答/会话?

我正在研究直径协议。当我的直径堆栈重新启动时,我有一个关于处理请求/应答/会话的问题,所以我想知道哪些参数存储在数据库中以便在我的直径堆栈重新启动时进一步使用?像 Session_ID、State 等参数。如果您对此有任何想法,请建议我感谢您的回复

0 投票
1 回答
113 浏览

pcap - 我在哪里可以找到 Authentication-Information-Request 的所有 avp Pcap?

请分享有关 Authentication-Information-Request 的 avp 文件

0 投票
2 回答
175 浏览

diameter-protocol - 我在哪里可以找到更新位置请求的消息?

我希望你们一切都好!我需要更新位置请求的消息格式

0 投票
0 回答
216 浏览

apache-camel - apache camel可以支持电信直径吗?

全部。

我正在考虑用于电信上的实时数据流量直径接口。我想使用 apache camel 作为接口。

骆驼能支持这个行业吗?移动数据业务需要直径协议,包括gy、ro等。

我无法判断这个问题。请给我建议。

谢谢你。

0 投票
1 回答
289 浏览

java - 如何在 java 中为 Diameter Stack 创建 Session-Id?

我想知道如何生成 Session-Id。有时直径接受请求没有会话 ID,所以我想为那些请求创建会话 ID,例如取消位置请求。

0 投票
2 回答
400 浏览

python-3.x - 如何使用 tshark 或 python 从直径数据包中捕获特定字段的完整层次结构

我正在尝试添加所有输入/输出八位字节 AVP 来计算针对每个评级组使用的总数据。问题是,并非所有输入/输出八位字节 AVP 都会出现在每个服务数据容器 AVP 中。在使用带有 Tfields 或 Tjson 选项的 tshark 命令时,输出会丢失原始层次结构,从而无法确定哪个 Octet AVP 与哪个 Rating-Group 相关联。

这是 Rf ACR 数据包的简单快照:

在上面的示例中,如果我添加,对于 Rating-Group=1111,总 Accounting-Input-Octets 为 1000,Accounting-Output-Octets 为 9000。同样,对于 Rating-Group=2222,总 Accounting-Input-Octets 为 10000 和会计输出八位字节为 5000。

我使用以下选项运行 tshark:

如您所见,不可能将八位组与评级组进行聚合。

我正在寻找一个选项,我可以在其中获得更好的数据包层次结构,如下所示:

0 投票
1 回答
65 浏览

diameter-protocol - 信用控制服务器有效期到期如何处理?

*我想知道有效期到期时会发生什么,有些人认为知道是改变状态IDLE并从会话中删除,但是我们向客户端发送什么样的请求*

0 投票
0 回答
176 浏览

lua - 来自 Diameter 3GPP 的统计 Lua 脚本

我正在尝试创建一个 lua 脚本来通过 Diameter pcap,收集我感兴趣的信息并生成统计信息。

这部分成功,可以在GitHub中找到工作脚本,但我仍然有一些疑问

Field.new() 和多次出现的 AVP

Field.new()用来检索 AVP,例如:

但是在单个数据包中可能会多次出现 AVP。当然,我可以将它们作为数组从

但是我缺少AVP 中检索到的参考。一个很好的例子是Result-Code AVP

图片说明

这个单一的直径消息它出现了三次,但结果我只得到了三个 2001 的数组,而没有很好地理解它出现在哪个级别。

当单个包包含多个Diameter 消息时,情况变得更加混乱。然后我什至无法确定AVP来自哪条消息。

函数 tap.packet(pinfo, tvb, tapdata) 不填充 tapdata

另一个想法是深入研究tapdata。如果我理解正确11.4.1.5。listener.packettapdata(aka tapinfo)应填充解剖数据,对吗?因此我应该能够解析消息。

但是,无论我多么努力,tapdata总是未设置(即 nil)。在 GitHub 代码中

但我也尝试了第三个参数,将其设置为true(希望生成所有字段,即使以性能损失为代价)。没运气。

[更新 2020/03/20]

自我回答Function tap.packet(pinfo, tvb, tapdata) does not populate tapdata

检查 Wireshark (tshark) 的源代码后发现,Diameter 没有填充此变量,因为 tapdata 没有引用 Diameter。我试图将它添加到taps定义中并且变量(表)已被填充,甚至散列的名称也可以。但是哈希中的变量不是......无论如何,这是变化:

问题

  • 这种方法对吗?或者我应该使用其他方式 - 例如链式解剖器或后解剖器?但我不清楚我是否可以将解剖数据访问到我需要的水平?

任何帮助将不胜感激。

提前谢谢你,最好的问候, Jarek

0 投票
1 回答
93 浏览

c++ - freediameter - 如何处理调度功能之外的请求消息

所以,我已经通过 fd_disp_register 在我的扩展中为 DCCA 应用程序做广告,我可以解析和准备响应消息,最后从我的回调函数发送它们没有问题。

如果在回调函数中准备好应答消息,这总是有效的。但是如果我想在我的回调函数之外回复请求消息怎么办?

所以,我用示例代码进行了尝试。我更改了回调函数逻辑,因此没有从中发送消息,而是另一个线程尝试获取一些信息并发送响应。

这绝对失败了,因为一旦回调返回(0),下一个动作就会发生(根据 disp_action 值),这对我不利。

所以,我想问一下您处理这种情况的解决方案是什么,我的意思是在回调函数之外发送响应消息?

谢谢。

0 投票
2 回答
236 浏览

diameter-protocol - 如何在 Diameter Base Protocol 中生成 session-id

根据 RFC 6733 ( https://www.rfc-editor.org/rfc/rfc6733#section-8.8 ) session-id 应采用以下格式:

DiameterIdentity 可以是 FQDN/Realm 但我们需要设置一些高低 32 位值

有人可以建议我们如何在 Java 中实现它。在可选值中我正在考虑放置事件时间戳