start using asterisk/network.h for network related headers.
[asterisk/asterisk.git] / doc / unistim.txt
1 This is a channel driver for Unistim protocol. You can use a least a Nortel i2002, i2004 and i2050.
2 Following features are supported : Send/Receive CallerID, Redial, SoftKeys, SendText(), Music On Hold, Message Waiting Indication (MWI), Distinctive ring, Transfer, Threeway call, History, Forward, Dynamic SoftKeys.
3
4 How to configure the i2004 :
5 - Power on the phone
6 - Wait for message "Nortel Networks"
7 - Press quickly the four buttons just below the LCD screen, in sequence from left to right
8 - If you see "Locating server", power off or reboot the phone and try again
9 - DHCP : 0
10 - SET IP : a free ip of your network
11 - NETMSK / DEF GW : netmask and default gateway
12 - S1 IP : ip of the asterisk server
13 - S1 PORT : 5000
14 - S1 ACTION : 1
15 - S1 RETRY COUNT : 10
16 - S2 : same as S1
17
18 How to place a call :
19 - The line=> entry in unistim.conf does not add an extension in asterisk by default.
20   If you want to do that, add extension=line in your phone context.
21 - if you have this entry on unistim.conf :
22  [violet]
23  device=006038abcdef
24  line => 102
25
26  then use exten => 2100,1,Dial(USTM/102@violet)
27
28 - You can display a text with :
29  exten => 555,1,SendText(Sends text to client. Greetings) 
30
31 Rebooting a Nortel phone:
32 - Press mute,up,down,up,down,up,mute,9,release(red button)
33
34 Distinctive ring :
35 - You need to append /r to the dial string.
36 - The first digit must be from 0 to 7 (inclusive). It's the 'melody' selection.
37 - The second digit (optional) must be from 0 to 3 (inclusive). It's the ring volume. 0 still produce a sound.
38  Select the ring style #1 and the default volume :
39  exten => 2100,1,Dial(USTM/102@violet/r1)
40  Select the ring style #4 with a very loud volume :
41  exten => 2100,1,Dial(USTM/102@violet/r43)
42
43 Country code :
44 - You can use the following codes for country= (used for dial tone)
45   us fr au nl uk fi es jp no at nz tw cl se be sg il br hu lt pl za pt ee mx in de ch dk cn
46 - If you want a correct ring, busy and congestion tone, you also need a valid entry in 
47   indications.conf and check if res_indications.so is loaded.
48   language= is also supported but it's only used by Asterisk (for more informations
49   see http://www.voip-info.org/wiki/view/Asterisk+multi-language ). The end user interface of the phone
50   will stay in english.
51
52 Bookmarks, Softkeys
53  - Layout :
54  |--------------------|
55  |  5            2    |
56  |  4            1    |
57  |  3            0    |
58  - When the second letter of bookmark= is @, then the first character is used for positioning this entry
59  - If this option is omitted, the bookmark will be added to the next available sofkey
60  - Also work for linelabel (example : linelabel="5@Line 123")
61  - You can change a softkey programmatically with SendText(@position@icon@label@extension) ex: SendText(@1@55@Stop Forwd@908)
62
63 Autoprovisioning :
64 - This feature must only be used on a trusted network. It's very insecure : all unistim phones
65   will be able to use your asterisk pbx.
66 - You must add an entry called [template]. Each new phones will be based on this profile.
67 - You must set a least line=>. This value will be incremented when a new phone is registred.
68   device= must not be specified. By default, the phone will asks for a number. It will be added into
69   the dialplan. Add extension=line for using the generated line number instead.
70  Example :
71  [general]
72  port=5000
73  autoprovisioning=yes
74
75  [template]
76  line => 100
77  bookmark=Support@123  ; Every phone will have a softkey Support
78
79 - If a first  phone have a mac = 006038abcdef, a new device named USTM/100@006038abcdef will be created.
80 - If a second phone have a mac = 006038000000, it will be named USTM/101@006038000000 and so on.
81
82 - When autoprovisioning=tn, new phones will ask for a tn, if this number match a tn= entry in a device,
83   this phone will be mapped into.
84  Example:
85  [black]
86  tn=1234
87  line => 100
88
89 - If a user enter TN 1234, the phone will be known as USTM/100@black.
90
91 History :
92 - Use the two keys located in the middle of the Fixed feature keys row (on the bottom of the phone)
93   to enter call history.
94 - By default, chan_unistim add any incoming and outgoing calls in files (/var/log/asterisk/unistimHistory)
95   It can be a privacy issue, you can disable this feature by adding callhistory=0. If history files were created,
96   you also need to delete them. callhistory=0 will NOT disable normal asterisk CDR logs.
97
98 Forward :
99 - This feature requires chan_local (loaded by default)
100
101 Generic asterisk features :
102  You can use the following entries in unistim.conf
103  - Billing : accountcode amaflags
104  - Call Group : callgroup pickupgroup (untested)
105  - Music On Hold : musiconhold
106  - Language : language (see section Coutry Code)
107  - RTP NAT : nat (control ast_rtp_setnat, default = 0. Obscure behaviour)
108
109 Trunking :
110 - It's not possible to connect a Nortel Succession/Meridian/BCM to Asterisk via chan_unistim. Use either E1/T1 trunks, or buy UTPS (UNISTIM Terminal Proxy Server) from Nortel. 
111
112 Wiki, Additional infos, Comments :
113 - http://www.voip-info.org/wiki-Asterisk+UNISTIM+channels
114
115 *BSD :
116 - Comment #define HAVE_IP_PKTINFO in chan_unistim.c
117 - Set public_ip with an IP of your computer
118 - Check if unistim.conf is in the correct directory
119
120 Issues :
121 - As always, NAT can be tricky. If a phone is behind a NAT, you should port forward UDP 5000 (or change [general] port= in unistim.conf) and UDP 10000 (or change [yourphone] rtp_port=)
122 - Only one phone per public IP (multiple phones behind the same NAT don't work). You can either :
123    - Setup a VPN
124    - Install asterisk inside your NAT. You can use IAX2 trunking if you're master asterisk is outside.
125 - If asterisk is behind a NAT, you must set [general] public_ip= with your public IP. If you don't do that or the bindaddr is invalid (or no longer valid, eg dynamic IP), phones should be able to display messages but will be unable to send/receive RTP packets (no sound)
126 - Don't forget : this work is based entirely on a reverse engineering, so you may encounter compatibility issues. At this time, I know three ways to establish a RTP session. You can modify [yourphone] rtp_method= with 0, 1, 2 or 3. 0 is the default method, should work. 1 can be used on new firmware (black i2004) and 2 on old violet i2004. 3 can be used on black i2004 with chrome.
127 - If you have difficulties, try unistim debug and set verbose 3 on the asterisk CLI. For extra debug, uncomment #define DUMP_PACKET 1 and recompile chan_unistim.