Hi Dicko and Greg,
Thank you very much for sharing detailed info! I downloaded CDR in .csv file, manipulated through pivot table to grasp some idea, but knowing exact concurrent use was a bit difficult from Excel environment. Though, I had a rough idea about the trunk usage, roughly 6 to 8 session during peak. (and this is happening rarely…)
Going forward, I thought it may be nice if I capture the number of trunk usage whenever it is used, I was looking at /etc/asterisk/extensions_additional.conf and I saw [ext-trunk] context as below,
... <snipped> ...
exten => tdial,1,Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK})
exten => tdial,n,GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax)
exten => tdial,n,GotoIf($[${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}}]?hangit)
exten => tdial,n(nomax),ExecIF($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(name-pres)=${CALLINGNAMEPRES_SV}))
exten => tdial,n,ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num-pres)=${CALLINGNUMPRES_SV}))
exten => tdial,n,Set(DIAL_NUMBER=${FROM_DID})
exten => tdial,n,GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1())
exten => tdial,n,Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER})
exten => tdial,n,Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_TRUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})})
exten => tdial,n,Dial(${TDIAL_STRING}/${OUTNUM}${TDIAL_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS})
exten => tdial,n,Set(CALLERID(number)=${CALLERID(number):0:40})
exten => tdial,n,Set(CALLERID(name)=${CALLERID(name):0:40})
exten => tdial,n(hangit),Hangup
;--== end of [ext-trunk] ==--;
I thought I may be able to capture concurrent SIP trunk usage by using asterisk Function_FILE, so I copied [ext-trunk] section in /etc/asterisk/extensions_override_freepbx.conf, I added one line, and restarted with fwconsole restart
, and made outside call (or call in from outside), but no change in file yet…
... <snipped> ...
exten => tdial,1,Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK})
;2018-09-14: The number of concurrent SIP Trunk usage is noted in /var/log/asterisk/active_sip_trunk.csv
exten => tdial,n,SET(FILE(/var/log/asterisk/active_sip_trunk.csv,,,al,u)=$[${GROUP_COUNT(OUTBOUND_GROUP)}])
exten => tdial,n,GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax)
exten => tdial,n,GotoIf($[${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}}]?hangit)
exten => tdial,n(nomax),ExecIF($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(name-pres)=${CALLINGNAMEPRES_SV}))
exten => tdial,n,ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num-pres)=${CALLINGNUMPRES_SV}))
exten => tdial,n,Set(DIAL_NUMBER=${FROM_DID})
exten => tdial,n,GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1())
exten => tdial,n,Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER})
exten => tdial,n,Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_TRUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})})
exten => tdial,n,Dial(${TDIAL_STRING}/${OUTNUM}${TDIAL_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS})
exten => tdial,n,Set(CALLERID(number)=${CALLERID(number):0:40})
exten => tdial,n,Set(CALLERID(name)=${CALLERID(name):0:40})
exten => tdial,n(hangit),Hangup
;--== end of [ext-trunk] ==--;
when I performed asterisk -rx "dialplan show ext-trunk"
, I see my update so it is loaded properly, but it is not logging the number of trunk.
I will play around a bit more. (I wonder how people debug dialplan in general, perhaps with Log function, but this will be stored in default file (/var/log/asterisk/full?) I prefer to store info in separate file possibly with timestamp. ;-))