Asterisk 和 CEL,是否可以使用 odbc sql 添加“自定义”频道?

问题描述 投票:0回答:1

使用 CDR,很容易添加自定义变量。 在 extensions.conf

[global]
PHONEEXTNUMBER=0.....67

然后在上下文中...

[exit]
exten = s,1,NoOp()
same => n,Set(CDR(original_dst)=${PHONEEXTNUMBER})
same => n,Dial(PJSIP/phone1&DAHDI/17,30,tTkK)
same => n,Hangup()

然后我在 sql 上添加一个名为 original_dst 的列

alter table cdr add COLUMN original_dst varchar (80) AFTER dst;

我做了一个 sql 查询,我看到 original_dst 列填充了 var PHONEEXTNUMBER 的内容。

我想用 CEL 复制它。 使用

same => n,Set(CHANNEL(userfield)=${PHONEEXTNUMBER})

作品

如何添加名为 original_dst 的自定义频道/字段? 这个我试过了

same => n,Set(CHANNEL(original_dst)=${PHONEEXTNUMBER})

但是...

MariaDB [asterisk]> select exten,original_dst from cel limit 153 offset 211;
+-------+--------------+
| exten | original_dst |
+-------+--------------+
| 511   | NULL         |
| 511   | NULL         |
+-------+--------------+
2 rows in set (0,021 sec)

当然我已经重新加载了cel和dialplan

asterisk
1个回答
0
投票

是的,您可以添加自定义 CEL 事件。但是你不能添加列。您可以添加事件(新行)

CELGenUserEvent(event-name,[extra])

Extra可以是你想要的任何文字。

https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_CELGenUserEvent

之后,您可以解析 CEL 表并更新您想要更新的任何字段。

© www.soinside.com 2019 - 2024. All rights reserved.