[asterisk-commits] branch group/autoconf_and_menuselect r18300 - /team/group/autoconf_and_menuse...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri Apr 7 08:40:13 MST 2006


Author: russell
Date: Fri Apr  7 10:40:08 2006
New Revision: 18300

URL: http://svn.digium.com/view/asterisk?rev=18300&view=rev
Log:
add doc files that didn't get automatically merged into this branch so that they
don't get removed when the branch is merged into the trunk.

Added:
    team/group/autoconf_and_menuselect/doc/ael.txt   (with props)
    team/group/autoconf_and_menuselect/doc/app-sms.txt   (with props)
    team/group/autoconf_and_menuselect/doc/asterisk-conf.txt   (with props)
    team/group/autoconf_and_menuselect/doc/backtrace.txt   (with props)
    team/group/autoconf_and_menuselect/doc/billing.txt   (with props)
    team/group/autoconf_and_menuselect/doc/callingpres.txt   (with props)
    team/group/autoconf_and_menuselect/doc/cdrdriver.txt   (with props)
    team/group/autoconf_and_menuselect/doc/chaniax.txt   (with props)
    team/group/autoconf_and_menuselect/doc/channels.txt   (with props)
    team/group/autoconf_and_menuselect/doc/channelvariables.txt   (with props)
    team/group/autoconf_and_menuselect/doc/cliprompt.txt   (with props)
    team/group/autoconf_and_menuselect/doc/configuration.txt   (with props)
    team/group/autoconf_and_menuselect/doc/cygwin.txt   (with props)
    team/group/autoconf_and_menuselect/doc/dundi.txt   (with props)
    team/group/autoconf_and_menuselect/doc/enum.txt   (with props)
    team/group/autoconf_and_menuselect/doc/extconfig.txt   (with props)
    team/group/autoconf_and_menuselect/doc/externalivr.txt   (with props)
    team/group/autoconf_and_menuselect/doc/freetds.txt   (with props)
    team/group/autoconf_and_menuselect/doc/h323.txt   (with props)
    team/group/autoconf_and_menuselect/doc/hardware.txt   (with props)
    team/group/autoconf_and_menuselect/doc/ices.txt   (with props)
    team/group/autoconf_and_menuselect/doc/jitterbuffer.txt   (with props)
    team/group/autoconf_and_menuselect/doc/linkedlists.txt   (with props)
    team/group/autoconf_and_menuselect/doc/math.txt   (with props)
    team/group/autoconf_and_menuselect/doc/misdn.txt   (with props)
    team/group/autoconf_and_menuselect/doc/mp3.txt   (with props)
    team/group/autoconf_and_menuselect/doc/musiconhold-fpm.txt   (with props)
    team/group/autoconf_and_menuselect/doc/mysql.txt   (with props)
    team/group/autoconf_and_menuselect/doc/odbcstorage.txt   (with props)
    team/group/autoconf_and_menuselect/doc/privacy.txt   (with props)
    team/group/autoconf_and_menuselect/doc/realtime.txt   (with props)
    team/group/autoconf_and_menuselect/doc/security.txt   (with props)
    team/group/autoconf_and_menuselect/doc/smdi.txt   (with props)
    team/group/autoconf_and_menuselect/doc/sms.txt   (with props)

Added: team/group/autoconf_and_menuselect/doc/ael.txt
URL: http://svn.digium.com/view/asterisk/team/group/autoconf_and_menuselect/doc/ael.txt?rev=18300&view=auto
==============================================================================
--- team/group/autoconf_and_menuselect/doc/ael.txt (added)
+++ team/group/autoconf_and_menuselect/doc/ael.txt Fri Apr  7 10:40:08 2006
@@ -1,0 +1,273 @@
+The Asterisk Extension Language
+===================================
+
+Over time, people have been pushing to add features to extensions.conf to make
+it more like a programming language.  AEL is intended to provide an actual
+programming language that can be used to write an Asterisk dialplan.
+
+Getting Started
+-------------------------
+The AEL parser (pbx_ael.so) is completely separate from the module
+that parses extensions.conf (pbx_config.so).  To use AEL, the only thing that
+has to be done is the module pbx_ael.so must be loaded by Asterisk.  This will
+be done automatically if using 'autoload=yes' in /etc/asterisk/modules.conf.
+When the module is loaded, it will look for 'extensions.ael' in /etc/asterisk/.
+Both extensions.conf and extensions.ael can be used in conjunction with each 
+other if that is what is desired.  Some users may want to keep extensions.conf
+for the features that are configured in the 'general' section of 
+extensions.conf.
+
+
+Reloading extensions.ael
+-------------------------
+To reload extensions.ael, the following command can be issued at the CLI.
+
+	*CLI> reload pbx_ael.so
+
+
+Contexts
+-------------------------
+Contexts in AEL represent a set of extensions in the same way that they do
+in extensions.conf.
+
+context default {
+
+};
+
+
+Extensions
+-------------------------
+To specify an extension in a context, the following syntax is used.  If more
+than one application is be called in an extension, they can be listed in order
+inside of a block.
+
+context default {
+	1234 => Playback(tt-monkeys);
+	8000 => {
+		NoOp(one);
+		NoOp(two);
+		NoOp(three);
+	};
+	_5XXX => NoOp(it's a pattern!);
+};
+
+
+Includes
+-------------------------
+Contexts can be included in other contexts.  All included contexts are listed
+within a single block.
+
+context default {
+	includes {
+		local;
+		longdistance;
+		international;
+	};
+};
+
+
+Dialplan Switches
+-------------------------
+Switches are listed in their own block within a context.
+
+context default {
+	switches {
+		DUNDi/e164;
+		IAX2/box5;
+	};
+	eswitches {
+		IAX2/context@${CURSERVER};
+	};
+};
+
+
+Ignorepat
+-------------------------
+ignorepat can be used to instruct channel drivers to not cancel dialtone upon
+receipt of a particular pattern.  The most commonly used example is '9'.
+
+context outgoing {
+	ignorepat => 9;
+};
+
+
+Variables
+-------------------------
+Variables in Asterisk do not have a type, so to define a variable, it just has
+to be specified with a value.
+
+Global variables are set in their own block.
+
+globals {
+	CONSOLE=Console/dsp;
+	TRUNK=Zap/g2;
+};
+
+Variables can be set within extensions as well.
+
+context foo {
+	555 => {
+		x=5;
+		y=blah;
+		NoOp(x is ${x} and y is ${y} !);
+	};
+};
+
+Writing to a dialplan function is treated the same as writing to a variable.
+
+context blah {
+	s => {
+		CALLERID(name)=ChickenMan;
+		NoOp(My name is ${CALLERID(name)} !);
+	};
+}; 
+
+
+Loops
+-------------------------
+AEL has implementations of 'for' and 'while' loops.
+
+context loops {
+	1 => {
+		for (x=0; ${x} < 3; x=${x} + 1) {
+			Verbose(x is ${x} !);
+		};
+	};
+	2 => {
+		y=10;
+		while (${y} >= 0) {
+			Verbose(y is ${y} !);
+			y=${y}-1;
+		};
+	};
+};
+
+
+Conditionals
+-------------------------
+AEL supports if and switch statements.  Note that if you have an else 
+clause, you MUST place braces around the non-else portion of the if 
+statement.
+
+context conditional {
+	_8XXX => {
+		Dial(SIP/${EXTEN});
+		if (${DIALSTATUS} = "BUSY") {
+			Voicemail(${EXTEN}|b);
+		} else
+			Voicemail(${EXTEN}|u);
+	};
+	_777X => {
+		switch (${EXTEN}) {
+			case 7771:
+				NoOp(You called 7771!);
+				break;
+			case 7772:
+				NoOp(You called 7772!);
+				break;
+			case 7773:
+				NoOp(You called 7773!);
+				// fall through
+			default:
+				NoOp(In the default clause!);
+		};
+	};
+};
+
+
+goto and labels
+-------------------------
+This is an example of how to do a goto in AEL.
+
+context gotoexample {
+	s => {
+begin:
+		NoOp(Infinite Loop!  yay!);
+		Wait(1);
+		goto begin;
+	};
+};
+
+
+Macros
+-------------------------
+A macro is defined in its own block like this.  The arguments to the macro are
+specified with the name of the macro.  They are then reffered to by that same
+name.  A catch block can be specified to catch special extensions.
+
+macro std-exten( ext , dev ) {
+        Dial(${dev}/${ext},20);
+        switch(${DIALSTATUS) {
+        case BUSY:
+                Voicemail(b${ext});
+                break;
+        default:
+                Voicemail(u${ext});
+        };
+        catch a {
+                VoiceMailMain(${ext});
+                return;
+        };
+};
+
+A macro is then called by preceeding the macro name with an ampersand.
+
+context example {
+	_5XXX => &std-exten(${EXTEN}, "IAX2");
+};
+
+
+Examples
+------------------------
+
+context demo {
+	s => {
+		Wait(1);
+		Answer();
+		TIMEOUT(digit)=5;
+		TIMEOUT(response)=10;
+restart:
+		Background(demo-congrats);
+instructions:
+		for (x=0; ${x} < 3; x=${x} + 1) {
+			Background(demo-instruct);
+			WaitExten();
+		};
+	};
+	2 => {
+		Background(demo-moreinfo);
+		goto s|instructions;
+	};
+	3 => {
+		LANGUAGE()=fr;
+		goto s|restart;
+	};
+	500 => {
+		Playback(demo-abouttotry);
+		Dial(IAX2/guest at misery.digium.com);
+		Playback(demo-nogo);
+		goto s|instructions;
+	};
+	600 => {
+		Playback(demo-echotest);
+		Echo();
+		Playback(demo-echodone);
+		goto s|instructions;
+	};
+	# => {
+hangup:
+		Playback(demo-thanks);
+		Hangup();
+	};
+	t => goto #|hangup;
+	i => Playback(invalid);
+};
+
+
+Syntax Note
+------------------------
+Please note that all opening {'s are on the same line as the keyword.  For
+the time being, that syntax is mandatory.  We are looking at ways to allow
+other syntax in the future for flexibility, but for now, that is the way
+you must write AEL clauses.
+

Propchange: team/group/autoconf_and_menuselect/doc/ael.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: team/group/autoconf_and_menuselect/doc/ael.txt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: team/group/autoconf_and_menuselect/doc/ael.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: team/group/autoconf_and_menuselect/doc/app-sms.txt
URL: http://svn.digium.com/view/asterisk/team/group/autoconf_and_menuselect/doc/app-sms.txt?rev=18300&view=auto
==============================================================================
--- team/group/autoconf_and_menuselect/doc/app-sms.txt (added)
+++ team/group/autoconf_and_menuselect/doc/app-sms.txt Fri Apr  7 10:40:08 2006
@@ -1,0 +1,470 @@
+
+                               * Application SMS
+
+   The SMS module for Asterisk was developed by Adrian Kennard, and is an
+   implementation of the ETSI specification for landline SMS, ETSI ES 201
+   912, which is available from www.etsi.org. Landline SMS is starting to
+   be available in various parts of Europe, and is available from BT in
+   the UK. However, Asterisk would allow gateways to be created in other
+   locations such as the US, and use of SMS capable phones such as the
+   Magic Messenger. SMS works using analogue or ISDN lines.
+
+Background
+
+   Short Message Service (SMS), or texting is very popular between mobile
+   phones. A message can be sent between two phones, and normally
+   contains 160 characters. There are ways in which various types of data
+   can be encoded in a text message such as ring tones, and small
+   graphic, etc. Text messaging is being used for voting and
+   competitions, and also SPAM...
+   Sending a message involves the mobile phone contacting a message
+   centre (SMSC) and passing the message to it. The message centre then
+   contacts the destination mobile to deliver the message. The SMSC is
+   responsible for storing the message and trying to send it until the
+   destination mobile is available, or a timeout.
+   Landline SMS works in basically the same way. You would normally have
+   a suitable text capable landline phone, or a separate texting box such
+   as a Magic Messenger on your phone line. This sends a message to a
+   message centre your telco provides by making a normal call and sending
+   the data using 1200 Baud FSK signaling according to the ETSI spec. To
+   receive a message the message centre calls the line with a specific
+   calling number, and the text capable phone answers the call and
+   receives the data using 1200 Baud FSK signaling. This works
+   particularly well in the UK as the calling line identity is sent
+   before the first ring, so no phones in the house would ring when a
+   message arrives.
+
+Typical use with Asterisk
+
+   Sending messages from an Asterisk box can be used for a variety of
+   reasons, including notification from any monitoring systems, email
+   subject lines, etc.
+   Receiving messages to an Asterisk box is typically used just to email
+   the messages to someone appropriate - we email and texts that are
+   received to our direct numbers to the appropriate person. Received
+   messages could also be used to control applications, manage
+   competitions, votes, post items to IRC, anything.
+   Using a terminal such as a magic messenger, an Asterisk box could ask
+   as a message centre sending messages to the terminal, which will beep
+   and pop up the message (and remember 100 or so messages in its
+   memory).
+
+Terminology
+
+   SMS
+   Short Message Service
+   i.e. text messages
+   SMSC
+   Short Message Service Centre
+   The system responsible for storing and forwarding messages
+   MO
+   Mobile Originated
+   A message on its way from a mobile or landline device to the SMSC
+   MT
+   Mobile Terminated
+   A message on its way from the SMSC to the mobile or landline device
+   RX
+   Receive
+   A message coming in to the Asterisk box
+   TX
+   Transmit
+   A message going out of the Asterisk box
+
+Sub address
+
+   When sending a message to a landline, you simply send to the landline
+   number. In the UK, all of the mobile operators (bar one) understand
+   sending messages to landlines and pass the messages to the BTText
+   system for delivery to the landline.
+   The specification for landline SMS allows for the possibility of more
+   than one device on a single landline. These can be configured with Sub
+   addresses which are a single digit. To send a message to a specific
+   device the message is sent to the landline number with an extra digit
+   appended to the end. The telco can define a default sub address (9 in
+   the UK) which is used when the extra digit is not appended to the end.
+   When the call comes in, part of the calling line ID is the sub
+   address, so that only one device on the line answers the call and
+   receives the message.
+   Sub addresses also work for outgoing messages. Part of the number
+   called by the device to send a message is its sub address. Sending
+   from the default sub address (9 in the UK) means the message is
+   delivered with the sender being the normal landline number. Sending
+   from any other sub address makes the sender the landline number with
+   an extra digit on the end.
+   Using Asterisk, you can make use of the sub addresses for sending and
+   receiving messages. Using DDI (DID, i.e. multiple numbers on the line
+   on ISDN) you can also make use of many different numbers for SMS.
+
+Build / installation
+
+   app_sms.c is included in the Asterisk source apps directory and is
+   included in the object list (app_sms.so) in apps/Makefile.
+   smsq.c is a stand alone helper application which is used to send SMSs
+   from the command line. It uses the popt library. A line for your make
+   file is:-
+smsq: smsq.c
+        cc -O -o smsq smsq.c -lpopt
+
+extensions.conf
+
+   The following contexts are recommended.
+; Mobile Terminated, RX. This is used when an incoming call from the SMS arrive
+s, with the queue (called number and sub address) in ${EXTEN}
+; Running an app after receipt of the text allows the app to find all messages 
+in the queue and handle them, e.g. email them.
+; The app may be something like   smsq --process=somecommand --queue=${EXTEN}  
+to run a command for each received message
+; See below for usage
+[smsmtrx]
+exten = _X.,1, SMS(${EXTEN}|a)
+exten = _X.,2,System("someapptohandleincomingsms ${EXTEN}")
+exten = _X.,3,Hangup
+; Mobile originated, RX. This is receiving a message from a device, e.g. a Magi
+c Messenger on a sip extension
+; Running an app after receipt of the text allows the app to find all messages 
+in the queue and handle then, e.g. sending them to the public SMSC
+; The app may be something like   smsq --process=somecommand --queue=${EXTEN}  
+to run a command for each received message
+; See below for example usage
+[smsmorx]
+exten = _X.,1, SMS(${EXTEN}|sa)
+exten = _X.,2,System("someapptohandlelocalsms ${EXTEN}")
+exten = _X.,3,Hangup
+
+   smsmtrx is normally accessed by an incoming call from the SMSC. In the
+   UK this call is from a CLI of 080058752X0 where X is the sub address.
+   As such a typical usage in the extensions.conf at the point of
+   handling an incoming call is:-
+exten = _X./8005875290,1,Goto(smsmtrx,${EXTEN},1)
+exten = _X./_80058752[0-8]0,1,Goto(smsmtrx,${EXTEN}-${CALLERIDNUM:8:1},1)
+
+   Alternatively, if you have the correct national prefix on incoming
+   CLI, e.g. using zaphfc, you might use:-
+exten = _X./08005875290,1,Goto(smsmtrx,${EXTEN},1)
+exten = _X./_080058752[0-8]0,1,Goto(smsmtrx,${EXTEN}-${CALLERIDNUM:9:1},1)
+
+   smsmorx is normally accessed by a call from a local sip device
+   connected to a Magic Messenger. It could however by that you are
+   operating Asterisk as a message centre for calls from outside. Either
+   way, you look at the called number and goto smsmorx. In the UK, the
+   SMSC number that would be dialed is 1709400X where X is the caller sub
+   address. As such typical usage in extension.config at the point of
+   handling a call from a sip phone is:-
+exten = 17094009,1,Goto(smsmorx,${CALLERIDNUM},1)
+exten = _1709400[0-8],1,Goto(smsmorx,${CALLERIDNUM}-{EXTEN:7:1},1)
+
+Using smsq
+
+   smsq is a simple helper application designed to make it easy to send
+   messages from a command line. it is intended to run on the Asterisk
+   box and have direct access to the queue directories for SMS and for
+   Asterisk.
+   In its simplest form you can send an SMS by a command such as
+   smsq 0123456789 This is a test to 0123456789
+   This would create a queue file for a mobile originated TX message in
+   queue 0 to send the text "This is a test to 0123456789" to 0123456789.
+   It would then place a file in the /var/spool/asterisk/outgoing
+   directory to initiate a call to 17094009 (the default message centre
+   in smsq) attached to application SMS with argument of the queue name
+   (0).
+   Normally smsq will queue a message ready to send, and will then create
+   a file in the Asterisk outgoing directory causing Asterisk to actually
+   connect to the message centre or device and actually send the pending
+   message(s).
+   Using --process, smsq can however be used on received queues to run a
+   command for each file (matching the queue if specified) with various
+   environment variables set based on the message (see below);
+   smsq options:-
+
+   --help
+   Show help text
+   --usage
+   Show usage
+   --queue
+   -q
+   Specify a specific queue
+   In no specified, messages are queued under queue "0"
+   --da
+   -d
+   Specify destination address
+   --oa
+   -o
+   Specify originating address
+   This also implies that we are generating a mobile terminated message
+   --ud
+   -m
+   Specify the actual message
+   --ud-file
+   -f
+   Specify a file to be read for the context of the message
+   A blank filename (e.g. --ud-file= on its own) means read stdin. Very
+   useful when using via ssh where command line parsing could mess up the
+   message.
+   --mt
+   -t
+   Mobile terminated message to be generated
+   --mo
+   Mobile originated message to be generated
+   Default
+   --tx
+   Transmit message
+   Default
+   --rx
+   -r
+   Generate a message in the receive queue
+   --UTF-8
+   Treat the file as UTF-8 encoded (default)
+   --UCS-1
+   Treat the file as raw 8 bit UCS-1 data, not UTF-8 encoded
+   --UCS-2
+   Treat the file as raw 16 bit bigendian USC-2 data
+   --process
+   Specific a command to process for each file in the queue
+   Implies --rx and --mt if not otherwise specified.
+   Sets environment variables for every possible variable, and also ud,
+   ud8 (USC-1 hex), and ud16 (USC-2 hex) for each call. Removes files.
+   --motx-channel
+   Specify the channel for motx calls
+   May contain X to use sub address based on queue name or may be full
+   number
+   Default is Local/1709400X
+   --motx-callerid
+   Specify the caller ID for motx calls
+   The default is the queue name without -X suffix
+   --motx-wait
+   Wait time for motx call
+   Default 10
+   --motx-delay
+   Retry time for motx call
+   Default 1
+   --motx-retries
+   Retries for motx call
+   Default 10
+   --mttx-channel
+   Specify the channel for mttx calls
+   Default is Local/ and the queue name without -X suffix
+   --mtttx-callerid
+   Specify the callerid for mttx calls
+   May include X to use sub address based on queue name or may be full
+   number
+   Default is 080058752X0
+   --mttx-wait
+   Wait time for mttx call
+   Default 10
+   --mttx-delay
+   Retry time for mttx call
+   Default 30
+   --mttx-retries
+   Retries for mttx call
+   Default 100
+   --default-sub-address
+   The default sub address assumed (e.g. for X in CLI and dialled numbers
+   as above) when none added (-X) to queue
+   Default 9
+   --no-dial
+   -x
+   Create queue, but do not dial to send message
+   --no-wait
+   Do not wait if a call appears to be in progress
+   This could have a small window where a mesdsage is queued but not
+   sent, so regular calls to smsq should be done to pick up any missed
+   messages
+   --concurrent
+   How many concurrent calls to allow (per queue), default 1
+   --mr
+   -n
+   Message reference
+   --pid
+   -p
+   Protocol ID
+   --dcs
+   Data coding scheme
+   --udh
+   Specific hex string of user data header specified (not including the
+   initial length byte)
+   May be a blank string to indicate header is included in the user data
+   already but user data header indication to be set.
+   --srr
+   Status report requested
+   --rp
+   Return path requested
+   --vp
+   Specify validity period (seconds)
+   --scts
+   Specify timestamp (YYYY-MM-DDTHH:MM:SS)
+   --spool-dir
+   Spool dir (in which sms and outgoing are found)
+   Default /var/spool/asterisk
+
+   Other arguments starting '-' or '--' are invalid and will cause an
+   error. Any trailing arguments are processed as follows:-
+     * If the message is mobile originating and no destination address
+       has been specified, then the first argument is assumed to be a
+       destination address
+     * If the message is mobile terminating and no destination address
+       has been specified, then the first argument is assumed to be the
+       queue name
+     * If there is no user data, or user data file specified, then any
+       following arguments are assumed to be the message, which are
+       concatenated.
+     * If no user data is specified, then no message is sent. However,
+       unless --no-dial is specified, smsq checks for pending messages
+       and generates an outgoing anyway
+
+   Note that when smsq attempts to make a file in
+   /var/spool/asterisk/outgoing, it checks if there is already a call
+   queued for that queue. It will try several filenames, up to the
+   --concorrent setting. If these files exists, then this means Asterisk
+   is already queued to send all messages for that queue, and so Asterisk
+   should pick up the message just queued. However, this alone could
+   create a race condition, so if the files exist then smsq will wait up
+   to 3 seconds to confirm it still exists or if the queued messages have
+   been sent already. The --no-wait turns off this behaviour. Basically,
+   this means that if you have a lot of messages to send all at once,
+   Asterisk will not make unlimited concurrent calls to the same message
+   centre or device for the same queue. This is because it is generally
+   more efficient to make one call and send all of the messages one after
+   the other.
+   smsq can be used with no arguments, or with a queue name only, and it
+   will check for any pending messages and cause an outgoing if there are
+   any. It only sets up one outgoing call at a time based on the first
+   queued message it finds. A outgoing call will normally send all queued
+   messages for that queue. One way to use smsq would be to run with no
+   queue name (so any queue) every minute or every few seconds to send
+   pending message. This is not normally necessary unless --no-dial is
+   selected. Note that smsq does only check motx or mttx depending on the
+   options selected, so it would need to be called twice as a general
+   check.
+   UTF-8 is used to parse command line arguments for user data, and is
+   the default when reading a file. If an invalid UTF-8 sequence is
+   found, it is treated as UCS-1 data (i.e, as is).
+   The --process option causes smsq to scan the specified queue (default
+   is mtrx) for messages (matching the queue specified, or any if queue
+   not specified) and run a command and delete the file. The command is
+   run with a number of environment variables set as follows. Note that
+   these are unset if not needed and not just taken from the calling
+   environment. This allows simple processing of incoming messages
+
+   $queue
+   Set if a queue specified
+   $?srr
+   srr is set (to blank) if srr defined and has value 1.
+   $?rp
+   rp is set (to blank) if rp defined and has value 1.
+   $ud
+   User data, UTF-8 encoding, including any control characters, but with
+   nulls stripped out
+   Useful for the content of emails, for example, as it includes any
+   newlines, etc.
+   $ude
+   User data, escaped UTF-8, including all characters, but control
+   characters \n, \r, \t, \f, \xxx and \ is escaped as \\
+   Useful fGuaranteed one line printable text, so useful in Subject lines
+   of emails, etc
+   $ud8
+   Hex UCS-1 coding of user data (2 hex digits per character)
+   Present only if all user data is in range U+0000 to U+00FF
+   $ud16
+   Hex UCS-2 coding of user data (4 hex digits per chartacter)
+   other
+   Other fields set using their field name, e.g. mr, pid, dcs, etc. udh
+   is a hex byte string
+
+File formats
+
+   By default all queues are held in a director /var/spool/asterisk/sms.
+   Within this directory are sub directories mtrx, mttx, morx, motx which
+   hold the received messages and the messages ready to send. Also,
+   /var/log/asterisk/sms is a log file of all messages handled.
+   The file name in each queue directory starts with the queue parameter
+   to SMS which is normally the CLI used for an outgoing message or the
+   called number on an incoming message, and may have -X (X being sub
+   address) appended. If no queue ID is known, then 0 is used by smsq by
+   default. After this is a dot, and then any text. Files are scanned for
+   matching queue ID and a dot at the start. This means temporary files
+   being created can be given a different name not starting with a queue
+   (we recommend a . on the start of the file name for temp files).
+   Files in these queues are in the form of a simple text file where each
+   line starts with a keyword and an = and then data. udh and ud have
+   options for hex encoding, see below.
+   UTF-8. The user data (ud) field is treated as being UTF-8 encoded
+   unless the DCS is specified indicating 8 bit formart. If 8 bit format
+   is specified then the user data is sent as is.
+   The keywords are as follows:-
+
+   oa Originating address
+   The phone number from which the message came
+   Present on mobile terminated messages and is the CLI for morx messages
+   da
+   Destination Address
+   The phone number to which the message is sent
+   Present on mobile originated messages
+   scts
+   The service centre time stamp
+   Format YYYY-MM-DDTHH:MM:SS
+   Present on mobile terminated messages
+   pid
+   One byte decimal protocol ID
+   See GSM specs for more details
+   Normally 0 or absent
+   dcs
+   One byte decimal data coding scheme
+   If omitted, a sensible default is used (see below)
+   See GSM specs for more details
+   mr
+   One byte decimal message reference
+   Present on mobile originated messages, added by default if absent
+   srr
+   0 or 1 for status report request
+   Does not work in UK yet, not implemented in app_sms yet
+   rp
+   0 or 1 return path
+   See GSM specs for details
+   vp
+   Validity period in seconds
+   Does not work in UK yet
+   udh
+   Hex string of user data header prepended to the SMS contents,
+   excluding initial length byte.
+   Consistent with ud, this is specified as udh# rather than udh=
+   If blank, this means that the udhi flag will be set but any user data
+   header must be in the ud field
+   ud
+   User data, may be text, or hex, see below
+
+   udh is specified as as udh# followed by hex (2 hex digits per byte).
+   If present, then the user data header indicator bit is set, and the
+   length plus the user data header is added to the start of the user
+   data, with padding if necessary (to septet boundary in 7 bit format).
+   User data can hold an USC character codes U+0000 to U+FFFF. Any other
+   characters are coded as U+FEFF
+   ud can be specified as ud= followed by UTF-8 encoded text if it
+   contains no control characters, i.e. only (U+0020 to U+FFFF). Any
+   invalid UTF-8 sequences are treated as is (U+0080-U+00FF).
+   ud can also be specified as ud# followed by hex (2 hex digits per
+   byte) containing characters U+0000 to U+00FF only.
+   ud can also be specified as ud## followed by hex (4 hex digits per
+   byte) containing UCS-2 characters.
+   When written by app_sms (e.g. incoming messages), the file is written
+   with ud= if it can be (no control characters). If it cannot, the a
+   comment line ;ud= is used to show the user data for human readability
+   and ud# or ud## is used.
+
+Delivery reports
+
+   The SMS specification allows for delivery reports. These are requested
+   using the srr bit. However, as these do not work in the UK yet they
+   are not fully implemented in this application. If anyone has a telco
+   that does implement these, please let me know. BT in the UK have a non
+   standard way to do this by starting the message with *0#, and so this
+   application may have a UK specific bodge in the near future to handle
+   these.
+   The main changes that are proposed for delivery report handling are :-
+     * New queues for sent messages, one file for each destination
+       address and message reference.
+     * New field in message format, user reference, allowing applications
+       to tie up their original message with a report.
+     * Handling of the delivery confirmation/rejection and connecting to
+       the outgoing message - the received message file would then have
+       fields for the original outgoing message and user reference
+       allowing applications to handle confirmations better.

Propchange: team/group/autoconf_and_menuselect/doc/app-sms.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: team/group/autoconf_and_menuselect/doc/app-sms.txt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: team/group/autoconf_and_menuselect/doc/app-sms.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: team/group/autoconf_and_menuselect/doc/asterisk-conf.txt
URL: http://svn.digium.com/view/asterisk/team/group/autoconf_and_menuselect/doc/asterisk-conf.txt?rev=18300&view=auto
==============================================================================
--- team/group/autoconf_and_menuselect/doc/asterisk-conf.txt (added)
+++ team/group/autoconf_and_menuselect/doc/asterisk-conf.txt Fri Apr  7 10:40:08 2006
@@ -1,0 +1,78 @@
+Asterisk Main Configuration File
+-----------------------------------------------------
+Below is a sample of the main Asterisk configuration file,
+asterisk.conf. Note that this file is _not_ provided in
+sample form, because the Makefile creates it when needed
+and does not touch it when it already exists.
+
+---------------
+
+[directories]
+; Make sure these directoriess have the right permissions if not
+; running Asterisk as root 
+
+; Where the configuration files (except for this one) are located
+astetcdir => /etc/asterisk
+
+; Where the Asterisk loadable modules are located
+astmoddir => /usr/lib/asterisk/modules
+
+; Where additional 'library' elements (scripts, etc.) are located
+astvarlibdir => /var/lib/asterisk
+
+; Where AGI scripts/programs are located
+astagidir => /var/lib/asterisk/agi-bin
+
+; Where spool directories are located
+; Voicemail, monitor, dictation and other apps will create files here
+; and outgoing call files (used with pbx_spool) must be placed here
+astspooldir => /var/spool/asterisk
+
+; Where the Asterisk process ID (pid) file should be created
+astrundir => /var/run/asterisk
+
+; Where the Asterisk log files should be created
+astlogdir => /var/log/asterisk
+
+
+[options]
+;Under "options" you can enter configuration options
+;that you also can set with command line options
+
+verbose = 0					; Verbosity level for logging (-v)
+debug = 3					; Debug: "No" or value (1-4)
+nofork=yes | no					; Background execution disabled (-f)
+console= yes | no				; Console mode (-c)
+highpriority = yes | no				; Execute with high priority (-p)
+initcrypto = yes | no				; Initialize crypto at startup (-i)
+nocolor = yes | no				; Disable ANSI colors (-n)
+dumpcore = yes | no				; Dump core on failure (-g)
+quiet = yes | no				; Run quietly (-q)
+timestamp = yes | no				; Force timestamping on log entries to console (-T)
+runuser = asterisk				; User to run asterisk as (-U) NOTE: will require changes to
+						; directory and device permisions
+rungroup = asterisk				; Group to run asterisk as (-G)
+internal_timing = yes | no			; Enable internal timing support (-I)
+
+;These options have no command line equivalent
+cache_record_files = yes | no			; Cache record() files in another directory until completion
+record_cache_dir = <dir>
+transcode_via_sln = yes | no 			; Build transcode paths via SLINEAR
+transmit_silence_during_record = yes | no	; send SLINEAR silence while channel is being recorded
+maxload = 1.0					; The maximum load average we accept calls for
+maxcalls = 255					; The maximum number of concurrent calls you want to allow 
+execincludes = yes | no 			; Allow #exec entries in configuration files
+dontwarn = yes | no				; Don't over-inform the Asterisk sysadm, he's a guru
+systemname = <a_string>				; System name. Used to prefix CDR uniqueid and to fill ${SYSTEMNAME}
+
+[files]
+; Changing the following lines may compromise your security
+; Asterisk.ctl is the pipe that is used to connect the remote CLI
+; (asterisk -r) to Asterisk. Changing these settings change the
+; permissions and ownership of this file. 
+; The file is created when Asterisk starts, in the "astrundir" above.
+
+;astctlpermissions = 0660
+;astctlowner = root
+;astctlgroup = asterisk
+;astctl = asterisk.ctl

Propchange: team/group/autoconf_and_menuselect/doc/asterisk-conf.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: team/group/autoconf_and_menuselect/doc/asterisk-conf.txt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: team/group/autoconf_and_menuselect/doc/asterisk-conf.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: team/group/autoconf_and_menuselect/doc/backtrace.txt
URL: http://svn.digium.com/view/asterisk/team/group/autoconf_and_menuselect/doc/backtrace.txt?rev=18300&view=auto
==============================================================================
--- team/group/autoconf_and_menuselect/doc/backtrace.txt (added)
+++ team/group/autoconf_and_menuselect/doc/backtrace.txt Fri Apr  7 10:40:08 2006
@@ -1,0 +1,187 @@
+This document is to provide information on how to obtain the
+backtraces required on the asterisk bug tracker, available at
+http://bugs.digium.com. The information is required by developers to
+help fix problem with bugs of any kind. Backtraces provide information
+about what was wrong when a program crashed; in our case,
+Asterisk. There are two kind of backtraces (aka 'bt'), which are
+useful: bt and bt full.
+
+First of all, when you start Asterisk, you MUST start it with option
+-g (this tells Asterisk to produce a core file if it crashes).
+
+If you start Asterisk with the safe_asterisk script, it automatically
+starts using the option -g.
+
+If you're not sure if Asterisk is running with the -g option, type the
+following command in your shell:
+
+debian:/tmp# ps aux | grep asterisk
+root     17832  0.0  1.2   2348   788 pts/1    S    Aug12   0:00 /bin/sh /usr/sbin/safe_asterisk
+root     26686  0.0  2.8  15544  1744 pts/1    S    Aug13   0:02 asterisk -vvvg -c
+[...]
+
+The interesting information is located in the last column.
+
+Second, your copy of Asterisk must have been built without
+optimization or the backtrace will be (nearly) unusable. This can be
+done by using 'make dont-optimize' intead of 'make install' to build
+and install the Asterisk binary and modules.
+
+After Asterisk crashes, a core file will be "dumped" in your /tmp/
+directory. To make sure it's really there, you can just type the
+following command in your shell:
+
+debian:/tmp# ls -l /tmp/core.*
+-rw-------  1 root root 10592256 Aug 12 19:40 /tmp/core.26252
+-rw-------  1 root root  9924608 Aug 12 20:12 /tmp/core.26340
+-rw-------  1 root root 10862592 Aug 12 20:14 /tmp/core.26374
+-rw-------  1 root root  9105408 Aug 12 20:19 /tmp/core.26426
+-rw-------  1 root root  9441280 Aug 12 20:20 /tmp/core.26462
+-rw-------  1 root root  8331264 Aug 13 00:32 /tmp/core.26647
+debian:/tmp#
+
+Now that we've verified the core file has been written to disk, the
+final part is to extract 'bt' from the core file. Core files are
+pretty big, don't be scared, it's normal.
+
+*** NOTE: Don't attach core files on the bug tracker, we only need the bt and bt full. ***
+
+For extraction, we use a really nice tool, called gdb. To verify that
+you have gdb installed on your system:
+
+debian:/tmp# gdb -v
+GNU gdb 6.3-debian
+Copyright 2004 Free Software Foundation, Inc.
+GDB is free software, covered by the GNU General Public License, and you are
+welcome to change it and/or distribute copies of it under certain conditions.
+Type "show copying" to see the conditions.
+There is absolutely no warranty for GDB.  Type "show warranty" for details.
+This GDB was configured as "i386-linux".
+debian:/tmp#
+
+Which is great, we can continue. If you don't have gdb installed, go install gdb.
+
+Now load the core file in gdb, as follows:
+
+debian:/tmp# gdb -se "asterisk" -c /tmp/core.26252
+[...]
+(You would see a lot of output here.)
+[...]
+Reading symbols from /usr/lib/asterisk/modules/app_externalivr.so...done.
+Loaded symbols for /usr/lib/asterisk/modules/app_externalivr.so
+#0  0x29b45d7e in ?? ()
+(gdb)
+
+Now at the gdb prompt, type: bt
+You would see output similar to:
+(gdb) bt
+#0  0x29b45d7e in ?? ()
+#1  0x08180bf8 in ?? ()
+#2  0xbcdffa58 in ?? ()
+#3  0x08180bf8 in ?? ()
+#4  0xbcdffa60 in ?? ()
+#5  0x08180bf8 in ?? ()
+#6  0x180bf894 in ?? ()
+#7  0x0bf80008 in ?? ()
+#8  0x180b0818 in ?? ()
+#9  0x08068008 in ast_stopstream (tmp=0x40758d38) at file.c:180
+#10 0x000000a0 in ?? ()
+#11 0x000000a0 in ?? ()
+#12 0x00000000 in ?? ()
+#13 0x407513c3 in confcall_careful_stream (conf=0x8180bf8, filename=0x8181de8 "Zap/pseudo-1324221520") at app_meetme.c:262
+#14 0x40751332 in streamconfthread (args=0x8180bf8) at app_meetme.c:1965
+#15 0xbcdffbe0 in ?? ()
+#16 0x40028e51 in pthread_start_thread () from /lib/libpthread.so.0
+#17 0x401ec92a in clone () from /lib/libc.so.6
+(gdb)
+
+
+The bt's output is the information that we need on the bug tracker.
+
+Now do a bt full as follows:

[... 4438 lines stripped ...]


More information about the asterisk-commits mailing list