; *** START ringall method ; TODO: Need to check for the length of a DIALSTRING to be less than 256 chars: ; If ${COUNT(ADDING_PEER)} + ${COUNT(CURRENT_DIALSTRING)} > 255, then don't add new user exten => ringall,1,NoOp() exten => ringall,n,Verbose(1|HUNTGROUP: ringall strategy) exten => ringall,n,Set(TOTAL_MEMBERS=${HUNT_MEMBERS_COUNT(${Q_ID})}) exten => ringall,n,Exec(${IF($[0${TOTAL_MEMBERS} < 1]?GoSub(error_handler,302,1()):Verbose(1|HUNTGROUP: We have ${TOTAL_MEMBERS} members))}) exten => ringall,n,Set(X=0) exten => ringall,n,While($[${X} < ${TOTAL_MEMBERS}]) exten => ringall,n,Set(ARRAY(RA_TECH,RA_MEMBER_ID,RA_RRM_MARK)=${HUNT_MEMBERS(${Q_ID},${X})}) ; get tech and ast_user.d ; If tech is GRP, we need to build a string with all the members of the group exten => ringall,n,GotoIf($[${RA_TECH} != GRP]?skip_grp_build) exten => ringall,n,Set(TOTAL_GROUP_MEMBERS=${HUNT_GROUP_MEMBERS_COUNT(${RA_MEMBER_ID})}) exten => ringall,n,GotoIf($[0${TOTAL_GROUP_MEMBERS} < 1]?next) exten => ringall,n,Set(Y=0) exten => ringall,n,While($[${Y} < ${TOTAL_GROUP_MEMBERS}]) exten => ringall,n,Set(ARRAY(RA_GRP_TECH,RA_GRP_MEMBER_ID)=${HUNT_GROUP_MEMBERS(${RA_MEMBER_ID},${Y})}) exten => ringall,n,Set(ARRAY(RA_GRP_PBX_EXTEN,RA_GRP_USERNAME,RA_GRP_PBX)=${ROUTE_DEVICE(${RA_GRP_MEMBER_ID})}) exten => ringall,n,Set(DIALSTRING=${IF($[${ISNULL(${DIALSTRING})}]?${RA_GRP_TECH}/${RA_GRP_USERNAME}#${RA_GRP_PBX}:${RA_GRP_TECH}/${RA_GRP_USERNAME}#${RA_GRP_PBX}&${DIALSTRING})}) exten => ringall,n,Set(Y=$[${Y} + 1]) exten => ringall,n,EndWhile() exten => ringall,n,Goto(next) ; Standard DIALSTRING build exten => ringall,n(skip_grp_build),NoOp() exten => ringall,n,Set(ARRAY(RA_PBX_EXTEN,RA_USERNAME,RA_PBX)=${ROUTE_DEVICE(${RA_MEMBER_ID})}) ; get ast_user.user_name and ast_pbx.name exten => ringall,n,Set(DIALSTRING=${IF($[${ISNULL(${DIALSTRING})}]?${RA_TECH}/${RA_USERNAME}#${RA_PBX}:${RA_TECH}/${RA_USERNAME}#${RA_PBX}&${DIALSTRING})}) exten => ringall,n(next),Set(X=$[${X} + 1]) exten => ringall,n,EndWhile() ; *** END ringall method exten => ringall,n,Verbose(1|HUNTGROUP: ringall strategy now calling: ${DIALSTRING}) exten => ringall,n,Dial(${DIALSTRING},${TIMEOUT}) exten => ringall,n,Goto(no_answer,1)