Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

616 lines
27 KiB

  1. -------------------------------------------
  2. Notes on phonebook changes between versions
  3. -------------------------------------------
  4. Notes on phonebook changes for NT5/Connections
  5. ----------------------------------------------
  6. PBK.LIB is a private static library shared by RASDLG.DLL, RASAPI32.DLL, and
  7. RASMON.EXE. It's purpose is to encapsulate phonebook file manipulation,
  8. presenting an easy to handle linked-list-of-phonebook-entry structures to the
  9. caller along with appropriate helper routines. The library provides a finer
  10. granularity of control than the public Win32 RasGetEntryProperties API which
  11. depends on this library.
  12. PBK.LIB has existed for several versions of the product. It includes code to
  13. automatically upgrade entries from previous versions on the fly. Converting
  14. them to the current format when read, and writing them in the current format
  15. when written. This will carry forward to Connections.
  16. Following is a summary of conversions from NT4 to NT5/Connections:
  17. * "Guid" is generated and assigned to each entry on creation. Upgrade
  18. adds the Guid if it doesn't exist.
  19. * AreaCode, CountryCode, CountryID, and UseDialingRules are now associated
  20. with each individual phone number instead of one for the set. This
  21. requires changes to the separate phonenum.lib and possibly to RASAPI32.
  22. Upgrade will duplicate any existing single setting for each alternate
  23. number.
  24. * Comments are now associated with each individual phone number instead of
  25. one Description for the entry. Upgrade will associate any existing
  26. Description with the first phone number.
  27. * New "SharedPhoneNumbers" flag identifies whether phone number for first
  28. link is same as all subsequent links. For RASAPI32's convenience, the
  29. phone numbers will be written to subsequent links anyway, but this flag
  30. eliminates the need to compare lists of phone numbers each time the
  31. entry is read, and returns user to what he entered in a case where he
  32. explicitly enters the same phone numbers for each device. Upgrade will
  33. calculate the value of the flag once and it will be maintained by the
  34. UI.
  35. * New "ShowMonitorIconInTaskbar", "PreviewUserPw", "PreviewPhoneNumber"
  36. and "DisplayProgress" flags per UI prototype. Upgrade will set the
  37. flags according to the corresponding global user preference settings.
  38. They will thereafter have fixed defaults.
  39. * New "TryNextAlternateOnFail" flags per device. RASAPI must provide the
  40. functionality.
  41. * AR_Custom bit added to AuthRestrictions for EAP.
  42. * DE_Ipsec* codes added. Old 'DE_Weak' renamed DE_Mppe40bit. Old
  43. 'DE_Strong' renamed 'DE_Mppe128bit'.
  44. * dwScriptMode is replaced with fScriptXxx and fScriptXxxTerminal flags.
  45. This is because the UI now gives user control over whether the terminal
  46. window appears with the script running. This used to occur always on
  47. "after" scripts and never on "before" scripts.
  48. * New "PrerequisiteEntry" key storing name of WAN entry VPN depends on for
  49. double dialing.
  50. * On upgrade of old entries, "OverridePref" bits for redial
  51. attepts/seconds, idle disconnect seconds, and redial on link failure are
  52. set, if clear, and the field value set to the user preference settings.
  53. * Port/Device
  54. TAPI tries to be a device-centric model, while RASMAN is a
  55. port-centric model. In NT4 the phonebook in port-centric. While the
  56. NT5/Connections UI is device-centric, i.e. port names are no longer
  57. displayed *sigh*, the phonebook will remain as in NT4 with regard to
  58. port/device handling EXCEPT that the lookup of the PBPORT associated
  59. with a pair of Port/Device keys will be by Device, rather than by
  60. Port.
  61. Regarding ISDN B-channel naming, the NT5/Connections UI will not
  62. distinguish between two B-channels by port name as was done in the
  63. past. All B-channels on the same adapter will have the same device
  64. name.
  65. RASMAN is the one responsible for mapping ISDN B-channel ports to any
  66. available ISDN B-channel, i.e. ignoring the explicit ISDNx port
  67. written in the phonebook.
  68. * MXS modems are retired. Any MXS modem entries are assigned to first
  69. Unimodem port.
  70. Entry format change details:
  71. [ENTRY] ;same
  72. Type=<RASET-code> ;New
  73. Description=<description> ;Deleted, becomes "Comment" of 1st phone#
  74. AutoLogon=<1/0> ;same
  75. DialParamsUID=<unique-ID> ;same, or need upgrade to GUID?
  76. Guid=<guid> ;New, for use by ShaunCo across systems
  77. UsePwForNetwork=<1/0> ;Deleted, unused
  78. ServerType=<ST-code> ;Deleted, unused
  79. BaseProtocol=<BP-code> ;same
  80. Authentication=<AS-code> ;same
  81. ExcludedProtocols=<NP-bits> ;same
  82. LcpExtensions=<1/0> ;same
  83. DataEncryption=<DE-code> ;same, but new codes for IpSec
  84. SkipNwcWarning=<1/0> ;same
  85. SkipDownLevelDialog=<1/0> ;same
  86. SwCompression=<1/0> ;same
  87. UseCountryAndAreaCodes=<1/0> ;Deleted, becomes "UseDRules" of 1st phone#
  88. AreaCode=<string> ;Deleted, becomes "AreaCode" of 1st phone#
  89. CountryID=<id> ;Deleted, becomes "CountryID" of 1st #
  90. CountryCode=<code> ;Deleted, becomes "CountryCode" of 1st #
  91. ShowMonitorIconInTaskBar=<1/0> ;New
  92. CustomAuthKey=<EAP-code> ;New, an option read from registry
  93. CustomAuthData=<hexdump> ;New, blob returned by custom auth DLL
  94. AuthRestrictions=<AR-code> ;same, but AR_Custom added for EAP
  95. OverridePref=<RASOR-bits> ;same, but all existing bits set by default
  96. DialMode=<DM-code> ;same, but RASEDM_DialFirstAvailable added
  97. DialPercent=<0-100> ;same
  98. DialSeconds=<1-n> ;same
  99. HangUpPercent=<0-100> ;same
  100. HangUpSeconds=<1-n> ;same
  101. RedialAttempts=<n> ;same
  102. RedialSeconds=<n> ;same
  103. IdleDisconnectSeconds=<-1,0-n> ;same
  104. RedialOnLinkFailure=<1/0> ;same
  105. CallbackMode=<1/0> ;same
  106. CustomDialDll=<path> ;same, i.e. NYI
  107. CustomDialFunc=<func-name> ;same, i.e. NYI
  108. AuthenticateServer=<1/0> ;same
  109. SecureLocalFiles=<1/0> ;Deleted, replaced with...
  110. ShareMsFilePrint=<1/0> ;New
  111. BindMsNetClient=<1/0> ;New
  112. SharedPhoneNumbers=<1/0> ;New
  113. PrerequisiteEntry=<entry-name> ;New
  114. PreviewUserPw=<1/0> ;New
  115. PreviewDomain=<1/0> ;New
  116. PreviewPhoneNumber=<1/0> ;New
  117. ShowDialingProgress=<1/0> ;New
  118. IpPrioritizeRemote=<1/0> ;same (PPP/SLIP only)
  119. IpHeaderCompression=<1/0> ;same (PPP/SLIP only)
  120. IpAddress=<a.b.c.d> ;same (PPP/SLIP only)
  121. IpAssign=<ASRC-code> ;same (PPP/SLIP only)
  122. IpDnsAddress=<a.b.c.d> ;same (PPP/SLIP only)
  123. IpDns2Address=<a.b.c.d> ;same (PPP/SLIP only)
  124. IpWinsAddress=<a.b.c.d> ;same (PPP/SLIP only)
  125. IpWins2Address=<a.b.c.d> ;same (PPP/SLIP only)
  126. IpNameAssign=<ASRC-code> ;same (PPP/SLIP only)
  127. IpFrameSize=<1006/1500> ;same (SLIP only)
  128. In general each section contains subsections delimited by
  129. MEDIA=<something> and DEVICE=<something> lines. There can be any number
  130. of DEVICE subsections. There can be multiple MEDIA/DEVICE sets where the
  131. position of the set determines it's sub-entry index, the first being 1,
  132. the second 2, etc.
  133. For serial media, the program currently expects 1 to 4 DEVICE subsections,
  134. representing a preconnect switch, modem, X.25 PAD, and postconnect switch.
  135. Following is a full entry:
  136. MEDIA=serial ;same
  137. Port=<port-name> ;same
  138. Device=<device-name> ;same
  139. ConnectBps=<bps> ;same, for old MXS support only
  140. DEVICE=switch ;same
  141. Type=<switchname or Terminal> ;Deleted, converted to 2 fields below
  142. Name=<switchname> ;New, name of switch or empty if none
  143. Terminal=<1/0> ;New, terminal is to run with/without above
  144. DEVICE=modem ;same
  145. PhoneNumber=<phonenumber1> ;same
  146. AreaCode=<area-code1> ;New
  147. CountryID=<id> ;New
  148. CountryCode=<country-code> ;New
  149. UseDialingRules=<1/0> ;New
  150. Comment=<arbitrary-text1> ;New, 'Description' from upgrade
  151. ...
  152. PhoneNumber=<phonenumber2> ;same
  153. AreaCode=<area-code1> ;New
  154. CountryID=<id> ;New
  155. CountryCode=<country-code> ;New
  156. UseDialingRules=<1/0> ;New
  157. Comment=<arbitrary-text2> ;New
  158. ...
  159. PhoneNumber=<phonenumberN> ;same
  160. AreaCode=<area-code1> ;New
  161. CountryID=<id> ;New
  162. CountryCode=<country-code> ;New
  163. UseDialingRules=<1/0> ;New
  164. Comment=<arbitrary-textn> ;New
  165. LastSelectedPhone=<index> ;New
  166. PromoteAlternates=<1/0> ;same
  167. TryNextAlternateOnFail=<1/0> ;New
  168. TapiBlob=<hexdump> ;same, i.e. #if 0'd out
  169. ManualDial=<1/0> ;For old MXS support only
  170. HwFlowControl=<1/0> ;For old MXS support only
  171. Protocol=<1/0> ;For old MXS support only
  172. Compression=<1/0> ;For old MXS support only
  173. DEVICE=pad ;same
  174. X25Pad=<padtype> ;same
  175. X25Address=<X121address> ;same
  176. UserData=<userdata> ;same
  177. Facilities=<facilities> ;same
  178. DEVICE=switch ;same
  179. Type=<switchname or Terminal> ;Deleted, converted to 2 fields below
  180. Name=<switchname> ;New, name/path of switch or empty if none
  181. Terminal=<1/0> ;New, terminal is to run with/without above
  182. For ISDN media, the program expects exactly 1 DEVICE subsection. Note
  183. that ISDN is now identical to the "other" case.
  184. MEDIA=isdn ;same
  185. Port=<port-name> ;same
  186. Device=<device-name> ;same
  187. DEVICE=isdn ;same
  188. PhoneNumber=<phonenumber1> ;same
  189. AreaCode=<area-code1> ;New
  190. CountryID=<id> ;New
  191. CountryCode=<country-code> ;New
  192. UseDialingRules=<1/0> ;New
  193. Comment=<arbitrary-text1> ;New, 'Description' from upgrade
  194. ...
  195. PhoneNumber=<phonenumber2> ;same
  196. AreaCode=<area-code1> ;New
  197. CountryID=<id> ;New
  198. CountryCode=<country-code> ;New
  199. UseDialingRules=<1/0> ;New
  200. Comment=<arbitrary-text2> ;New
  201. ...
  202. PhoneNumber=<phonenumberN> ;same
  203. AreaCode=<area-code1> ;New
  204. CountryID=<id> ;New
  205. CountryCode=<country-code> ;New
  206. UseDialingRules=<1/0> ;New
  207. Comment=<arbitrary-textn> ;New
  208. LastSelectedPhone=<index> ;New
  209. PromoteAlternates=<1/0> ;same
  210. TryNextPhoneNumberOnFail=<1/0> ;New
  211. LineType=<0/1/2> ;same
  212. Fallback=<1/0> ;same
  213. EnableCompression=<1/0> ;For old protocol only
  214. ChannelAggregation=<channels> ;For old protocol only
  215. For X.25 media, the program expects exactly 1 DEVICE subsection.
  216. MEDIA=x25 ;same
  217. Port=<port-name> ;same
  218. Device=<device-name> ;same
  219. DEVICE=x25 ;same
  220. X25Address=<X121address> ;same
  221. UserData=<userdata> ;same
  222. Facilities=<facilities> ;same
  223. For other media, the program expects exactly one DEVICE subsection with
  224. device name matching the media. "Other" media and devices are created for
  225. entries assigned to all non-serial medias including ISDN which now matches
  226. the rules for "other".
  227. MEDIA=<media> ;same
  228. Port=<port-name> ;same
  229. Device=<device-name> ;same
  230. DEVICE=<media> ;same
  231. PhoneNumber=<phonenumber1> ;same
  232. AreaCode=<area-code1> ;New
  233. CountryID=<id> ;New
  234. CountryCode=<country-code> ;New
  235. UseDialingRules=<1/0> ;New
  236. Comment=<arbitrary-text1> ;New, 'Description' from upgrade
  237. ...
  238. PhoneNumber=<phonenumber2> ;same
  239. AreaCode=<area-code1> ;New
  240. CountryID=<id> ;New
  241. CountryCode=<country-code> ;New
  242. UseDialingRules=<1/0> ;New
  243. Comment=<arbitrary-text2> ;New
  244. ...
  245. PhoneNumber=<phonenumberN> ;same
  246. AreaCode=<area-code1> ;New
  247. CountryID=<id> ;New
  248. CountryCode=<country-code> ;New
  249. UseDialingRules=<1/0> ;New
  250. Comment=<arbitrary-textn> ;New
  251. LastSelectedPhone=<index> ;New
  252. PromoteAlternates=<1/0> ;same
  253. TryNextPhoneNumberOnFail=<1/0> ;New
  254. The phonebook also supports the concept of "custom" entries, i.e. entries
  255. that fit the MEDIA followed by DEVICE subsection rules but which do not
  256. include certain expected key fields. A custom entry is not editable with
  257. the UI, but may be chosen for connection. This gives us a story for new
  258. drivers added by 3rd parties or after release and not yet fully supported
  259. in the UI. (NOTE: Support for this may be dropped in RAS API)
  260. ------------------------------------------------
  261. Notes on conversion from NT3.51 PBENGINE for NT4
  262. ------------------------------------------------
  263. This library is a reworking of the PBENGINE.LIB shared by the NT 3.51
  264. RASPHONE.EXE and RASAPI32.DLL. It's purpose is to encapsulate phonebook file
  265. manipulation, presenting an easy to handle linked-list-of-phonebook-entry
  266. structures to the caller along with appropriate helper routines.
  267. Conversions:
  268. * Becomes strictly Win32 for increased portability.
  269. * Replace CRT calls with Win32 where possible.
  270. Exceptions: qsort, ltoa
  271. * Eliminate CRT string function usage on all non-numeric strings.
  272. * Eliminate BLT usage.
  273. * Becomes multi-thread-safe. RASDLG can be called from multiple threads
  274. in a process so the use of global state information, like 'Pbdata' is
  275. eliminated in favor of returned context blocks. Further, index
  276. references into global device lists previously read once at
  277. initialization are removed, i.e. everything becomes "look up by name"
  278. when needed. This will be needed for plug-n-play later anyway.
  279. (Callers must make similar adjustment)
  280. * Upper level now uses TCHARs rather than CHARs, where UNICODE is built
  281. for NT. The actual file is still written out in MB ANSI using
  282. RASFIL32.DLL and RASMAN is still ANSI. This change confines
  283. UNICODE->ANSI translations to this one thin layer (specifically the
  284. StrDupAFromT/TFromA routines) simplifying a possible UI port back to
  285. W95. The .PBK file itself could be UNICODE and be editable with
  286. notepad.exe, but that would be a change to the shared RASFIL32.DLL and
  287. is currently judged "not worth it".
  288. * Uses new RTUTIL.DLL tracing instead of old "sdebug" style.
  289. * Built in upgrade of NT 3.51 phonebooks.
  290. * Explicit "Any <device>" concept is dropped. It's all implicit now based
  291. on the type of the selected "preferred" device. This change requested
  292. by Gibbs who claims "any port" is extremely expensive in DDM. (This is
  293. questionable and will want to watch the reaction carefully. For
  294. example, this is a problem for stress scripts?)
  295. * VALUE_* changed to prefixes and INDEX_No* changed to *_None to associate
  296. these values more clearly with a set of values.
  297. * Modem connect response deleted as this is not available from TAPI.
  298. * PBENTRY: Now contains a list of PBLINK rather than built-in "single
  299. link". See below for old field mappings.
  300. * PBPORT: Modem specific fields only used for MXS support as this are part
  301. of the new TAPI device blob for Unimodem.
  302. * PBLINK contains all multi-linkable information, including the new TAPI
  303. device blob.
  304. * PBGLOBALS: Global settings are no longer associated with each phonebook
  305. file but are stored in the CURRENT_USER registry. They should now be
  306. read and written separately from the phonebook using the new
  307. Get/SetUserPreferences calls which phonebook-related enough to be
  308. provided in pbk.lib. For the most part, PBGLOBALS->PBUSER.
  309. Prefix/suffix settings within the phonebook are dropped. These may be
  310. implemented in the HKCU preferences. Note the TAPI location settings
  311. now optionally handle this functionality.
  312. * USERDATA, Get/SetRasUserData calls, and CloseFailedLinkPort call are no
  313. longer in the phonebook library. These were in pbengine.lib only so
  314. RASPHONE could figure out which connected entries were actually dialed
  315. by RASAPI32 to CloseFailedLinkPorts and figure out which ports were
  316. disconnected due to "link failure" for redial. These issues must be
  317. handled by RASMAN/RASAUTO in new model. If RASAPI engine is moved into
  318. RASMAN, the USERDATA info can simply be fields in RASCONNCB.
  319. * The BPS lists are dropped, since they are now provided in the TAPI
  320. device blob. For MXS, BPS list is moved into the UI which will display
  321. an unknown value at the end of it's standard list if encountered.
  322. Port/Device
  323. TAPI tries to be a device-centric model, while RASMAN is a port-centric
  324. model.
  325. RASMAN will return the TAPI device ID for each RASMAN port. A device ID
  326. of 0xFFFFFFFF indicates an MXS modem port. In this case, the port name is
  327. guaranteed to be unique, but the device name is not (old behavior). When
  328. the device ID is not 0xFFFFFFFF, the device name is guaranteed to be
  329. unique, but the port name is not (because it may not be available).
  330. How port and device in a phonebook entry are updated/converted:
  331. If the entry has a "Port" key, it is an old format entry or a new
  332. format MXS entry. With these entries, an unconfigured port is
  333. converted to the first configured port of the same type. If there is
  334. no port of the same type the entry is made an "unknown" device with
  335. the original port name. Note that "any port" is caught and converted
  336. by the above rule.
  337. If the entry has a "PreferredDevice" key it is a new format non-MXS
  338. entry with no "Port" field. With these entries, an unconfigured
  339. device is not converted. This is in anticipation of Plug-n-Play where
  340. such conversion is not desirable.
  341. The UI must disallow "Configure" on unknown or unconfigured devices.
  342. Note that RasDial will search for the selected "port" or "device"
  343. first, but if not found will go on and try other ports of the selected
  344. ports type. Unimodem and MXS are both tried for "modem" type. The
  345. API will apply the blob or the MXS modem settings only to the
  346. preferred device, not to alternates.
  347. Old phonebook test cases:
  348. * Specifies configured MXS port
  349. - Shows "device (port)" and works as before except tries other
  350. modems on open failure
  351. * Specifies "any modem" port
  352. - Shows "1st-modem-device (first-modem-port)" and works as
  353. before.
  354. - If no modem ports, shows "unavailable device (Any modem)"
  355. and dial attempt fails with "PORT_NOT_FOUND", which is
  356. essentially also working as before.
  357. * Specifies existing unimodem port
  358. - Shows "device (port)" or "device" and dials the port first
  359. trying other unimodem ports on open failure.
  360. Organization:
  361. The files are organized similar to pbengine.lib where...
  362. <ras>\ui\common\inc\pbengine.h-><ras>\ui\inc\pbk.h
  363. Upper level routines and general utilities:
  364. pbengine.c->pbk.c
  365. pbengin2.c->pbk.c
  366. RasMan packaging routines:
  367. pbrasman.c->rasman.c =
  368. pbrasma2.c->rasman.c
  369. Convert list<->file routines and utilities:
  370. pbfile.c->file.c
  371. pbfile2.c->file.c
  372. pbkp.h is added for private library definitions.
  373. The "2" files were the basic routines needed by only RASAPI32. With the
  374. inclusion of the phonebook editing APIs this distinction is much less
  375. significant and has been dropped.
  376. Entry format change details:
  377. [ENTRY] ;Max raised to 256
  378. Description=<description> ;Same
  379. AutoLogon=<1/0> ;same
  380. User=<username> ;Deleted, now LSA secret
  381. Domain=<domain> ;Deleted, now LSA secret
  382. DialParamsUID=<unique-ID> ;Post NT 3.51
  383. UsePwForNetwork=<1/0> ;New
  384. ServerType=<ST-code> ;New, not used by RASAPI
  385. BaseProtocol=<BP-code> ;same*
  386. Authentication=<AS-code> ;same*
  387. ExcludedProtocols=<NP-bits> ;same*
  388. LcpExtensions=<1/0> ;same
  389. DataEncryption=<1/0> ;same
  390. SkipNwcWarning=<1/0> ;same
  391. SwCompression=<1/0> ;New
  392. UseCountryAndAreaCodes=<1/0> ;Post NT 3.51
  393. AreaCode=<string> ;Post NT 3.51
  394. CountryID=<id> ;Post NT 3.51
  395. CountryCode=<code> ;Post NT 3.51
  396. AuthRestrictions=<AR-code> ;New, used by SLIP also
  397. SkipDownLevelDialog=<1/0> ;same
  398. DialMode=<DM-code> ;Post NT 3.51
  399. DialPercent=<0-100> ;Post NT 3.51
  400. DialSeconds=<1-n> ;Post NT 3.51
  401. HangUpPercent=<0-100> ;Post NT 3.51
  402. HangUpSeconds=<1-n> ;Post NT 3.51
  403. IdleDisconnectSeconds=<-1,0-n> ;Post NT 3.51
  404. SecureLocalFiles=<1/0> ;Post NT 3.51
  405. CustomDialDll=<path> ;Post NT 3.51
  406. CustomDialFunc=<func-name> ;Post NT 3.51
  407. PppTextAuthentication=<AR-code> ;Deleted, becomes AuthRestrictions above.
  408. The following single set of IP parameters appear in place of the
  409. equivalent separate sets of PppXxx or SlipXxx parameters in the previous
  410. phonebook.
  411. IpPrioritizeRemote=<1/0> ;Was PPP specific
  412. IpHeaderCompression=<1/0> ;Was PPP specific
  413. IpAddress=<a.b.c.d> ;Was PPP specific
  414. IpAssign=<ASRC-code> ;Was PPP specific
  415. IpDnsAddress=<a.b.c.d> ;Was PPP specific
  416. IpDns2Address=<a.b.c.d> ;Was PPP specific
  417. IpWinsAddress=<a.b.c.d> ;Was PPP specific
  418. IpWins2Address=<a.b.c.d> ;Was PPP specific
  419. IpNameAssign=<ASRC-code> ;Was PPP specific
  420. IpFrameSize=<1006/1500> ;Still SLIP specific
  421. In general each section contains subsections delimited by
  422. MEDIA=<something> and DEVICE=<something> lines. In pbengine.lib, there
  423. MUST be exactly one MEDIA subsection and it must be the first subsection
  424. of the section. There can be any number of DEVICE subsections. In
  425. pbk.lib, there can be multiple MEDIA/DEVICE sets where the position of the
  426. set determines it's sub-entry index, the first being 1, the second 2, etc.
  427. For serial media, the program currently expects 1 to 4 DEVICE subsections,
  428. representing a preconnect switch, modem, X.25 PAD, and postconnect switch.
  429. Following is a full entry:
  430. MEDIA=serial ;same
  431. Port=<port-name> ;No longer set to "Any modem"
  432. Device=<device-name> ;New, not passed to RASMAN
  433. ConnectBps=<bps> ;For old MXS support only
  434. DEVICE=switch ;same
  435. Type=<switchname or Terminal> ;same
  436. DEVICE=modem ;same
  437. PhoneNumber=<phonenumber1> ;same
  438. PhoneNumber=<phonenumber2> ;same
  439. PhoneNumber=<phonenumberN> ;same
  440. PromoteAlternates=<1/0> ;New, not passed to RASMAN
  441. TapiBlob=<hexdump> ;New
  442. ManualDial=<1/0> ;For old MXS support only
  443. HwFlowControl=<1/0> ;For old MXS support only
  444. Protocol=<1/0> ;For old MXS support only
  445. Compression=<1/0> ;For old MXS support only
  446. DEVICE=pad ;same
  447. X25Pad=<padtype> ;same
  448. X25Address=<X121address> ;same
  449. UserData=<userdata> ;same
  450. Facilities=<facilities> ;same
  451. DEVICE=switch ;same
  452. Type=<switchname or Terminal> ;Switchname can be path
  453. For ISDN media, the program expects exactly 1 DEVICE subsection. Note
  454. that ISDN is now identical to the "other" case.
  455. MEDIA=isdn ;same
  456. Port=<port-name> ;No longer set to "Any ISDN"
  457. Device=<device-name> ;New, not passed to RASMAN
  458. DEVICE=isdn ;same
  459. PhoneNumber=<phonenumber1> ;same
  460. PhoneNumber=<phonenumber2> ;same
  461. PhoneNumber=<phonenumberN> ;same
  462. PromoteAlternates=<1/0> ;New, not passed to RASMAN
  463. LineType=<0/1/2> ;same
  464. Fallback=<1/0> ;same
  465. EnableCompression=<1/0> ;For old protocol only
  466. ChannelAggregation=<channels> ;For old protocol only
  467. For X.25 media, the program expects exactly 1 DEVICE subsection.
  468. MEDIA=x25 ;same
  469. Port=<port-name> ;No longer set to "Any X25"
  470. Device=<device-name> ;New, not passed to RASMAN
  471. DEVICE=x25 ;same
  472. X25Address=<X121address> ;same
  473. UserData=<userdata> ;same
  474. Facilities=<facilities> ;same
  475. For other media, the program expects exactly one DEVICE subsection with
  476. device name matching the media. "Other" media and devices are created for
  477. entries assigned to all non-serial medias including ISDN which now matches
  478. the rules for "other".
  479. MEDIA=<media> ;same
  480. Port=<port-name> ;same
  481. Device=<device-name> ;New, not passed to RASMAN
  482. DEVICE=<media> ;same
  483. PhoneNumber=<phonenumber1> ;same
  484. PhoneNumber=<phonenumber2> ;same
  485. PhoneNumber=<phonenumberN> ;same
  486. PromoteAlternates=<1/0> ;New, not passed to RASMAN
  487. The phonebook also supports the concept of "custom" entries, i.e. entries
  488. that fit the MEDIA followed by DEVICE subsection rules but which do not
  489. include certain expected key fields. A custom entry is not editable with
  490. the UI, but may be chosen for connection. This gives us a story for new
  491. drivers added by 3rd parties or after release and not yet fully supported
  492. in the UI. (NOTE: This may be dropped in RAS API)
  493. (*) Parameter changes internally to use new set-descriptive constants
  494. rather than VALUE_*.