Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

revise #15

Merged
merged 3 commits into from
Jan 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,14 @@
## 1\. lcr.sh 是每天由 cron 调用的动作脚本,它将所有 Perl 脚本组合在一起

* cron entry

```xml
45 01 * * * freeswitch ( cd /opt/freeswitch/scripts/lcr && ./lcr.sh )
50 01 * * * freeswitch (cat /tmp/data.sql | /usr/bin/sqlite3 /opt/freeswitch/conf/databases/fslcr.db)
```

* lcr.sh

```xml
#!/bin/bash
pushd /opt/freeswitch/scripts/lcr
Expand Down Expand Up @@ -105,6 +108,8 @@ close FILE;
```

# pennytel 按澳元计价,所以需要转换成美元

```xml
$usdrate=0;
$audrate=0;
open (FILE, "rates.txt");
Expand Down Expand Up @@ -230,7 +235,6 @@ close FILE;

$tousd = $eurrate / $usdrate;
#print "EUR -> USD $tousd\n";
```

打开 (FILE, $ARGV[0]);
my @values;
Expand Down Expand Up @@ -280,6 +284,7 @@ while (<FILE>) {
# 英国 - 移动,44,7#,0.27
# 英国 - 其他,44,8# 9#,0.32
# 英国 - 个人,44,70#,0.50
```

```xml
#!/usr/bin/perl
Expand Down Expand Up @@ -312,6 +317,8 @@ close (FILE);
```

# 使用货币报告的最后一个值

```xml
foreach $num (0 .. $#header)
{
$rate = "$header[$num] $values[$num]\n";
Expand All @@ -321,8 +328,6 @@ foreach $num (0 .. $#header)
}
}
exit;


```

## 6. 将csv文件转换为可导入数据库的SQL格式([turncsvintosql.pl](http://turncsvintosql.pl))
Expand Down
2 changes: 1 addition & 1 deletion docs/FreeSWITCH-Explained/Modules/mod_httapi_3966423.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -326,4 +326,4 @@ none : 没有设置权限

### 接听电话

您可以使用&lt;application name="answer"/>来接听电话,但默认情况下,httapi脚本没有运行'answer'指令的权限,因此您需要在httapi.conf.xml中启用它。
您可以使用 `<application name="answer"/>` 来接听电话,但默认情况下,httapi脚本没有运行'answer'指令的权限,因此您需要在httapi.conf.xml中启用它。
175 changes: 94 additions & 81 deletions docs/FreeSWITCH-Explained/Modules/mod_rayo_3375450.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ make config-rayo
<!-- 如果为true(默认为false),则将通道变量添加到rayo客户端的offer中 -->
<param name="add-variables-to-offer" value="false"/>
</settings>

```

### 录音设置
Expand Down Expand Up @@ -112,6 +111,7 @@ make config-rayo

唯一的限制是,没有检测器可以检测与先前定义的检测器相同的事件/子类。

```xml
<cpa>
<!-- 将DTMF事件映射到CPA -->
<detector name="core_dtmf_event">
Expand All @@ -138,38 +138,41 @@ make config-rayo
</event>
</detector>
</cpa>
```

&lt;!-- 将 mod_spandsp 呼叫进度音调探测器映射到 Rayo CPA 信号事件。持续触发 DETECTED_TONE 事件,直到停止。 -->
&lt;detector name="mod_spandsp_tone">
&lt;start application="start_tone_detect" data="1"/>
&lt;stop application="stop_tone_detect" data=""/>
&lt;!-- 将音调事件映射到 Rayo CPA 信号类型 -->
&lt;event class="CUSTOM" subclass="DETECTED_TONE" type-header="Detected-Tone">
&lt;signal-type header-value="SIT" value="sit"/>
&lt;signal-type header-value="BUSY_TONE" value="busy"/>
&lt;signal-type header-value="REORDER_TONE" value="congestion"/>
&lt;signal-type header-value="RING_TONE" value="ring"/>
&lt;/event>
&lt;/detector>

&lt;!-- 将 mod_avmd 探测器映射到 Rayo CPA 响铃事件。只触发一次 avmd::beep 事件。 -->
&lt;detector name="mod_avmd">
&lt;start application="avmd" data=""/>
&lt;stop application="avmd" data="stop"/>
&lt;event class="CUSTOM" subclass="avmd::beep">
&lt;signal-type value="beep"/>
&lt;/event>
&lt;/detector>

&lt;!-- 使用 mod_vmd 的备用 beep 探测器。持续触发 vmd::beep 事件,直到停止。 -->
&lt;!--detector name="mod_vmd">
&lt;start application="vmd" data=""/>
&lt;stop application="vmd" data="stop"/>
&lt;event class="CUSTOM" subclass="vmd::beep">
&lt;signal-type value="beep"/>
&lt;/event>
&lt;/detector-->
&lt;cpa>
```xml
<!-- 将 mod_spandsp 呼叫进度音调探测器映射到 Rayo CPA 信号事件。持续触发 DETECTED_TONE 事件,直到停止。 -->
<detector name="mod_spandsp_tone">
<start application="start_tone_detect" data="1"/>
<stop application="stop_tone_detect" data=""/>
<!-- 将音调事件映射到 Rayo CPA 信号类型 -->
<event class="CUSTOM" subclass="DETECTED_TONE" type-header="Detected-Tone">
<signal-type header-value="SIT" value="sit"/>
<signal-type header-value="BUSY_TONE" value="busy"/>
<signal-type header-value="REORDER_TONE" value="congestion"/>
<signal-type header-value="RING_TONE" value="ring"/>
</event>
</detector>

<!-- 将 mod_avmd 探测器映射到 Rayo CPA 响铃事件。只触发一次 avmd::beep 事件。 -->
<detector name="mod_avmd">
<start application="avmd" data=""/>
<stop application="avmd" data="stop"/>
<event class="CUSTOM" subclass="avmd::beep">
<signal-type value="beep"/>
</event>
</detector>

<!-- 使用 mod_vmd 的备用 beep 探测器。持续触发 vmd::beep 事件,直到停止。 -->
<!--detector name="mod_vmd">
<start application="vmd" data=""/>
<stop application="vmd" data="stop"/>
<event class="CUSTOM" subclass="vmd::beep">
<signal-type value="beep"/>
</event>
</detector-->
<cpa>
```

#### XMPP 设置

Expand All @@ -178,53 +181,59 @@ mod_rayo 是一个 XMPP 服务器。mod_rayo 目前只支持服务于一个 XMPP
不安全的 XMPP 客户端连接示例(仅在私有网络中使用!!!)

```xml
&lt;!--为rayo.example.com设置服务器。接受来自[email protected]的客户端连接到10.50.0.10。-->
&lt;domain name="rayo.example.com" shared-secret="ClueCon">
&lt;listen type="c2s" port="5222" address="10.50.0.10" acl=""/>
&lt;!--授权用户-->
&lt;users>
&lt;user name="usera" password="1"/>
&lt;/users>
&lt;/domain>
<!--为rayo.example.com设置服务器。接受来自[email protected]的客户端连接到10.50.0.10。-->
<domain name="rayo.example.com" shared-secret="ClueCon">
<listen type="c2s" port="5222" address="10.50.0.10" acl=""/>
<!--授权用户-->
<users>
<user name="usera" password="1"/>
</users>
</domain>
```

安全的XMPP客户端连接示例。当连接到mod_rayo时,此示例要求使用TLS。您需要生成证书和私钥,并将它们存储在certs目录中。

&lt;!--为rayo.example.com设置服务器。接受来自[email protected]的安全客户端连接到10.50.0.10。-->
&lt;domain name="rayo.example.com" shared-secret="ClueCon" cert="$${base_dir}/certs/rayo.example.com.crt"
```xml
<!--为rayo.example.com设置服务器。接受来自[email protected]的安全客户端连接到10.50.0.10。-->
<domain name="rayo.example.com" shared-secret="ClueCon" cert="$${base_dir}/certs/rayo.example.com.crt"
key="$${base_dir}/certs/rayo.example.com.key">
&lt;listen type="c2s" port="5222" address="10.50.0.10" acl=""/>
&lt;!--授权用户-->
&lt;users>
&lt;user name="usera" password="1"/>
&lt;/users>
&lt;/domain>
<listen type="c2s" port="5222" address="10.50.0.10" acl=""/>
<!--授权用户-->
<users>
<user name="usera" password="1"/>
</users>
</domain>
```

acl参数也可用于增加额外的安全层级。启用后,仅接受来自已批准网络的XMPP客户端。在conf/autoload_configs/acl.conf.xml中创建一个名为"rayo-clients"的acl,并设置acl参数:

&lt;listen type="c2s" port="5222" address="10.50.0.10" acl="rayo-clients"/>
```xml
<listen type="c2s" port="5222" address="10.50.0.10" acl="rayo-clients"/>
```

#### 拨号网关

拨号网关通过将URI前缀映射到FreeSWITCH拨号字符串前缀来定义呼叫终端路由。这使得Rayo可以将通过电话号码寻址的呼叫路由到FreeTDM端点的PSTN,而将通过SIP URI寻址的呼叫路由到mod_sofia网关。

"default"是一个保留的拨号前缀,当所有其他匹配失败时匹配。
```

&lt;dial-gateways>
&lt;!-- 默认网关 - 如果找不到拨号前缀匹配,则将呼叫发送到出站网关 -->
&lt;dial-gateway uriprefix="default" dialprefix="sofia/gateway/outbound/" strip="0"/>
```xml
<dial-gateways>
<!-- 默认网关 - 如果找不到拨号前缀匹配,则将呼叫发送到出站网关 -->
<dial-gateway uriprefix="default" dialprefix="sofia/gateway/outbound/" strip="0"/>

&lt;!-- 将SIP URI发送给mod_sofia -->
&lt;dial-gateway uriprefix="sip:" dialprefix="sofia/external/" strip="0"/>
<!-- 将SIP URI发送给mod_sofia -->
<dial-gateway uriprefix="sip:" dialprefix="sofia/external/" strip="0"/>

&lt;!-- 在删除tel:之后,将tel:+ 16171234567发送给mod_sofia -->
&lt;dial-gateway uriprefix="tel:" dialprefix="sofia/gateway/outbound/" strip="4"/>
<!-- 在删除tel:之后,将tel:+ 16171234567发送给mod_sofia -->
<dial-gateway uriprefix="tel:" dialprefix="sofia/gateway/outbound/" strip="4"/>

&lt;!-- 一些允许Rayo客户端指定FreeSWITCH拨号字符串的示例 -->
&lt;!-- 将用户和sofia原样传递 -->
&lt;dial-gateway uriprefix="user" dialprefix="" strip=""/>
&lt;dial-gateway uriprefix="sofia" dialprefix="" strip=""/>
&lt;/dial-gateways>
<!-- 一些允许Rayo客户端指定FreeSWITCH拨号字符串的示例 -->
<!-- 将用户和sofia原样传递 -->
<dial-gateway uriprefix="user" dialprefix="" strip=""/>
<dial-gateway uriprefix="sofia" dialprefix="" strip=""/>
</dial-gateways>
```

#### 别名

Expand All @@ -245,27 +254,30 @@ acl参数也可用于增加额外的安全层级。启用后,仅接受来自
* record(记录组件)

```xml
&lt;别名>
&lt;!-- 接听 Rayo 客户端的来电 -->
&lt;别名名称="接听" 目标="呼叫">&lt;![CDATA[&lt;answer xmlns="urn:xmpp:rayo:1"/>]]>&lt;/别名>
&lt;!-- 停止一个活动组件 -->
&lt;别名名称="停止" 目标="组件">&lt;![CDATA[&lt;stop xmlns="urn:xmpp:rayo:ext:1"/>]]>&lt;/别名>
&lt;!-- 暂停输出 -->
&lt;别名名称="暂停" 目标="输出">&lt;![CDATA[&lt;pause xmlns="urn:xmpp:rayo:output:1"/>]]>&lt;/别名>
&lt;!-- 恢复录音 -->
&lt;别名名称="恢复录音" 目标="录音">&lt;![CDATA[&lt;resume xmlns="urn:xmpp:rayo:record:1"/>]]>&lt;/别名>
&lt;/别名>
<别名>
<!-- 接听 Rayo 客户端的来电 -->
<别名名称="接听" 目标="呼叫"><![CDATA[<answer xmlns="urn:xmpp:rayo:1"/>]]></别名>
<!-- 停止一个活动组件 -->
<别名名称="停止" 目标="组件"><![CDATA[<stop xmlns="urn:xmpp:rayo:ext:1"/>]]></别名>
<!-- 暂停输出 -->
<别名名称="暂停" 目标="输出"><![CDATA[<pause xmlns="urn:xmpp:rayo:output:1"/>]]></别名>
<!-- 恢复录音 -->
<别名名称="恢复录音" 目标="录音"><![CDATA[<resume xmlns="urn:xmpp:rayo:record:1"/>]]></别名>
</别名>
```

### rayo 应用程序

向 Rayo 客户端提供来电。这类似于 [Outbound Event Socket](../Client-and-Developer-Interfaces/Event-Socket-Library/Event-Socket-Outbound_3375460.mdx#faq) "socket" 应用程序。如果在呼叫被提供时,没有 Rayo 客户端连接到 FreeSWITCH,那么呼叫将被拒绝。

&lt;扩展名称="rayo">
&lt;条件>
&lt;!-- 向 Rayo 客户端提供呼叫 -->
&lt;操作应用程序="rayo"/>
&lt;/条件>
&lt;/扩展>
```xml
<扩展名称="rayo">
<条件>
<!-- 向 Rayo 客户端提供呼叫 -->
<操作应用程序="rayo"/>
</条件>
</扩展>
```

### rayo API

Expand All @@ -291,18 +303,19 @@ Rayo 管理控制台

IQ 请求会自动填充正确的发送方和接收方 JID(Jabber ID)。

rayo cmd 10.50.0.10 &lt;iq type="get">&lt;ping xmlns="urn:xmpp:ping"/>&lt;/iq>
```xml
rayo cmd 10.50.0.10 <iq type="get"><ping xmlns="urn:xmpp:ping"/></iq>
```

#### rayo 状态 &lt;jid> online|offline

将管理控制台的&lt;presence>发送到mod\_rayo服务器。
将管理控制台的`<presence>`发送到mod\_rayo服务器。

默认情况下,管理控制台处于离线状态,并且不会接受呼叫。如果您想通过控制台测试呼叫,必须向mod\_rayo服务器发送在线状态。

rayo presence 10.50.0.10 online

现在呼叫将被发送到控制台客户端。"rayo answer &lt;jid>"将接管呼叫。
现在呼叫将被发送到控制台客户端。`rayo answer <jid>`将接管呼叫。

#### rayo 消息 &lt;jid> &lt;文本消息>

Expand Down
38 changes: 27 additions & 11 deletions docs/FreeSWITCH-Explained/Modules/mod_rtmp_5046427.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,38 +37,52 @@ freeswitch> rtmp status

查看配置文件的状态:

freeswitch> rtmp status profile &lt;profile>
```xml
freeswitch> rtmp status profile <profile>
```

查看配置文件上的会话:

freeswitch> rtmp status profile &lt;profile> sessions
```xml
freeswitch> rtmp status profile <profile> sessions
```

查看配置文件上的注册信息:

freeswitch> rtmp status profile &lt;profile> reg
```
freeswitch> rtmp status profile <profile> reg
```

### 配置文件

启动、停止或重新启动配置文件:

freeswitch> rtmp profile &lt;profile> start
freeswitch> rtmp profile &lt;profile> stop
freeswitch> rtmp profile &lt;profile> restart
```xml
freeswitch> rtmp profile <profile> start
freeswitch> rtmp profile <profile> stop
freeswitch> rtmp profile <profile> restart
```

重新扫描配置文件:

freeswitch> rtmp profile &lt;profile> rescan
```xml
freeswitch> rtmp profile <profile> rescan
```

### 会话

关闭会话:

freeswitch&gt; rtmp session &lt;session&gt; kill
```xml
freeswitch> rtmp session <session> kill
```

登录或注销会话:

freeswitch&gt; rtmp session &lt;session&gt; login
freeswitch&gt; rtmp session &lt;session&gt; logout
```xml
freeswitch> rtmp session <session> login
freeswitch> rtmp session <session> logout
```

### 联系人

Expand All @@ -78,7 +92,9 @@ rtmp_contact profile/user@domain[/[!]nickname]

可以使用此来桥接呼叫至用户:

&lt;action application="bridge" data="${rtmp_contact($${rtmp_profile}/${dialed_ext}@$${domain})}"/>
```xml
<action application="bridge" data="${rtmp_contact($${rtmp_profile}/${dialed_ext}@$${domain})}"/>
```

## 延迟

Expand Down
Loading