Paging was immortalized in the “Charlie’s Angel television series. It is not difficult to do it in your own IP phone. This is useful when you want to make a call directly to the speaker of the callee on the other phone. The destination phone auto-answers the call and enable the speaker.
The experiments show that these features are highly dependent on the phone and they are implemented in slightly different ways depending on the device’s vendor. Many phones simply don’t support them or have to be configured. Zoiper Free is an example of phone not supporting the Call-info header, but the setting to support is available in the paid version. Microsip supports it and most good phones supports, but have to be configured.
Most implementations use the Call-Info header. Below is a quick table for the most popular phones.
Vendor | Implementation |
Grandstream | Call-info: answer-after=0 |
Yealink | Call-info: answer-after=0 Alert-info: alert-autoanswer Alert-info: answer-after=0 |
Polycom | Alert-info: Ring-Answer |
Please, check the documentation of your device to verify which header it supports. Some phones also support Intercom using a request uri parameter called intercom=true.
Example:
INVITE sip:alice@domain.com;intercom=true SIP/2.0
Most phones will require a previous configuration authorizing the auto-answer. Enabling intercom on your phones pose a security risk because many people will not be aware of the Intercom feature and may leave the phone open. This allows an attacker to eavesdrop the sound of the destination room.
To implement is very simple, create a feature code. As an example *6. After typing *6 + the number, strip the prefix and add the header.
Example for OpenSIPS:
if($rU=~"^*6"") { strip(2); append_hf("Call-info: ;answer-after=0\r\n") ; }
Example for FreeSwitch. With the variable sip_auto_answer, FS inserts the appropriate headers. You could also add a header using:
<extension name="intercom"> <condition field="destination_number" expression="^\*6(.*)$"> <action application="set" data="dialed_extension=$1"/> <action application="export" data="sip_auto_answer=true"/> <action application="bridge" data="user/${dialed_extension}@${domain_name}"/> </condition> </extension>
For Asterisk:
[intercom]
exten=> _*6.,1,Set(PJSIP_HEADER(add,Call-Info)=;answer-after=0)
same => Dial(PJSIP/{EXTEN:2})
I have tested the first example and worked quite well.
This article generated a new chapter on the training “SIP Training for Professionals” and a new feature in the WeHostVoIP Cloud PBX.
I hope you enjoy!
the content is very interesting.
does the blog have rss?
Not yet, maybe in the future.