/* Asterisk INI to Property List File Conversion Utility -- Version 1.12 * * plugindict.h * aini2plist * * Plugin dictionary (stub to be included in keywords.c) * * Author: Benjamin Kowarsch * * (C) 2006 Sunrise Telephone Systems Ltd. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * In countries and territories where the above no-warranty disclaimer is * not permissible by applicable law, the following terms apply: * * NO PERMISSION TO USE THE SOFTWARE IS GRANTED AND THE SOFTWARE MUST NOT BE * USED AT ALL IN SUCH COUNTRIES AND TERRITORIES WHERE THE ABOVE NO-WARRANTY * DISCLAIMER IS NOT PERMISSIBLE AND INVALIDATED BY APPLICABLE LAW. HOWEVER, * THE COPYRIGHT HOLDERS HEREBY WAIVE THEIR RIGHT TO PURSUE OFFENDERS AS LONG * AS THEY OTHERWISE ABIDE BY THE TERMS OF THE LICENSE AS APPLICABLE FOR USE * OF THE SOFTWARE IN COUNTRIES AND TERRITORIES WHERE THE ABOVE NO-WARRANTY * DISCLAIMER IS PERMITTED BY APPLICABLE LAW. THIS WAIVER DOES NOT CONSTITUTE * A LICENSE TO USE THE SOFTWARE IN COUNTRIES AND TERRITORIES WHERE THE ABOVE * NO-WARRANTY DISCLAIMER IS NOT PERMISSIBLE AND INVALIDATED BY APPLICABLE * LAW. ANY LIABILITY OF ANY KIND IS CATEGORICALLY RULED OUT AT ALL TIMES. */ // -------------------------------------------------------------------------- // Keyword translations // -------------------------------------------------------------------------- // translations for keywords in various config files of plugin modules DECLARE_TRANSLATION( IAXCOMPAT_XLAT, "UseLayeredSwitches" ); DECLARE_TRANSLATION( TRANSFER_XLAT, "transfer" ); DECLARE_TRANSLATION( NIC_XLAT, "interface" ); // dislexia is a common asterisk phenomenon DECLARE_TRANSLATION( MAXEXPIRY_XLAT, "maxexpiry" ); DECLARE_TRANSLATION( DEFLTEXPIRY_XLAT, "defaultexpiry" ); // -------------------------------------------------------------------------- // Relocation targets // -------------------------------------------------------------------------- // no targets // -------------------------------------------------------------------------- // Key specific value tables // -------------------------------------------------------------------------- const static ValueTableEntry _connection_types_table[] = { /* values for voip connection types */ { KEYWORD_FRIEND, NO_TRANSLATION }, { KEYWORD_PEER, NO_TRANSLATION }, { KEYWORD_USER, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _connection_types_table const static ValueTableEntry _authentication_types_table[] = { /* values for voip authentication types */ { KEYWORD_PLAIN, NO_TRANSLATION }, { KEYWORD_MD5, NO_TRANSLATION }, { KEYWORD_RSA, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _authentication_types_table const static ValueTableEntry _audio_formats_table[] = { /* values for audio formats */ { KEYWORD_GSM, NO_TRANSLATION }, { KEYWORD_MP3, NO_TRANSLATION }, { KEYWORD_WAV, NO_TRANSLATION }, { KEYWORD_WAV49, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _audio_formats_table const static ValueTableEntry _audio_codecs_table[] = { /* values for audio codecs */ { KEYWORD_ALL, NO_TRANSLATION }, { KEYWORD_ALAW, NO_TRANSLATION }, { KEYWORD_ULAW, NO_TRANSLATION }, { KEYWORD_GSM, NO_TRANSLATION }, { KEYWORD_G723, NO_TRANSLATION }, { KEYWORD_G729, NO_TRANSLATION }, { KEYWORD_ILBC, NO_TRANSLATION }, { KEYWORD_SPEEX, NO_TRANSLATION }, { KEYWORD_ADPCM, NO_TRANSLATION }, { KEYWORD_LPC10, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _audio_codecs_table const static ValueTableEntry _amaflags_table[] = { /* values for AMA flags */ { KEYWORD_DEFAULT, NO_TRANSLATION }, { KEYWORD_OMIT, NO_TRANSLATION }, { KEYWORD_BILLING, NO_TRANSLATION }, { KEYWORD_DOCUMENTATION, NO_TRANSLATION }, }; // end _amaflags_table const static ValueTableEntry _bandwidth_table[] = { /* values for bandwidth */ { KEYWORD_LOW, NO_TRANSLATION }, { KEYWORD_MEDIUM, NO_TRANSLATION }, { KEYWORD_HIGH, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _bandwidth_table const static ValueTableEntry _tos_table[] = { /* values for TOS flags */ { KEYWORD_LOWDELAY, NO_TRANSLATION }, { KEYWORD_THROUGHPUT, NO_TRANSLATION }, { KEYWORD_RELIABILITY, NO_TRANSLATION }, { KEYWORD_MINCOST, NO_TRANSLATION }, { KEYWORD_NONE, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _tos_table const static ValueTableEntry _queue_strategies_table[] = { /* values for strategy */ { KEYWORD_RINGALL, NO_TRANSLATION }, { KEYWORD_ROUNDROBIN, NO_TRANSLATION }, { KEYWORD_LEASTRECENT, NO_TRANSLATION }, { KEYWORD_FEWESTCALLS, NO_TRANSLATION }, { KEYWORD_RANDOM, NO_TRANSLATION }, { KEYWORD_RRMEMORY, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _queue_strategies_table const static ValueTableEntry _dtmf_modes_table[] = { /* values for strategy */ { KEYWORD_INBAND, NO_TRANSLATION }, { KEYWORD_RFC2833, NO_TRANSLATION }, { KEYWORD_SIPINFO, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _dtmf_modes_table const static ValueTableEntry _rfc2782_service_types_table[] = { /* values for service types in zeroconf.conf */ { KEYWORD_IAX, NO_TRANSLATION }, { KEYWORD_SIP, NO_TRANSLATION }, { KEYWORD_ASTMGR, NO_TRANSLATION }, { KEYWORD_REMOTEDIAL, NO_TRANSLATION }, { END_OF_TABLE, NO_TRANSLATION } }; // end _rfc2782_service_types_table // -------------------------------------------------------------------------- // Section specific key tables // -------------------------------------------------------------------------- const static KeyTableEntry _agents_table[] = { /* keys in section "agents" of agents.conf */ { KEYWORD_AGENT, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_AUTOLOGOFF, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ACKCALL, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_WRAPUPTIME, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MUSICONHOLD, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_UPDATECDR, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_GROUP, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_RECAGTCALLS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RECFORMAT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_audio_formats_table }, { KEYWORD_CREATELINK, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_URLPREFIX, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_SAVECALLSIN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_CUSTOMBEEP, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _agents_table const static KeyTableEntry _enum_table[] = { /* keys in section "general" of enum.conf */ { KEYWORD_SEARCH, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_H323DRIVER, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _enum_table const static KeyTableEntry _features_table[] = { /* keys in section "general" of features.conf */ { KEYWORD_PARKEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_PARKPOS, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_CONTEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_PARKTIME, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_XFRDIGITTO, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_COURTESYTONE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ADSIPARK, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_PICKUPEXTEN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _enum_table const static KeyTableEntry _iax_general_table[] = { /* keys in section "general" of iax.conf */ { KEYWORD_BINDPORT, PORT_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_BINDADDR, BINDADDR_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_IAXCOMPAT, IAXCOMPAT_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DELAYREJECT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_AMAFLAGS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_amaflags_table }, { KEYWORD_ACCOUNTCODE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_LANGUAGE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_BANDWIDTH, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_bandwidth_table }, { KEYWORD_ALLOW, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_codecs_table }, { KEYWORD_DISALLOW, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_codecs_table }, { KEYWORD_JITTERBUFFER, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DROPCOUNT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXJITTERBUF, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXEXCESSBUF, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MINEXCESSBUF, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_JITTERSHRINK, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TRUNKFREQ, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_REGISTER, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_AUTHDEBUG, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TOS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_tos_table }, { KEYWORD_MBXDETAIL, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_REGEXTEN, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_REGCONTEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _iax_general_table const static KeyTableEntry _iax_table[] = { /* keys in other sections of iax.conf */ { KEYWORD_TYPE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_connection_types_table }, { KEYWORD_AUTH, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_authentication_types_table }, { KEYWORD_INKEYS, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_OUTKEY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_USERNAME, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_SECRET, SECRET_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_CONTEXT, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_HOST, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_PORT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MASK, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QUALIFY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TRUNK, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_NOTRANSFER, TRANSFER_XLAT, NO_RELOCATION, TOGGLE_BOOLEAN, ARBITRARY }, { KEYWORD_PEERCONTEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DEFAULTIP, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DENY, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_PERMIT, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_AMAFLAGS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_amaflags_table }, { KEYWORD_ACCOUNTCODE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_LANGUAGE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_BANDWIDTH, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_bandwidth_table }, { KEYWORD_ALLOW, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_codecs_table }, { KEYWORD_DISALLOW, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_codecs_table }, { KEYWORD_JITTERBUFFER, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DROPCOUNT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXJITTERBUF, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXEXCESSBUF, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MINEXCESSBUF, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_JITTERSHRINK, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TRUNKFREQ, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TOS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_tos_table }, { KEYWORD_MBXDETAIL, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_REGEXTEN, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_MAILBOX, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_SENDANI, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_CALLERID, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _iax_table const static KeyTableEntry _moh_table[] = { /* keys in section "classes" of musiconhold.conf */ { MATCH_ANY, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _moh_table const static KeyTableEntry _privacy_table[] = { /* keys in section "general" of privacy.conf */ { KEYWORD_MAXRETRIES, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _privacy_table const static KeyTableEntry _queues_table[] = { /* keys in other sections of queues.conf */ { KEYWORD_MUSICONHOLD, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ANNOUNCE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_STRATEGY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_queue_strategies_table }, { KEYWORD_CONTEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TIMEOUT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RETRY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_WRAPUPTIME, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXLEN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ANNOUNCEFREQ, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ANNOUNCEHOLD, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ANNOUNCERNDS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QYOUARENEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QTHEREARE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QNUMOFCALLS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QHOLDTIME, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QMINUTES, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QSECONDS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QTHANKYOU, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QLESSTHAN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MONITORFMT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_audio_formats_table }, { KEYWORD_MONITORJOIN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_JOINEMPTY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_LEAVEONEMPTY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_GENCALLEVENT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { MATCH_ANY, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _queues_table const static KeyTableEntry _rtp_table[] = { /* keys in section "general" of rtp.conf */ { KEYWORD_RTPSTART, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RTPEND, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RTPCHECKSUMS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _rtp_table const static KeyTableEntry _sip_general_table[] = { /* keys in section "general" of sip.conf */ { KEYWORD_PORT, PORT_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_BINDADDR, BINDADDR_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_REALM, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_CONTEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_SRVLOOKUP, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_PEDANTIC, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RECORDHIST, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_AMAFLAGS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_amaflags_table }, { KEYWORD_ACCOUNTCODE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_LANGUAGE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ALLOW, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_codecs_table }, { KEYWORD_DISALLOW, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_codecs_table }, { KEYWORD_REGISTER, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_TOS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_tos_table }, { KEYWORD_MAXEXPIRY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXEXPIREY, MAXEXPIRY_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DEFLTEXPIRY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DEFLTEXPIREY, DEFLTEXPIRY_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_NOTIFYMIME, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_VIDEOSUPPORT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MUSICCLASS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RELAXDTMF, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RTPTIMEOUT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RTPHTIMEOUT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TRUSTRPID, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_INBANDPROGR, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_USERAGENT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_NAT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_REGEXTEN, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_REGCONTEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_EXTERNIP, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_LOCALNET, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _sip_general_table const static KeyTableEntry _sip_table[] = { /* keys in other sections of sip.conf */ { KEYWORD_TYPE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_connection_types_table }, { KEYWORD_PORT, PORT_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_HOST, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MASK, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_CONTEXT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_AMAFLAGS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_amaflags_table }, { KEYWORD_ACCOUNTCODE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_LANGUAGE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ALLOW, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_codecs_table }, { KEYWORD_DISALLOW, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_codecs_table }, { KEYWORD_RTPTIMEOUT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_RTPHTIMEOUT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TRUSTRPID, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_INBANDPROGR, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_NAT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_REGEXTEN, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_DEFAULTIP, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DENY, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_PERMIT, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_SECRET, SECRET_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MD5SECRET, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DTMFMODE, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_dtmf_modes_table }, { KEYWORD_CANREINVITE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_CALLGROUP, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_PICKUPGROUP, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_INSECURE, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_PROMISCREDIR, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_INCOMINGLIM, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAILBOX, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { KEYWORD_RESTRICTCID, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_USERNAME, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TEMPLATE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_FROMUSER, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_FROMDOMAIN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_QUALIFY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_CALLERID, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _sip_table const static KeyTableEntry _voicemail_general_table[] = { /* keys in section "general" of voicemail.conf */ { KEYWORD_FORMAT, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, &_audio_formats_table }, { KEYWORD_SERVERMAIL, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ATTACH, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXMSGLEN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MINMSGLEN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXGREETLEN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_SKIPMS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXSILENCE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_SILTHRESHOLD, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAXLOGINS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_EXTERNNOTIFY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_EXTERNPASS, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_DIRINTRO, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_CHARSET, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ADSIFDN, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ADSISEC, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ADSIVER, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_PBXSKIP, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_FROMSTRING, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_EMAILSUBJECT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_EMAILBODY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_MAILCMD, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _voicemail_general_table const static KeyTableEntry _voicemail_zonemessages_table[] = { /* keys in section "zonemessages" of voicemail.conf */ { MATCH_ANY, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _voicemail_zonemessages_table const static KeyTableEntry _voicemail_table[] = { /* keys in other sections of voicemail.conf */ { MATCH_ANY, NO_TRANSLATION, NO_RELOCATION, MULTIPLE_VALUES, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _voicemail_table const static KeyTableEntry _zeroconf_general_table[] = { /* keys in section "general" of zeroconf.conf */ { KEYWORD_BINDADDR, NIC_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _zeroconf_general_table const static KeyTableEntry _zeroconf_table[] = { /* keys in other sections of zeroconf.conf */ { KEYWORD_BINDADDR, NIC_XLAT, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_ENABLED, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_NAME, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { KEYWORD_TYPE, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, &_rfc2782_service_types_table }, { KEYWORD_PORT, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { MATCH_ANY, NO_TRANSLATION, NO_RELOCATION, SINGLE_VALUE, ARBITRARY }, { END_OF_TABLE, NO_TRANSLATION, NO_RELOCATION, OBSOLETE, ARBITRARY } }; // end _zeroconf_table // -------------------------------------------------------------------------- // Plugin configuration file specific section tables // -------------------------------------------------------------------------- const static SectionTableEntry _agentsconf_table[] = { /* sections in file agents.conf */ { KEYWORD_AGENTS, NO_TRANSLATION, &_agents_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _agentsconf_table const static SectionTableEntry _enumconf_table[] = { /* sections in file enum.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, &_enum_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _enumconf_table const static SectionTableEntry _featuresconf_table[] = { /* sections in file features.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, &_features_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _featuresconf_table const static SectionTableEntry _iaxconf_table[] = { /* sections in file iax.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, &_iax_general_table }, { MATCH_ANY, NO_TRANSLATION, &_iax_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _iaxconf_table const static SectionTableEntry _mohconf_table[] = { /* sections in file musiconhold.conf */ { KEYWORD_CLASSES, NO_TRANSLATION, &_moh_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _mohconf_table const static SectionTableEntry _privacyconf_table[] = { /* sections in file privacy.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, &_privacy_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _privacyconf_table const static SectionTableEntry _queuesconf_table[] = { /* sections in file queues.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, ARBITRARY }, /* currently unused */ { KEYWORD_DEFAULT, NO_TRANSLATION, ARBITRARY }, /* currently unused */ { MATCH_ANY, NO_TRANSLATION, &_queues_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _queuesconf_table const static SectionTableEntry _rtpconf_table[] = { /* sections in file rtp.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, &_rtp_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _rtpconf_table const static SectionTableEntry _sipconf_table[] = { /* sections in file iax.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, &_sip_general_table }, { MATCH_ANY, NO_TRANSLATION, &_sip_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _sipconf_table const static SectionTableEntry _voicemailconf_table[] = { /* sections in file voicemail.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, &_voicemail_general_table }, { KEYWORD_ZONEMSG, NO_TRANSLATION, &_voicemail_zonemessages_table }, { MATCH_ANY, NO_TRANSLATION, &_voicemail_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _voicemailconf_table const static SectionTableEntry _zeroconfconf_table[] = { /* sections in file voicemail.conf */ { KEYWORD_GENERAL, NO_TRANSLATION, &_zeroconf_general_table }, { MATCH_ANY, NO_TRANSLATION, &_zeroconf_table }, { END_OF_TABLE, NO_TRANSLATION, ARBITRARY } }; // end _zeroconfconf_table // -------------------------------------------------------------------------- // Plugin mode specific dictionary // -------------------------------------------------------------------------- const static ConfigFileTableEntry _plugin_dictionary[] = { { AGENTSCONF, &_agentsconf_table }, { ENUMCONF, &_enumconf_table }, { FEATURESCONF, &_featuresconf_table }, { IAXCONF, &_iaxconf_table }, { MOHCONF, &_mohconf_table }, { PRIVACYCONF, &_privacyconf_table }, { QUEUESCONF, &_queuesconf_table }, { RTPCONF, &_rtpconf_table }, { SIPCONF, &_sipconf_table }, { VOICEMAILCONF, &_voicemailconf_table }, { ZEROCONFCONF, &_zeroconfconf_table }, { MATCH_ANY, ARBITRARY }, { END_OF_TABLE, ARBITRARY } }; // end _plugin_dictionary // END OF FILE