Asterisk 星号:日志记录将CALLERID(num)更改为CDR

Asterisk 星号:日志记录将CALLERID(num)更改为CDR,asterisk,cdr,Asterisk,Cdr,星号通过cdr将呼叫信息记录到数据库中 如果呼叫通过sip中继进入,则远程公用电话号码通常提供p-Asserted-Identity。这些信息通常在CDR计费数据库中丢失 [incoming] exten => s,1,Set(CALLERID(num)=${SIP_HEADER(P-Asserted-Identity)}) same => n,Dial(SIP/me) 这会将p-Asserted-Identity设置为下一次拨号的主叫号码,但在挂断时未登录到CDR。如果CALL

星号通过cdr将呼叫信息记录到数据库中

如果呼叫通过sip中继进入,则远程公用电话号码通常提供p-Asserted-Identity。这些信息通常在CDR计费数据库中丢失

[incoming]
exten => s,1,Set(CALLERID(num)=${SIP_HEADER(P-Asserted-Identity)})
 same => n,Dial(SIP/me)

这会将p-Asserted-Identity设置为下一次拨号的主叫号码,但在挂断时未登录到CDR。如果CALLERID(ani)未取消设置,CDR将使用CALLERID(ani)的当前值而不是CDR(src)的原始CALLERID(num)作为src记录原始CALLERID(num)

[incoming]
exten => s,1,Verbose(Incoming call on line 123)
; try to extract phone number from sip header P-Asserted-Identity
same => n,Set(FON=$["${SIP_HEADER(P-Asserted-Identity)}" : "<sip:([0-9+]+)"])
; This changes clid number wthout affecting cdr's (Just for Dial...)
same => n,ExecIf($[${ISNULL(${FON})}=0]?Set(CALLERID(num)=${FON})) 
; prevent beeing hacked by inject
same => n,Set(CALLERID(num)=${FILTER(+0123456789,${CALLERID(num)})})
; This tells cdr to use the new num for "automatic identified (billing) number" as src-field
same => n,Set(CALLERID(ani)=${CALLERID(num)})
same => n,Dial(SIP/me)
[传入]
扩展=>s,1,详细(第123行的传入呼叫)
; 尝试从sip头P-Asserted-Identity提取电话号码
same=>n,Set(FON=$[“${SIP_头(P-Asserted-Identity)}”: