DISA on VitalPBX4

Hello,

I have an issue with DISA on VitalPBX 4, Calls from DISA will not have a caller ID

VitalPBX 3

same => n,Set(EXTENSION_EXTERNAL_CID=${DB(${TENANT}/extensions/${CALL_SOURCE}/external_cid)})
same => n,ExecIf(${DB_EXISTS(${TENANT}/extensions/${CALL_SOURCE}/external_cid)}?Set(CALLERID(all)=${EXTENSION_EXTERNAL_CID}))

VitalPBX 4

same => n,Set(EXTENSION_EXTERNAL_CID=${ODBC_EXTENSION-SETTING(external_cid,${CALL_SOURCE},${TENANT})})
same => n,Set(CALLERID(all)=${EXTENSION_EXTERNAL_CID})
same => n,GotoIf($["${LEN(${EXTENSION_EXTERNAL_CID})}"!="0"]?:check-emergency)
same => n,Set(TENANT_DEFAULT_EXTERNAL_CID=${DB(${TENANT}/default_external_cid)})
same => n,ExecIf($[$["${LEN(${EXTENSION_EXTERNAL_CID})}"="0"]&$["${LEN(${TENANT_DEFAULT_EXTERNAL_CID})}"!="0"]]?Set(CALLERID(all)=${TENANT_DEFAULT_EXTERNAL_CID}))

Looks like it’s overriding the caller ID to the default tenant caller ID if the EXTENSION_EXTERNAL_CID is empty

Thank You

Setting up an External CID in your extension should fix the issue.

What caller ID are you expecting to use?

Hello,

The idea of DISA is to call in from an external number and call out using the company CID

The caller ID that is set in DISA

Thank You

n,ExecIf($[$[“${LEN(${EXTENSION_EXTERNAL_CID})}”=“0”]&$[“${LEN(${TENANT_DEFAULT_EXTERNAL_CID})}”!=“0”]]?Set(CALLERID(all)=${TENANT_DEFAULT_EXTERNAL_CID}))

The validation says, if the extension External CID is empty and the Default Tenant External CID is not empty. So, I don’t think the highlighted code is related to your issue.

Could you share a full call log for further analysis?

This will set the CID to the the EXTENSION_EXTERNAL_CID and if it’s empty it will set the CID to empty

On VitalPBX 3 you only set the CID if the DB exists, and if not like DISA it will not be changed

This is a call log [2022-11-08 18:19:08] VERBOSE[194754][C-00000013] pbx.c: Executing [s@trk-1-in:1 - Pastebin.com