[asterisk-users] click to call with php

salaheddine elharit salah.elharit200 at gmail.com
Fri May 20 04:42:20 CDT 2011


Ok thank you so much for all advice

2011/5/20 A J Stiles <asterisk_list at earthshod.co.uk>

> On Friday 20 May 2011, Dovid Bender wrote:
> > I had issue with call files. They would lock up the system (this was 5
> > years ago so maybe things have changed.....)
>
> Whenever you open a file for writing, a link is created in the containing
> folder's directory  (which says where on the disk the file is located)
> pretty much straight away -- so other processes can see the file.  And
> files
> are written to disk, not one character at a time, but in blocks whose size
> depends on the filesystem, one full block at a time.  The last block may
> well
> be incomplete, and so contain junk after the file proper; but the directory
> entry gives the actual file size, so the junk can be ignored.#
>
> This creates a race condition:  Asterisk may try to parse a call file which
> is
> still in an incomplete state  (empty or just the first block of several),
> and get its knickers in a twist.
>
> The *proper* way to avoid this situation, is to create the call file in a
> temporary location first; then `mv` it to the /var/spool/asterisk/outgoing/
> folder.  Moving a file within a filesystem just entails putting a new link
> in
> the destination folder's directory, and removing the one from the old
> directory.  Moving a file across filesystems entails a copy operation; but
> either way, the important thing is that *the link to the destination file
> won't be placed in the folder's directory until the data is actually
> there*.
>
> The *bodgy* way to avoid this situation, is to make sure the file is
> smaller
> than one logical block on the filesystem where .../outgoing/ resides; turn
> off buffer autoflushing in the scripting language; and cross your fingers
> that the file will already be complete in the cache when the directory is
> updated.  And even if it works on your system today, you might find that an
> upgrade to Asterisk, your scripting language, whatever invoked the script,
> the filesystem driver in the kernel, or even a change in RAM or disk usage
> on
> your server, breaks it tomorrow.
>
> --
> AJS
>
> Answers come *after* questions.
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
>               http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>   http://lists.digium.com/mailman/listinfo/asterisk-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110520/ad060f07/attachment.htm>


More information about the asterisk-users mailing list