Per Steve's request, here's what I have in the extensions_custom.conf file in Asterisk:
[macro-dialout-callmanager]
exten => s,1,ChanIsAvail(SIP/callman01)
exten => s,2,Cut(AVAILCHAN=AVAILCHAN,,1)
exten => s,3,Dial(${AVAILCHAN}/${ARG1})
exten => s,4,Hangup
exten => s,102,Congestion
[outbound-cm]
exten => _20XX,1,Macro(dialout-callmanager,${EXTEN})
exten => i,1,Congestion
[from-broadvoice]
exten => 2100,1,Macro(dialout-callmanager,${EXTEN})
And for the sip.conf:
[callman01] type=friend context=from-internal host=192.168.169.10 disallow=all allow=ulaw allow=alaw nat=no canreinvite=yes qualify=yesI set it to "from-internal" so that calls from the CM would be treated just like a softphone attached to Asterisk. I didn't want to have any "outside" to "outside" hairpinning restrictions causing a problem.