snom mass deployment

VoIP Hardware Solutions
Provider Solution Details
VoIP Hardware Zycoo UC Solutions
  • Modular Design IP PBX for SMB
  • Remote office Centralized Management solution
  • 3rd party app integration, Enterprise Billing, Android & iOS client
Details
To deploy SNOM phones with an asterisk server try the new res_phoneprov that uses the users.conf file to present all the settings to the SNOM phones. By default the res_phoneprov does polycom phones but is easy to setup for other types.

In /etc/asterisk/phoneprov.conf add the following to the end for the 3X0 series phones. I will add the 8X0 series at a later date.

[snom]
staticdir => snom/
mimetype => text/html
static_file => snom300-firmware.htm
static_file => snom320-firmware.htm
static_file => snom360-firmware.htm
static_file => snom370-firmware.htm

static_file => snom300.htm
static_file => snom320.htm
static_file => snom360.htm
static_file => snom370.htm

snom300-${MAC}.htm => snom/snom300-MAC.htm
snom320-${MAC}.htm => snom/snom320-MAC.htm
snom360-${MAC}.htm => snom/snom360-MAC.htm
snom370-${MAC}.htm => snom/snom370-MAC.htm


Make the directory /var/lib/asterisk/phoneprov/snom and add the following files...

  • snom300-frimware.htm
  • snom300.htm
  • snom300-MAC.htm
  • snom320-frimware.htm
  • snom320.htm
  • snom320-MAC.htm
  • snom360-frimware.htm
  • snom360.htm These settings are for all SNOM 360s

<?xml version="1.0" encoding="utf-8"?>
<settings>
<phone-settings>
<language perm="R">English</language>
<utc_offset perm="">-18000</utc_offset>
<ntp_server perm="">pool.ntp.org</ntp_server>
<dst perm="">3600 03.02.07 02:00:00 11.01.07 02:00:00</dst>
<timezone perm="">USA-5</timezone>
<challenge_response perm="">off</challenge_response>
<filter_registrar perm="">off</filter_registrar>
<admin_mode perm="">on</admin_mode>
<tone_scheme perm="">USA</tone_scheme>
<logon_wizard perm="">off</logon_wizard>
<friends_ring_sound perm="">Ringer6</friends_ring_sound>
<family_ring_sound perm="">Ringer6</family_ring_sound>
<colleagues_ring_sound perm="">Ringer6</colleagues_ring_sound>
<vip_ring_sound perm="">Ringer6</vip_ring_sound>
<edit_alpha_mode perm="R">123</edit_alpha_mode>
<display_method perm="">display_name_number</display_method>
<ignore_security_warning perm="">on</ignore_security_warning>
<advertisement perm="">off</advertisement>
</phone-settings>
<functionKeys>
</functionKeys>
</settings>

  • snom360-MAC.htm Dynamic Settings file for SNOM 360

<?xml version="1.0" encoding="utf-8"?>
<settings>
<phone-settings>
<user_realname idx="${LINE}" perm="">${DISPLAY_NAME}</user_realname>
<user_name idx="${LINE}" perm="">${USERNAME}</user_name>
<user_host idx="${LINE}" perm="">${SERVER}</user_host>
<user_pname idx="${LINE}" perm="">${USERNAME}</user_pname>
<user_pass idx="${LINE}" perm="">${SECRET}</user_pass>
<user_mailbox idx="${LINE}" perm="">${USERNAME}</user_mailbox>
<user_outbound idx="${LINE}" perm="">${SERVER}</user_outbound>
<user_server_type idx="${LINE}" perm="">asterisk</user_server_type>
</phone-settings>
</settings>

  • snom370-frimware.htm
  • snom370.htm
  • snom370-MAC.htm

In /etc/asterisk/users.conf add the res_phoneprov profile to a user context. Example for user 1234.

[1234]
....
profile = snom
....


Finally you can use the different methods to get the SNOM phones to use the files from res_phoneprov

setting_server: http://pbx:8088/asterisk/phoneprov/
or
setting_server: http://pbx:8088/phoneprov/



DHCP

How to use a DHCP server to configure you snom phones with the help of snom White Papers.

DHCP Settings


dhcpd.conf

option tftp-server-name "http://192.168.0.10"; 
option bootfile-name "snom/{mac}.conf"; 


You might also instruct your DHCP3-Server to identify all SNOM-phones by their MAC and give them specifically an URL via the tftp-server-name option:

if substring(binary-to-ascii(16, 8, ":", hardware), 0, 9) = "1:0:4:13:" { # 1: stands for Ethernet
  option tftp-server-name "http://pbx.domain.de/cgi-bin/asterisk/snomcfg.pl?MAC={mac}";
}


Helper Scripts


  • snomcfg.pl - Little CGI-Script to spool config settings to phone - consisting of common and MAC based settings.

#!/usr/bin/perl
#
# Author: Bruno Voigt, VoigtBruno@aol.com +49.700.686.00.686
#
# History:
# 17.04.2005 VoigtBruno@aol.com +49.700.686.00.686 : startup
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# SNOM settings for retrieving configuration from this script:
#   setting_server: http://pbx.domain.de/cgi-bin/asterisk/snomcfg.pl?MAC={mac}
#   subscribe_config: on
#
# Install to cgi-bin of your web-server (eg. /usr/lib/cgi-bin/asterisk/)
# and make sure that the following cfg files are readible by the
# user under which the web-server runs (eg. nobody).
#
# This skript spools settings to phone from the following files
# located in /etc/asterisk/snom/
# either:
# a) snom-standalone-MAC.cfg only (eg. snom-standalone-000413230123.cfg) - for testing new configs with a specific phone only
# b) 1.) snomType.cfg (snom360.cfg or snom190.cfg) - common settings for all phones of that type
#    2.) optionally: snom-passwd.cfg - common password settings for all phones (admin-mode)
#    3.) optionally: snom-MAC.cfg (eg. snom-000413230123.cfg) - phone specific settings, SIP line settings, etc.
#    4.) optionally: snom-MAC-passwd.cfg (eg. snom-000413230123-passwd.cfg) - phone specific password settings
#
#    Options defined in the later files, override settings from the
#    previously read in base config files !
#
#---------------------------
$cfgpath='/etc/asterisk/snom/';

use CGI qw(:all);
use CGI::Carp;
use Sys::Hostname;

%SETTINGS = undef;

# reads in a snom cfg file with one setting per line
# and stores settings line in %SETTINGS hash,
# Each key (eg. 'firmware') content will only given once to phone
# from latest read in config file defining it.
#
sub load_keys {
  my($fname) = @_;
  if ((open IF, $fname)) {
    while(<IF>) {
      next if ($_ eq "");
      next if ($_ =~ /^[#;].*$/);
      ($key, $value) = split(':', $_);
      $key =~ s/(^[a-zA-Z0-9_]*)[!&]{0,1}$/$1/;
      $SETTINGS{$key} = $_;
    }
    close IF;
  }
}

print header;
print start_html();

if (!($ENV{HTTP_USER_AGENT} =~ /^Mozilla\/4\.0 \(compatible; (snom\d+)-.*/)) {
  print STDERR "unsupported HTTP_USER_AGENT, abort!\n";
  exit(1);
}
my $snom_type = $1;
$MAC = 'unknownMAC' unless (defined($MAC = param('MAC')) && ($MAC =~ /^[0-9A-F]{12}$/));
print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . "\n";

$cfgMACstandalone = $cfgpath . '/snom-standalone-' . $MAC . '.cfg';
if (-f $cfgMACstandalone) {
  print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using standalone cfg: $cfgMACstandalone\n";
  load_keys($cfgMACstandalone);
}
else {
  $cfgsnomtypebase = $cfgpath . '/' . $snom_type . '.cfg';
  if (-f $cfgsnomtypebase) {
    print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using SNOM type base cfg: $cfgsnomtypebase\n";
    load_keys($cfgsnomtypebase);
  }
  $cfgpasswd = $cfgpath . '/snom-passwd.cfg';
  if (-f $cfgpasswd) {
    print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using SNOM passwd cfg: $cfgpasswd\n";
    load_keys($cfgpasswd);
  }
  $cfgMACadd = $cfgpath . '/snom-' . $MAC . '.cfg';
  if (-f $cfgMACadd) {
    print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using SNOM MAC specific cfg: $cfgMACadd\n";
    load_keys($cfgMACadd);
  }
  $cfgMACpasswd = $cfgpath . '/snom-' . $MAC . '-passwd.cfg';
  if (-f $cfgMACpasswd) {
    print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using SNOM MAC specific passwd cfg: $cfgMACpasswd\n";
    load_keys($cfgMACpasswd);
  }
}

foreach $key (sort keys %SETTINGS) {
  print $SETTINGS{$key};
#  print STDERR $SETTINGS{$key};
}

print end_html;
# snomcfg.pl ### THE END ###


  • snom360.cfg - Example base config - for use with snomcfg.pl

# /etc/asterisk/snom/snom360.cfg
#
# Base settings for SNOM 360 - for use with snomcfg.pl
# + sets SIP registar (asterisk hostname) for line 1, clears settings of the other lines 2-7
# + nearly every setting is forced readonly to prevent phone users from messing around.
#
# ! after keyname means value is editable on phone (eg. admin_mode!: off)
# 
action_dnd_off_url:
action_dnd_on_url:
action_incoming_url:
action_offhook_url:
action_onhook_url:
action_outgoing_url:
action_redirection_off_url:
action_redirection_on_url:
action_setup_url:
admin_mode: off
admin_mode_login: admin
aoc_amount_display: charged
aoc_cost_pulse: 1
aoc_pulse_currency: EUR
auto_dial: 5
block_edit: true
broadsoft_call_control: off
call_completion!: off
call_join_xfer!: off
callpickup_dialoginfo!: off
challenge_checksync: off
challenge_reboot: off
challenge_response: off
cmc_feature: off
date_us_format: off
dhcp: on
disable_speaker: off
dst: 3600 03.05.07 02:00:00 10.05.07 03:00:00
dtmf_payload_type: 101
enum_suffix: e164.arpa
ethernet_replug: nothing
filter_registrar: off
guess_number: off
http_port: 80
http_proxy:
http_scheme: on
https_port: 443
ice_production_ip: on
inca_ek_version:
intercom_enabled: off
language: English
lcserver1:
logon_wizard: off
max_forwards: 70
network_id_port:
no_dnd: off
ntp_server: time.domain.de
offer_gruu: on
offer_mpo: on
overlap_timeout: 
pcap_trace: off
preselection_nr:
publish_presence: on
refer_brackets: off
register_http_contact: off
ringing_time!: 60
require_prack: on
rtp_port_end: 65534
rtp_port_start: 49152
screen_saver_timeout: 60
session_refresher_client: on
session_timer: 600
#provided by DHCP: setting_server!: http://pbx.domain.de/cgi-bin/asterisk/snomcfg.pl?MAC={mac}
setting_server:
short_form: off
silence_compression: off
sip_proxy:
sip_retry_t1: 500
snmp_port: 161
snmp_trusted_addresses: 172.17.0.1
subscribe_config: on
support_idna: off
syslog_server:
time_24_format: on
time_server:
timezone: GER+1
tone_scheme: GER
firmware_status: http://pbx.domain.de/snom/firmware/snom360firmware.cfg
firmware_interval: 60
update_server:
#update_policy: settings_only
update_policy: auto_update
update_filename:
update_host_b:
update_host_f:
use_backlight: on
user_phone: on
utc_offset: 3600
vlan:
vlan_id:
vlan_qos:
web_language: English
webserver_cert:
webserver_type: http_https
with_flash: on
#
codec1_name1: 8
codec1_name2: 0
codec1_name3: 3
codec1_name4: 18
codec1_name5: 9
codec1_name6: 2
codec1_name7: 4
codec2_name1: 8
codec2_name2: 18
codec2_name3: 8
codec2_name4: 8
codec2_name5: 8
codec2_name6: 8
codec2_name7: 8
codec3_name1: 9
codec3_name2: 8
codec3_name3: 0
codec3_name4: 9
codec3_name5: 9
codec3_name6: 9
codec3_name7: 9
codec4_name1: 2
codec4_name2: 0
codec4_name3: 2
codec4_name4: 2
codec4_name5: 2
codec4_name6: 2
codec4_name7: 2
codec5_name1: 3
codec5_name2: 4
codec5_name3: 9
codec5_name4: 3
codec5_name5: 3
codec5_name6: 3
codec5_name7: 3
codec6_name1: 18
codec6_name2: 9
codec6_name3: 18
codec6_name4: 18
codec6_name5: 18
codec6_name6: 18
codec6_name7: 18
codec7_name1: 4
codec7_name2: 4
codec7_name3: 4
codec7_name4: 4
codec7_name5: 4
codec7_name6: 4
codec7_name7: 4
codec_size1: 20
codec_size2: 20
codec_size3: 20
codec_size4: 20
codec_size5: 20
codec_size6: 20
codec_size7: 20
stun_server1:
stun_server2:
stun_server3:
stun_server4:
stun_server5:
stun_server6:
stun_server7:
stun_binding_interval1:
stun_binding_interval2:
stun_binding_interval3:
stun_binding_interval4:
stun_binding_interval5:
stun_binding_interval6:
stun_binding_interval7:
#
user_realname1!:
user_realname2: 
user_realname3: 
user_realname4: 
user_realname5: 
user_realname6: 
user_realname7: 
user_name1!:
user_name2: 
user_name3: 
user_name4: 
user_name5: 
user_name6: 
user_name7: 
user_host1: pbx.domain.de
user_host2: 
user_host3: 
user_host4: 
user_host5: 
user_host6: 
user_host7: 
user_pname1!:
user_pname2: 
user_pname3: 
user_pname4: 
user_pname5: 
user_pname6: 
user_pname7: 
user_hash1: 
user_hash2: 
user_hash3: 
user_hash4: 
user_hash5: 
user_hash6: 
user_hash7: 
user_q1: 1.0
user_q2: 1.0
user_q3: 1.0
user_q4: 1.0
user_q5: 1.0
user_q6: 1.0
user_q7: 1.0
user_expiry1: 600
user_expiry2: 600
user_expiry3: 600
user_expiry4: 600
user_expiry5: 600
user_expiry6: 600
user_expiry7: 600
user_mailbox1: 800
user_mailbox2: 
user_mailbox3: 
user_mailbox4: 
user_mailbox5: 
user_mailbox6: 
user_mailbox7: 
user_transport1: auto
user_transport2: auto
user_transport3: auto
user_transport4: auto
user_transport5: auto
user_transport6: auto
user_transport7: auto
user_srtp1: off
user_srtp2: off
user_srtp3: off
user_srtp4: off
user_srtp5: off
user_srtp6: off
user_srtp7: off
user_symmetrical_rtp1: off
user_symmetrical_rtp2: off
user_symmetrical_rtp3: off
user_symmetrical_rtp4: off
user_symmetrical_rtp5: off
user_symmetrical_rtp6: off
user_symmetrical_rtp7: off
user_ice1: on
user_ice2: on
user_ice3: on
user_ice4: on
user_ice5: on
user_ice6: on
user_ice7: on
user_moh1: 
user_moh2: 
user_moh3: 
user_moh4: 
user_moh5: 
user_moh6: 
user_moh7: 
user_stream1: 
user_stream2: 
user_stream3: 
user_stream4: 
user_stream5: 
user_stream6: 
user_stream7: 
user_idle_text1: 
user_idle_text2: 
user_idle_text3: 
user_idle_text4: 
user_idle_text5: 
user_idle_text6: 
user_idle_text7: 
user_alert_info1: 
user_alert_info2: 
user_alert_info3: 
user_alert_info4: 
user_alert_info5: 
user_alert_info6: 
user_alert_info7: 
user_pic1: 
user_pic2: 
user_pic3: 
user_pic4: 
user_pic5: 
user_pic6: 
user_pic7: 
user_auto_connect1: off
user_auto_connect2: off
user_auto_connect3: off
user_auto_connect4: off
user_auto_connect5: off
user_auto_connect6: off
user_auto_connect7: off
user_xml_screen_url1: 
user_xml_screen_url2: 
user_xml_screen_url3: 
user_xml_screen_url4: 
user_xml_screen_url5: 
user_xml_screen_url6: 
user_xml_screen_url7: 
user_descr_contact1: on
user_descr_contact2: on
user_descr_contact3: on
user_descr_contact4: on
user_descr_contact5: on
user_descr_contact6: on
user_descr_contact7: on
cc_token1: 
cc_token2: 
cc_token3: 
cc_token4: 
cc_token5: 
cc_token6: 
cc_token7: 
user_uid1!:
user_uid2:
user_uid3:
user_uid4: 
user_uid5: 
user_uid6: 
user_uid7: 
user_dp_str1: |^([1-9][0-9][0-9])|sip:\1@\d|d |([^#]+)#|sip:\1@\d|d
user_dp_str2: 
user_dp_str3: 
user_dp_str4: 
user_dp_str5: 
user_dp_str6: 
user_dp_str7: 
user_dp_exp1: ENUM
user_dp_exp2: 
user_dp_exp3: 
user_dp_exp4: 
user_dp_exp5: 
user_dp_exp6: 
user_dp_exp7: 
user_outbound1: 
user_outbound2: 
user_outbound3: 
user_outbound4: 
user_outbound5: 
user_outbound6: 
user_outbound7: 
# snom360.cfg # The END ###


  • snom-passwd.cfg - Example base passwd config - for use with snomcfg.pl

# /etc/asterisk/snom/snom-passwd.cfg
#
admin_mode_password: 4242
admin_mode_password_confirm: 4242
# define common SIP login secret for line 1 for all phones - can be overriden in snom-MAC.cfg
user_pass1: secret
user_pass2:
user_pass3:
user_pass4:
user_pass5:
user_pass6:
user_pass7:


  • snom-000413230123.cfg - Example SIP line settings config for concrete phone - for use with snomcfg.pl

# /etc/asterisk/snom/snom-000413230123.cfg
#
# Line name in display, here with extension
user_realname1: 123 Bruno Voigt
# SIP login, authentication name:
user_name1: BrunoVoigt
user_pname1: BrunoVoigt
# override setting from snom360.cfg:
user_pass1: verysecret
# Login for phone built in web-server:
http_user: BrunoVoigt
http_pass: mywebsecret


  • snom360firmware.cfg - Specifies firmware to be automatically flashed by phone - snom360.cfg points to this file

# /var/www/snom/firmware/snom360firmware.cfg
bootloader:
firmware: http://pbx.domain.de/snom/firmware/snom360-3.60h-SIP-j.bin
#


Config Files


Example Config File:


user_realname1: 311 John Doe
user_name1: John Doe
user_pname1: John Doe
user_pass1: verysecret
http_user: doejohn
http_pass: mywebsecret
phone_name: testphone
dns_domain: intern.snom.de
dns_server1: 192.168.0.9


redirect_event

  • Valid values: <all>, <busy>, <none>, <time>
  • Default: none
  • Description: Event that causes redirection. <all> redirects always,
  • <none> never, <busy> when the phone is in use and <time> after a timeout.

redirect_time

  • Valid values: e.g. <15>
  • Default: blank
  • Description: Number of seconds after which the phone will redirect the incoming call.

redirect_number

  • Valid values: e.g. <tb,sf> or <sip:tb@sn om.de;q=0.8,sf@snom.de;q=0.9>.
  • Default: blank
  • Description: The redirection target. If the proxy executes the redirection, this may be a comma-separated list of alternate destinations (including probabilities).

redirect_busy_number

  • Valid values: e.g. <tb,sf> or <sip:tb@sn om.de;q=0.8,sf@snom.de;q=0.9>.
  • Default: blank
  • Description: The redirection target when the redirect_event is set to busy.

language

  • Valid values: <English>, <English(UK)>, <Deutsch>, <Francais>, <Italiano>, <Espanol>, <Cestina>, <Nederlands>, <Polski>, <Portugues>, <Slovencina>, <Suomi>, <Svenska>, <Dansk>, <Japanese>, <Chinese>
  • Default: English
  • Description: Selects the language.

web_language

  • Valid values: <English>, <Deutsch>, <Nederlands>, <Suomi>, <Dansk>
  • Default: English
  • Description: Selects the language for the webinterface.

display_method

  • Valid values: <full_contact>, <display_ name>, <user_name>
  • Default: full_contact
  • Description: Selects the display style of SIP URLs.

call_completion

  • Valid values: <true>, <false>
  • Default: false
  • Description: With <true> the phone offers after a busy the option to wait for
  • the other party to become free again and inform the user to make a new call attempt.

auto_dial

  • Valid values: <off>, <2> , <5>, <10>, <15>
  • Default: off
  • Description: Phone begins after 2, 5, 10 or 15 seconds to dial the number already typed in.

block_url_dialing

  • Valid values: <true>, <false>
  • Default: false
  • Description: With <true> the user is not anymore able to change the inputtype for editing chars, it will remain numbers only.

challenge_response

  • Valid values: <true>, <false>
  • Default: true
  • Description: <true> turns on displaying challenge request on the display to the user.

broadsoft_call_control

  • Valid values: <true>, <false>
  • Default: false
  • Description: <true> turns on broadsoft call control feature support.

cmc_feature

  • Valid values: <true>, <false>
  • Default: false
  • Description: When this setting (CMC - Client Matter Code) is turned on, the user is offered a softkey during a call; its use sends a unique code to the server using the INFO message in SIP. This code can later be used for billing or book keeping along with the call ID of that call.

call_waiting

  • Valid values: <true>, <false>
  • Default: false
  • Description: If call waiting indication (CWI) is on (<true>), during a call parallel incoming calls are signaled with a knocking sound and the caller hears a free signal. In case of <false> only one incoming call in parallel can be handled and the caller hears a busy signal.

cw_dialtone

  • Valid values: <true>, <false>
  • Default: false
  • Description: In case of holding a party you will hear a free tone <true> or nothing <false>

conf_hangup

  • Valid values: <true>, <false>
  • Default: false
  • Description: Someone maybe wants the hookswitch to not cancel a call, then it should be set to <false>.

transfer_on_hangup

  • Valid values: <true>, <false>
  • Default: true
  • Description: to switch off transfer on hook functionality, set it to <false>.

contrast

  • Valid values: Between <0> and <15>
  • Default: 8
  • Description: Determines the display contrast, but should not be used, because each phone reacts differently to it dependend by example from the temperature etc. Its better to set it manually.

use_backlight

  • Valid values: <true>, <false>
  • Default: true
  • Description: In case your phone has a backlit display (snom105/220) the light can be switched off completely with <false>.

image_src

  • Valid values: <true>, <false>
  • Default: false
  • Description: The pictures for the internal web interface are taken from the phone (<false>) or loaded via the Internet (<true>). Thus if you have a slow connection to the remote phone, <true> will significantly speed up the displaying of the phones webpages.

guess_number

  • Valid values: <true>, <false>
  • Default: true
  • Description: Number guessing or auto completion while typing in numbers to dial.

deny_all_feature

  • Valid values: <true>, <false>
  • Default: true
  • Description: If set to <true>, the Deny All option is offered on incoming calls. Otherwise it is disabled.

admin_mode

  • Valid values: <true>, <false>
  • Default: true
  • Description: Administrator mode (all settings are accessible) or user mode (only a few basic settings are accessible).

admin_mode_password

  • Valid values: Numbers and character strings of unspecified length, e.g. <1234>, <0fg5gju>, <nhcndeve>
  • Default: 0000
  • Description: The password for entering the Administrator mode on the snom phone.

callpickup_dialoginfo

  • Valid values: <true>, <false>
  • Default: false
  • Description: If your phone should be able to get informed of calls to be picked up via the dialoginfo SIP message and to pickup calls, set this setting to <true>. SIP Line Settings The SIP stack on the phone supports seven lines, which are identified with the numbers 1 through 7. ine-specific settings are appended with the line number.

user_realname 1-7

  • Valid values: e.g. <Jim Testa>
  • Default: blank
  • Description: This is the real name of the user that is displayed for line x.

user_name 1-7

  • Valid values: e.g. for <sip: abc@company.de>, the user_name[1-7] would be abc.
  • Default: blank
  • Description: The account name for line x. This is a mandatory setting to set up a SIP line!

user_host 1-7

  • Valid values: e.g. for <sip: abc@company.de> the user_host would be <company.de>.
  • Default: blank
  • Description: The registrar for line x. This is also a mandatory setting to set up an SIP line!

user_pass 1-7 , user_hash 1-7

  • Valid values: e.g. <company, 456876, answerIs42, a6 4bd7c29de0f23ba64bd7c29de0f23b0>
  • Default: blank
  • Description: A setting for registrar authentication. The username and the password can usually be
set up on the proxy and registrar, user_hash is a MD5 encrypted password, which can be used
instead of user_pass.

user_q 1-7

  • Valid values: Values between <0.0> and <1.0>
  • Default: 1.0
  • Description: The probability of the registration for line x. This probability is used by some proxies to call the registered phones one by one (sequential and parallel forking proxy).

user_dp_str 1-7

  • Valid values: dialplan regular expression, see snom4S proxy manual
  • Default: blank
  • Description: dialplan per line

user_transport 1-7

  • Valid values: <auto>, <udp>, <tcp>, <tls>
  • Default: auto
  • Description:The IP protocol which should be used for this line.

user_expiry 1-7

  • Valid values: <60>, <600>, <3600>, <7200>, <28800>, <86400>
  • Default: 86400 (one day)
  • Description: The proposed expiry time of the registration in seconds for line x.

user_mailbox1-7

  • Valid values: e.g. <abc> or <sip: abc@mailbox.bla.com>.
  • Default: Blank
  • Description: The SIP url of the mailbox associated with line x.

user_ice 1-7

  • Valid values: <true>, <false>
  • Default: false
  • Description: Offer ICE <true> or not <false> associated with line x.

user_ringer 1-7

  • Valid values: <Ringer1>, <Ringer2>, <Ringer3>, <Ringer4>, <Ringer5>, <Ringer6>, <Ringer7>
  • Default: Ringer1
  • Description: The ring tone to be used if a call comes to that specific line. See ring_source also.

user_moh 1-7

  • Valid values: e.g. <sip:mh@snom.de>, <mh>, <192.168.0.40>
  • Default: blank
  • Description: SIP Address of music on hold server of that specific line. The music is automatically played if this line is on hold.

user_stream 1-7

  • Valid values: e.g. <http:// www.radioxyz.de>, <http: //192.168.0.40>
  • Default: blank
  • Description: HTTP URL of a music streaming server of that specific line. The music is automatically played if this line is on hold.

user_srtp 1-7

  • Valid values: <true>, <false>
  • Default: false
  • Description: Use SRTP for audio connections <true> or don t <false>. This option is valid for snom190 only.

active_line

  • Valid values: 1-7
  • Default: 1
  • Description: Number of the active SIP line. This is the line that is used as the originator of an outgoing call. SIP Stack Settings

sip_postfix

  • Valid values: e.g. <proxy.company.de>
  • Default: blank
  • Description: Register postfix, which is automatically chosen as registrar if the logon wizard is used to logon an SIP user and the registrar has not been set up through the logon wizard.

user_outbound 1-7

  • Valid values: e.g. <proxy.company.de>, <192.168.0.24>
  • Default: blank
  • Description: Address or path of the outbound proxy per SIP line that is used for calling.

route_proxy

  • Valid values: <true>, <false>
  • Default: false
  • Description: Treat as initial route (<true>), <false> for address only

nat_detection

  • Valid values: <auto>, <upnp>, <stunclient>, <static>, <off>
  • Default: auto
  • Description: NAT detection according to your network.

stun_server

  • Valid values: e.g. <217.115.141.99: 5062>
  • Default: blank
  • Description: IP address of a STUN server (hostname:port) if you have one.

stun_binding_interval

  • Valid values: Integer values e.g. 5, 10.
  • Default: blank
  • Description: STUN binding interval in seconds.

rtp_port_start

  • Valid values: Valid port numbers.
  • Default: blank
  • Description: First dynamic RTP port

rtp_port_end

  • Valid values: Valid port numbers.
  • Default: blank
  • Description: Last dynamic RTP port

network_id_name

  • Valid values: Valid name.
  • Default: blank
  • Description: Network identity (hostname)

network_id_port

  • Valid values: Valid port number.
  • Default: blank
  • Description: Network identity (port)

use_nw_port

  • Valid values: <true>, <false>
  • Default: false
  • Description: Use local SIP port (<false>) or network port (<true>)

sip_retry_t1, sip_retry_t2

  • Valid values: Integer values, e.g. <500>.
  • Default: 500, 4000
  • Description: The time for resending SIP messages in milliseconds. They should be set to 500 and 4000 respectively.

session_timer

  • Valid values: Integer values, e.g. <2400>, <3200>.
  • Default: 3600
  • Description: Default time for session timer in seconds. 0 disables the session timer, 3600 is a reasonable value.

dirty_host_ttl

  • Valid values: Integer values, e.g. <60>, <120>.
  • Default: 0
  • Description: Time in seconds until the phone waits before it repeats a non answered request again.

max_forwards

  • Valid values: Integer values, e.g. <40>, <60>.
  • Default: 70
  • Description: The maximum number of hops allowed for an SIP request/ response.

enum_suffix

  • Valid values: e.g. <e164.arpa>
  • Default: e164.arpa
  • Description: Route domain for ENUM,

tcp_threshold

  • Valid values: <auto>, <tcp>, <udp>
  • Default: auto
  • Description: Set transport layer for SIP messages either to TCP, UDP or automatic.

trace

  • Valid values: <true>, <false>
  • Default: true
  • Description: Enable tracing output of the current protocol stack.

logon_wizard

  • Valid values: <true>, <false>
  • Default: false
  • Description: Logon wizard and mobility features available in snom key menu.

user_phone

  • Valid values: <true>, <false>
  • Default: true
  • Description: Use user=phone in SIP signalling.

use_mapped

  • Valid values: <true>, <false>
  • Default: true
  • Description: Use mapped address.

publish_presence

  • Valid values: <true>, <false>
  • Default: false
  • Description: Publish presence information on <true>.

refer_policy

  • Valid values: <auto>, <refer>, <bye>
  • Default: Auto
  • Description: Choose between REFER and BYE/Also method for initiating a transfer. Auto makes an automatic selection depending on the capabilities indicated by the other party.

refer_brackets

  • Valid values: <true>, <false>
  • Default: false
  • Description: In case you want to have your REFER framed with brackets set it to <true>.

require_prack

  • Valid values: <true>, <false>
  • Default: true
  • Description: In case PRACK is required, set to <true>, else <false>.

symmetrical_rtp

  • Valid values: <true>, <false>
  • Default: true
  • Description: Switch off symmetrical RTP support with <false>, else <true>.

offer_gruu

  • Valid values: <true>, <false>
  • Default: true
  • Description: This setting is used to toggle the support for GRUU (Globally Routable User agent URL s) in SIP.

offer_mpo

  • Valid values: <true>, <false>
  • Default: false
  • Description: Using this setting the user can turn the Media Path Optimization on or off.

challenge_dialog

  • Valid values: <true>, <false>
  • Default: false
  • Description: Turning this setting on <true> enables a challenge response for dialog messages.

challenge_reboot

  • Valid values: <true>, <false>
  • Default: false
  • Description: This setting enables/disables a challenge response for remote reboot request.

challenge_checksync

  • Valid values: <true>, <false>
  • Default: false
  • Description: Turning this setting on <true> enables a challenge response for Check-Sync.

Content By Andrew Latham - lathama at lathama dot com
Scripts By Bruno Voigt - VoigtBruno -at- aol -dot- com

See also:


To deploy SNOM phones with an asterisk server try the new res_phoneprov that uses the users.conf file to present all the settings to the SNOM phones. By default the res_phoneprov does polycom phones but is easy to setup for other types.

In /etc/asterisk/phoneprov.conf add the following to the end for the 3X0 series phones. I will add the 8X0 series at a later date.

[snom]
staticdir => snom/
mimetype => text/html
static_file => snom300-firmware.htm
static_file => snom320-firmware.htm
static_file => snom360-firmware.htm
static_file => snom370-firmware.htm

static_file => snom300.htm
static_file => snom320.htm
static_file => snom360.htm
static_file => snom370.htm

snom300-${MAC}.htm => snom/snom300-MAC.htm
snom320-${MAC}.htm => snom/snom320-MAC.htm
snom360-${MAC}.htm => snom/snom360-MAC.htm
snom370-${MAC}.htm => snom/snom370-MAC.htm


Make the directory /var/lib/asterisk/phoneprov/snom and add the following files...

  • snom300-frimware.htm
  • snom300.htm
  • snom300-MAC.htm
  • snom320-frimware.htm
  • snom320.htm
  • snom320-MAC.htm
  • snom360-frimware.htm
  • snom360.htm These settings are for all SNOM 360s

<?xml version="1.0" encoding="utf-8"?>
<settings>
<phone-settings>
<language perm="R">English</language>
<utc_offset perm="">-18000</utc_offset>
<ntp_server perm="">pool.ntp.org</ntp_server>
<dst perm="">3600 03.02.07 02:00:00 11.01.07 02:00:00</dst>
<timezone perm="">USA-5</timezone>
<challenge_response perm="">off</challenge_response>
<filter_registrar perm="">off</filter_registrar>
<admin_mode perm="">on</admin_mode>
<tone_scheme perm="">USA</tone_scheme>
<logon_wizard perm="">off</logon_wizard>
<friends_ring_sound perm="">Ringer6</friends_ring_sound>
<family_ring_sound perm="">Ringer6</family_ring_sound>
<colleagues_ring_sound perm="">Ringer6</colleagues_ring_sound>
<vip_ring_sound perm="">Ringer6</vip_ring_sound>
<edit_alpha_mode perm="R">123</edit_alpha_mode>
<display_method perm="">display_name_number</display_method>
<ignore_security_warning perm="">on</ignore_security_warning>
<advertisement perm="">off</advertisement>
</phone-settings>
<functionKeys>
</functionKeys>
</settings>

  • snom360-MAC.htm Dynamic Settings file for SNOM 360

<?xml version="1.0" encoding="utf-8"?>
<settings>
<phone-settings>
<user_realname idx="${LINE}" perm="">${DISPLAY_NAME}</user_realname>
<user_name idx="${LINE}" perm="">${USERNAME}</user_name>
<user_host idx="${LINE}" perm="">${SERVER}</user_host>
<user_pname idx="${LINE}" perm="">${USERNAME}</user_pname>
<user_pass idx="${LINE}" perm="">${SECRET}</user_pass>
<user_mailbox idx="${LINE}" perm="">${USERNAME}</user_mailbox>
<user_outbound idx="${LINE}" perm="">${SERVER}</user_outbound>
<user_server_type idx="${LINE}" perm="">asterisk</user_server_type>
</phone-settings>
</settings>

  • snom370-frimware.htm
  • snom370.htm
  • snom370-MAC.htm

In /etc/asterisk/users.conf add the res_phoneprov profile to a user context. Example for user 1234.

[1234]
....
profile = snom
....


Finally you can use the different methods to get the SNOM phones to use the files from res_phoneprov

setting_server: http://pbx:8088/asterisk/phoneprov/
or
setting_server: http://pbx:8088/phoneprov/



DHCP

How to use a DHCP server to configure you snom phones with the help of snom White Papers.

DHCP Settings


dhcpd.conf

option tftp-server-name "http://192.168.0.10"; 
option bootfile-name "snom/{mac}.conf"; 


You might also instruct your DHCP3-Server to identify all SNOM-phones by their MAC and give them specifically an URL via the tftp-server-name option:

if substring(binary-to-ascii(16, 8, ":", hardware), 0, 9) = "1:0:4:13:" { # 1: stands for Ethernet
  option tftp-server-name "http://pbx.domain.de/cgi-bin/asterisk/snomcfg.pl?MAC={mac}";
}


Helper Scripts


  • snomcfg.pl - Little CGI-Script to spool config settings to phone - consisting of common and MAC based settings.

#!/usr/bin/perl
#
# Author: Bruno Voigt, VoigtBruno@aol.com +49.700.686.00.686
#
# History:
# 17.04.2005 VoigtBruno@aol.com +49.700.686.00.686 : startup
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# SNOM settings for retrieving configuration from this script:
#   setting_server: http://pbx.domain.de/cgi-bin/asterisk/snomcfg.pl?MAC={mac}
#   subscribe_config: on
#
# Install to cgi-bin of your web-server (eg. /usr/lib/cgi-bin/asterisk/)
# and make sure that the following cfg files are readible by the
# user under which the web-server runs (eg. nobody).
#
# This skript spools settings to phone from the following files
# located in /etc/asterisk/snom/
# either:
# a) snom-standalone-MAC.cfg only (eg. snom-standalone-000413230123.cfg) - for testing new configs with a specific phone only
# b) 1.) snomType.cfg (snom360.cfg or snom190.cfg) - common settings for all phones of that type
#    2.) optionally: snom-passwd.cfg - common password settings for all phones (admin-mode)
#    3.) optionally: snom-MAC.cfg (eg. snom-000413230123.cfg) - phone specific settings, SIP line settings, etc.
#    4.) optionally: snom-MAC-passwd.cfg (eg. snom-000413230123-passwd.cfg) - phone specific password settings
#
#    Options defined in the later files, override settings from the
#    previously read in base config files !
#
#---------------------------
$cfgpath='/etc/asterisk/snom/';

use CGI qw(:all);
use CGI::Carp;
use Sys::Hostname;

%SETTINGS = undef;

# reads in a snom cfg file with one setting per line
# and stores settings line in %SETTINGS hash,
# Each key (eg. 'firmware') content will only given once to phone
# from latest read in config file defining it.
#
sub load_keys {
  my($fname) = @_;
  if ((open IF, $fname)) {
    while(<IF>) {
      next if ($_ eq "");
      next if ($_ =~ /^[#;].*$/);
      ($key, $value) = split(':', $_);
      $key =~ s/(^[a-zA-Z0-9_]*)[!&]{0,1}$/$1/;
      $SETTINGS{$key} = $_;
    }
    close IF;
  }
}

print header;
print start_html();

if (!($ENV{HTTP_USER_AGENT} =~ /^Mozilla\/4\.0 \(compatible; (snom\d+)-.*/)) {
  print STDERR "unsupported HTTP_USER_AGENT, abort!\n";
  exit(1);
}
my $snom_type = $1;
$MAC = 'unknownMAC' unless (defined($MAC = param('MAC')) && ($MAC =~ /^[0-9A-F]{12}$/));
print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . "\n";

$cfgMACstandalone = $cfgpath . '/snom-standalone-' . $MAC . '.cfg';
if (-f $cfgMACstandalone) {
  print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using standalone cfg: $cfgMACstandalone\n";
  load_keys($cfgMACstandalone);
}
else {
  $cfgsnomtypebase = $cfgpath . '/' . $snom_type . '.cfg';
  if (-f $cfgsnomtypebase) {
    print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using SNOM type base cfg: $cfgsnomtypebase\n";
    load_keys($cfgsnomtypebase);
  }
  $cfgpasswd = $cfgpath . '/snom-passwd.cfg';
  if (-f $cfgpasswd) {
    print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using SNOM passwd cfg: $cfgpasswd\n";
    load_keys($cfgpasswd);
  }
  $cfgMACadd = $cfgpath . '/snom-' . $MAC . '.cfg';
  if (-f $cfgMACadd) {
    print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using SNOM MAC specific cfg: $cfgMACadd\n";
    load_keys($cfgMACadd);
  }
  $cfgMACpasswd = $cfgpath . '/snom-' . $MAC . '-passwd.cfg';
  if (-f $cfgMACpasswd) {
    print STDERR "MAC: " . $MAC . " - snom_type: " . $snom_type . " = using SNOM MAC specific passwd cfg: $cfgMACpasswd\n";
    load_keys($cfgMACpasswd);
  }
}

foreach $key (sort keys %SETTINGS) {
  print $SETTINGS{$key};
#  print STDERR $SETTINGS{$key};
}

print end_html;
# snomcfg.pl ### THE END ###


  • snom360.cfg - Example base config - for use with snomcfg.pl

# /etc/asterisk/snom/snom360.cfg
#
# Base settings for SNOM 360 - for use with snomcfg.pl
# + sets SIP registar (asterisk hostname) for line 1, clears settings of the other lines 2-7
# + nearly every setting is forced readonly to prevent phone users from messing around.
#
# ! after keyname means value is editable on phone (eg. admin_mode!: off)
# 
action_dnd_off_url:
action_dnd_on_url:
action_incoming_url:
action_offhook_url:
action_onhook_url:
action_outgoing_url:
action_redirection_off_url:
action_redirection_on_url:
action_setup_url:
admin_mode: off
admin_mode_login: admin
aoc_amount_display: charged
aoc_cost_pulse: 1
aoc_pulse_currency: EUR
auto_dial: 5
block_edit: true
broadsoft_call_control: off
call_completion!: off
call_join_xfer!: off
callpickup_dialoginfo!: off
challenge_checksync: off
challenge_reboot: off
challenge_response: off
cmc_feature: off
date_us_format: off
dhcp: on
disable_speaker: off
dst: 3600 03.05.07 02:00:00 10.05.07 03:00:00
dtmf_payload_type: 101
enum_suffix: e164.arpa
ethernet_replug: nothing
filter_registrar: off
guess_number: off
http_port: 80
http_proxy:
http_scheme: on
https_port: 443
ice_production_ip: on
inca_ek_version:
intercom_enabled: off
language: English
lcserver1:
logon_wizard: off
max_forwards: 70
network_id_port:
no_dnd: off
ntp_server: time.domain.de
offer_gruu: on
offer_mpo: on
overlap_timeout: 
pcap_trace: off
preselection_nr:
publish_presence: on
refer_brackets: off
register_http_contact: off
ringing_time!: 60
require_prack: on
rtp_port_end: 65534
rtp_port_start: 49152
screen_saver_timeout: 60
session_refresher_client: on
session_timer: 600
#provided by DHCP: setting_server!: http://pbx.domain.de/cgi-bin/asterisk/snomcfg.pl?MAC={mac}
setting_server:
short_form: off
silence_compression: off
sip_proxy:
sip_retry_t1: 500
snmp_port: 161
snmp_trusted_addresses: 172.17.0.1
subscribe_config: on
support_idna: off
syslog_server:
time_24_format: on
time_server:
timezone: GER+1
tone_scheme: GER
firmware_status: http://pbx.domain.de/snom/firmware/snom360firmware.cfg
firmware_interval: 60
update_server:
#update_policy: settings_only
update_policy: auto_update
update_filename:
update_host_b:
update_host_f:
use_backlight: on
user_phone: on
utc_offset: 3600
vlan:
vlan_id:
vlan_qos:
web_language: English
webserver_cert:
webserver_type: http_https
with_flash: on
#
codec1_name1: 8
codec1_name2: 0
codec1_name3: 3
codec1_name4: 18
codec1_name5: 9
codec1_name6: 2
codec1_name7: 4
codec2_name1: 8
codec2_name2: 18
codec2_name3: 8
codec2_name4: 8
codec2_name5: 8
codec2_name6: 8
codec2_name7: 8
codec3_name1: 9
codec3_name2: 8
codec3_name3: 0
codec3_name4: 9
codec3_name5: 9
codec3_name6: 9
codec3_name7: 9
codec4_name1: 2
codec4_name2: 0
codec4_name3: 2
codec4_name4: 2
codec4_name5: 2
codec4_name6: 2
codec4_name7: 2
codec5_name1: 3
codec5_name2: 4
codec5_name3: 9
codec5_name4: 3
codec5_name5: 3
codec5_name6: 3
codec5_name7: 3
codec6_name1: 18
codec6_name2: 9
codec6_name3: 18
codec6_name4: 18
codec6_name5: 18
codec6_name6: 18
codec6_name7: 18
codec7_name1: 4
codec7_name2: 4
codec7_name3: 4
codec7_name4: 4
codec7_name5: 4
codec7_name6: 4
codec7_name7: 4
codec_size1: 20
codec_size2: 20
codec_size3: 20
codec_size4: 20
codec_size5: 20
codec_size6: 20
codec_size7: 20
stun_server1:
stun_server2:
stun_server3:
stun_server4:
stun_server5:
stun_server6:
stun_server7:
stun_binding_interval1:
stun_binding_interval2:
stun_binding_interval3:
stun_binding_interval4:
stun_binding_interval5:
stun_binding_interval6:
stun_binding_interval7:
#
user_realname1!:
user_realname2: 
user_realname3: 
user_realname4: 
user_realname5: 
user_realname6: 
user_realname7: 
user_name1!:
user_name2: 
user_name3: 
user_name4: 
user_name5: 
user_name6: 
user_name7: 
user_host1: pbx.domain.de
user_host2: 
user_host3: 
user_host4: 
user_host5: 
user_host6: 
user_host7: 
user_pname1!:
user_pname2: 
user_pname3: 
user_pname4: 
user_pname5: 
user_pname6: 
user_pname7: 
user_hash1: 
user_hash2: 
user_hash3: 
user_hash4: 
user_hash5: 
user_hash6: 
user_hash7: 
user_q1: 1.0
user_q2: 1.0
user_q3: 1.0
user_q4: 1.0
user_q5: 1.0
user_q6: 1.0
user_q7: 1.0
user_expiry1: 600
user_expiry2: 600
user_expiry3: 600
user_expiry4: 600
user_expiry5: 600
user_expiry6: 600
user_expiry7: 600
user_mailbox1: 800
user_mailbox2: 
user_mailbox3: 
user_mailbox4: 
user_mailbox5: 
user_mailbox6: 
user_mailbox7: 
user_transport1: auto
user_transport2: auto
user_transport3: auto
user_transport4: auto
user_transport5: auto
user_transport6: auto
user_transport7: auto
user_srtp1: off
user_srtp2: off
user_srtp3: off
user_srtp4: off
user_srtp5: off
user_srtp6: off
user_srtp7: off
user_symmetrical_rtp1: off
user_symmetrical_rtp2: off
user_symmetrical_rtp3: off
user_symmetrical_rtp4: off
user_symmetrical_rtp5: off
user_symmetrical_rtp6: off
user_symmetrical_rtp7: off
user_ice1: on
user_ice2: on
user_ice3: on
user_ice4: on
user_ice5: on
user_ice6: on
user_ice7: on
user_moh1: 
user_moh2: 
user_moh3: 
user_moh4: 
user_moh5: 
user_moh6: 
user_moh7: 
user_stream1: 
user_stream2: 
user_stream3: 
user_stream4: 
user_stream5: 
user_stream6: 
user_stream7: 
user_idle_text1: 
user_idle_text2: 
user_idle_text3: 
user_idle_text4: 
user_idle_text5: 
user_idle_text6: 
user_idle_text7: 
user_alert_info1: 
user_alert_info2: 
user_alert_info3: 
user_alert_info4: 
user_alert_info5: 
user_alert_info6: 
user_alert_info7: 
user_pic1: 
user_pic2: 
user_pic3: 
user_pic4: 
user_pic5: 
user_pic6: 
user_pic7: 
user_auto_connect1: off
user_auto_connect2: off
user_auto_connect3: off
user_auto_connect4: off
user_auto_connect5: off
user_auto_connect6: off
user_auto_connect7: off
user_xml_screen_url1: 
user_xml_screen_url2: 
user_xml_screen_url3: 
user_xml_screen_url4: 
user_xml_screen_url5: 
user_xml_screen_url6: 
user_xml_screen_url7: 
user_descr_contact1: on
user_descr_contact2: on
user_descr_contact3: on
user_descr_contact4: on
user_descr_contact5: on
user_descr_contact6: on
user_descr_contact7: on
cc_token1: 
cc_token2: 
cc_token3: 
cc_token4: 
cc_token5: 
cc_token6: 
cc_token7: 
user_uid1!:
user_uid2:
user_uid3:
user_uid4: 
user_uid5: 
user_uid6: 
user_uid7: 
user_dp_str1: |^([1-9][0-9][0-9])|sip:\1@\d|d |([^#]+)#|sip:\1@\d|d
user_dp_str2: 
user_dp_str3: 
user_dp_str4: 
user_dp_str5: 
user_dp_str6: 
user_dp_str7: 
user_dp_exp1: ENUM
user_dp_exp2: 
user_dp_exp3: 
user_dp_exp4: 
user_dp_exp5: 
user_dp_exp6: 
user_dp_exp7: 
user_outbound1: 
user_outbound2: 
user_outbound3: 
user_outbound4: 
user_outbound5: 
user_outbound6: 
user_outbound7: 
# snom360.cfg # The END ###


  • snom-passwd.cfg - Example base passwd config - for use with snomcfg.pl

# /etc/asterisk/snom/snom-passwd.cfg
#
admin_mode_password: 4242
admin_mode_password_confirm: 4242
# define common SIP login secret for line 1 for all phones - can be overriden in snom-MAC.cfg
user_pass1: secret
user_pass2:
user_pass3:
user_pass4:
user_pass5:
user_pass6:
user_pass7:


  • snom-000413230123.cfg - Example SIP line settings config for concrete phone - for use with snomcfg.pl

# /etc/asterisk/snom/snom-000413230123.cfg
#
# Line name in display, here with extension
user_realname1: 123 Bruno Voigt
# SIP login, authentication name:
user_name1: BrunoVoigt
user_pname1: BrunoVoigt
# override setting from snom360.cfg:
user_pass1: verysecret
# Login for phone built in web-server:
http_user: BrunoVoigt
http_pass: mywebsecret


  • snom360firmware.cfg - Specifies firmware to be automatically flashed by phone - snom360.cfg points to this file

# /var/www/snom/firmware/snom360firmware.cfg
bootloader:
firmware: http://pbx.domain.de/snom/firmware/snom360-3.60h-SIP-j.bin
#


Config Files


Example Config File:


user_realname1: 311 John Doe
user_name1: John Doe
user_pname1: John Doe
user_pass1: verysecret
http_user: doejohn
http_pass: mywebsecret
phone_name: testphone
dns_domain: intern.snom.de
dns_server1: 192.168.0.9


redirect_event

  • Valid values: <all>, <busy>, <none>, <time>
  • Default: none
  • Description: Event that causes redirection. <all> redirects always,
  • <none> never, <busy> when the phone is in use and <time> after a timeout.

redirect_time

  • Valid values: e.g. <15>
  • Default: blank
  • Description: Number of seconds after which the phone will redirect the incoming call.

redirect_number

  • Valid values: e.g. <tb,sf> or <sip:tb@sn om.de;q=0.8,sf@snom.de;q=0.9>.
  • Default: blank
  • Description: The redirection target. If the proxy executes the redirection, this may be a comma-separated list of alternate destinations (including probabilities).

redirect_busy_number

  • Valid values: e.g. <tb,sf> or <sip:tb@sn om.de;q=0.8,sf@snom.de;q=0.9>.
  • Default: blank
  • Description: The redirection target when the redirect_event is set to busy.

language

  • Valid values: <English>, <English(UK)>, <Deutsch>, <Francais>, <Italiano>, <Espanol>, <Cestina>, <Nederlands>, <Polski>, <Portugues>, <Slovencina>, <Suomi>, <Svenska>, <Dansk>, <Japanese>, <Chinese>
  • Default: English
  • Description: Selects the language.

web_language

  • Valid values: <English>, <Deutsch>, <Nederlands>, <Suomi>, <Dansk>
  • Default: English
  • Description: Selects the language for the webinterface.

display_method

  • Valid values: <full_contact>, <display_ name>, <user_name>
  • Default: full_contact
  • Description: Selects the display style of SIP URLs.

call_completion

  • Valid values: <true>, <false>
  • Default: false
  • Description: With <true> the phone offers after a busy the option to wait for
  • the other party to become free again and inform the user to make a new call attempt.

auto_dial

  • Valid values: <off>, <2> , <5>, <10>, <15>
  • Default: off
  • Description: Phone begins after 2, 5, 10 or 15 seconds to dial the number already typed in.

block_url_dialing

  • Valid values: <true>, <false>
  • Default: false
  • Description: With <true> the user is not anymore able to change the inputtype for editing chars, it will remain numbers only.

challenge_response

  • Valid values: <true>, <false>
  • Default: true
  • Description: <true> turns on displaying challenge request on the display to the user.

broadsoft_call_control

  • Valid values: <true>, <false>
  • Default: false
  • Description: <true> turns on broadsoft call control feature support.

cmc_feature

  • Valid values: <true>, <false>
  • Default: false
  • Description: When this setting (CMC - Client Matter Code) is turned on, the user is offered a softkey during a call; its use sends a unique code to the server using the INFO message in SIP. This code can later be used for billing or book keeping along with the call ID of that call.

call_waiting

  • Valid values: <true>, <false>
  • Default: false
  • Description: If call waiting indication (CWI) is on (<true>), during a call parallel incoming calls are signaled with a knocking sound and the caller hears a free signal. In case of <false> only one incoming call in parallel can be handled and the caller hears a busy signal.

cw_dialtone

  • Valid values: <true>, <false>
  • Default: false
  • Description: In case of holding a party you will hear a free tone <true> or nothing <false>

conf_hangup

  • Valid values: <true>, <false>
  • Default: false
  • Description: Someone maybe wants the hookswitch to not cancel a call, then it should be set to <false>.

transfer_on_hangup

  • Valid values: <true>, <false>
  • Default: true
  • Description: to switch off transfer on hook functionality, set it to <false>.

contrast

  • Valid values: Between <0> and <15>
  • Default: 8
  • Description: Determines the display contrast, but should not be used, because each phone reacts differently to it dependend by example from the temperature etc. Its better to set it manually.

use_backlight

  • Valid values: <true>, <false>
  • Default: true
  • Description: In case your phone has a backlit display (snom105/220) the light can be switched off completely with <false>.

image_src

  • Valid values: <true>, <false>
  • Default: false
  • Description: The pictures for the internal web interface are taken from the phone (<false>) or loaded via the Internet (<true>). Thus if you have a slow connection to the remote phone, <true> will significantly speed up the displaying of the phones webpages.

guess_number

  • Valid values: <true>, <false>
  • Default: true
  • Description: Number guessing or auto completion while typing in numbers to dial.

deny_all_feature

  • Valid values: <true>, <false>
  • Default: true
  • Description: If set to <true>, the Deny All option is offered on incoming calls. Otherwise it is disabled.

admin_mode

  • Valid values: <true>, <false>
  • Default: true
  • Description: Administrator mode (all settings are accessible) or user mode (only a few basic settings are accessible).

admin_mode_password

  • Valid values: Numbers and character strings of unspecified length, e.g. <1234>, <0fg5gju>, <nhcndeve>
  • Default: 0000
  • Description: The password for entering the Administrator mode on the snom phone.

callpickup_dialoginfo

  • Valid values: <true>, <false>
  • Default: false
  • Description: If your phone should be able to get informed of calls to be picked up via the dialoginfo SIP message and to pickup calls, set this setting to <true>. SIP Line Settings The SIP stack on the phone supports seven lines, which are identified with the numbers 1 through 7. ine-specific settings are appended with the line number.

user_realname 1-7

  • Valid values: e.g. <Jim Testa>
  • Default: blank
  • Description: This is the real name of the user that is displayed for line x.

user_name 1-7

  • Valid values: e.g. for <sip: abc@company.de>, the user_name[1-7] would be abc.
  • Default: blank
  • Description: The account name for line x. This is a mandatory setting to set up a SIP line!

user_host 1-7

  • Valid values: e.g. for <sip: abc@company.de> the user_host would be <company.de>.
  • Default: blank
  • Description: The registrar for line x. This is also a mandatory setting to set up an SIP line!

user_pass 1-7 , user_hash 1-7

  • Valid values: e.g. <company, 456876, answerIs42, a6 4bd7c29de0f23ba64bd7c29de0f23b0>
  • Default: blank
  • Description: A setting for registrar authentication. The username and the password can usually be
set up on the proxy and registrar, user_hash is a MD5 encrypted password, which can be used
instead of user_pass.

user_q 1-7

  • Valid values: Values between <0.0> and <1.0>
  • Default: 1.0
  • Description: The probability of the registration for line x. This probability is used by some proxies to call the registered phones one by one (sequential and parallel forking proxy).

user_dp_str 1-7

  • Valid values: dialplan regular expression, see snom4S proxy manual
  • Default: blank
  • Description: dialplan per line

user_transport 1-7

  • Valid values: <auto>, <udp>, <tcp>, <tls>
  • Default: auto
  • Description:The IP protocol which should be used for this line.

user_expiry 1-7

  • Valid values: <60>, <600>, <3600>, <7200>, <28800>, <86400>
  • Default: 86400 (one day)
  • Description: The proposed expiry time of the registration in seconds for line x.

user_mailbox1-7

  • Valid values: e.g. <abc> or <sip: abc@mailbox.bla.com>.
  • Default: Blank
  • Description: The SIP url of the mailbox associated with line x.

user_ice 1-7

  • Valid values: <true>, <false>
  • Default: false
  • Description: Offer ICE <true> or not <false> associated with line x.

user_ringer 1-7

  • Valid values: <Ringer1>, <Ringer2>, <Ringer3>, <Ringer4>, <Ringer5>, <Ringer6>, <Ringer7>
  • Default: Ringer1
  • Description: The ring tone to be used if a call comes to that specific line. See ring_source also.

user_moh 1-7

  • Valid values: e.g. <sip:mh@snom.de>, <mh>, <192.168.0.40>
  • Default: blank
  • Description: SIP Address of music on hold server of that specific line. The music is automatically played if this line is on hold.

user_stream 1-7

  • Valid values: e.g. <http:// www.radioxyz.de>, <http: //192.168.0.40>
  • Default: blank
  • Description: HTTP URL of a music streaming server of that specific line. The music is automatically played if this line is on hold.

user_srtp 1-7

  • Valid values: <true>, <false>
  • Default: false
  • Description: Use SRTP for audio connections <true> or don t <false>. This option is valid for snom190 only.

active_line

  • Valid values: 1-7
  • Default: 1
  • Description: Number of the active SIP line. This is the line that is used as the originator of an outgoing call. SIP Stack Settings

sip_postfix

  • Valid values: e.g. <proxy.company.de>
  • Default: blank
  • Description: Register postfix, which is automatically chosen as registrar if the logon wizard is used to logon an SIP user and the registrar has not been set up through the logon wizard.

user_outbound 1-7

  • Valid values: e.g. <proxy.company.de>, <192.168.0.24>
  • Default: blank
  • Description: Address or path of the outbound proxy per SIP line that is used for calling.

route_proxy

  • Valid values: <true>, <false>
  • Default: false
  • Description: Treat as initial route (<true>), <false> for address only

nat_detection

  • Valid values: <auto>, <upnp>, <stunclient>, <static>, <off>
  • Default: auto
  • Description: NAT detection according to your network.

stun_server

  • Valid values: e.g. <217.115.141.99: 5062>
  • Default: blank
  • Description: IP address of a STUN server (hostname:port) if you have one.

stun_binding_interval

  • Valid values: Integer values e.g. 5, 10.
  • Default: blank
  • Description: STUN binding interval in seconds.

rtp_port_start

  • Valid values: Valid port numbers.
  • Default: blank
  • Description: First dynamic RTP port

rtp_port_end

  • Valid values: Valid port numbers.
  • Default: blank
  • Description: Last dynamic RTP port

network_id_name

  • Valid values: Valid name.
  • Default: blank
  • Description: Network identity (hostname)

network_id_port

  • Valid values: Valid port number.
  • Default: blank
  • Description: Network identity (port)

use_nw_port

  • Valid values: <true>, <false>
  • Default: false
  • Description: Use local SIP port (<false>) or network port (<true>)

sip_retry_t1, sip_retry_t2

  • Valid values: Integer values, e.g. <500>.
  • Default: 500, 4000
  • Description: The time for resending SIP messages in milliseconds. They should be set to 500 and 4000 respectively.

session_timer

  • Valid values: Integer values, e.g. <2400>, <3200>.
  • Default: 3600
  • Description: Default time for session timer in seconds. 0 disables the session timer, 3600 is a reasonable value.

dirty_host_ttl

  • Valid values: Integer values, e.g. <60>, <120>.
  • Default: 0
  • Description: Time in seconds until the phone waits before it repeats a non answered request again.

max_forwards

  • Valid values: Integer values, e.g. <40>, <60>.
  • Default: 70
  • Description: The maximum number of hops allowed for an SIP request/ response.

enum_suffix

  • Valid values: e.g. <e164.arpa>
  • Default: e164.arpa
  • Description: Route domain for ENUM,

tcp_threshold

  • Valid values: <auto>, <tcp>, <udp>
  • Default: auto
  • Description: Set transport layer for SIP messages either to TCP, UDP or automatic.

trace

  • Valid values: <true>, <false>
  • Default: true
  • Description: Enable tracing output of the current protocol stack.

logon_wizard

  • Valid values: <true>, <false>
  • Default: false
  • Description: Logon wizard and mobility features available in snom key menu.

user_phone

  • Valid values: <true>, <false>
  • Default: true
  • Description: Use user=phone in SIP signalling.

use_mapped

  • Valid values: <true>, <false>
  • Default: true
  • Description: Use mapped address.

publish_presence

  • Valid values: <true>, <false>
  • Default: false
  • Description: Publish presence information on <true>.

refer_policy

  • Valid values: <auto>, <refer>, <bye>
  • Default: Auto
  • Description: Choose between REFER and BYE/Also method for initiating a transfer. Auto makes an automatic selection depending on the capabilities indicated by the other party.

refer_brackets

  • Valid values: <true>, <false>
  • Default: false
  • Description: In case you want to have your REFER framed with brackets set it to <true>.

require_prack

  • Valid values: <true>, <false>
  • Default: true
  • Description: In case PRACK is required, set to <true>, else <false>.

symmetrical_rtp

  • Valid values: <true>, <false>
  • Default: true
  • Description: Switch off symmetrical RTP support with <false>, else <true>.

offer_gruu

  • Valid values: <true>, <false>
  • Default: true
  • Description: This setting is used to toggle the support for GRUU (Globally Routable User agent URL s) in SIP.

offer_mpo

  • Valid values: <true>, <false>
  • Default: false
  • Description: Using this setting the user can turn the Media Path Optimization on or off.

challenge_dialog

  • Valid values: <true>, <false>
  • Default: false
  • Description: Turning this setting on <true> enables a challenge response for dialog messages.

challenge_reboot

  • Valid values: <true>, <false>
  • Default: false
  • Description: This setting enables/disables a challenge response for remote reboot request.

challenge_checksync

  • Valid values: <true>, <false>
  • Default: false
  • Description: Turning this setting on <true> enables a challenge response for Check-Sync.

Content By Andrew Latham - lathama at lathama dot com
Scripts By Bruno Voigt - VoigtBruno -at- aol -dot- com

See also:


Created by: lathama, Last modification: Sun 24 of Jun, 2012 (20:14 UTC) by admin
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+