Skip to content

dp2SSL 增加了 SIP 消息变换脚本机制 #1199

@DigitalPlatform

Description

@DigitalPlatform

为增强适配第三方 SIP Server 变体消息的能力,最新版 dp2ssl 增加了用定制脚本代码(或定制的 DLL)对 SIP 消息进行变换的机制。

配置使用方法:

  1. 在 dp2ssl 的数据目录(一般在 c:\programData\dp2\dp2ssl)中创建一个名为 charging.xml 的配置文件,其内容示范如下:
<charging>
	<messageIO logging="on">
		<script lang="javascript">
message += "|||append type=" + type;
		</script>
	</messageIO>
        <!--
	environment是smts特殊的环境变量,在脚本解析的时候会对 env 节进行遍历,
	并且替换掉smts里的 env name 对应的占位符,替换成 env name的值。
	-->
	<environment>
		<!--
		env的value值如果是被{{}}包裹起来的值,是对应的dp2SSL的App设置界面的参数,
                如果不是被包裹起来,则是value预设的固定值
		在对消息变换脚本初始化的时候会将环境变量初始化之后带入,
                在处理消息时,会根据规则自动替换进去。
                在实际使用过程中需要根据使用场景灵活配置。
		-->
		<env name="{{_OI}}" value="CN-0000001-ZG" />
		<env name="{{OI}}" value="{{SipInstitution}}" />
	</environment>
	<settings>
		<key name="xxx" value="xxx"/>
	</settings>
</charging>

(后面专门介绍这个配置文件的结构)
(上面示范代码的作用是,在原先消息的末尾添加部分内容,其中包括请求/响应的类型)

  1. 重新启动 dp2ssl。现在从 dp2ssl 发出的 SIP 消息,会自动先经过 charging.xml 文件中的 charging/messageIO/script 元素内的脚本代码处理,然后到达目标 SIP Server;目标 SIP Server 响应的代码,会自动先经过上述脚本代码处理,然后被 dp2ssl 相关功能模块进行处理。

  2. 如果需要对上述脚本代码的执行效果进行调试观察,先要确保 charging.xml 文件中的 charging/messageIO/@logging 属性值为 'on',这样 dp2ssl 运行过程中,所有发出和收到的 SIP 消息,都会记入 dp2ssl 数据目录下 log 子目录中的当天的错误日志文件中。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions