Open gudge25 opened 1 month ago
`[func-apply-sipheaders] include => func-apply-sipheaders-custom exten => s,1,Noop(Applying SIP Headers to channel ${CHANNEL}) exten => s,n,Set(TECH=${CUT(CHANNEL,/,1)}) exten => s,n,Set(SIPHEADERKEYS=${HASHKEYS(SIPHEADERS)}) exten => s,n,While($["${SET(sipkey=${SHIFT(SIPHEADERKEYS)})}" != ""]) exten => s,n,Set(sipheader=${HASH(SIPHEADERS,${sipkey})}) exten => s,n,ExecIf($["${sipheader}" = "unset" & "${TECH}" = "SIP"]?SIPRemoveHeader(${sipkey}:)) exten => s,n,ExecIf($["${sipheader}" = "unset" & "${TECH}" = "PJSIP"]?Set(PJSIP_HEADER(remove,${sipkey})=)) exten => s,n,ExecIf($["${sipheader}" != "unset" & "${sipkey}" = "Alert-Info" & ${REGEX("^<[^>]>" ${sipheader})} != 1 & ${REGEX("\;info=" ${sipheader})} != 1]?Set(sipheader=http://127.0.0.1\;info=${sipheader})) exten => s,n,ExecIf($["${sipheader}" != "unset" & "${sipkey}" = "Alert-Info" & ${REGEX("^<[^>]>" ${sipheader})} != 1]?Set(sipheader=http://127.0.0.1${sipheader})) exten => s,n,ExecIf($["${TECH}" = "SIP" & "${sipheader}" != "unset"]?SIPAddHeader(${sipkey}:${sipheader})) exten => s,n,ExecIf($["${TECH}" = "PJSIP" & "${sipheader}" != "unset"]?Set(PJSIP_HEADER(add,${sipkey})=${sipheader})) exten => s,n,EndWhile exten => s,n,Set(PJSIP_HEADER(add,X-Custom)=${CALLIDVAR}) exten => s,n,NoOp(CDR userfield before setting: ${CDR(userfield)}) exten => s,n,Set(CDR(userfield)=${CALLIDVAR}) exten => s,n,NoOp(CDR userfield after setting: ${CDR(userfield)}) exten => s,n,Return()
;--== end of [func-apply-sipheaders] ==--;
[ext-queues] exten => h,1,NoOp(==End Call==) same => n,NoOp(CDR userfield:${CDR(userfield)}) same => n,Macro(hangupcall,)
[from-queue-exten-only] exten => h,1,NoOp(==End Call==) same => n,NoOp(CDR userfield:${CDR(userfield)}) same => n,Macro(hangupcall,) `
also reproducible on Asterisk 18.20.2 (i done a switch using asterisk-version-switch)
FreePBX Version
FreePBX 16
Issue Description
Im adding PJSIP Header and setting CDR(userfield) same as PJSIP Header but for some reason ; is added to cdr userfield
Operating Environment
Asterisk 20.5.2 No repos specified, using: [standard] from last GUI settings
+---------------------+------------+-----------------------------------+-------------+ | Module | Version | Status | License | +---------------------+------------+-----------------------------------+-------------+ | accountcodepreserve | 16.0.0.1 | Enabled | GPLv2 | | allowlist | | Not Installed (Locally available) | GPLv3+ | | announcement | 16.0.7 | Enabled | GPLv3+ | | api | 16.0.13 | Enabled | AGPLv3+ | | arimanager | 16.0.13 | Enabled | GPLv3+ | | asteriskinfo | 16.0.10 | Enabled | GPLv3+ | | asternic_cdr | 1.6.4 | Enabled | | | backup | 16.0.70 | Enabled | GPLv3+ | | blacklist | 16.0.21 | Enabled | GPLv3+ | | builtin | | Enabled | | | bulkhandler | 16.0.16 | Enabled | GPLv3+ | | calendar | 16.0.21 | Enabled | GPLv3+ | | callback | | Not Installed (Locally available) | GPLv3+ | | callforward | 16.0.6 | Enabled | AGPLv3+ | | callrecording | 16.0.21 | Enabled | AGPLv3+ | | callwaiting | 16.0.5 | Enabled | GPLv3+ | | cdr | 16.0.46.10 | Enabled | GPLv3+ | | cdrpro | | Not Installed (Locally available) | Commercial | | cel | 16.0.20 | Enabled | GPLv3+ | | certman | 16.0.22 | Enabled | AGPLv3+ | | cidlookup | 16.0.16 | Enabled | GPLv3+ | | cloudmigration | | Not Installed (Locally available) | Commercial | | conferences | 16.0.9 | Enabled | GPLv3+ | | contactmanager | 16.0.26.1 | Enabled | GPLv3+ | | core | 16.0.68.20 | Enabled | GPLv3+ | | customappsreg | 16.0.5 | Enabled | GPLv3+ | | customcontexts | 13.0.3.2 | Enabled | GPLv2+ | | dashboard | 16.0.21 | Enabled | AGPLv3+ | | daynight | 16.0.3 | Enabled | GPLv3+ | | dictate | 16.0.1 | Enabled | GPLv3+ | | directory | 16.0.3 | Enabled | GPLv3+ | | disa | 16.0.4 | Enabled | AGPLv3+ | | donotdisturb | 16.0.3 | Enabled | GPLv3+ | | dynroute | 16.0.4 | Enabled | GPLv3+ | | extensionsettings | 16.0.5 | Enabled | GPLv3+ | | fax | 16.0.13 | Enabled | GPLv3+ | | featurecodeadmin | 16.0.11 | Enabled | GPLv3+ | | filestore | 16.0.18 | Enabled | AGPLv3 | | findmefollow | 16.0.23 | Enabled | GPLv3+ | | firewall | 16.0.57.6 | Enabled | AGPLv3+ | | framework | 16.0.40.8 | Enabled | GPLv2+ | | fw_langpacks | 16.0.1 | Enabled | GPLv3+ | | iaxsettings | | Not Installed (Locally available) | AGPLv3 | | infoservices | 16.0.2 | Enabled | GPLv2+ | | irc | | Not Installed (Locally available) | GPLv3+ | | ivr | 16.0.9 | Enabled | GPLv3+ | | languages | 16.0.4 | Enabled | GPLv3+ | | logfiles | 16.0.7 | Enabled | GPLv3+ | | manager | 16.0.23 | Enabled | GPLv2+ | | miscapps | 16.0.2 | Enabled | GPLv3+ | | miscdests | 16.0.2 | Enabled | GPLv3+ | | missedcall | | Not Installed (Locally available) | GPLv3+ | | music | 16.0.2 | Enabled | GPLv3+ | | outcnam | | Not Installed (Locally available) | GPLv3+ | | outroutemsg | 16.0.1 | Enabled | GPLv3+ | | paging | 16.0.13 | Enabled | GPLv3+ | | parking | 16.0.4 | Enabled | GPLv3+ | | pbxmfa | | Not Installed (Locally available) | Commercial+ | | phonebook | 16.0.3 | Enabled | GPLv3+ | | pinsets | 16.0.8 | Enabled | GPLv3+ | | pm2 | 16.0.8 | Enabled | AGPLv3+ | | presencestate | 16.0.4 | Enabled | GPLv3+ | | printextensions | 16.0.8 | Enabled | GPLv3+ | | queueprio | 16.0.3 | Enabled | GPLv3+ | | queues | 16.0.27 | Enabled | GPLv2+ | | recordings | 16.0.16 | Enabled | GPLv3+ | | ringgroups | 16.0.11 | Enabled | GPLv3+ | | setcid | 16.0.3 | Enabled | GPLv3+ | | sipsettings | 16.0.27 | Enabled | AGPLv3+ | | smsplus | | Not Installed (Locally available) | Commercial | | soundlang | 16.0.9 | Enabled | GPLv3+ | | superfecta | 16.0.35 | Enabled | GPLv2+ | | synologyabb | | Not Installed (Locally available) | GPLv3+ | | sysadmin | 16.0.41.24 | Enabled | Commercial | | timeconditions | 16.0.11 | Enabled | GPLv3+ | | tts | 16.0.3 | Enabled | GPLv3+ | | ttsengines | 16.0.3 | Enabled | AGPLv3 | | ucp | 16.0.38.2 | Enabled | AGPLv3+ | | userman | 16.0.44.12 | Enabled | AGPLv3+ | | vmblast | 16.0.11 | Enabled | GPLv3+ | | voicemail | 16.0.55 | Enabled | GPLv3+ | | weakpasswords | 16.0.1 | Enabled | GPLv3+ | +---------------------+------------+-----------------------------------+-------------+
Relevant log output