freeswitch conf/sip_profiles/internal.xml 说明(上)

本文涉及的产品
.cn 域名,1个 12个月
简介: conf/sip_profiles/internal.xml说明internal.xml

conf/sip_profiles/internal.xml说明

internal.xml

internel.xml 定义了一个 profile,在本节,我们以系统默认的配置逐行来解释:

<profile name="internal">
复制代码


profile 的名字就叫 internal,这个名字本身并没有特殊的意义,也不需要与文件名相同,你可以改成任何你喜欢的名字,只是需要记住它,因为很多地方要使用这个名字。

<aliases>
    <!--   <alias name="default"/>  -->
  </aliases>
复制代码


如果你喜欢,可以为该 profile 起一个别名。注意默认是加了注释的,也就是说不起作用。再说一遍,“<!– –>”在 XML 中的含义是注释。

<gateways>
    <X-PRE-PROCESS cmd="include" data="internal/*.xml"/>
  </gateways>
复制代码


即然 profile 是一个 UA,它就可以注册到别的 SIP 服务器上去,它要注册的 SIP 服务器就称为 Gateway。我们一般不在 internal 这个 profile 上使用 Gateway,这个留到 external 时再讲。

<domains>
    <!--<domain name="$${domain}" parse="true"/>-->
    <domain name="all" alias="true" parse="false"/> 
  </domains>
复制代码


定义该 profile 所属的 domain。它可以是 IP 地址,或一个 DNS 域名。需要注意,直接在 hosts 文件中设置的 IP-域名可能不好用。

<settings>
复制代码


settings 部分设置 profile 的参数。

<!--<param name="media-option" value="resume-media-on-hold"/> -->
复制代码


如果 FreeSWITCH 是没有媒体(no media)的,那么如果设置了该参数,当你在话机上按下 hold 键时,FreeSWITCH 将会回到有媒体的状态。

那么什么叫有媒体无媒体呢?如下图,bob 和 alice 通过 FreeSWITCH 使用 SIP 接通了电话,他们谈话的语音(或视频)数据要通过 RTP 包传送的。RTP 可以 像 SIP 一样经过 FreeSWITCH 转发,但是,RTP 占用很大的带宽,如果 FreeSWITCH 不需要“偷听”他们谈话的话,为了节省带宽,完全可以让 RTP 直接在两者间传送,这种情况对 FreeSWITCH 来讲就是没有 media 的,在 FreeSWITCH 中也称 bypass media(绕过媒体)。

FreeSWITCH
          SIP /            \ SIP
            /                \
        bob  ------RTP------  alice
复制代码


.

<!--<param name="media-option" value="bypass-media-after-att-xfer"/>-->
复制代码


Attended Transfer 称为出席转移,它需要 media 才能完成工作。但如果在执行 att-xfer 之前没有媒体,该参数能让 att-xfer 执行时有 media,转移结束后再回到 bypass media 状态。

<!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
复制代码

不用解释,就是设置 SIP 消息中显示的 User-Agent 字段。

<param name="debug" value="0"/>
复制代码

debug 级别。

<!-- <param name="shutdown-on-fail" value="true"/> -->
复制代码


由于各种原因(如端口被占用,IP地址错误等),都可能造成 UA 在初始化时失败,该参数在失败时会停止 FreeSWITCH。

<param name="sip-trace" value="no"/>
复制代码


是否开启 SIP 消息跟踪。另外,也可以在控制台上用以下命令开启和关闭 sip-trace:

sofia profile internal siptrace on
sofia profile internal siptrace off
复制代码


.

<param name="log-auth-failures" value="true"/>
复制代码

是否将认证错误写入日志。

<param name="context" value="public"/>
复制代码

context 是 dialplan 中的环境。在此指定来话要落到 dialplan 的哪个 context 环境中。需要指出,如果用户注册到该 profile 上(或是经过认证的用户,即本地用户),则用户目录(directory)中设置的 contex 优先级要比这里高。

<param name="rfc2833-pt" value="101"/>
复制代码


设置 SDP 中 RFC2833 的值。RFC2833 是传递 DTMF 的标准。

<param name="sip-port" value="$${internal_sip_port}"/>
复制代码

监听的 SIP 端口号,变量 internal_sip_port 在 vars.xml 中定义,默认是 5060。

<param name="dialplan" value="XML"/>
复制代码

设置对应默认的 dialplan。我们后面会专门讲 dialplan。

<param name="dtmf-duration" value="2000"/>
复制代码

设置 DTMF 的时长。


<param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
复制代码

支持的来话语音编码,用于语音编码协商。global_codec_prefs 是在 vars.xml中定义的。

<param name="outbound-codec-prefs" value="$${global_codec_prefs}"/>
复制代码

支持的去话语音编码。

<param name="rtp-timer-name" value="soft"/>
复制代码

RTP 时钟名称

<param name="rtp-ip" value="$${local_ip_v4}"/>
复制代码


RTP 的 IP 地址,仅支持 IP 地址而不支持域名。虽然 RTP 标准说应该域名,但实际情况是域名解析有时不可靠。

<param name="sip-ip" value="$${local_ip_v4}"/>
复制代码

SIP 的 IP。不支持域名。

<param name="hold-music" value="$${hold_music}"/>
复制代码

UA 进行 hold 状态时默认播放的音乐。

<param name="apply-nat-acl" value="nat.auto"/>
复制代码

使用哪个 NAT ACL。


<!-- <param name="extended-info-parsing" value="true"/> -->
复制代码

扩展 INFO 解析支持。

<!--<param name="aggressive-nat-detection" value="true"/>-->
复制代码

NAT穿越,检测 SIP 消息中的 IP 地址与实际的 IP 地址是否相符,详见 NAT穿越。

<!--
    There are known issues (asserts and segfaults) when 100rel is enabled.
    It is not recommended to enable 100rel at this time.
    -->
    <!--<param name="enable-100rel" value="true"/>-->
复制代码


该功能暂时还不推荐使用。

<!--<param name="enable-compact-headers" value="true"/>-->
复制代码

支持压缩 SIP 头。

<!--<param name="enable-timer" value="false"/>-->
复制代码


开启、关闭 SIP 时钟。

<!--<param name="minimum-session-expires" value="120"/>-->
复制代码

SIP 会话超时值,在 SIP 消息中设置 Min-SE。

<param name="apply-inbound-acl" value="domains"/>
复制代码

对来话采用哪个 ACL。详见 ACL。

<param name="local-network-acl" value="localnet.auto"/>
复制代码

默认情况下,FreeSWITCH 会自动检测本地网络,并创建一条 localnet.auto ACL 规则。


<!--<param name="apply-register-acl" value="domains"/>-->
复制代码

对注册请求采用哪个 ACL。

<!--<param name="dtmf-type" value="info"/>-->
复制代码

DTMF 收号的类型。有三种方式,info、inband、rfc2833。

  • info 方式是采用 SIP 的 INFO 消息传送 DTMF 按键信息的,由于 SIP 和 RTP 是分开走的,所以,可能会造成不同步。
  • inband 是在 RTP 包中象普通语音数据那样进行带内传送,由于需要对所有包进行鉴别和提取,需要占用更多的资源。
  • rfc2833 也是在带内传送,但它的 RTP 包有特殊的标记,因而比 inband 方式节省资源。它是在 RFC2833 中定义的。
<!-- 'true' means every time 'first-only' means on the first register -->
  <!--<param name="send-message-query-on-register" value="true"/>-->
复制代码


如何发送请求消息。true 是每次都发送,而 first-only 只是首次注册时发送。

<!--<param name="caller-id-type" value="rpid|pid|none"/>-->
复制代码

设置来电显示的类型,rpid 将会在 SIP 消息中设置 Remote-Party-ID,而 pid 则会设置 P-*-Identity,如果不需要这些,可以设置成 none。

<param name="record-path" value="$${recordings_dir}"/>
复制代码

录音文件的默认存放路径。

<param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
复制代码

录音文件名模板。

<param name="manage-presence" value="true"/>
复制代码

是否支持列席。


<!--<param name="manage-shared-appearance" value="true"/>-->
复制代码

是否支持 SLA – Shared Line Apperance。

<!--<param name="dbname" value="share_presence"/>-->
    <!--<param name="presence-hosts" value="$${domain}"/>-->
复制代码

这两个参数用以在多个 profile 间共享列席信息。


<!-- This setting is for AAL2 bitpacking on G726 -->
    <!-- <param name="bitpacking" value="aal2"/> -->
    <!--<param name="max-proceeding" value="1000"/>-->
复制代码

最大的开放对话(SIP Dialog)数。

<!--session timers for all call to expire after the specified seconds -->
    <!--<param name="session-timeout" value="120"/>-->
复制代码

会话超时时间。

<!-- Can be 'true' or 'contact' -->
    <!--<param name="multiple-registrations" value="contact"/>-->
复制代码


是否支持多点注册,可以是 contact 或 true。开启多点注册后多个 UA 可以注册上来,有人呼叫这些 UA 时所有 UA 都会振铃。

<!--set to 'greedy' if you want your codec list to take precedence -->
    <param name="inbound-codec-negotiation" value="generous"/>
复制代码

SDP 中的语音编协商,如果设成 greedy,则自己提供的语音编码列表会有优先权.

<!-- if you want to send any special bind params of your own -->
    <!--<param name="bind-params" value="transport=udp"/>-->
    <!--<param name="unregister-on-options-fail" value="true"/>-->
复制代码

为了 NAT 穿越或 keep alive,如果 FreeSWITCH 向其它网关注册时,可以周期性地发一些 OPTIONS 包,相当于 ping 功能。该参数说明当 ping 失败时是否自动取消注册。


<param name="tls" value="$${internal_ssl_enable}"/>
复制代码


相关文章
|
3月前
|
SQL JSON 数据处理
实时计算 Flink版产品使用问题之把hdfs集群里的core-site.xml hdfs.xml两个文件放到flink/conf/目录下,启动集群说找不到hdfs,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
XML Linux 数据安全/隐私保护
freeswitch XML用户目录指南
概述Overview FreeSWITCH的目录下 $FS_ROOT/conf/directory/ 包含账户信息 (即XML文件) ,用于用户(即SIP电话分机)注册到freeswitch.
|
网络协议 搜索推荐 数据库连接
freeswitch conf/sip_profiles/internal.xml 说明(下)
conf/sip_profiles/internal.xml说明 internal.xml
|
XML Java 应用服务中间件
在 conf 下的 web.xml 文件内容介绍 | 学习笔记
快速学习在 conf 下的 web.xml 文件内容介绍。
134 0
|
SQL 分布式计算 Java
Caused by: org.xml.sax.SAXParseException; systemId: file:/home/hadoop/hive-0.12.0/conf/hive-site.xml; lineNumber: 5; columnNumber: 2; The markup in th
1:Hive安装的过程(Hive启动的时候报的错误),贴一下错误,和为什么错,以及解决方法: 1 [root@master bin]# ./hive 2 17/12/11 23:22:56 INFO Configuration.
2714 0
|
29天前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
3月前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
|
3月前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
|
13天前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
22 1