使用 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
是的,您可以添加自定义 CEL 事件。但是你不能添加列。您可以添加事件(新行)
CELGenUserEvent(event-name,[extra])
Extra可以是你想要的任何文字。
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_CELGenUserEvent
之后,您可以解析 CEL 表并更新您想要更新的任何字段。