Adding Unsupported Phones
From Taridium
While you can easily connect any SIP 2.0 compliant endpoint to ipbx by entering user account information manually, it sometimes is easier to use automatic provisioning.
ipbx's provisioning engine is capable of provisioning nearly any type of SIP/IAX phone that supports text based configuration files. Pay close attention to read/write permissions (httpd/apache process) when using non-standard provisioning paths. Any of the paths used by already supported phones should have the correct permissions - if not simply re-configure the type of phone.
The example below shows how to add support for Mitel SIP 5330 phones. You might need to adjust some parameters when using with different Mitel SIP phone models.
Contents |
Adding support for Mitel Phones
If you haven't already enabled TFTP, provisioning it is easiest to for example enable auto provisioning for Cisco phones since these phones use TFTP as default provisioning method.
Creating a Mitel 5330 Template
In order for auto provisioning to work you will have to create a SIP channel template. Navigate to System → SIP Channels → Templates and click on add template. You can use a number of variables within your provisioning path(s) and template(s), for further details check Device Template Variables.
- Load an existing template, for example Aastra 5xi Series, adjust any parameters if necessary.
- Enter a new name for your template, e.g.: Mitel 5330
- Edit Destination 1 and enter /tftpboot/MN_%%MAC%%.cfg
- Click on add Template
- Once the template has been added, click on Template 1 → edit button to open the template editor and copy & paste the following template definition:
<Parameter Model="5330"> <dhcpenable>1</dhcpenable> <tftp_config>1</tftp_config> <pppoe_enable>0</pppoe_enable> <tftp_task_enable>1</tftp_task_enable> <tftp_upgrade>0</tftp_upgrade> <http_upgrade>0</http_upgrade> <outbound_state>0</outbound_state> <local_sip_port>5060</local_sip_port> <tls_port>5061</tls_port> <tos>0</tos> <e802_priority>-1</e802_priority> <vlan_id>-1</vlan_id> <host_name>MITEL-%%username%%</host_name> <domain>-example.com</domain> <addr_type>0</addr_type> <hot_line>0</hot_line> <hot_address>operator@example.com</hot_address> <hot_addr_type>0</hot_addr_type> <tls_private_url></tls_private_url> <tls_certificate_url></tls_certificate_url> <tls_ca_cert_url></tls_ca_cert_url> <tls_root_cert_url></tls_root_cert_url> <tls_certificate></tls_certificate> <tls_ca_cert></tls_ca_cert> <tls_root_cert></tls_root_cert> <poundkeydial>1</poundkeydial> <dialtonekey>12</dialtonekey> <htmlpuseraccess>1</htmlpuseraccess> <remote_reboot>1</remote_reboot> <checkpeercert>0</checkpeercert> <sipkeepalive>1</sipkeepalive> <!-- default queue information feed --> <rss_feed>http://%%eth0%%/ipbx/xml/rss-queue.xml</rss_feed> <host_ip></host_ip> <video_ip></video_ip> <sntp>pool.ntp.org</sntp> <time_zone>-5</time_zone> <auth_method>2</auth_method> <register_expire>7200</register_expire> <emerg_number></emerg_number> <emerg_ip>0.0.0.0</emerg_ip> <emerg_port>5060</emerg_port> <audio_codec>5</audio_codec> <audio_pkt_size>20</audio_pkt_size> <video_codec>0</video_codec> <dtmf_type>0</dtmf_type> <dtmf_payload>101</dtmf_payload> <advisorymsg>0</advisorymsg> <reasons>0</reasons> <other_reason></other_reason> <do_not_disturb>0</do_not_disturb> <noans_fwd_mode>0</noans_fwd_mode> <try_ring_nums>10</try_ring_nums> <noans_fwd_addr></noans_fwd_addr> <beep_on_hold>1</beep_on_hold> <on_hold_alert>60</on_hold_alert> <system_mode>0</system_mode> <pppoe_login></pppoe_login> <pppoe_passwd>******</pppoe_passwd> <callCountIn>0</callCountIn> <callCountOut>0</callCountOut> <discovery>0</discovery> <pbIndex>0</pbIndex> <busy_fwd_mode>0</busy_fwd_mode> <busy_fwd_addr></busy_fwd_addr> <always_fwd_mode>0</always_fwd_mode> <always_fwd_addr></always_fwd_addr> <pcport>0</pcport> <lanport>0</lanport> <lcd>5</lcd> <lcd_brightness>9</lcd_brightness> <rdkw1></rdkw1> <rdringtype1>0</rdringtype1> <rdvmail1>0</rdvmail1> <rdblock1>0</rdblock1> <rdkw2></rdkw2> <rdringtype2>0</rdringtype2> <rdvmail2>0</rdvmail2> <rdblock2>0</rdblock2> <rdkw3></rdkw3> <rdringtype3>0</rdringtype3> <rdvmail3>0</rdvmail3> <rdblock3>0</rdblock3> <rdkw4></rdkw4> <rdringtype4>0</rdringtype4> <rdvmail4>0</rdvmail4> <rdblock4>0</rdblock4> <rdkw5></rdkw5> <rdringtype5>0</rdringtype5> <rdvmail5>0</rdvmail5> <rdblock5>0</rdblock5> <dtringtype1>0</dtringtype1> <dtringtype2>0</dtringtype2> <dtringtype3>0</dtringtype3> <dtringtype4>0</dtringtype4> <dtringtype5>0</dtringtype5> <dtringtype6>0</dtringtype6> <dtringtype7>0</dtringtype7> <dtringtype8>0</dtringtype8> <dtringtype9>0</dtringtype9> <dtringtype10>0</dtringtype10> <dtringtype11>0</dtringtype11> <dtringtype12>0</dtringtype12> <http_task_enable>1</http_task_enable> <https_task_enable>0</https_task_enable> <httpport>80</httpport> <httpsport>443</httpsport> <telnet_task_enable>1</telnet_task_enable> <voicemail_ringnum>4</voicemail_ringnum> <gruu_ctl>1</gruu_ctl> <proxyrequire_ctl>0</proxyrequire_ctl> <fwEnable>0</fwEnable> <fwWanurl></fwWanurl> <sym_udp>0</sym_udp> <stunip>213.192.59.75</stunip> <fwWanDurl></fwWanDurl> <fwMode>0</fwMode> <start_port>18000</start_port> <end_port>20000</end_port> <multi_user_enable>0</multi_user_enable> <upgrade>0</upgrade> <bksrvtm>3</bksrvtm> <ntfcfg>0</ntfcfg> <lancode>en_US</lancode> <tonecode>US</tonecode> <dsmode>1</dsmode> <dsmonth>3</dsmonth> <dsweek>2</dsweek> <dsday>1</dsday> <dsemonth>11</dsemonth> <dseweek>1</dseweek> <dseday>1</dseday> <ds_transition_time>2</ds_transition_time> <flashVer>201</flashVer> <http_download>sipdnld.mitel.com</http_download> <tftp>%%eth0%%</tftp> <downloadtype>1</downloadtype> <dialpl></dialpl> <gtEnable>0</gtEnable> <dtimer>3</dtimer> <autoanswer>0</autoanswer> <ringPitch>0</ringPitch> <keysys_enable>0</keysys_enable> <pbName1></pbName1> <pbaddr1></pbaddr1> <pbName2></pbName2> <pbaddr2></pbaddr2> <pbName3></pbName3> <pbaddr3></pbaddr3> <pbName4></pbName4> <pbaddr4></pbaddr4> <pbName5></pbName5> <pbaddr5></pbaddr5> <pbName6></pbName6> <pbaddr6></pbaddr6> <pbName7></pbName7> <pbaddr7></pbaddr7> <pbName8></pbName8> <pbaddr8></pbaddr8> <pbName9></pbName9> <pbaddr9></pbaddr9> <pbName10></pbName10> <pbaddr10></pbaddr10> <pbName11></pbName11> <pbaddr11></pbaddr11> <pbName12></pbName12> <pbaddr12></pbaddr12> <pbName13></pbName13> <pbaddr13></pbaddr13> <pbName14></pbName14> <pbaddr14></pbaddr14> <pbName15></pbName15> <pbaddr15></pbaddr15> <pbName16></pbName16> <pbaddr16></pbaddr16> <pbName17></pbName17> <pbaddr17></pbaddr17> <pbName18></pbName18> <pbaddr18></pbaddr18> <pbName19></pbName19> <pbaddr19></pbaddr19> <pbName20></pbName20> <pbaddr20></pbaddr20> <pbName21></pbName21> <pbaddr21></pbaddr21> <pbName22></pbName22> <pbaddr22></pbaddr22> <pbName23></pbName23> <pbaddr23></pbaddr23> <pbName24></pbName24> <pbaddr24></pbaddr24> <pbName25></pbName25> <pbaddr25></pbaddr25> <pbName26></pbName26> <pbaddr26></pbaddr26> <pbName27></pbName27> <pbaddr27></pbaddr27> <pbName28></pbName28> <pbaddr28></pbaddr28> <pbName29></pbName29> <pbaddr29></pbaddr29> <pbName30></pbName30> <pbaddr30></pbaddr30> <pbName31></pbName31> <pbaddr31></pbaddr31> <pbName32></pbName32> <pbaddr32></pbaddr32> <pbName33></pbName33> <pbaddr33></pbaddr33> <pbName34></pbName34> <pbaddr34></pbaddr34> <pbName35></pbName35> <pbaddr35></pbaddr35> <pbName36></pbName36> <pbaddr36></pbaddr36> <pbName37></pbName37> <pbaddr37></pbaddr37> <pbName38></pbName38> <pbaddr38></pbaddr38> <pbName39></pbName39> <pbaddr39></pbaddr39> <pbName40></pbName40> <pbaddr40></pbaddr40> <pbName41></pbName41> <pbaddr41></pbaddr41> <pbName42></pbName42> <pbaddr42></pbaddr42> <pbName43></pbName43> <pbaddr43></pbaddr43> <pbName44></pbName44> <pbaddr44></pbaddr44> <pbName45></pbName45> <pbaddr45></pbaddr45> <pbName46></pbName46> <pbaddr46></pbaddr46> <pbName47></pbName47> <pbaddr47></pbaddr47> <pbName48></pbName48> <pbaddr48></pbaddr48> <pbName49></pbName49> <pbaddr49></pbaddr49> <pbName50></pbName50> <pbaddr50></pbaddr50> <pbName51></pbName51> <pbaddr51></pbaddr51> <pbName52></pbName52> <pbaddr52></pbaddr52> <pbName53></pbName53> <pbaddr53></pbaddr53> <pbName54></pbName54> <pbaddr54></pbaddr54> <pbName55></pbName55> <pbaddr55></pbaddr55> <pbName56></pbName56> <pbaddr56></pbaddr56> <pbName57></pbName57> <pbaddr57></pbaddr57> <pbName58></pbName58> <pbaddr58></pbaddr58> <pbName59></pbName59> <pbaddr59></pbaddr59> <pbName60></pbName60> <pbaddr60></pbaddr60> <snmp>0</snmp> <srtp>0</srtp> <pkDescription> <Key Line="25" Fea="6" Des="Line 1" Addr="" Addr2="" Mode="1" Mode2="1" UserID="%%username%%"></Key> <Key Line="26" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="27" Fea="7" Des="Line 2" Addr="" Addr2="" Mode="1" Mode2="1" UserID="%%username%%"></Key> <Key Line="28" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="29" Fea="8" Des="Line 3" Addr="" Addr2="" Mode="1" Mode2="1" UserID="%%username%%"></Key> <Key Line="30" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="31" Fea="9" Des="Line 4" Addr="" Addr2="" Mode="1" Mode2="1" UserID="%%username%%"></Key> <Key Line="32" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="33" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="34" Fea="17" Des="DND" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="35" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="36" Fea="4" Des="Headset" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="37" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="38" Fea="2" Des="Call Logs" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="39" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="40" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="41" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="42" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="43" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="44" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="45" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="46" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="47" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="48" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="49" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="50" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="51" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="52" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="53" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="54" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="55" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="56" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="57" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="58" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="59" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="60" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="61" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="62" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="63" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="64" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="65" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="66" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="67" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="68" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="69" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="70" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="71" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> <Key Line="72" Fea="0" Des="" Addr="" Addr2="" Mode="1" Mode2="1" UserID=""></Key> </pkDescription> <webdialurl></webdialurl> <cw_tone>1</cw_tone> <missedcallsctl>1</missedcallsctl> <callforwardctl>1</callforwardctl> <lcdbacklightctl>1</lcdbacklightctl> <time_format>1</time_format> <csta_enable>0</csta_enable> <csta_passwd>******</csta_passwd> <cfg_poll_timer>1440</cfg_poll_timer> <reboot_phone>1</reboot_phone> <firmware_timer>1440</firmware_timer> <firmware_abs_timer_hr>23</firmware_abs_timer_hr> <firmware_abs_timer_min>59</firmware_abs_timer_min> <firmware_abs_enable>1</firmware_abs_enable> <installer_passcode></installer_passcode> <user_passwd>5d41402abc4b2a76b9719d911017c592</user_passwd> <web_logo1></web_logo1> <sip_mode>sip</sip_mode> <voicemail_key>*86</voicemail_key> <html_enable>1</html_enable> <html_filename></html_filename> <facDef>90</facDef> <user_list> <User State="1" ID="%%username%%" DispName="%%calleridname%%" Pwd="%%secret%%" AuthName="%%username%%" Realm="" RegSvr="%%eth0%%" RegPort="5060" RegScheme="2" ProxySvr="%%eth0%%" ProxyPort="5060" ProxyScheme="2" VMSvr="" VMPort="5060" VMScheme="2" OutSvr="" OutPort="5060" OutCtr="0" Ring="1" Line="0" EventSvr="" EventPort="5060" EventScheme="2" NatMode="0" NatType="option" NatIp="0"></User> </user_list> <cfg_version>7.1</cfg_version> </Parameter>
Pay attention to the %%eth0%% variable and whether it corresponds to the correct network interface.
Configuring DHCP
The Mitel phones will require some modifications to your DHCP configuration. Include the following to the top portion of your /etc/dhcpd.conf file:
option option-128 code 128 = ip-address; option option-130 code 130 = text; option option-132 code 132 = string; option option-133 code 133 = string; option option-129 code 129 = ip-address;
Add the section below to your subnet section:
subnet 192.168.55.0 netmask 255.255.255.0 { .... class "MITEL" { match if substring(hardware, 1, 3) = 08:00:0F; option option-130 "MITEL IP PHONE"; option option-132 ""; option option-133 "6"; option option-128 192.168.35.200; # your ipbx option option-129 192.168.35.200; # your ipbx } .... }
restart your DHCP service using the following command
[root@ipbx ~]# service dhcpd restart
to activate the changes.
Add a New Mitel User
Go to System → User → add user and create a new user using the newly created Mitel 5330 channel template adding the correct MAC address for the phone. Check System → Devices for the generated XML template by clicking on view file 1.
Plug-in your phone and watch it re-configure itself.
Note: Most SIP capable Mitel phones are shipped with the default MiNET protocol enabled. Press the * and 7 keys simultaneously during boot until the phone prompts you to switch to the SIP protocol.