SIP Headers
From Zenitel Wiki
Zenitel IP stations support a selection of custom SIP headers to manipulate aspects of the call. These headers must be included in the initial INVITE
Contents
Listen In Call (Turbine only)
If the station receives “X-Zenitel-Audio: listener” in a SIP INVITE message it means that the call will not be visible in the station and that audio is only sent from the station, not played out on the speaker. The audio sent from the station is microphone audio without echo cancellation, therefore any speaker audio caught by the microphone is included. The station supports one "listen in call" at a time and any new "listen in calls" will be rejected.. The station can operate normally while someone is listening, for example making a new outgoing/incoming call is possible.
Configuration for Asterisk:
asterisk example extension.conf
exten => 905,1,SIPAddHeader(X-Zenitel-Audio: listener) exten => 905,2,Dial(SIP/211)
Configuration for FreePBX
- PJSIP
Go to Admin > Config Edit > extensions_custom.conf.
In the extensions_custom.conf we add the following:
[macro-dialout-one-predial-hook]
exten => s,1,Noop(Entering user defined context macro-dialout-one-predial-hook in extensions_custom.conf)
exten => s,n,GoToIf($["${EXTENNUM}"="5004"]?special)
exten => s,n,GoToIf($["${EXTENNUM}"="5007"]?special)
exten => s,n(special),Set(HASH(__SIPHEADERS,X-Zenitel-Audio)=listener)
exten => s,n,MacroExit
In the code above the ${EXTENNUM} is the callee, so the SIP header will be added only if there is a match in the list.
Listen-In currently supports only G.711 and G.722. G.729 is not supported
Volume (Turbine only)
A custom volume header can be used to reduce the volume for the duration of a call. The header name is "X-Volume-Db" with allowed values from +20 to -20 dB.
Example header for setting volume to -15 dB:
X-Volume-Db: -15
asterisk example extension.conf
increase volume by 5 dB:
exten => 903,1,SipAddHeader(x-volume-db: 5) exten => 903,2,Dial(SIP/211)
decrease volume by 10 dB:
exten => 904,1,SipAddHeader(x-volume-db: -10) exten => 904,2,Dial(SIP/211)
Priority
The Priority header can be used to prioritize calls to ensure that the highest priority conversation/message is played. RFC3261 defines the "Priority" header with values: non-urgent, normal, urgent, emergency. Our handling of different priority values is described below If there is an existing call and the device receives a second call with same or lower priority, the new call will be rejected with busy
- A call with priority non-urgent is stopped when receiving a new call with priority normal
- A call with priority non-urgent or normal is stopped when receiving a new call with priority urgent or emergency
- A call with priority urgent is put on hold when receiving an emergency call. The urgent call is automatically resumed when the emergency call ends.
asterisk example extension.conf
exten => 906,1,SipAddHeader(Priority: urgent) exten => 906,2,Dial(SIP/211) exten => 907,1,SipAddHeader(Priority: emergency) exten => 907,2,Dial(SIP/211)
Answer-Mode
It is possible to request answer-mode from the station by adding the header "Answer-Mode". Valid values are either "auto" or "manual". By requesting "auto" the station will automatically answer regardless of configured mode. If requesting "manual" the station will not auto-answer the call.
asterisk example extension.conf
exten => 901,1,SipAddHeader(answer-mode: auto) exten => 901,2,Dial(SIP/211) exten => 902,1,SipAddHeader(answer-mode: manual) exten => 902,2,Dial(SIP/211)
Adjust default volume
As from Turbine ver. 4.10 it is possible to adjust volume using SIP OPTIONS with x-header by adding x-volume-level-override. The function will override the configured station volume. Value can be 0-7. It will override the configured volume setting.
The effect will only last until station reboot.
Multicast Relay feature
If a station or IP Speaker receives “x-zenitel-relay: [ip]:[port]” in a SIP INVITE message the device to relay the RTP audio as multicast. The multicast address and port must be defined (e.g. x-zenitel-relay: 239.195.124.240:61080).
The stream towards the device will be relayed to the specified multicast address after decoding if SRTP is used.
This sort of call is receive only and will not take call capacity or inform users in any way.
Available from firmware ver. 9.0.3.0.