[Asterisk-Dev] Several patches, including recording and music-on-hold

Fettahlioglu, Mahmut Mahmut.Fettahlioglu at oa.com.au
Tue Mar 11 20:00:51 MST 2003

Hello everyone,

I was working on implementing several changes to asterisk. I had described
the changes and their reasons in several emails before I started the job. I
have completed the modifications some weeks ago; the system was then tested
extensively and is now in use in a production environment. It seems fairly
stable so far.

I believe at least some of the additions can be of general use and would
like to submit a patch. The modifications done are:

- Call recording. Any channel can be recorded through calling applications
on the dial plan, or sending messages through the manager interface. A
monitoring resource is created for this
functionality. I used Kostya V. Ivanov's call recording patch to get the
idea how. Thanks for this Kostya!
- An alaw pcm format file driver. I had to record conversations in alaw
format. This is based on the ulaw format driver. However, I had to make file
writing real-time for call recording to function correctly when channels use
silence suppression. To do this, basically the file driver keeps the time
recording started, and when new data is to be written to the file, it is
written to the correct file position. I have seen that a seek function was
added to file drivers after I have done those changes, and I think we might
want to change the way file seeking is done currently. However, initially
adding the file as is will be the easiest.
- Additional information is sent through the manager interface for queue
- Some bug fixes in chan_agent channel driver (mostly to do with race
- Modification to chan_sip so the default callerid used when sending INVITEs
is not hardcoded to "asterisk", but is read from the config file. It
defaults to "asterisk".
- Modifications to manager to make the tcp connection TCP_NODELAY. I have
found we sometimes have delays in tcp message transmit due to the Naple
algorithm used in TCP. For this fix to work, both the client (astman,
gastman) and the server (asterisk) needs to be in TCP_NODELAY mode.
- Asterisk exits if it cannot create a thread. I have observed that once
thread creation starts to fail, Asterisk never recovers. So the changes
cause asterisk to stop once it detects that. The starter script can then
restart asterisk. This behaviour can be disabled by sending -DEXPERIMENTAL
to the compiler in the makefile.
- Changed how music on hold resource works so that it does not need a zaptel
driver for timing any more. Sound quality is good and not choppy without any
zaptel driver.

I believe this should be about all. The patchfile is attached. Any comments
are welcome.


Mahmut Fettahlioglu
Software Architect

Open Access Pty Ltd
PO Box 301
Crows Nest NSW 1585
Phone		02 9978 7009
Fax		02 9978 7099
Email		<mahmut.fettahlioglu at oa.com.au>
This email is intended only for the use of the individual or entity
named above and may contain information that is confidential and
privileged. If you are not the intended recipient, you are hereby
notified that any dissemination, distribution or copying of this
email is strictly prohibited. If you have received this email in
error, please notify us immediately by return email or telephone 
02 9978 7009 and destroy the original message.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: patchfile.gz
Type: application/octet-stream
Size: 12815 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20030311/8787a625/patchfile.obj

More information about the asterisk-dev mailing list