I have these instructions on the wiki in the comments section. I had a hard
time following the directions too, but I finally got it to work:
We've got 3 things going on with setting up Auto Answer and Ring Answer.
Let's detail this process from beginning to end using Ring Answer as our
example. (Auto Answer isn't much different except you want to make sure step
#2 below goes to class 3 rather than 4, and that class 3 is set up as described
elsewhere which is the same as the one in the ipmid.cfg file from krisk.org.)
1. First, use the SIPAddHeader() directive in Asterisk to properly alert the
phone. In my situation, I have 10 phones with 2-digit extensions. I want to call
each phone by prefixing the extension with a "1" in order to activate
the intercom. For example, if I dial 126 I want it to put extension 26 on
speakerphone. So go into extensions.conf and make sure you create a new section
like this:
??<a??href='icm-auto-answer'>icm-auto-answer
</a??href='icm-auto-answer'>
??;intercom
??exten?=>?_12x,1,SIPAddHeader(Alert-Info:?Ring?Answer)
??exten?=>?_12x,2,Dial(sip/${EXTEN:1:3})
??exten?=>?_12x,3,Hangup
??exten?=>?_12x,102,Hangup
Then make sure in your from-internal section of extensions.conf you have a
include => icm-auto-answer
2. Okay, see how the SIPAddHeader includes "Ring Answer"? That word or
words will be matched by alertInfo in sip.cfg in order to figure out what to do.
You are using the config files from krisk.org listed above, right? If not, go
get them now. I'll wait. So in sip.cfg in the <voIpProt><SIP>
section you need a line like:
??<alertInfo?voIpProt.SIP.alertInfo.2.value="Ring?Answer"?voIpProt.SIP.alertInfo.2.class="4"/>
The value parameter must match whatever you use in the SIPAddHeader string. In
this case they're both "Ring Answer". You could just as easily
replace both with the word "Foo" or "RA".
3. Now, the alertInfo tag will match that value and then go to the
"class" value to figure out what to do. Se we need to make sure
class="4" is set up properly. You could probably set up class 4 in
sip.cfg, but mine lives in ipmid.cfg. So go into ipmid.cfg and locate the
<ringtypes> section. Below that tag (and before it's corresponding
</ringtype> closing tag) you need to make sure class 4 is set up right.
You should have this line:
?<RING_ANSWER?se.rt.4.name="Ring?Answer"?se.rt.4.type="ring-answer"?se.rt.4.timeout="1000"?se.rt.4.ringer="2"?se.rt.4.callWait="6"?se.rt.4.mod="1"/>
The notes above describe that line. The key is that this is class 4 as noted by
the 3rd part of the value names - se.rt.4.name. I'd like to add that the
keyword "RING_ANSWER" is meaningless, it's just a human-readable
tag.
Got all that? The SIPAddHeader of "Ring Answer" hits the
<alertInfo> tag to figure out which class to go to. Then the class in
ipmid.cfg says, "Oh, I'm a "ring-answer" type and my firmware
knows what to do with that type."
One test you can do is to connect to asterisk ($ asterisk -r), bump your
verbosity up (<tt>set verbose 6</tt>), and try to place a call using
that context from step #1. You'll see one phone calling another and within
the Asterisk CLI you should see the following message appear:
???-?Executing?SIPAddHeader("SIP/20-86bc",?"Alert-Info:?Ring?Answer")?in?new?stack<br?/>
Extension?Changed?20?new?state?InUse?for?Notify?User?26<br?/>
???-?Executing?Dial("SIP/20-86bc",?"sip/26")?in?new?stack<br?/>
???-?Called?26<br?/>
???-?SIP/26-0448?is?ringing<br?/>
???-?SIP/26-0448?answered?SIP/20-86bc<br?/>
???-?Attempting?native?bridge?of?SIP/20-86bc?and?SIP/26-0448
If you don't see that Alert-Info: Ring Answer being sent, then you know you
haven't gotten the first step right.
Also, I made the mistake of putting some comments into the .cfg files and the
comments seemed to screw up the parser. It ignored seemingly random lines (i.e.
non-comment ones). I'm not a complete moron since I've been writing XML
for 6 years (and HTML for 11) but it goes to show how careful you should be.
Anyway, I use "xmllint" on config files now before rebooting the
phones to make sure I didn't make a dumb typo.
-------------------
Brian Vincent
Copper Mountain Telecom
vincentb@coppercolorado.com
______________________________________________________________________________________________________________
Confidentiality Warning: This message and any attachments are intended only for
the use of the intended recipient(s),
are confidential, and may be privileged. If you are not the intended recipient,
you are hereby notified that any review,
retransmission, conversion to hard copy, copying, circulation or other use of
this message and any attachments is strictly
prohibited. If you are not the intended recipient, please notify the sender
immediately by return e-mail, and delete this
message and any attachments from your system. Thank you.
______________________________________________________________________________________________________________