Asterisk PJSIP向队列添加自定义头

Asterisk PJSIP向队列添加自定义头,asterisk,pjsip,Asterisk,Pjsip,我试图将自定义信息添加到INVITE数据包中,该数据包将由前端通过WebRTC接收。在星号上,此数据在拨号前生成并放置在EXTEN var中 传输此数据最简单的方法是在拨号前向频道添加自定义标头 按常规拨号,我需要 same => n,Set(PJSIP_HEADER(add,X-Custom-Header)=${EXTEN}) PJSIP_头需要通道进行工作,但在队列中我并没有通道 现在扩展像 [testing-in] exten => _XXX.,1,Noop(queu

我试图将自定义信息添加到INVITE数据包中,该数据包将由前端通过WebRTC接收。在星号上,此数据在拨号前生成并放置在EXTEN var中

传输此数据最简单的方法是在拨号前向频道添加自定义标头

按常规拨号,我需要

same => n,Set(PJSIP_HEADER(add,X-Custom-Header)=${EXTEN})
PJSIP_头需要通道进行工作,但在队列中我并没有通道

现在扩展像

[testing-in]
    exten => _XXX.,1,Noop(queue test call)
    same => n,Answer
    same => n,Ringing
    same => n,Wait(2)
    ;Need to add custom header here
    same => n,Queue(testing-operators)
    same => n,Hangup

队列中的所有操作员在振铃时都需要接收此自定义报头,这可不容易。您可以使用两个下划线将变量放入队列中:

;Need to add custom header here
same => n,Set(__ADD_NEW_HEADER=1)
same => n,Queue(testing-operators)

之后,您可以通过本地/频道添加代理(请参见FreePBX中的情况),并为每次呼叫添加头(在FreePBX中,它将来自队列上下文)

这并不容易。您可以使用两个下划线将变量放入队列中:

;Need to add custom header here
same => n,Set(__ADD_NEW_HEADER=1)
same => n,Queue(testing-operators)

之后,您可以通过本地/频道添加代理(请参见FreePBX中的情况),并为每个呼叫添加头(在FreePBX中,它将来自队列上下文)

现在,我将一些有用的信息插入到呼叫方名称中

[test-in]
exten => _XXX.,1,GoSub(recording,s,1,(${CALLERID(num)},${EXTEN}))
same => n,Noop(test-in call)
same => n,Answer
same => n,Set(CALLERID(name)=${EXTEN})
same => n,Queue(test-operators,Tt,,120)
same => n,Hangup
并在前端应用程序上解析它
这对我很有用

现在我在呼叫者姓名中注入了一些有用的信息

[test-in]
exten => _XXX.,1,GoSub(recording,s,1,(${CALLERID(num)},${EXTEN}))
same => n,Noop(test-in call)
same => n,Answer
same => n,Set(CALLERID(name)=${EXTEN})
same => n,Queue(test-operators,Tt,,120)
same => n,Hangup
并在前端应用程序上解析它
这对我来说很有效

我必须为队列添加新的上下文,并为每个操作符添加带有两个下划线的var?这在很大程度上取决于您当前的拨号计划。您已在拨号计划中为每个出站拨号插入一个PJSIP_头。我必须为队列添加新上下文,并以某种方式为每个运算符添加带两个下划线的var?这在很大程度上取决于您当前的拨号计划。您必须为每个出站拨入拨号计划插入一个PJSIP_头。