Is there a better way (less redundant) to write this?
Assuming that instead of just 3 extensions like I have shown, there are actually a lot more:
[macro-dialout-trunk-predial-hook]
exten => s,1,Noop(Entering user defined context macro-dialout-trunk-predial-hook in extensions_custom.conf)
exten => s,n,ExecIF($["${OUT_${DIAL_TRUNK}_SUFFIX}"!=""]?Set(trunk_name=${OUT_${DIAL_TRUNK}_SUFFIX}):Set(trunk_name=${OUT_${DIAL_TRUNK}}))
exten => s,n,Noop(Trunk Name: ${trunk_name})
exten => s,n,GoSubIf($["${trunk_name}"="Trunk1" & "${FROMEXTEN}"="201"]?label_ext201)
exten => s,n,GoSubIf($["${trunk_name}"="Trunk1" & "${FROMEXTEN}"="202"]?label_ext202)
exten => s,n,GoSubIf($["${trunk_name}"="Trunk1" & "${FROMEXTEN}"="203"]?label_ext203)
exten => s,n(label_ext201),GoSub(func-set-sipheader,s,1(X-CUSTOM-HEADER-1,some_value_here))
exten => s,n,GoSub(func-set-sipheader,s,1(X-CUSTOM-HEADER-2,some_value_here))
exten => s,n,MacroExit
exten => s,n(label_ext202),GoSub(func-set-sipheader,s,1(X-CUSTOM-HEADER-1,some_value_here))
exten => s,n,GoSub(func-set-sipheader,s,1(X-CUSTOM-HEADER-2,some_value_here))
exten => s,n,MacroExit
exten => s,n(label_ext203),GoSub(func-set-sipheader,s,1(X-CUSTOM-HEADER-1,some_value_here))
exten => s,n,GoSub(func-set-sipheader,s,1(X-CUSTOM-HEADER-2,some_value_here))
exten => s,n,MacroExit