[arm-allstar] load balancing

Patrick Perdue borrisinabox at gmail.com
Mon Feb 6 10:21:13 EST 2023


Hi:

We are attempting to debug a setup that (mostly) follows the howto at 
HamVoIP for load balancing for a single public node, which also has a 
repeater directly attached to it. Not my setup, but if it were, I'd have 
the connections and repeater on separate Pi's. Anyway, the node is 
running on a Pi 4, and audio gets very choppy when the connection count 
reaches about 85 or so during a popular net, so we want to try load 
balancing to hopefully clean that up.

Seems there are some errors in the examples in that document, a few 
cases of missing closing brackets and the like.

https://www.hamvoip.org/howto/limiting_connections_and_balancing.pdf

Once corrected, we now see this in the log.


    -- Executing [51018 at blacklist:1] 
NoOp("IAX2/123.123.123.123:4569-131", "57512") in new stack
     -- Executing [51018 at blacklist:2] 
GotoIf("IAX2/123.123.123.123:4569-131", "0?blocked") in new stack
     -- Executing [51018 at blacklist:3] 
Goto("IAX2/123.123.123.123:4569-131", "radio-secure|51018|1") in new stack
     -- Goto (radio-secure,51018,1)
     -- Executing [51018 at radio-secure:1] 
NoOp("IAX2/123.123.123.123:4569-131", "Date: 02/05/2023") in new stack
     -- Executing [51018 at radio-secure:2] 
NoOp("IAX2/123.123.123.123:4569-131", "Incoming node: 57512") in new stack
     -- Executing [51018 at radio-secure:3] 
Set("IAX2/123.123.123.123:4569-131", "i0=") in new stack
     -- Executing [51018 at radio-secure:4] 
Set("IAX2/123.123.123.123:4569-131", "i1=") in new stack
     -- Executing [51018 at radio-secure:5] 
Set("IAX2/123.123.123.123:4569-131", "i2=") in new stack
     -- Executing [51018 at radio-secure:6] 
Set("IAX2/123.123.123.123:4569-131", "i3=") in new stack
[Feb  5 14:57:57] WARNING[6577]: ast_expr2.fl:407 ast_yyerror: 
ast_yyerror():  syntax error: syntax error, unexpected '+', expecting 
$end; Input:
  +  +  +
  ^
[Feb  5 14:57:57] WARNING[6577]: ast_expr2.fl:411 ast_yyerror: If you 
have questions, please refer to doc/channelvariables.txt in the asterisk 
source.
     -- Executing [51018 at radio-secure:7] 
Set("IAX2/123.123.123.123:4569-131", "Total=") in new stack
[Feb  5 14:57:57] WARNING[6577]: ast_expr2.fl:407 ast_yyerror: 
ast_yyerror():  syntax error: syntax error, unexpected '<', expecting 
$end; Input:
  < 204
  ^
[Feb  5 14:57:57] WARNING[6577]: ast_expr2.fl:411 ast_yyerror: If you 
have questions, please refer to doc/channelvariables.txt in the asterisk 
source.
     -- Executing [51018 at radio-secure:8] 
GotoIf("IAX2/123.123.123.123:4569-131", "?51018|100:51018|30") in new stack
     -- Goto (radio-secure,51018,30)
     -- Executing [51018 at radio-secure:30] 
NoOp("IAX2/123.123.123.123:4569-131", "Too many connections to node 
51018!") in new stack
[Feb  5 14:57:57] WARNING[6577]: pbx.c:1832 pbx_extension_helper: No 
application '168505|X' for extension (radio-secure, 51018, 31)
   == Spawn extension (radio-secure, 51018, 31) exited non-zero on 
'IAX2/123.123.123.123:4569-131'
     -- Hungup 'IAX2/123.123.123.123:4569-131'

I think possibly what is happening is that a variable is null, and it 
breaks when it tried to add null to null. Could be wrong though.

Here is the relevant part of the dialplan.


[radio-secure]

exten => 51018,1,NoOp(Date: ${STRFTIME(${EPOCH},,%m/%d/%Y)})
exten => 51018,n,NoOp(Incoming node: ${CALLERID(number)})
exten => 51018,n,Set(i0=${GLOBAL(LINKS1)})
exten => 51018,n,Set(i1=${GLOBAL(LINKS2)})
exten => 51018,n,Set(i2=${GLOBAL(LINKS3)})
exten => 51018,n,Set(i3=${GLOBAL(LINKS4)})

;;; Calculate total connections.
exten => 51018,n,Set(Total=$[${i0} + ${i1} + ${i2} + ${i3}])
;;; Compare total to 204 (200 plus 4 local virtual nodes)
exten => 51018,n,GotoIf($[${total} < 204]?51018,100:51018,30)

exten => 51018,30,NoOp(Too many connections to node 51018!)
exten => 51018,n,168505|X
Nodes 168500 through 168505 are defined in a custom file, which is 
referenced in rpt.conf with the relevant events as documented in the PDF.


So... what is breaking things here?

Thanks and 73

N2DYI




More information about the ARM-allstar mailing list