<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkEHRXk7eCp7ImA9WhRUEEo.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427</id><updated>2012-01-20T07:50:34.700-08:00</updated><category term="Cool Applications of Asterisk" /><category term="Clocking Fundamentals" /><category term="Dial Plan" /><title>Telephony Blog</title><subtitle type="html">Email: dipkumar.mehta@gmail.com
Please click advertisements if you like my work</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://asteriskglobe.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://asteriskglobe.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Asterisk-Freedom" /><feedburner:info uri="asterisk-freedom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEIDRXs6cSp7ImA9WhRVFk4.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-7267015632196960478</id><published>2012-01-15T05:02:00.000-08:00</published><updated>2012-01-15T05:02:54.519-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-15T05:02:54.519-08:00</app:edited><title>SIP Protocol Messages</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;h1 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 24px; font-weight: normal; line-height: 19px; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em; text-align: -webkit-auto;"&gt;&lt;span class="mw-headline"&gt;Requests&lt;/span&gt;&lt;/h1&gt;&lt;div&gt;&lt;span class="mw-headline"&gt;&lt;ul style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; list-style-image: url(http://wiki.freeswitch.org/skins/monobook/bullet.gif); list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;INVITE Indicates that a user is being invited to join a session.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;ACK Confirms that client has received a response to the invite message.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;BYE Terminates a call.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;CANCEL Cancels any Pending Searches.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;OPTIONS Queries for Capabilities.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;REGISTER Registers the Address listed in the header field with a SIP Server&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;span style="font-family: sans-serif; font-size: x-small;"&gt;&lt;span style="line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;h1 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 24px; font-weight: normal; line-height: 19px; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em;"&gt;&lt;span class="mw-headline"&gt;Responses&lt;/span&gt;&lt;/h1&gt;&lt;a href="" id="1xx_Informational_Messages" name="1xx_Informational_Messages" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #002bb8; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;"&gt;&lt;/a&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19px; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em;"&gt;&lt;span class="mw-headline"&gt;1xx Informational Messages&lt;/span&gt;&lt;/h2&gt;&lt;ul style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; list-style-image: url(http://wiki.freeswitch.org/skins/monobook/bullet.gif); list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;100 Trying: Indicates that a request has been initiated by the caller and the called party has yet not been located.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;180 Ringing: Indicates that the called party has been located and is being notified of the call.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;181 Call is being forwarded: Indicates that the called party has rerouted the call to another.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;182 Queued: Indicates that the called party is currently not available, and have put the call in queue.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;183 Session in Progress&lt;/li&gt;
&lt;/ul&gt;&lt;a href="" id="2xx_Successful_Responses" name="2xx_Successful_Responses" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #002bb8; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;"&gt;&lt;/a&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19px; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em;"&gt;&lt;span class="mw-headline"&gt;2xx Successful Responses&lt;/span&gt;&lt;/h2&gt;&lt;ul style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; list-style-image: url(http://wiki.freeswitch.org/skins/monobook/bullet.gif); list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;200 OK: Indicates that the request has been successfully processed.&lt;/li&gt;
&lt;/ul&gt;&lt;a href="" id="3xx_Redirection_Responses" name="3xx_Redirection_Responses" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #002bb8; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;"&gt;&lt;/a&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19px; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em;"&gt;&lt;span class="mw-headline"&gt;3xx Redirection Responses&lt;/span&gt;&lt;/h2&gt;&lt;ul style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; list-style-image: url(http://wiki.freeswitch.org/skins/monobook/bullet.gif); list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;300 Multiple Choices: Indicates that the address resolved to more than one location.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;301 Moved permanently: Indicates user is no longer available at this location, an alternate location should be included in the header.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;302 Moved Temporarily: Indicates that the user in temporarily unavailable, an alternate location should be included in the header.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;305 Use Proxy: This response indicates that the caller must use a proxy to contact the called party.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;380 Call is not successful but alternate services are available.&lt;/li&gt;
&lt;/ul&gt;&lt;a href="" id="4xx_Request_Failure_Responses" name="4xx_Request_Failure_Responses" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #002bb8; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;"&gt;&lt;/a&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19px; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em;"&gt;&lt;span class="mw-headline"&gt;4xx Request Failure Responses&lt;/span&gt;&lt;/h2&gt;&lt;ul style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; list-style-image: url(http://wiki.freeswitch.org/skins/monobook/bullet.gif); list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;400 Bad Request: Indicates the request sent could not be understood.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;401 Unauthorized Request: Indicates the request requires authorization.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;402 Payment Required: Indicates payment is required to complete the call.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;403 Forbidden: Indicates Server has received the request but will not provide the service.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;404 Not Found: Indicates the server was not found.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;405 Method Not Allowed: Indicates that the request contains a list of methods that are not allowed.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;406 Not acceptable: Indicates that the request can not be processed by the client.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;407 Proxy Authentication Required: Client must first authenticate itself with a proxy.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;408 Request Timeout: The server could not produce a response before a given time out.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;409 Conflict: Indicates a conflict with the current state of the resource.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;410 Gone: Resource is no longer available at the server and no forwarding address was found.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;411 Length Required: User refuses request without a specified length.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;412 Request Entity Too Large: Server refuses to process request because URI is too long.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;415 Unsupported Media: Indicates the format of the body is not supported by the destination endpoint.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;420 Bad Extension: The server could not understand the protocol extension indicated in the required header.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;480 Temporarily Unavailable: Indicates that the called party was contacted but was temporarily unavailable.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;481 Call Leg Transaction Does Not Exist: Indicates that the server was ignoring the request of bye or cancel since there is no matching Invite transaction.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;482 Loop Detected: (Also,&amp;nbsp;&lt;i&gt;Request Merged&lt;/i&gt;) Server received a request which has it self in the path.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;483 Too Many Hops: The server received a request that required more hops than allowed.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;484 Incomplete Address: The server received a request with an incomplete address.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;485 Ambiguous: Server received a request in which the called address is ambiguous.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;486 Busy Here: The called party was contacted but the system was not able to receive any more calls.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;487 Request Terminated: The calling party canceled the request before the dialog was established with a 200 OK.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;488 Not Acceptable Here&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;489 Bad Event: See&amp;nbsp;&lt;a class="external text" href="http://www.faqs.org/rfcs/rfc3265.html" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://wiki.freeswitch.org/skins/monobook/external.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://www.faqs.org/rfcs/rfc3265.html"&gt;RFC3265&lt;/a&gt;&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;491 Request Pending&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;493 Undecipherable&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;494 Security Agreement Required: See&amp;nbsp;&lt;a class="external text" href="http://www.faqs.org/rfcs/rfc3329.html" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://wiki.freeswitch.org/skins/monobook/external.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://www.faqs.org/rfcs/rfc3329.html"&gt;RFC3329&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;a href="" id="5xx_Server_Failure_Responses" name="5xx_Server_Failure_Responses" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #002bb8; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;"&gt;&lt;/a&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19px; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em;"&gt;&lt;span class="mw-headline"&gt;5xx Server Failure Responses&lt;/span&gt;&lt;/h2&gt;&lt;ul style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; list-style-image: url(http://wiki.freeswitch.org/skins/monobook/bullet.gif); list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;500 Server Internal Error: Server encountered an unexpected error and could not process the request&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;501 Not Implemented: Server does not support the functions required to complete the request.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;502 Bad Gateway: Server received an invalid request upstream.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;503 Service Unavailable: Server has an overload or maintenance problem.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;504 Gateway Timeout: Server did not receive a timely response from another server.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;505 Version Not Supported: Server does not support the SIP protocol used in the request.&lt;/li&gt;
&lt;/ul&gt;&lt;a href="" id="6xx_Global_Failure_Responses" name="6xx_Global_Failure_Responses" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #002bb8; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;"&gt;&lt;/a&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19px; margin-bottom: 0.6em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.17em; padding-top: 0.5em;"&gt;&lt;span class="mw-headline"&gt;6xx Global Failure Responses&lt;/span&gt;&lt;/h2&gt;&lt;ul style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; list-style-image: url(http://wiki.freeswitch.org/skins/monobook/bullet.gif); list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;600 Busy Everywhere: Called party is busy and cannot take the call at this time.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;603 Decline: Called party was contacted but does not want to take part in the call.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;604 Does Not Exist Anywhere: Called Party does not exist anywhere in the network.&lt;/li&gt;
&lt;li style="margin-bottom: 0.1em;"&gt;606 Not Acceptable: Called party has rejected some part of the call session description as unacceptable.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-7267015632196960478?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/650O04XdUTnS0Wf_bOAXtNqvb8s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/650O04XdUTnS0Wf_bOAXtNqvb8s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/650O04XdUTnS0Wf_bOAXtNqvb8s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/650O04XdUTnS0Wf_bOAXtNqvb8s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/dY-Ab7UJgn0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/7267015632196960478?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/7267015632196960478?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/dY-Ab7UJgn0/sip-protocol-messages.html" title="SIP Protocol Messages" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2012/01/sip-protocol-messages.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEADQHc4cSp7ImA9WhRRE0Q.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-4271739962680673709</id><published>2011-11-27T03:19:00.000-08:00</published><updated>2011-11-27T03:19:31.939-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-27T03:19:31.939-08:00</app:edited><title>Difference between Asterisk and Freeswitch</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;Asterisk and FreeSWITCH are B2BUA (Back-to-back user agents). They act as a user agent for two or more ends, and use a common protocol like the Session Initiation Protocol (SIP). The B2BUA is responsible for handling all SIP signaling between the end-points, route calls, transfer calls, translate codecs between the call legs and offer value-added features to the call such as voicemail and call transfer.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;In other words, they are telephony platforms designed to facilitate the creation of voice and chat driven products. FreeSWITCH in particular, can scale from a soft-phone up to a soft-switch. It can be used as a simple switching engine, a PBX, a media gateway or a media server to host IVR applications using simple scripts or XML to control the call flow.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;b&gt;Isn’t FreeSWITCH a soft-switch and Asterisk a PBX? What is the difference?&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;Extracted from the FreeSWITCH FAQ:&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;"A PBX is an entity that allows a private company to have its own mini phone company providing services like voicemail, extensions and conferencing to phones. The primary focus of a PBX is for multiple phones to find each other and communicate. A soft-switch is a software application that can connect phone lines from one network to another, often routing calls from one protocol to another or to a termination point such as a PBX. FreeSWITCH has the potential to also implement a PBX but it is not mandated to. Think of it as a lower level application than a PBX. It’s possible to load several modules into FreeSWITCH to make it behave exactly like a cluster of PBX applications. This is entirely easier than trying to make a single monolithic PBX behave as a switch especially when much of the PBX functionality is permanently built into the core of the PBX application."&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;b&gt;My first experience with Asterisk&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;I installed Asterisk in my lab setup and right now it does inbound/outbound, IVR (Interactive Voice Response), conferences, voicemail, call forwarding and almost everything else you would expect from a nice VoIP (PBX) server. There are some things that some of us would like to have that are not currently available in the Asterisk software, such as &lt;b&gt;&lt;u&gt;dialing out from conferences and soft-based conferences. &lt;/u&gt;&lt;/b&gt;A few employees have asked me for the option to dial out from conferences but I cannot yet add this to our configuration because the feature doesn't exist in Asterisk. It is a technical limitation of Asterisk but it is available on FreeSWITCH. This is one of the reasons that FreeSWITCH would be better suited for us.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;I have a fair amount of Asterisk knowledge now. I have used it for some time and I know its merits and its problems. The nice thing about Asterisk is that it's really easy to set up and configure the way you want. The bad thing about it is that it has some internal problems on its core and sometimes it gives you unexpected problems. It also lacks some of the features we need.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;b&gt;Asterisk issues and bugs I have found in the software&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;I ran into some problems when I tried to deploy &lt;b&gt;&lt;u&gt;Asterisk on a VPS first (Amazon EC2).&lt;/u&gt;&lt;/b&gt; When I tried to do conferencing, I needed the MeetMe application that provides conferences, and MeetMe depends on Zaptel (which is another piece of software that provides the timing that MeetMe needs). I tried to install Zaptel, but Zaptel refused to work on XEN (the virtualization software that our VPS uses). So I didn't have any other choice but to go with a dedicated server for our VoIP needs. &lt;b&gt;FreeSWITCH works great on a VPS with all the conferencing features, and everything out of the box - no zaptel, ztdummy or anything that could interfere is needed.&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;I tried very hard to make Asterisk work with the conference features on the VPS (Amazon EC2). I also tried with other conference applications like app_conference.&lt;b&gt; This doesn't require an external timing source like MeetMe does, but it lacks some features that we needed, such as sound notifications. &lt;/b&gt;MeetMe had this but MeetMe wasn't an option on the VPS because of its technical requirements. I also tried to get support on Asterisk and their response to my problem was that it was "irrelevant".&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;This was the first time I started asking myself, "Why do I need a ztdummy driver (Zaptel) in order to use the conference module? Why can't the conference module use it's own internal timing source?" I thought there was something wrong with this design. That was the first time I heard about FreeSWITCH and when I saw the light.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;I also experienced DTMF problems and sound corruption with Asterisk. This happens because the Asterisk core is broken. I tried doing the same things in FreeSWITCH and everything worked great.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;After all of the work that I put into making Asterisk work on our server, I keep discovering more and more problems with it. The first problem I discovered after everything was working was the DTMF problem. One day an employee asked me why his password wasn't working. I went and looked at the server and his password was there and everything looked good. Then I tried to debug it and I put a function on the dialplan that returned the digits that you send to the server and to my surprise, the server was printing bad/broken digits. So after a lot of research, I have come with the conclusion that the DTMF in Asterisk was broken.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;One workaround for this problem was to use rfc2833compensate=yes in the sip configuration, in order to compensate the DTMF digits or RTP packets... this fixed it with X-Lite but the problem still happens with Zoiper. I'm sure this is the reason that passwords fail for conferences sometimes.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;Another problem I had was with sound. The sound gets corrupted after a while with the Speex codec. Again I reported a bug of this&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;I have also experienced some deadlocks with Asterisk as reported here:&lt;a href="http://bugs.digium.com/view.php?id=12810" style="color: #0095d3; text-decoration: none;" target="_blank"&gt;bugs.digium.com/view.php&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;I have tried the same things with FreeSWITCH and I haven't experienced the problems. It all went very smoothly and FreeSWITCH has some features that Asterisk doesn't, such as dialing out from conferences.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;I came to the point where I realized that we need a better solution. Asterisk has too many problems for our company. I decided to go with FreeSWITCH in order to have a high quality PBX.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;b&gt;On the way to a better VoIP solution with FreeSWITCH&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;The learning curve on FreeSWITCH for me wasn't that bad. However, I didn't know so it was a bit tedious for me at first. I now realize that the XML configuration is a good thing. Regular expressions in the dialplan make it succinct and the XML makes adding customized features very easy and straightforward. &lt;b&gt;FreeSWITCH is a class-five soft-switch&lt;/b&gt; that can be molded the way you want, from a PBX to carrier-grade soft-switch to anything you can ever imagine, and it's very extensible. The design that its creator went with is excellent. It is a masterpiece and there is nothing in the open source world or in the proprietary world that comes even close to it. I think that it is a great piece of work.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;One of the big advantages of FreeSWITCH is that it's core is better designed, with a lot of care in the details. The primary author of FreeSWITCH is a former developer that spent a lot of time working with the flawed Asterisk design and finally gave up and decided to build a VoIP system that would be stable, scalable and extensible. The stable part means that we'll all be able to sleep well at night.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;One of the nice things about FreeSWITCH is the community. The developers themselves and the users all hang in one channel - #freeswitch (at freenode). The mailing list is also a very nice place. In both places they are very friendly and supportive, unlike the Asterisk/Digium community. They are also open-minded. At one point I asked for a feature (mod_yaml) and the creator of FreeSWITCH (Anthony Minessale) came up with this feature in less than 3 hours - without even knowing what YAML was when the feature was asked for. It was really impressive. He came up with a whole new feature that he hadn't even heard of yet, while the Asterisk devs can't even fix little bugs.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;Another nice thing about FreeSWITCH is that it doesn't suffer from the "Not Invented Here" (NIH) syndrome that Asterisk suffers from. FreeSWITCH uses the Sofia SIP stack, a 100% RFC compliant SIP stack, which is very complete, robust and mature. Nokia also actively contributes in this stack along with the FS developers. They also use XML and PCRE (Perl Compatible Regular Expressions) for the dialplan, the Apache Portable Runtime (APR) and SQLite. FreeSWITCH has the ability to load scripts written in LUA, Python, Perl, PHP and XML in the dialplan as "applications” so you have a lot of flexibility and freedom in how you want to configure your VoIP system.&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;b&gt;Please write to me at dipkumar.mehta@gmail.com for Freeswitch Consultancy across the globe.&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #666666; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 16px; text-align: -webkit-auto;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-4271739962680673709?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u1ZHaaq6f157wqob8eyrLlbMif0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u1ZHaaq6f157wqob8eyrLlbMif0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u1ZHaaq6f157wqob8eyrLlbMif0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u1ZHaaq6f157wqob8eyrLlbMif0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/ChkoIQ6xs3I" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/4271739962680673709?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/4271739962680673709?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/ChkoIQ6xs3I/difference-between-asterisk-and.html" title="Difference between Asterisk and Freeswitch" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2011/11/difference-between-asterisk-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EBSH8-fyp7ImA9WhdaEks.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-3105076232378163091</id><published>2011-10-21T23:40:00.000-07:00</published><updated>2011-10-21T23:40:59.157-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T23:40:59.157-07:00</app:edited><title>How to install Asterisk 1.8 on Ubuntu Server 11.04</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
It is easy to install and use an Asterisk &amp;nbsp;on Ubuntu New Server addition 11.04 – if you do it frequently.&amp;nbsp;&lt;/div&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;I use Asterisk 1.8.3.3 on my 64 bit Ubuntu Server 11.04.&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;span id="more-388" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;img alt="" src="http://letitknow.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="More..." /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
After the upgrade on a fresh install, we need three packages to build up our Asterisk. Let’s install the build-essential, libxml2-dev, and ncurses-dev packages. These package are not included by default and should be installed seperately as described below.&amp;nbsp;&lt;/div&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;apt-get install build-essential libxml2-dev ncurses-dev &lt;/code&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Pre-requisite :&amp;nbsp;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
As these packages are not included by default, running them from the CD will generate errors.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Example : E:\ no packages found. So please # comment out the CD rom related settings rc.local file.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/04/asterisk_011.png?w=300&amp;amp;h=183" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Asterisk_01" border="0" height="244" src="http://letitknow.files.wordpress.com/2011/04/asterisk_011.png?w=300&amp;amp;h=183" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;You can find all versions of the Asterisk at the&amp;nbsp;&lt;a href="http://downloads.asterisk.org/pub/telephony/asterisk/releases/" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;download section&lt;/a&gt;. Download the latest version, and extract it!&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Please right-click on the tar file on asterisk site and select copy link address&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
/usr/src is the most common place or directory to install this files&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
cd /usr/src&lt;/div&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: #f4f5f7; color: #555555; font-family: monospace; font-size: 12px; line-height: 17px; white-space: pre;"&gt;wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.3.3.tar.gz&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: #f4f5f7; color: #555555; font-family: monospace; font-size: 12px; line-height: 17px; white-space: pre;"&gt;tar zxvf asterisk-1.8.3.3.tar.gz &lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
or&amp;nbsp;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
wget paste Link address&lt;/div&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Then install the Asterisk, config, and the shamples.&lt;/div&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
cd asterisk-1.8.3.3/
./configure
make
make install
make config
make samples &lt;/code&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Without the above-mentioned additional packages, you will face with these error messages during the ./configure command run.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Lack of build-essential package:&lt;/div&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
configure: error: in `/root/asterisk-1.8.3.3':
configure: error: no acceptable C compiler found in $PATH &lt;/code&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/05/asterisk_1833_ubintu_server_11-04_01.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="" class="aligncenter size-medium wp-image-390" height="188" src="http://letitknow.files.wordpress.com/2011/05/asterisk_1833_ubintu_server_11-04_01.png?w=300&amp;amp;h=188" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Asterisk_1833_Ubintu_Server_11.04_01" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Lack of libxml2-dev package:&lt;/div&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
checking for xml2-config... no
configure: *** XML documentation will not be available because the 'libxml2' development package is missing.
configure: *** Please run the 'configure' script with the '--disable-xmldoc' parameter option
configure: *** or install the 'libxml2' development package. &lt;/code&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/05/asterisk_1833_ubintu_server_11-04_02.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="" class="aligncenter size-medium wp-image-391" height="188" src="http://letitknow.files.wordpress.com/2011/05/asterisk_1833_ubintu_server_11-04_02.png?w=300&amp;amp;h=188" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Asterisk_1833_Ubintu_Server_11.04_02" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Lack of ncurses-dev package:&lt;/div&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
configure: error: *** termcap support not found (on modern systems, this typically means the ncurses development package is missing) &lt;/code&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/05/asterisk_1833_ubintu_server_11-04_03.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="" class="aligncenter size-medium wp-image-392" height="188" src="http://letitknow.files.wordpress.com/2011/05/asterisk_1833_ubintu_server_11-04_03.png?w=300&amp;amp;h=188" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Asterisk_1833_Ubintu_Server_11.04_03" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
When the installation finishes, we have a preconfigured Asterisk. To test the Asterisk with two softphones, let’s configure the sip.conf and the extensions.conf.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Here is the sip.conf file:&lt;/div&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
[general]
context = default
bindport = 5060
bindaddr = 0.0.0.0
tcpbindaddr = 0.0.0.0
tcpenable = yes 

[1001]
type = friend
callerid = User One &amp;lt;1001&amp;gt;
secret = 1001
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox = 1001
disallow = all
allow = ulaw
transport = udp 

[1002]
type = friend
callerid = User Two &amp;lt;1002&amp;gt;
secret = 1002
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox = 1002
disallow = all
allow = ulaw
transport = udp &lt;/code&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
This config means that the Asterisk listen all IP, port 5060, and the TCP is enabled. It has two extensions defined for User One and User Two.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Here is the extensions.conf file:&lt;/div&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
[general]
static=yes
writeprotect=no 

[default]
exten =&amp;gt; 1001,1,Answer()
exten =&amp;gt; 1001,n,Dial(SIP/1001,20,tr)
exten =&amp;gt; 1001,n,Hangup 

exten =&amp;gt; 1002,1,Answer()
exten =&amp;gt; 1002,n,Dial(SIP/1002,20,tr)
exten =&amp;gt; 1002,n,Hangup. &lt;/code&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
This config means that there are two accessible extensions existing.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
After configuring the Asterisk, we need to start it.&lt;/div&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
/etc/init.d/asterisk start &lt;/code&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/04/asterisk_02.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="Asterisk_02" height="59" src="http://letitknow.files.wordpress.com/2011/04/asterisk_02.png?w=300&amp;amp;h=59" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Asterisk_02" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
I use X-Lite to connect to the soft PBX. Let’s configure the X-Lite!&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/04/ocs_asterisk_02.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="" class="aligncenter size-medium wp-image-339" height="300" src="http://letitknow.files.wordpress.com/2011/04/ocs_asterisk_02.png?w=236&amp;amp;h=300" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="OCS_Asterisk_02" width="236" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
All data come from the sip.conf. The Account name, and the Display name are the callerid. The User ID and the Authorization name are the extension number – inside the square brackets. The Password is the sicret. The Domain is the IP address of the Asterisk server.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
If all configurations are good, the X-Lite will inform you.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/04/asterisk_03.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="Asterisk_03" height="300" src="http://letitknow.files.wordpress.com/2011/04/asterisk_03.png?w=300&amp;amp;h=300" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Asterisk_03" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Let’s call from User One to User Two.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Here is the User One side:&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/04/asterisk_04.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="Asterisk_04" height="300" src="http://letitknow.files.wordpress.com/2011/04/asterisk_04.png?w=227&amp;amp;h=300" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Asterisk_04" width="227" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Here is the User Two side:&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/04/asterisk_05.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="Asterisk_05" height="276" src="http://letitknow.files.wordpress.com/2011/04/asterisk_05.png?w=300&amp;amp;h=276" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Asterisk_05" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Troubleshooting? We always need when we try a new thing. The firs tool is the tcpdump of course, but the asterisk have a good command line interface (Asterisk CLI) to debug the problem. To access the Asterisk CLI type&lt;/div&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #f4f5f7; background-image: url(http://s2.wp.com/wp-content/themes/pub/inove/img/blockquote.gif); background-origin: initial; background-position: 3px 3px; background-repeat: no-repeat no-repeat; border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: dashed; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: dashed; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: dashed; border-top-width: 1px; margin-bottom: 5px; margin-top: 5px; padding-bottom: 8px; padding-left: 36px; padding-right: 12px; padding-top: 8px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
asterisk -vvvvvvr &lt;/code&gt;&lt;/pre&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
This screen shows a successful call from 1001 to 1002.&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://letitknow.files.wordpress.com/2011/04/asterisk_06.png" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="Asterisk_06" height="128" src="http://letitknow.files.wordpress.com/2011/04/asterisk_06.png?w=300&amp;amp;h=128" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Asterisk_06" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
The Asterisk works now! Are you wondering why I configured my Asterisk to answer on TCP? Because I would like to test the Direct SIP feature of the&amp;nbsp;&lt;a href="http://letitknow.wordpress.com/2011/05/05/2011/04/29/ocs-2007-r2-co-existing-scenario-with-asterisk-1-8-pbx/" style="color: #2970a6; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Microsoft Communications Server&lt;/a&gt;and the Lync. CU next time!&amp;nbsp;&lt;img alt=";-)" class="wp-smiley" src="http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif?m=1305848398g" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 600px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #555555; font-family: Verdana, 'BitStream vera Sans', Helvetica, sans-serif; font-size: 12px; line-height: 17px;"&gt;&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-3105076232378163091?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OyTiXCdMqgReLGBcOp_xNzzR1x0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OyTiXCdMqgReLGBcOp_xNzzR1x0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OyTiXCdMqgReLGBcOp_xNzzR1x0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OyTiXCdMqgReLGBcOp_xNzzR1x0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/GY3hr28XedM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/3105076232378163091?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/3105076232378163091?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/GY3hr28XedM/how-to-install-asterisk-18-on-ubuntu.html" title="How to install Asterisk 1.8 on Ubuntu Server 11.04" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2011/10/how-to-install-asterisk-18-on-ubuntu.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMNRnYzfSp7ImA9WxBWFk8.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-1059957183285933081</id><published>2010-02-08T01:30:00.001-08:00</published><updated>2010-02-08T01:48:17.885-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-08T01:48:17.885-08:00</app:edited><title>How to Configure ACD in Asterisk</title><content type="html">&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;ACD = Automatic Distribution of Calls i&lt;/b&gt;s extremely important for supervisors and the company to distribute the incoming calls among the team members. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;How the fundamental works &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Incoming call will be segregated among the teams &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Example : Sales and Support &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Objective : &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Customer calls up a Toll Free number and hears the IVR - asking press 1 for Sales Support and press 2 for Technical Support &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Call should get queued for the Sales team if customer press 1 and agent of that particular team should ring and if customer press 2 call should get queued for the technical support team &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Steps to Achieve the above mentioned scenario &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;1) Queuing &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Queues needs to be configured in the queue.conf &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Example : [Sales Queue] and [Tehnical Support Queue] &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;[sales queue]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;member =&gt; Agent/8700&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;[tehnical queue] &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;member =&gt; Agent/8701 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;And then create members(agents who will receive the call) in this queue &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;2) Agents &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;[agents] &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Format&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;agent =&gt; Number of the agent,Password,Name of the Agent&lt;br /&gt;agent =&gt; 8700,1234,Dip Mehta &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;agent =&gt; 8701,1234,James Anderson&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Create agents in the agents.conf file and make them as members in the queue&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;3) Dial Plan Configuration &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;In extensions.conf, perform the following &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Create the Agents Login Code which will be used for agent to login &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;exten =&gt; 4455,1,AgentLogin(8700)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;exten =&gt; 7000,1,Queue(&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;sales queue&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Testing &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;This is how it works - &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Agent logs on, e.g. using code "4455" as in the example above, hears music and  waits for call.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Inbound call gets transfered to extension 7000 and agents hears beep and inbound call gets connected to agent.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-1059957183285933081?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Io-Qm-0FjXE8RNjczCE7syJoDbA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Io-Qm-0FjXE8RNjczCE7syJoDbA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Io-Qm-0FjXE8RNjczCE7syJoDbA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Io-Qm-0FjXE8RNjczCE7syJoDbA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/YEhpshJJ-Kk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/1059957183285933081?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/1059957183285933081?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/YEhpshJJ-Kk/how-to-configure-acd-in-asterisk.html" title="How to Configure ACD in Asterisk" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2010/02/how-to-configure-acd-in-asterisk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEBRHYzeyp7ImA9WxBWEUo.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-3628509548237149211</id><published>2010-02-02T22:26:00.001-08:00</published><updated>2010-02-02T22:30:55.883-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-02T22:30:55.883-08:00</app:edited><title>How to record a new prompt on Asterisk</title><content type="html">This document will help you to record a new prompt on Asterisk, which can then be used for welcome IVRS messages.&lt;br /&gt;&lt;br /&gt;For example, if you want a custom prompt like "Welcome to XYZ Company, please dial 1 for Sales support and please 2 for customer support"&lt;br /&gt;&lt;br /&gt;Steps :&lt;br /&gt;&lt;br /&gt;In asterisk you first need to define a number where you will call up and record the prompt.&lt;br /&gt;&lt;br /&gt;Also you would need a location to store that prompt&lt;br /&gt;&lt;br /&gt;In extensions.conf please do the following&lt;br /&gt;&lt;br /&gt;; Record voice file to /tmp directory&lt;br /&gt;exten =&gt; 1111,1,Wait(2) ; Call 1111 to Record new Sound Files&lt;br /&gt;exten =&gt; 1111,2,Record(/tmp/asterisk-recording:gsm) ; Press # to stop recording&lt;br /&gt;exten =&gt; 1111,3,Wait(2)&lt;br /&gt;exten =&gt; 1111,4,Playback(/tmp/asterisk-recording) ; Listen to your voice&lt;br /&gt;exten =&gt; 1111,5,wait(2)&lt;br /&gt;exten =&gt; 1111,6,Hangup&lt;br /&gt;&lt;br /&gt;Dial the number 1111 and you will hear a beep, start recording the prompt and press # when you are finished.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-3628509548237149211?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oAuTL3dQZtaQT2bHQq-b_eXedjY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oAuTL3dQZtaQT2bHQq-b_eXedjY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oAuTL3dQZtaQT2bHQq-b_eXedjY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oAuTL3dQZtaQT2bHQq-b_eXedjY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/erBe2qAGxXM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/3628509548237149211?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/3628509548237149211?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/erBe2qAGxXM/how-to-record-new-prompt-on-asterisk.html" title="How to record a new prompt on Asterisk" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2010/02/how-to-record-new-prompt-on-asterisk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04DRHc5cSp7ImA9WxBWEUw.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-990949506198913233</id><published>2010-02-02T06:04:00.000-08:00</published><updated>2010-02-02T06:12:55.929-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-02T06:12:55.929-08:00</app:edited><title>Asterisk - Things to know before making buying decision</title><content type="html">&lt;span class="Apple-style-span" style="font-family: arial, 'lucida grande', sans-serif; font-size: 12px; line-height: 14px; "&gt;In many ways the decision-making follows what’s now a well-worn path. On the one hand, do you choose the large, stable supplier whose proprietary PBX has as many features as you could ever use and that you know will be well-supported? Or do you take a flier on the far-less expensive &lt;a href="http://www.voip-news.com/whitepaper/voip-asterisk-crash-course/" target="_blank" style="font: normal normal normal 12px/14px arial, 'lucida grande', sans-serif; color: rgb(51, 102, 153); text-decoration: none; "&gt;open source system&lt;/a&gt; that may not yet have as full a set of features and where the future support is much less certain?&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, 'lucida grande', sans-serif; font-size: 12px; line-height: 14px; "&gt;&lt;br /&gt;&lt;h2 style="font: normal normal bold 17px/normal arial, 'lucida grande', sans-serif; color: rgb(51, 102, 153); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Perception vs. Reality&lt;/h2&gt;No one is pretending that companies such as &lt;a href="http://www.voip-news.com/vendors/avaya/" style="font: normal normal normal 12px/14px arial, 'lucida grande', sans-serif; color: rgb(51, 102, 153); text-decoration: none; "&gt;Avaya&lt;/a&gt; and &lt;a href="http://www.voip-news.com/vendors/cisco/" style="font: normal normal normal 12px/14px arial, 'lucida grande', sans-serif; color: rgb(51, 102, 153); text-decoration: none; "&gt;Cisco&lt;/a&gt; feel threatened yet by the likes of Digium and &lt;a href="http://www.voip-news.com/vendors/fonality/" style="font: normal normal normal 12px/14px arial, 'lucida grande', sans-serif; color: rgb(51, 102, 153); text-decoration: none; "&gt;Fonality&lt;/a&gt;, which sell Asterisk PBXes, or by SIPfoundry-based&lt;a href="http://www.voip-news.com/vendors/pingtel/" style="font: normal normal normal 12px/14px arial, 'lucida grande', sans-serif; color: rgb(51, 102, 153); text-decoration: none; "&gt;Pingtel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.voip-news.com/vendors/digium/" style="font: normal normal normal 12px/14px arial, 'lucida grande', sans-serif; color: rgb(51, 102, 153); text-decoration: none; "&gt;Digium,&lt;/a&gt; the leading Asterix-based open source PBX provider, is still viewed as a “nit” in the overall scheme of the telephony and unified communications market, according to E. Brent Kelly, a senior analyst with Wainhouse Research. Though he also believes it could ultimately prove an able competitor.&lt;br /&gt;&lt;br /&gt;For many potential users, the final decision may be one of perception. As it still is with more established open-source solutions such as Linux there’s a cultural bias against open-source on the part of IT buyers at many companies.&lt;br /&gt;&lt;br /&gt;Bill Miller, vice president of product management and marketing at Digium, admits that’s a barrier for him. A lack of support for his company’s products is not a problem in reality, for example, but he still has to struggle with the perception that it is.&lt;br /&gt;&lt;br /&gt;“We are in the transitional period for businesses and enterprises to change their mindsets as they experience the differences [with open source PBXes],” he said.&lt;br /&gt;&lt;br /&gt;&lt;h2 style="font: normal normal bold 17px/normal arial, 'lucida grande', sans-serif; color: rgb(51, 102, 153); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Open Source = Support&lt;/h2&gt;&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/14px arial, 'lucida grande', sans-serif; color: rgb(0, 0, 0); line-height: 17px; "&gt;To that extent it’s incumbent on the open source vendors to provide solutions that will put the buyer’s mind at ease.&lt;br /&gt;&lt;br /&gt;The downloaded Asterisk software is community-supported through email and online forums and this works for many folks, Miller said. But for mission-critical businesses, he recommends using Digium’s Asterisk Business Edition for a “fully regression tested” version of Asterisk that comes with 24/7 tech support and complete maintenance and support programs.&lt;br /&gt;&lt;br /&gt;Large enterprises will also have to be convinced that open source PBXes, which so far have mostly been used in small and midsize businesses, will scale to the thousands of users they need the products for.&lt;br /&gt;&lt;br /&gt;However, if credibility is a guide to the future for the open source PBXes, then the past year was a good one for the movement.&lt;br /&gt;&lt;br /&gt;Pingtel scored a major coup in October, for example, when it announced a deal with Amazon for that company to replace a legacy PBX with Pingtel’s SIPxchange Enterprise Communications Solution. Given that telephony is such a critical element of Amazon’s business, that was seen as a major endorsement of Pingtel’s product and open source in general.&lt;br /&gt;&lt;br /&gt;Likewise, Digium also in October struck a multi-year deal with conferencing giant Polycom Inc. for that company to integrate Asterisk telephony features into its SIP-based desktop and phone products for sale to small and midsize businesses.&lt;/p&gt;&lt;p style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/14px arial, 'lucida grande', sans-serif; color: rgb(0, 0, 0); line-height: 17px; "&gt; &lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-990949506198913233?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ENSZq4A_x3dyHGoBmHxkPS0cP8c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ENSZq4A_x3dyHGoBmHxkPS0cP8c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ENSZq4A_x3dyHGoBmHxkPS0cP8c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ENSZq4A_x3dyHGoBmHxkPS0cP8c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/qNi8Ydj_kzg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/990949506198913233?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/990949506198913233?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/qNi8Ydj_kzg/asterisk-things-to-know-before-making.html" title="Asterisk - Things to know before making buying decision" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2010/02/asterisk-things-to-know-before-making.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIESX0-fyp7ImA9WxNWF0s.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-5632477079619427778</id><published>2009-10-17T01:32:00.000-07:00</published><updated>2009-10-17T01:35:08.357-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-17T01:35:08.357-07:00</app:edited><title>MySQL Change root Password</title><content type="html">Setting up mysql password is one of the essential tasks. By default root user is MySQL admin account. Please note that the Linux / UNIX login root account for your operating system and MySQL root are different. They are separate and nothing to do with each other (indeed some admin removes root account and setup admin as mysql super user)&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;mysqladmin command to change root password&lt;/h2&gt; &lt;p&gt;If you have never set a root password for MySQL, the server does not require a password at all for connecting as root. To setup root password for first time, use mysqladmin command at shell prompt as follows:&lt;/p&gt; &lt;pre&gt;$ mysqladmin -u root password NEWPASSWORD&lt;/pre&gt; &lt;p&gt;However, if you want to change (or update) a root password, then you need to use following command &lt;/p&gt; &lt;pre&gt;$ mysqladmin -u root -p'oldpassword' password newpass&lt;/pre&gt; &lt;p&gt;For example, If old password is abc, and set new password to 123456, enter:&lt;/p&gt; &lt;pre&gt;$ mysqladmin -u root -p'abc' password '123456'&lt;/pre&gt; &lt;h2&gt;Change MySQL password for other user&lt;/h2&gt; &lt;p&gt;To change a normal user password you need to type (let us assume you would like to change password for vivek):&lt;/p&gt; &lt;pre&gt;$ mysqladmin -u vivek -p oldpassword password newpass&lt;/pre&gt; &lt;h2&gt;Changing MySQL root user password using MySQL sql command&lt;/h2&gt; &lt;p&gt;This is another method. MySQL stores username and passwords in user table inside MySQL database. You can directly update password using the following method to update or change password for user vivek:&lt;/p&gt; &lt;p&gt;1) Login to mysql server, type following command at shell prompt:&lt;/p&gt; &lt;pre&gt;$ mysql -u root -p&lt;/pre&gt; &lt;p&gt;2) Use mysql database (type command at mysql&gt; prompt):&lt;/p&gt; &lt;pre&gt;mysql&gt; use mysql;&lt;/pre&gt; &lt;p&gt;3) Change password for user dip&lt;/p&gt; &lt;pre&gt;mysql&gt; update user set password=PASSWORD("NEWPASSWORD") where User='dip';&lt;/pre&gt; &lt;p&gt;4) Reload privileges:&lt;/p&gt; &lt;pre&gt;mysql&gt; flush privileges;&lt;br /&gt;mysql&gt; quit&lt;/pre&gt; &lt;p&gt;This method you need to use while using PHP or Perl scripting.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-5632477079619427778?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fHYWOge5bI_Bi5kXOt5JDTkHP80/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fHYWOge5bI_Bi5kXOt5JDTkHP80/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fHYWOge5bI_Bi5kXOt5JDTkHP80/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fHYWOge5bI_Bi5kXOt5JDTkHP80/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/w-ViZfjBAA0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/5632477079619427778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/5632477079619427778?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/w-ViZfjBAA0/mysql-change-root-password.html" title="MySQL Change root Password" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/10/mysql-change-root-password.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUNQXw8fSp7ImA9WxNWF0s.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-8444528572260907889</id><published>2009-10-17T01:28:00.000-07:00</published><updated>2009-10-17T01:31:30.275-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-17T01:31:30.275-07:00</app:edited><title>Install and Configure phpMyAdmin on Ubuntu LAMP</title><content type="html">&lt;!-- mid column --&gt;                         &lt;!-- header --&gt;&lt;br /&gt;                         &lt;p&gt;PhpMyAdmin is a nice database management and administration tool, it is easy to install it, but some people are having problems making it work under apache, that’s because it needs configuration. I presume you already have LAMP installed and configured on your machine, if not, please read this post – &lt;a href="http://www.blog.highub.com/shell/install-and-configure-lamp-on-ubuntu/" target="blank"&gt;Install and Configure LAMP on Ubuntu&lt;/a&gt; first.&lt;/p&gt; &lt;p&gt;Just in case you haven’t installed phpMyAdmin yet, type the following line in the Terminal:&lt;br /&gt;&lt;code style="font-weight: bold;"&gt;apt-get install phpmyadmin&lt;/code&gt;&lt;/p&gt; &lt;p&gt;To set up under Apache all you need to do is include the following line in /etc/apache2/apache2.conf, first type the following command to open up this file:&lt;br /&gt;&lt;code style="font-weight: bold;"&gt;nano /etc/apache2/apache2.conf&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Add the following line of code inside apache2.conf:&lt;br /&gt;Include /etc/phpmyadmin/apache.conf&lt;/p&gt; &lt;p&gt;Now restart Apache:&lt;br /&gt;&lt;code style="font-weight: bold;"&gt;sudo /etc/init.d/apache2 restart&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Point your browser to: http://domain/phpmyadmin, you should be able to see the phpMyAdmin landing page now!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-8444528572260907889?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iVuL8ZyItURGC9_7BTYK6j6sjIc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iVuL8ZyItURGC9_7BTYK6j6sjIc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iVuL8ZyItURGC9_7BTYK6j6sjIc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iVuL8ZyItURGC9_7BTYK6j6sjIc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/3X9JXNXsqXQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8444528572260907889?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8444528572260907889?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/3X9JXNXsqXQ/install-and-configure-phpmyadmin-on.html" title="Install and Configure phpMyAdmin on Ubuntu LAMP" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/10/install-and-configure-phpmyadmin-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIASXwzeCp7ImA9WxNWFEQ.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-724279698584200021</id><published>2009-10-13T21:20:00.000-07:00</published><updated>2009-10-13T21:29:08.280-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-13T21:29:08.280-07:00</app:edited><title>New Threat to Voip Industry - SPIT</title><content type="html">&lt;h2&gt;VoIP Spam Is Called SPIT&lt;/h2&gt;&lt;br /&gt;As if an inbox jam-packed with email ads for organ-enlargement and weight-loss products was not bad enough, now VoIP users can look forward to becoming a brand-new target. Slowly but surely, spammers are adding &lt;a href="http://www.voip-news.com/feature/voip-spam-spit-021207/"&gt;SPIT&lt;/a&gt; (SPam over Internet Telephony) to their bags of tricks. Warned Terrence Brewton, a Frost &amp;amp; Sullivan market analyst, “SPIT is an evolving threat that will come on par with the prevalence of spam, all because of the VoIP products we’re now seeing in homes and the commercial marketplace.”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;More than simply an annoyance, SPIT’s real-time impact on a network “ ... creates business risks because it opens up companies to &lt;a href="http://www.voip-news.com/feature/voip-scams-phishing-dos-011107/"&gt;denial-of-service attacks&lt;/a&gt; like any other IP-based system,” said Brewton. What’s more, SPIT can consume bandwidth, thereby diminishing &lt;a href="http://www.voip-news.com/feature/voip-qos-service-quality-012207/"&gt;call quality&lt;/a&gt; and reducing employee productivity.&lt;br /&gt;&lt;br /&gt;While it’s true that SPIT is still quite rare, VoIP’s growing popularity is certain to make its presence more widespread. Fortunately, there are steps that companies can take to combat SPIT.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Filtering:&lt;/strong&gt; According to Brewton, “The best course of action for any IT manager who is trying to protect his VoIP system is to buy &lt;a href="http://www.voip-news.com/feature/gateway-voip-security-121906/"&gt;filtering technology&lt;/a&gt; and keep up with &lt;a target="_blank" href="http://www.networksecurityjournal.com/features/bulletproof-patch-plan-010808/"&gt;patch management&lt;/a&gt;.” But while VoIP providers can help filter out obvious SPIT before it traverses a network, there is always a risk of &lt;a target="_blank" href="http://www.itsecurity.com/features/false-positives-022808/"&gt;false positives&lt;/a&gt; — legitimate traffic or large-scale message transmissions that are accidentally flagged as SPIT and prevented from reaching employees.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Firewalls:&lt;/strong&gt;  A VoIP &lt;a target="_blank" href="http://www.itsecurity.com/firewalls/"&gt;firewall&lt;/a&gt; is an application driven by a &lt;a href="http://www.voip-news.com/voip-security/"&gt;security policy&lt;/a&gt; that defines whether to allow or deny certain calls. Administrators set policies through GUIs similar to those found in traditional data firewalls. A first line of defense against numerous threats, this technology detects and blocks VoIP DoS (denial-of-service) attacks, SIP attacks, toll fraud, virus infections and SPIT.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;VoIP SEAL:&lt;/strong&gt; NEC Corp.’s VoIP SEAL is a new tool that targets calls originating from spam-generating software and ill-intentioned humans. SPIT is detected and blocked based on communication patterns observed during the call. If a spam-related call comes in, VoIP SEAL will prevent the phone from ringing.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Voice Recognition:&lt;/strong&gt; Microsoft has developed V-Priorities, a system for automatically screening phone calls. The technology works by analyzing characteristics of a caller's voice and word usage to figure out how urgent a call is and whether the caller is a friend, a family member, a colleague or a stranger.&lt;br /&gt;&lt;br /&gt;Although the aforementioned &lt;a href="http://www.voip-news.com/voip-security/"&gt;security&lt;/a&gt; options are effective SPIT countermeasures, they also present drawbacks. “Any time you try to run any type of packet through any kind of filter, it’s going to slow down network processes. That’s because VoIP is a very sensitive piece of technology,” said Brewton. Such latency issues can lead to reduced quality of service and customer frustration.&lt;br /&gt;&lt;br /&gt;Nor is there a panacea for SPIT. Even the brightest and best-prepared IT managers can be a step behind hackers. Said Brewton, “Everything changes at the speed of light on the Internet. Spammers are changing their tactics constantly because they’re trying to make money like anybody else. So by the time you’ve figured out what they’re doing, they’ve gone on to the next attack. That’s the one thing people really have to remember about security; we’re always fighting yesterday’s attack.”&lt;br /&gt;&lt;br /&gt;Further complicating matters is the fact that the savings accrued through a VoIP network can be somewhat offset by having to invest in the appropriate security technologies. In the end, said Brewton, companies need to weigh what they stand to gain — and possibly lose to SPIT — by deploying a VoIP network. “With any technology,” said Brewton, “you really need to take pause and ask yourself, ‘Do I really need to deploy this? Is this going to be cost-effective? What is going to be my total cost of ownership for purchasing such a new technology?’”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;www.astnext.com is dealing in Anti SPIT solutions to tackle this&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-724279698584200021?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3qMi3oDuXRKkho2VsaxEIK9b0F8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3qMi3oDuXRKkho2VsaxEIK9b0F8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3qMi3oDuXRKkho2VsaxEIK9b0F8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3qMi3oDuXRKkho2VsaxEIK9b0F8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/XR_nzuOXW1g" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/724279698584200021?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/724279698584200021?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/XR_nzuOXW1g/new-threat-to-voip-industry-spit.html" title="New Threat to Voip Industry - SPIT" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/10/new-threat-to-voip-industry-spit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUAQHo6fip7ImA9WxNRE0Q.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-7270545303327402777</id><published>2009-09-07T23:06:00.000-07:00</published><updated>2009-09-07T23:10:41.416-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-07T23:10:41.416-07:00</app:edited><title>Train yourself on Asterisk</title><content type="html">&lt;span style="font-weight: bold;"&gt;Thanks everyone for your overwhelming support&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I would like to take this blog to a next level, where i will&lt;br /&gt;post interesting engineering applications on asterisk&lt;br /&gt;&lt;br /&gt;So Need to fund for the project, henceforth i am starting&lt;br /&gt;to train the people so that they also be a part of my&lt;br /&gt;blog&lt;br /&gt;&lt;br /&gt;Please email me at dipkumar.mehta@gmail.com and&lt;br /&gt;book your slots&lt;br /&gt;&lt;br /&gt;15 $ per hour  for Asterisk Training&lt;br /&gt;&lt;br /&gt;Ask your doubts or whatever little queries you have.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-7270545303327402777?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gCB6eDuoPkQFnla_uGUnLgQ10-Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gCB6eDuoPkQFnla_uGUnLgQ10-Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gCB6eDuoPkQFnla_uGUnLgQ10-Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gCB6eDuoPkQFnla_uGUnLgQ10-Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/a4eZYjWX5P0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/7270545303327402777?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/7270545303327402777?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/a4eZYjWX5P0/train-yourself-on-asterisk.html" title="Train yourself on Asterisk" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/09/train-yourself-on-asterisk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYMSHwzeyp7ImA9WxNREEs.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-4341530284682768851</id><published>2009-09-04T03:15:00.000-07:00</published><updated>2009-09-04T03:29:49.283-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-04T03:29:49.283-07:00</app:edited><title>ISDN Alarms indications in zaptel/Dahdi</title><content type="html">&lt;div style="text-align: justify; font-family: arial;"&gt;The TE200 series user manual contains only a description of LEDs states.&lt;br /&gt;&lt;br /&gt;These alarmsstates are visible in zttool/dahditool or in astersick CLI (zap show status)&lt;br /&gt;&lt;/div&gt;&lt;pre  style="font-family:arial;"&gt;&lt;br /&gt;You have three different general alarm states:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Red alarm&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;&lt;/pre&gt;Your T1/E1 port will go into red alarm when it maintain&lt;br /&gt;synchronization with the remote switch.  A red alarm&lt;br /&gt;typically indicates either aphysical wiring problem,&lt;br /&gt;loss of connectivity, or a framing and/or line-coding&lt;br /&gt;mismatch with the remote switch.  When your T1/E1 port&lt;br /&gt;loses sync, it will transmit a yellow alarm to the remote&lt;br /&gt;switch to indicatethat it's having a problem receiving&lt;br /&gt;signal from the remore switch.(The easy way to remember&lt;br /&gt;this is that the R in red stands for "right here" and "receive".&lt;br /&gt;.. indicating that we're having a problem right here&lt;br /&gt;receiving the signal from the remote switch.)&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Yellow alarm or RAI (Remote Alarm Indication)&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;Your T1/E1 port will go into yellow alarm when it receives a&lt;br /&gt;signal from the remote switch that the port on that remote&lt;br /&gt;switch is in red alarm.This essentially means that the remote&lt;br /&gt;switch is not able to maintain sync with you, or is not receiving&lt;br /&gt;your transmission.  (The easy way to remember this is that t&lt;br /&gt;he Y in yellow stands for "yonder"... indicating that the&lt;br /&gt;remote switch (over yonder) isn't able to see what you're&lt;br /&gt;sending.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Blue alarm or AIS (Alarm Indication Signal)&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;Your T1/E1 port will go into blue alarm when it receives all&lt;br /&gt;unframed 1s on all timeslots from the remote switch.  This is&lt;br /&gt;a special signal to indicate that the remote switch is&lt;br /&gt;having problems with it's upstream connection.&lt;br /&gt;&lt;/div&gt;&lt;pre face="arial"&gt;&lt;br /&gt;&lt;br /&gt;Please contact me at&lt;br /&gt;dipkumar.mehta@gmail.com if you need any help regarding isdn troubleshooting issues&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-4341530284682768851?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aqbDUhQV6SzlrdzorTL38UHttqk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aqbDUhQV6SzlrdzorTL38UHttqk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aqbDUhQV6SzlrdzorTL38UHttqk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aqbDUhQV6SzlrdzorTL38UHttqk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/GaG-C1BfNQ4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/4341530284682768851?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/4341530284682768851?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/GaG-C1BfNQ4/isdn-alarms-indications-in-zapteldahdi.html" title="ISDN Alarms indications in zaptel/Dahdi" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/09/isdn-alarms-indications-in-zapteldahdi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8HRn0yfCp7ImA9WxNSFkk.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-7090639472463216497</id><published>2009-08-30T07:47:00.000-07:00</published><updated>2009-08-30T07:50:37.394-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T07:50:37.394-07:00</app:edited><title>G.729 and G.723 Codec installation on Asterisk</title><content type="html">Installation and Configuration of G.729 and G.723 codecs on asterisk&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the codec binary file from &lt;a href="http://asterisk.hosting.lv/bin/codec_g729-ast14-gcc4-glibc-pentium4.so" target="_blank"&gt;&lt;u&gt;http://asterisk.hosting.lv/bin/codec_g729-ast14-gcc4-glibc-pentium4.so&lt;/u&gt;   &lt;/a&gt; &lt;/li&gt;&lt;li&gt;Copy it to the &lt;span style="font-family: courier new,courier;"&gt;/usr/lib/asterisk/modules&lt;/span&gt; folder.  &lt;/li&gt;&lt;li&gt;Restart the Asterisk:  &lt;span style="font-family: courier new,courier;"&gt; /etc/init.d/asterisk restart&lt;/span&gt; &lt;span style="font-family: courier new,courier;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h2&gt;Estimating the Number of G.729 Channels Required &lt;/h2&gt; &lt;p&gt; If you choose to purchase the G.729 license from Digium you will need to compute the number of G.729 channels required by your configuration. You can estimate the required value by using the following information: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;a call between two SIP extensions usually requires two G.729 channels, unless the pass-thru mode is used (&lt;a href="http://voip-info.org/wiki/view/Asterisk+G.729+pass-thru" target="_blank"&gt;&lt;u&gt;http://voip-info.org/wiki/view/Asterisk+G.729+pass-thru&lt;/u&gt;&lt;/a&gt;), in which case it doesn’t require any G.729 channel.  &lt;/li&gt;&lt;li&gt;a call between a SIP extension and a Zaptel/DAHDI extension/trunk requires one G.729 channel.  &lt;/li&gt;&lt;li&gt;a call to Voice Mail or another Asterisk service where IVR messages must be played requires one G.729 channel.  &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-7090639472463216497?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Eybz1QRfRm92H1ICz2rpqANnqQ4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Eybz1QRfRm92H1ICz2rpqANnqQ4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Eybz1QRfRm92H1ICz2rpqANnqQ4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Eybz1QRfRm92H1ICz2rpqANnqQ4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/2NiAZDwAkKg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/7090639472463216497?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/7090639472463216497?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/2NiAZDwAkKg/g729-and-g723-codec-installation-on.html" title="G.729 and G.723 Codec installation on Asterisk" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/08/g729-and-g723-codec-installation-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEFR3wycSp7ImA9WxNSFkk.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-2370505510604989694</id><published>2009-08-30T07:29:00.000-07:00</published><updated>2009-08-30T07:46:56.299-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T07:46:56.299-07:00</app:edited><title>SIP Trunking - IP Based authentication and Password based authentication</title><content type="html">SIP trunking is the method of sending calls to ITSP service provider using sip protocol.&lt;br /&gt;&lt;br /&gt;Indepth details refer &lt;span style="font-weight: bold;"&gt;RFC 3261 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are two types of authentications&lt;br /&gt;&lt;br /&gt;1. IP based authentication &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;2.Username and Password based authentication &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For IP Based Authentication&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;You need to do the following changes in the sip.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[siptrunk]&lt;br /&gt;type=friend&lt;br /&gt;fromuser=X.X.X.X    ( your asterisk server ip ) which will send traffic to the service provider&lt;br /&gt;host=X.X.X.X  ( service provider ip )&lt;br /&gt;canreinvite=no&lt;br /&gt;qualify=no&lt;br /&gt;dtmfmode=RFC2833&lt;br /&gt;context=intenal&lt;br /&gt;disallow=all&lt;br /&gt;allow=g729&lt;br /&gt;allow=ulaw&lt;br /&gt;allow=alaw&lt;br /&gt;port=5060&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;Then you need to edit extensions.conf&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;[intenal]&lt;br /&gt;exten =&gt; _9X.,1,Dial(SIP/${EXTEN}@siptrunk)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For Username and password based authentication&lt;br /&gt;&lt;br /&gt;[siptrunk]&lt;br /&gt;type=friend&lt;br /&gt;username=&lt;br /&gt;fromuser=X.X.X.X &lt;br /&gt;host=X.X.X.X &lt;br /&gt;canreinvite=no&lt;br /&gt;secret=&lt;br /&gt;qualify=no&lt;br /&gt;dtmfmode=RFC2833&lt;br /&gt;context=intenal&lt;br /&gt;disallow=all&lt;br /&gt;allow=g729&lt;br /&gt;allow=ulaw&lt;br /&gt;allow=alaw&lt;br /&gt;port=5060&lt;br /&gt;&lt;br /&gt;define username and password to it&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-2370505510604989694?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EVcq3x8ZL6ZiiruOce5ESyuOhlU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EVcq3x8ZL6ZiiruOce5ESyuOhlU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EVcq3x8ZL6ZiiruOce5ESyuOhlU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EVcq3x8ZL6ZiiruOce5ESyuOhlU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/dZbXeKCnjKY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/2370505510604989694?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/2370505510604989694?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/dZbXeKCnjKY/sip-trunking-ip-based-authentication.html" title="SIP Trunking - IP Based authentication and Password based authentication" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/08/sip-trunking-ip-based-authentication.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QDQno8cSp7ImA9WxJUEUw.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-8625210966814532599</id><published>2009-07-08T22:56:00.000-07:00</published><updated>2009-07-08T23:02:53.479-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-08T23:02:53.479-07:00</app:edited><title>How to read DTMF and store in the database in Asterisk</title><content type="html">&lt;span style="font-family: arial;"&gt;Aim : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;To Read a variable in the form for DTMF tones as pressed by the caller. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;For example if you would like your users to call up the system and record there inputs in the database and then make use of Asterisk to perform what ever tasks with those recorded inputs. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Syntax : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Read(variable[,filename][,maxdigits][,option][,attempts][,timeout]) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Reads a #-terminated string o &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;f digits a certain number of times from the user in to the given variable. &lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;  &lt;strong&gt;variable&lt;/strong&gt;: variable where the user's response will be stored. &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;filename&lt;/strong&gt;: file to play before reading digits. &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;maxdigits&lt;/strong&gt;: maximum acceptable number of digits. Stops reading after maxdigits have been entered (without requiring the user press the '#' key). Defaults to 0 - no limit - wait for the user press the '#' key. Any value below 0 means the same. Max accepted value is 255. &lt;/li&gt;&lt;li&gt; &lt;strong&gt;option&lt;/strong&gt;:  may be 'skip' to return immediately if the line is not up, or 'noanswer' to read digits even if the line is not up. &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;attempts&lt;/strong&gt;: if greater than 1, that many attempts will be made in the event no data is entered. &lt;/li&gt;&lt;li&gt;  &lt;strong&gt;timeout&lt;/strong&gt;: Timeout in seconds. If greater than 0, that value will override the default timeout. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt; Read should disconnect if the function fails or errors out.&lt;br /&gt;&lt;br /&gt;&lt;span class="editsection" style="float: right; margin-left: 5px;"&gt;[&lt;a href="http://www.voip-info.org/wiki/edit.php?content_id=3666&amp;amp;section=1"&gt;edit&lt;/a&gt;]&lt;/span&gt;&lt;h2&gt;Example &lt;/h2&gt;; The Following Example uses Read and Say digits to read 3 digits from user, saying each one as user types.&lt;br /&gt;&lt;br /&gt;Asterisk 1.2:&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,1,Gotoif($[ "${LEN(${extensao})}" &lt; "3"]?3:100) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,NoOp(Executing - ${extensao} - ) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,Read(digito||1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,SayDigits(${digito}) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,Set(extensao=${extensao}${digito}) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,GoTo(s,1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,100,GoTo(from-pstn,s,1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; h,1,hangup() &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Asterisk 1.4, 1.6:&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,1(start),Gotoif($[ "${LEN(${extensao})}" &lt; "3"]?collect:pstn) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,NoOp(Executing - ${extensao} - ) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n(collect),Read(digito,,1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,SayDigits(${digito}) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,Set(extensao=${extensao}${digito}) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n,GoTo(start) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; s,n(pstn),GoTo(from-pstn,s,1) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt; exten =&gt; h,1,hangup() &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="editsection" style="float: right; margin-left: 5px;"&gt;[&lt;a href="http://www.voip-info.org/wiki/edit.php?content_id=3666&amp;amp;section=2"&gt;edit&lt;/a&gt;]&lt;/span&gt;&lt;h2&gt;Notes &lt;/h2&gt;Pipe characters ( | ) have been changed to commas in Asterisk 1.6.&lt;br /&gt;In Asterisk 1.4, either pipes OR commas will work.  Using commas will ease future upgrades.&lt;br /&gt;&lt;br /&gt;'#' is the End-Of-Input Key.  It is NOT possible to accept '#' with Read()&lt;br /&gt;&lt;br /&gt;Warning:&lt;br /&gt;In Asterisk 1.4: the "filename" field does not accept concatenation (file1&amp;amp;file2&amp;amp;file...).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-8625210966814532599?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NbnhOAeRtMMltFmd2WFDgGmtOxY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NbnhOAeRtMMltFmd2WFDgGmtOxY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NbnhOAeRtMMltFmd2WFDgGmtOxY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NbnhOAeRtMMltFmd2WFDgGmtOxY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/0qwwI980huY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8625210966814532599?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8625210966814532599?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/0qwwI980huY/how-to-read-dtmf-and-store-in-database.html" title="How to read DTMF and store in the database in Asterisk" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/07/how-to-read-dtmf-and-store-in-database.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ENRH85fyp7ImA9WxJUEE4.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-8059942471871873726</id><published>2009-07-07T23:47:00.000-07:00</published><updated>2009-07-07T23:48:15.127-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-07T23:48:15.127-07:00</app:edited><title>Configuring a queue</title><content type="html">&lt;span style="font-family: arial;"&gt;The following queue works as following:&lt;/span&gt;&lt;p style="font-family: arial;"&gt; &lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; all calls are monitored, i.e. saved to disk&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; if after 60 seconds on the queue the call is unanswered, the call is routed to voicemail&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; there are two levels of agents: agents 302 and 303 will answer the queue (level 1); only if none of them is available the call is routed to agent 301 (level 2). If nobody is available, the queue keeps trying until timeout is reached. &lt;/p&gt;&lt;p style="font-family: arial;"&gt; &lt;b&gt;Extensions.conf&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt; &lt;/p&gt;&lt;div style="font-family: arial;" class="pcode"&gt;&lt;div class="row"&gt;[q-my-sample]&lt;/div&gt; &lt;div class="row"&gt;; ...queue description.....&lt;/div&gt; &lt;div class="row"&gt;exten =&gt;&lt;/div&gt; &lt;div class="row"&gt;s,1,SetVar(MONITOR_FILENAME=/var/spool/asterisk/queuecalls/QSAMPLE-${&lt;/div&gt; &lt;div class="row"&gt;UNIQUEID})&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; s,2,Queue(q-sample|n|||)&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; s,3,Playback(voicemail-invitation)&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; s,4,VoiceMail,s2001&lt;/div&gt;  &lt;/div&gt;  &lt;p style="font-family: arial;"&gt; &lt;b&gt;Queues.conf&lt;/b&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt; &lt;/p&gt;&lt;div style="font-family: arial;" class="row"&gt;[q-sample]&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;music = default&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;announce = q-sample-announce&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;strategy = roundrobin&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;timeout = 60&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;retry = 5&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;maxlen = 0&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;announce-frequency = 0&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;announce-holdtime = no&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;monitor-format = wav&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;monitor-join = yes&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;queue-youarenext = silence&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;queue-thankyou = q-sample-thankyou&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;member=&gt;Agent/302,0&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;member=&gt;Agent/303,0&lt;/div&gt; &lt;div style="font-family: arial;" class="row"&gt;member=&gt;Agent/301,1&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-8059942471871873726?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zyjl_npmldjuyoyAxGvqK7v9pKY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zyjl_npmldjuyoyAxGvqK7v9pKY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zyjl_npmldjuyoyAxGvqK7v9pKY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zyjl_npmldjuyoyAxGvqK7v9pKY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/gATukTbWwGU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8059942471871873726?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8059942471871873726?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/gATukTbWwGU/configuring-queue.html" title="Configuring a queue" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/07/configuring-queue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MCRn0-fSp7ImA9WxJUEE4.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-9089626892185017846</id><published>2009-07-07T23:43:00.000-07:00</published><updated>2009-07-07T23:44:27.355-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-07T23:44:27.355-07:00</app:edited><title>Understanding queue logic in Asterisk</title><content type="html">&lt;span style="font-family: arial;"&gt; When a call enters the queue application, there are many possible scenarios, that are controlled by the queue's own timeout and the ringing timeout.&lt;/span&gt;&lt;p style="font-family: arial;"&gt; If a timeout is specified on the queue command itself, that is the maximum queue wait length (we call this &lt;i&gt;queue timeout&lt;/i&gt;). It is the maximum time that a caller can wait on hold on the queue. If that time is expired, then the caller is moved on to the next step in the dialplan. If no timeout is specified, we assume it to be the default value, i.e. 300 seconds (5 minutes).&lt;/p&gt;&lt;p style="font-family: arial;"&gt; There is then another timeout specified in the queue definition itself, that is the &lt;i&gt;ringing timeout&lt;/i&gt;. This is the queue "loop time", i.e. the timeout over which events in the queue are rotated. If the queue finds a free member, it tries to ring it for the given period of time. If it finds no free members, it retries finding a new member when this time period expires. In any case, the global queue timeout is triggered only when this timer expires, so if this timeout is very long, your queue timeouts may be longer than expected. If a member is busy or unavailable (e.g. an extension that is not working) it is skipped as soon as the condition is detected and the next available agent is rung.&lt;/p&gt;&lt;p style="font-family: arial;"&gt; If the option "n" is passed to the queue command, there are no retries, i.e. when the retry period expires, the queue is terminated no matter what. &lt;/p&gt;&lt;p style="font-family: arial;"&gt; It is possible to add a wait time after an extension is ringed unsuccessfully and the next one is ringed; this parameter id the &lt;i&gt;retry&lt;/i&gt; parameter in the queue definition.&lt;/p&gt;&lt;p style="font-family: arial;"&gt; When the ringing timeout expires, all queue events are processed, not only the global queue timeout; if an announce is set and the time from the last announce has elapsed, then the announce is played. While the announce is being played, no new agent is being called; this might be a minor problem if your &lt;i&gt;queue-thankyou&lt;/i&gt; message is very short, but if it is quite long and quite frequent, you may find an undue slowdown on your agents being searched. &lt;/p&gt;&lt;p style="font-family: arial;"&gt; As a summary, we can say that:&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; Your ringing timeout should ideally be quite short (10-15 seconds)&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; Announce frequencies and the overall queue timeout should be comparatively much longer than the ringing timeout, and are triggered on a schedule driven by the ringing timeout&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; The time taken to play announces is added between each ringing timeout cycle, so if it is very long, you may find that your agents sit idle while callers listen to the announcement.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-9089626892185017846?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SOUqLnhYqPWBNQujTEDfhjpMA_s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SOUqLnhYqPWBNQujTEDfhjpMA_s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SOUqLnhYqPWBNQujTEDfhjpMA_s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SOUqLnhYqPWBNQujTEDfhjpMA_s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/GvIU2vYdG0g" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/9089626892185017846?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/9089626892185017846?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/GvIU2vYdG0g/understanding-queue-logic-in-asterisk.html" title="Understanding queue logic in Asterisk" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/07/understanding-queue-logic-in-asterisk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UASXc7eSp7ImA9WxJUEE4.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-5268955055348457366</id><published>2009-07-07T23:38:00.000-07:00</published><updated>2009-07-07T23:40:48.901-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-07T23:40:48.901-07:00</app:edited><title>Compressing recorded calls to MP3</title><content type="html">&lt;span style="font-family: arial;"&gt;If you record a big chunk of traffic (or even all traffic, as some call-centers do) on your Asterisk box, you will see that it ends up taking a substantial amount of disk space. The problem is the following:&lt;/span&gt;&lt;br /&gt; &lt;img style="font-family: arial;" src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt;&lt;span style="font-family: arial;"&gt; Recording wav files is very good in terms of CPU usage, but those files end up being huge&lt;/span&gt;&lt;br /&gt; &lt;img style="font-family: arial;" src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt;&lt;span style="font-family: arial;"&gt; Transcoding to GSM files still takes up substantial disk space and is much heavier on the CPU&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt; The ideal would be saving those files in some very-compressed MP3 format, but this is not a very good idea as the hit on the CPU is quite dramatic.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt; Still, most systems do not operate on a 24/7 basis; if your call center gets a lot of traffic during office hours, it's just as well likely that it will be sitting idle all night.&lt;/span&gt;&lt;p style="font-family: arial;"&gt; Therefore, it would be nice if we could:&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; Record all calls using the cheapest recording format&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; Transform all calls to some very compressed format at night, when the CPU is sitting idle&lt;/p&gt;&lt;p style="font-family: arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: arial;"&gt;his way, if you listen to a call that's just been recorded, you will download a large wav file; if you listen to a call that has been recorded two days ago, you will download a highly-compressed MP3 file.&lt;/p&gt;&lt;p&gt; For example, take the standard &lt;i&gt;agent-101 recording&lt;/i&gt; file that is distribuited with Asterisk; its size is:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="pcode"&gt;&lt;div class="row"&gt;+--------------+----------------+&lt;/div&gt; &lt;div class="row"&gt;| wav file     |  1310764 bytes |&lt;/div&gt; &lt;div class="row"&gt;| gsm file     |   135168 bytes |&lt;/div&gt; &lt;div class="row"&gt;| mp3 file 16k |   164520 bytes |&lt;/div&gt; &lt;div class="row"&gt;| mp3 file 12k |   120528 bytes |&lt;/div&gt; &lt;div class="row"&gt;| mp3 file 8k  |    83808 bytes |&lt;/div&gt; &lt;div class="row"&gt;+--------------+----------------+&lt;/div&gt;  &lt;/div&gt;  &lt;p&gt; The mp3 file is compressed as 16kbps/mono and sounds pretty good, likely better that the gsm file. The mp3 compressed at 8kbps/mono sounds a bit compressed, but it stays intellegible.&lt;/p&gt;&lt;p&gt; &lt;b&gt;Enconding wav files into MP3&lt;/b&gt;&lt;br /&gt;To encode wav files into mp3, we create a make file. Make is the right tool for the job, as it is built to transform one file into a different file, by name. &lt;/p&gt;&lt;p&gt; So we edit a file called Makefile (yes, with the capital M) into our main storage directory, usually &lt;i&gt;/var/spool/asterisk/monitor&lt;/i&gt;:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="pcode"&gt;&lt;div class="row"&gt;DIRWAV = $(shell dir *.wav)&lt;/div&gt; &lt;div class="row"&gt;ALLWAV = $(DIRWAV:.wav=.mp3)&lt;/div&gt;  &lt;div class="row"&gt;DIRGSM = $(shell dir *.gsm)&lt;/div&gt; &lt;div class="row"&gt;ALLGSM = $(DIRGSM:.gsm=.mp3)&lt;/div&gt;  &lt;div class="row"&gt;mp3: $(ALLWAV) $(ALLGSM)&lt;/div&gt;   &lt;div class="row"&gt;%.mp3: %.wav&lt;/div&gt; &lt;div class="row"&gt;        nice lame --quiet --preset phone $? $@&lt;/div&gt; &lt;div class="row"&gt;        rm -f $?&lt;/div&gt;   &lt;div class="row"&gt;%.wav: %.gsm&lt;/div&gt; &lt;div class="row"&gt;        nice sox $? -r 8000 -c 1 -w -s $@&lt;/div&gt; &lt;div class="row"&gt;        rm -f $?&lt;/div&gt;   &lt;div class="row"&gt;clean:&lt;/div&gt; &lt;div class="row"&gt;        rm -f *.mp3&lt;/div&gt; &lt;div class="row"&gt;        rm -f *.wav&lt;/div&gt; &lt;div class="row"&gt;        rm -f *.raw&lt;/div&gt; &lt;div class="row"&gt;        rm -f *.gsm&lt;/div&gt; &lt;div class="row"&gt;        cp /var/lib/asterisk/mohmp3/*.wav .&lt;/div&gt; &lt;div class="row"&gt;        cp /var/lib/asterisk/sounds/a*.gsm .&lt;/div&gt;  &lt;/div&gt;  &lt;p&gt; (You can omit the clean section we used for testing). &lt;/p&gt;&lt;p&gt; Leave a few blank lines after each target.&lt;/p&gt;&lt;p&gt; Make sure you have &lt;i&gt;sox&lt;/i&gt; and &lt;i&gt;lame&lt;/i&gt; installed on your machine.&lt;/p&gt;&lt;p&gt; Then at night you run a job like:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="pcode"&gt;&lt;div class="row"&gt;cd /var/spool/asterisk/monitor; make mp3&lt;/div&gt;  &lt;/div&gt;  &lt;p&gt; At night, this makefile will search all wav (or gsm) files and convert them into mp3, deleting the original files. &lt;/p&gt;&lt;p&gt; &lt;b&gt;Choosing 16k, 12k or 8k compression&lt;/b&gt;&lt;br /&gt;In order to fine-tune the mp3 encoding to your preferred size, you can change the parameter after --preset to:&lt;/p&gt;&lt;p&gt; &lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; --preset phone  -&gt; 16kbps/mono, high quality&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; --preset 12     -&gt; 12kbps/mono, normal quality&lt;br /&gt;&lt;img src="http://astrecipes.net/images/imgwiki/star.gif" alt="star" width="11" height="11" /&gt; --preset 8      -&gt; 8 kbps/mono, low quality&lt;/p&gt;&lt;p&gt; If your system is not over-loaded, you may also want to pass the '-h' parameter to turn on high-quality (but slower) mp3 encoding.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-5268955055348457366?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3vL06N-Gp2LOU4ThQf80sfSImvI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3vL06N-Gp2LOU4ThQf80sfSImvI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3vL06N-Gp2LOU4ThQf80sfSImvI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3vL06N-Gp2LOU4ThQf80sfSImvI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/VH7PSnL6y0M" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/5268955055348457366?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/5268955055348457366?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/VH7PSnL6y0M/compressing-recorded-calls-to-mp3.html" title="Compressing recorded calls to MP3" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/07/compressing-recorded-calls-to-mp3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cGQX4_eyp7ImA9WxJUEE4.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-4843113608638637685</id><published>2009-07-07T23:32:00.000-07:00</published><updated>2009-07-07T23:37:00.043-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-07T23:37:00.043-07:00</app:edited><title>Recording of Extensions for Outgoing calls</title><content type="html">You want to record all outgoing traffic done by some extensions - not all extensions (it would be trivial) but just some of your choosing. You also want to be able to turn recordings on or off without modifying the dialplan.&lt;p&gt; &lt;b&gt;How to do it&lt;/b&gt;&lt;br /&gt;We will  use Asterisk's internal database to record a flag for each extension that tells us whether to record those calls or not. We add a check for this flag before dialling out, so we can catch all outgoing traffic. &lt;/p&gt;&lt;p&gt; &lt;b&gt;Modifying the dialplan&lt;/b&gt;&lt;br /&gt;Whenever you are currently dialing out (we assume that any number starting with 0 is an external call) you add the following piece of dialplan:&lt;/p&gt;&lt;div class="row"&gt;exten =&gt; _0.,1,NoOP,Dial out with hidden CLID&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; _0.,2,SetCallerPres(prohib)&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; _0.,3,DBGet(rec=registra/${CALLERIDNUM})&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; _0.,4,GotoIf($[ ${rec} = 1 ]?10:20)&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; _0.,10,MixMonitor(REC-${CALLERIDNUM}-${UNIQUEID}.wav|b|)&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; _0.,11,Goto(20)&lt;/div&gt; &lt;div class="row"&gt;exten =&gt; _0.,20,Dial(Zap/g1/${EXTEN:1})&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;b&gt;Deciding which extensions will be recorded&lt;/b&gt;&lt;br /&gt;Once your piece of dialplan is in place, you use the following command from the Asterisk CLI to tell Asterisk an extension is to be recorded:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="pcode"&gt;&lt;div class="row"&gt;database put registra 299 1&lt;/div&gt;  &lt;/div&gt;  &lt;p&gt; While you use the following to tell Asterisk an extension is not to be recorded anymore:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="pcode"&gt;&lt;div class="row"&gt;database put registra 299 0&lt;/div&gt;  &lt;/div&gt;  &lt;p&gt; If you want to know the status of your recorded extension, you type:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="pcode"&gt;&lt;div class="row"&gt;ast*CLI&gt; database show registra&lt;/div&gt; &lt;div class="row"&gt;/registra/223                                     : 1&lt;/div&gt; &lt;div class="row"&gt;/registra/224                                     : 0&lt;/div&gt; &lt;div class="row"&gt;/registra/299                                     : 1&lt;/div&gt;  &lt;/div&gt;  &lt;p&gt; Any key that has value of 1 will be recorded; any other key (whether it has value 0 or does not exist) is not recorded.&lt;/p&gt;&lt;p&gt; &lt;b&gt;Finding recorded calls&lt;/b&gt;&lt;br /&gt;You can find the recorded calls by issuing the following command:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="pcode"&gt;&lt;div class="row"&gt;[root@ast monitor]# ls -l /var/spool/asterisk/monitor/REC*&lt;/div&gt; &lt;div class="row"&gt;-rw-r--r--  1 root root  186284 Jun  9 15:36 /var/spool/asterisk/monitor/REC-299-1186583777.73726.wav&lt;/div&gt; &lt;div class="row"&gt;-rw-r--r--  1 root root  206764 Jun 9  15:40 /var/spool/asterisk/monitor/REC-299-1186584038.73774.wav&lt;/div&gt;  &lt;/div&gt;  &lt;p&gt; And you can listen to them by copying them over to any audio software.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-4843113608638637685?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UgXuIY0TY4rLjRb6WsuqM5sXYd8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UgXuIY0TY4rLjRb6WsuqM5sXYd8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UgXuIY0TY4rLjRb6WsuqM5sXYd8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UgXuIY0TY4rLjRb6WsuqM5sXYd8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/2ky1e5Wjjiw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/4843113608638637685?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/4843113608638637685?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/2ky1e5Wjjiw/recording-of-extensions-for-outgoing.html" title="Recording of Extensions for Outgoing calls" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/07/recording-of-extensions-for-outgoing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcNQ3Yyeyp7ImA9WxJWFU8.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-5933311669945102778</id><published>2009-06-20T10:26:00.000-07:00</published><updated>2009-06-20T10:48:12.893-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-20T10:48:12.893-07:00</app:edited><title>How do I Find Out Linux CPU Utilization?</title><content type="html">&lt;span class="Apple-style-span" style="font-family: Arial; color: rgb(17, 17, 17); font-size: 14px; line-height: 22px; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 1.571em; margin-left: 0px; "&gt;Whenever a Linux system CPU is occupied by a process, it is unavailable for processing other requests. Rest of pending requests must wait till CPU is free. This becomes a bottleneck in the system. Following command will help you to identify CPU utilization, so that you can troubleshoot CPU related performance problems.&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 1.571em; margin-left: 0px; "&gt;Finding CPU utilization is one of the important tasks. Linux comes with various utilities to report CPU utilization. With these commands, you will be able to find out:&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 1.571em; margin-left: 0px; "&gt;* CPU utilization&lt;br /&gt;* Display the utilization of each CPU individually (SMP cpu)&lt;br /&gt;* Find out your system's average CPU utilization since the last reboot etc&lt;br /&gt;* Determine which process is eating the CPU(s)&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 1.571em; margin-left: 0px; "&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 12px; line-height: 18px; "&gt;top - display top CPU processes&lt;a name="lbAC" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style="font-size: 14px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.3em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; color: rgb(77, 74, 66); font: normal normal normal 14px/1.3 Verdana; "&gt;SYNOPSIS&lt;/h2&gt;&lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; [&lt;b style="font-weight: bold; "&gt;-&lt;/b&gt;] [&lt;b style="font-weight: bold; "&gt;d&lt;/b&gt; &lt;i style="font-style: italic; "&gt;delay&lt;/i&gt;] [&lt;b style="font-weight: bold; "&gt;p&lt;/b&gt; &lt;i style="font-style: italic; "&gt;pid&lt;/i&gt;] [&lt;b style="font-weight: bold; "&gt;q&lt;/b&gt;] [&lt;b style="font-weight: bold; "&gt;c&lt;/b&gt;] [&lt;b style="font-weight: bold; "&gt;C&lt;/b&gt;] [&lt;b style="font-weight: bold; "&gt;S&lt;/b&gt;] [&lt;b style="font-weight: bold; "&gt;s&lt;/b&gt;] [&lt;b style="font-weight: bold; "&gt;i&lt;/b&gt;] [&lt;b style="font-weight: bold; "&gt;n&lt;/b&gt; &lt;i style="font-style: italic; "&gt;iter&lt;/i&gt;] [&lt;b style="font-weight: bold; "&gt;b&lt;/b&gt;]&lt;a name="lbAD" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/a&gt;&lt;h2 style="font-size: 14px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.3em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; color: rgb(77, 74, 66); font: normal normal normal 14px/1.3 Verdana; "&gt;DESCRIPTION&lt;/h2&gt;&lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; provides an ongoing look at processor activity in real time. It displays a listing of the most CPU-intensive tasks on the system, and can provide an interactive interface for manipulating processes. It can sort the tasks by CPU usage, memory usage and runtime. can be better configured than the standard top from the procps suite. Most features can either be selected by an interactive command or by specifying the feature in the personal or system-wide configuration file. See below for more information.&lt;p style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;a name="lbAE" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2 style="font-size: 14px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.3em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; color: rgb(77, 74, 66); font: normal normal normal 14px/1.3 Verdana; "&gt;COMMAND-LINE OPTIONS&lt;/h2&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-d&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Specifies the delay between screen updates. You can change this with the &lt;b style="font-weight: bold; "&gt;s&lt;/b&gt;interactive command.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-p&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Monitor only processes with given process id. This flag can be given up to twenty times. This option is neither available interactively nor can it be put into the configuration file.&lt;/dd&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;br /&gt;&lt;/dd&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;q&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;This causes &lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; to refresh without any delay. If the caller has superuser privileges, top runs with the highest possible priority.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-S&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Specifies cumulative mode, where each process is listed with the CPU time that it &lt;i style="font-style: italic; "&gt;as well as its dead children&lt;/i&gt; has spent. This is like the &lt;b style="font-weight: bold; "&gt;-S&lt;/b&gt; flag to &lt;b style="font-weight: bold; "&gt;&lt;a href="http://linux.about.com/library/cmd/blcmdl1_ps.htm" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: underline; color: rgb(51, 102, 204); "&gt;ps&lt;/a&gt;&lt;/b&gt;(1). See the discussion below of the &lt;b style="font-weight: bold; "&gt;S&lt;/b&gt; interactive command.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-s&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Tells &lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; to run in secure mode. This disables the potentially dangerous of the interactive commands (see below). A secure &lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; is a nifty thing to leave running on a spare terminal.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-i&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Start &lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; ignoring any idle or zombie processes. See the interactive command &lt;b style="font-weight: bold; "&gt;i&lt;/b&gt; below.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-C&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;display total CPU states instead of individual CPUs. This option only affects SMP systems.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-c&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;display command line instead of the command name only. The default behavior has been changed as this seems to be more useful.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-H&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Show all threads.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-n&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Number of iterations. Update the display this number of times and then exit.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;-b&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Batch mode. Useful for sending output from top to other programs or to a file. In this mode, &lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; will not accept command line input. It runs until it produces the number of iterations requested with the &lt;b style="font-weight: bold; "&gt;n&lt;/b&gt; option or until killed. Output is plain text suitable for display on a dumb terminal.&lt;/dd&gt;&lt;a name="lbAF" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/a&gt;&lt;h2 style="font-size: 14px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.3em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; color: rgb(77, 74, 66); font: normal normal normal 14px/1.3 Verdana; "&gt;FIELD DESCRIPTIONS&lt;/h2&gt;&lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; displays a variety of information about the processor state. The display is updated every 5 seconds by default, but you can change that with the &lt;b style="font-weight: bold; "&gt;d&lt;/b&gt; command-line option or the&lt;b style="font-weight: bold; "&gt;s&lt;/b&gt; interactive command.&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;"uptime"&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;This line displays the time the system has been up, and the three load averages for the system. The load averages are the average number of process ready to run during the last 1, 5 and 15 minutes. This line is just like the output of &lt;b style="font-weight: bold; "&gt;&lt;a href="http://linux.about.com/library/cmd/blcmdl1_uptime.htm" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: underline; color: rgb(51, 102, 204); "&gt;uptime&lt;/a&gt;&lt;/b&gt;(1). The uptime display may be toggled by the interactive &lt;b style="font-weight: bold; "&gt;l&lt;/b&gt; command.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;processes&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The total number of processes running at the time of the last update. This is also broken down into the number of tasks which are running, sleeping, stopped, or undead. The processes and states display may be toggled by the &lt;b style="font-weight: bold; "&gt;t&lt;/b&gt; interactive command.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;"CPU states"&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Shows the percentage of CPU time in user mode, system mode, niced tasks, iowait and idle. (Niced tasks are only those whose nice value is positive.) Time spent in niced tasks will also be counted in system and user time, so the total will be more than 100%. The processes and states display may be toggled by the &lt;b style="font-weight: bold; "&gt;t&lt;/b&gt; interactive command.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;Mem&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Statistics on memory usage, including total available memory, free memory, used memory, shared memory, and memory used for buffers. The display of memory information may be toggled by the &lt;b style="font-weight: bold; "&gt;m&lt;/b&gt; interactive command.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;Swap&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Statistics on swap space, including total swap space, available swap space, and used swap space. This and &lt;b style="font-weight: bold; "&gt;Mem&lt;/b&gt; are just like the output of &lt;b style="font-weight: bold; "&gt;&lt;a href="http://linux.about.com/library/cmd/blcmdl1_free.htm" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: underline; color: rgb(51, 102, 204); "&gt;free&lt;/a&gt;&lt;/b&gt;(1).&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;PID&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The process ID of each task.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;PPID&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The parent process ID each task.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;UID&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The user ID of the task's owner.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;USER&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The user name of the task's owner.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;PRI&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The priority of the task.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;NI&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The nice value of the task. Negative nice values are higher priority.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;SIZE&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The size of the task's code plus data plus stack space, in kilobytes, is shown here.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;TSIZE&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The code size of the task. This gives strange values for kernel processes and is broken for ELF processes.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;DSIZE&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Data + Stack size. This is broken for ELF processes.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;TRS&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Text resident size.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;SWAP&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Size of the swapped out part of the task.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;D&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Size of pages marked dirty.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;LC&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Last used processor. (That this changes from time to time is not a bug; Linux intentionally uses weak affinity. Also notice that the very act of running top may break weak affinity and cause more processes to change current CPU more often because of the extra demand for CPU time.)&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;RSS&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The total amount of physical memory used by the task, in kilobytes, is shown here. For ELF processes used library pages are counted here, for a.out processes not.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;SHARE&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The amount of shared memory used by the task is shown in this column.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;STAT&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The state of the task is shown here. The state is either &lt;b style="font-weight: bold; "&gt;S&lt;/b&gt; for sleeping, &lt;b style="font-weight: bold; "&gt;D&lt;/b&gt; for uninterruptible sleep, &lt;b style="font-weight: bold; "&gt;R&lt;/b&gt; for running, &lt;b style="font-weight: bold; "&gt;Z&lt;/b&gt; for zombies, or &lt;b style="font-weight: bold; "&gt;T&lt;/b&gt; for stopped or traced. These states are modified by trailing &lt;b style="font-weight: bold; "&gt;&lt;&lt;/b&gt; for a process with negative nice value, &lt;b style="font-weight: bold; "&gt;N&lt;/b&gt; for a process with positive nice value, &lt;b style="font-weight: bold; "&gt;W&lt;/b&gt; for a swapped out process (this does not work correctly for kernel processes).&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;WCHAN&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;depending on the availability of either &lt;i style="font-style: italic; "&gt;/boot/psdatabase&lt;/i&gt; or the kernel link map&lt;i style="font-style: italic; "&gt;/boot/System.map&lt;/i&gt; this shows the address or the name of the kernel function the task currently is sleeping in.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;TIME&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Total CPU time the task has used since it started. If cumulative mode is on, this also includes the CPU time used by the process's children which have died. You can set cumulative mode with the &lt;b style="font-weight: bold; "&gt;S&lt;/b&gt; command line option or toggle it with the interactive command &lt;b style="font-weight: bold; "&gt;S&lt;/b&gt;. The header line will then be changed to &lt;b style="font-weight: bold; "&gt;CTIME&lt;/b&gt;.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;%CPU&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The task's share of the CPU time since the last screen update, expressed as a percentage of total CPU time per processor.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;%MEM&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The task's share of the physical memory.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;COMMAND&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The task's command name, which will be truncated if it is too long to be displayed on one line. Tasks in memory will have a full command line, but swapped-out tasks will only have the name of the program in parentheses (for example, "(getty)").&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;"A , WP"&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;these fields from the kmem top are not supported.&lt;/dd&gt;&lt;a name="lbAG" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/a&gt;&lt;h2 style="font-size: 14px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.3em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; color: rgb(77, 74, 66); font: normal normal normal 14px/1.3 Verdana; "&gt;INTERACTIVE COMMANDS&lt;/h2&gt;Several single-key commands are recognized while &lt;b style="font-weight: bold; "&gt;top&lt;/b&gt; is running. Some are disabled if the&lt;b style="font-weight: bold; "&gt;s&lt;/b&gt; option has been given on the command line.&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;space&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Immediately updates the display.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;^L&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Erases and redraws the screen.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;h&lt;/b&gt; or &lt;b style="font-weight: bold; "&gt;?&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Displays a help screen giving a brief summary of commands, and the status of secure and cumulative modes.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;k&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Kill a process. You will be prompted for the PID of the task, and the signal to send to it. For a normal kill, send signal 15. For a sure, but rather abrupt, kill, send signal 9. The default signal, as with &lt;a href="http://linux.about.com/library/cmd/blcmdl1_kill.htm" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: underline; color: rgb(51, 102, 204); "&gt;kill&lt;/a&gt;(1), is 15, &lt;b style="font-weight: bold; "&gt;SIGTERM&lt;/b&gt;. This command is not available in secure mode.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;i&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Ignore idle and zombie processes. This is a toggle switch.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;I&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Toggle between Solaris (CPU percentage divided by total number of CPUs) and Irix (CPU percentage calculated solely by amount of time) views. This is a toggle switch that affects only SMP systems.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;n&lt;/b&gt; or &lt;b style="font-weight: bold; "&gt;#&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Change the number of processes to show. You will be prompted to enter the number. This overrides automatic determination of the number of processes to show, which is based on window size measurement. If 0 is specified, then top will show as many processes as will fit on the screen; this is the default.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;q&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Quit.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;r&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Re-nice a process. You will be prompted for the PID of the task, and the value to nice it to. Entering a positve value will cause a process to be niced to negative values, and lose priority. If root is running &lt;b style="font-weight: bold; "&gt;top&lt;/b&gt;, a negative value can be entered, causing a process to get a higher than normal priority. The default renice value is 10. This command is not available in secure mode.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;S&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;This toggles cumulative mode, the equivalent of &lt;b style="font-weight: bold; "&gt;ps -S&lt;/b&gt;, i.e., that CPU times will include a process's defunct children. For some programs, such as compilers, which work by forking into many separate tasks, normal mode will make them appear less demanding than they actually are. For others, however, such as shells and &lt;b style="font-weight: bold; "&gt;init&lt;/b&gt;, this behavior is correct. In any case, try cumulative mode for an alternative view of CPU use.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;s&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Change the delay between updates. You will be prompted to enter the delay time, in seconds, between updates. Fractional values are recognized down to microseconds. Entering 0 causes continuous updates. The default value is 5 seconds. Note that low values cause nearly unreadably fast displays, and greatly raise the load. This command is not available in secure mode.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;f&lt;/b&gt; or &lt;b style="font-weight: bold; "&gt;F&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Add fields to display or remove fields from the display. See below for more information.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;o&lt;/b&gt; or &lt;b style="font-weight: bold; "&gt;O&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Change order of displayed fields. See below for more information.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;l&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;toggle display of load average and uptime information.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;m&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;toggle display of memory information.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;t&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;toggle display of processes and CPU states information.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;c&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;toggle display of command name or full command line.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;N&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;sort tasks by pid (&lt;i style="font-style: italic; "&gt;n&lt;/i&gt;umerically).&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;A&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;sort tasks by age (newest first).&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;P&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;sort tasks by CPU usage (default).&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;M&lt;/b&gt;&lt;/dt&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;sort tasks by resident memory usage.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;T&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;sort tasks by time / cumulative time.&lt;/dd&gt;&lt;dt style="font-size: 12px; font-style: inherit; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;b style="font-weight: bold; "&gt;W&lt;/b&gt;&lt;/dt&gt;&lt;dd style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 3em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;Write current setup to &lt;i style="font-style: italic; "&gt;~/.toprc&lt;/i&gt;. This is the recommended way to write a top configuration file.&lt;/dd&gt;&lt;a name="lbAH" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/a&gt;&lt;h2 style="font-size: 14px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.3em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; color: rgb(77, 74, 66); font: normal normal normal 14px/1.3 Verdana; "&gt;The Field and Order Screens&lt;/h2&gt;After pressing &lt;b style="font-weight: bold; "&gt;f&lt;/b&gt;, &lt;b style="font-weight: bold; "&gt;F&lt;/b&gt;, &lt;b style="font-weight: bold; "&gt;o&lt;/b&gt; or &lt;b style="font-weight: bold; "&gt;O&lt;/b&gt; you will be shown a screen specifying the field order on the top line and short descriptions of the field contents. The field order string uses the following syntax: If the letter in the filed string corresponding to a field is upper case, the field will be displayed. This is furthermore indicated by an asterisk in front of the field description. The order of the fields corresponds to the order of the letters in the string.&lt;br /&gt;From the field select screen you can toggle the display of a field by pressing the corresponding letter.&lt;br /&gt;From the order screen you may move a field to the left by pressing the corresponding upper case letter resp. to the right by pressing the lower case one.&lt;a name="lbAI" style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;&lt;/a&gt;&lt;h2 style="font-size: 14px; font-style: inherit; font-weight: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.3em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; color: rgb(77, 74, 66); font: normal normal normal 14px/1.3 Verdana; "&gt;Configuration Files&lt;/h2&gt;The command &lt;i style="font-style: italic; "&gt;top&lt;/i&gt; reads it's default configuration from two files, &lt;i style="font-style: italic; "&gt;/etc/toprc&lt;/i&gt; and &lt;i style="font-style: italic; "&gt;~/.toprc&lt;/i&gt;. The global configuration file may be used to restrict the usage of top to the secure mode for non-non-privileged users. If this is desired, the file should contain a 's' to specify secure mode and a digit d (2&lt;=d&lt;=9) for the default delay (in seconds) on a single line. The personal configuration file contains two lines. The first line contains lower and upper letters to specify which fields in what order are to be displayed. The letters correspond to the letters in the Fields or Order screens from top. As this is not very instructive, it is recommended to select fields and order in a running top process and to save this using the&lt;i style="font-style: italic; "&gt;W&lt;/i&gt; interactive command.&lt;p style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;The second line is more interesting (and important). It contains information on the other options. Most important, if you have saved a configuration in secure mode, you will not get an insecure top without removing the lower 's' from the second line of your &lt;i style="font-style: italic; "&gt;~/.toprc&lt;/i&gt;.&lt;/p&gt;&lt;p style="font-size: 12px; font-style: inherit; font-weight: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; "&gt;A digit specifies the delay time between updates, a capital 'S' cumulative mode, a lower 'i' no-idle mode, a capital 'I' Irix view. As in interactive mode, a lower 'm', 'l', and 't' suppresses the display of memory, uptime resp. process and CPU state information. Currently changing the default sorting order (by CPU usage) is not supported.&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 1.571em; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 1.571em; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-5933311669945102778?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hvcEGB84Qq10NKzTEVOM9HynitY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hvcEGB84Qq10NKzTEVOM9HynitY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hvcEGB84Qq10NKzTEVOM9HynitY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hvcEGB84Qq10NKzTEVOM9HynitY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/RL6SIouv-gg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/5933311669945102778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/5933311669945102778?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/RL6SIouv-gg/how-do-i-find-out-linux-cpu-utilization.html" title="How do I Find Out Linux CPU Utilization?" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/06/how-do-i-find-out-linux-cpu-utilization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIFSXsyfip7ImA9WxJRFUk.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-1513911838994129076</id><published>2009-05-16T23:06:00.000-07:00</published><updated>2009-05-16T23:08:38.596-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-16T23:08:38.596-07:00</app:edited><title>adsi.conf</title><content type="html">This is the Analog Display Services Interface Configuration file for Asterisk. (Not to be mistaken with DISA, which is something completely unrelated).&lt;br /&gt; &lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;u&gt;&lt;b&gt;1.1. Introduction to ADSI:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;The file is located in the &lt;b&gt;/etc/asterisk/&lt;/b&gt; directory.&lt;br /&gt;&lt;br /&gt;ADSI (Analog Display Services Interface) is a protocol for enabling alternate voice and data services over the analog telephone network, such as sending data to a display at the ADSI phone&lt;br /&gt;&lt;br /&gt;It also allow for running simple interactive scripts on the ADSI phone, such as Call Waiting Deluxe, an application that displays the name and number of an incoming call while you are on the phone.&lt;br /&gt;Not only will the phone display the number, it will also ask you what to do with it, including switching to the new call, forwarding the new call to your voice mail, putting the new caller on hold, playing a recorded message, or dropping the current call and switching to the new call.&lt;br /&gt;&lt;br /&gt;Other ADSI applications include:&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;- Visual voice mail: the display of telephone voice mail menu options and a list of your voice mail messages&lt;br /&gt;- Visual directory: a service that allows you to locate the telephone number of an individual or business and, possibly at extra charge, to download the address of that individual to your screen phone&lt;br /&gt;- E-mail browsing: allowing you to send and receive e-mail messages via an ADSI-enabled device.&lt;br /&gt;- Schedule-based services: faxing abilities, notification of incoming e-mail messages, home banking, ticket purchasing, and access to train and plane schedules.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;1.2. Prequisites&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;- Asterisk&lt;br /&gt;- a configured TDM card, fxo card or combination of channel bank and E1/T1 card.&lt;br /&gt;- ADSI Capable phone&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;1.3. ADSI capable phones:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;- Sayson/Aastra 390/480e&lt;br /&gt;&lt;div class="tab"&gt;&lt;img src="http://asteriskguru.com/tutorials/adsi_conf_image492.gif" vspace="10" hspace="20" /&gt;Cybiolink P-1 ADSI analog phone&lt;br /&gt;- Nortel Vista 350/380&lt;br /&gt;&lt;div class="tab"&gt;&lt;img src="http://asteriskguru.com/tutorials/adsi_conf_image495.jpg" vspace="10" hspace="20" /&gt;&lt;/div&gt;&lt;br /&gt;- Lucent Technologies' ADSI SpeakerPhone 980&lt;br /&gt;- CybioTronics CY-2135-BH CybioLink&lt;br /&gt;&lt;div class="tab"&gt;&lt;img src="http://asteriskguru.com/tutorials/adsi_conf_image493.gif" vspace="10" hspace="20" /&gt;&lt;/div&gt;&lt;br /&gt;- Fanstel ST2112&lt;br /&gt;&lt;div class="tab"&gt;&lt;img src="http://asteriskguru.com/tutorials/adsi_conf_image494.gif" vspace="10" hspace="20" /&gt;&lt;/div&gt;&lt;br /&gt;(If you know more, please leave a comment and we will add them).&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;1.4. Configuration of asterisk for ADSI&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;Saddly, we don't have an ADSI phone in our lab, so all the information here is gathered on the internet and untested.&lt;br /&gt;&lt;br /&gt;The main ADSI configuration file is called ADSI.conf, a sample ADSI script is included in the asterisk sources as asterisk.adsi.&lt;br /&gt;&lt;br /&gt;To use ADSI, you need to enable ADSI on this specific zaptel line.&lt;br /&gt;(So first you will need to read up on how to configure zaptel for your card and then enable ADSI on the channel your phone is connected to by adding the line adsi=yes to the configuration for this channel in &lt;u&gt;zapata.conf&lt;/u&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;div class="tab"&gt;&lt;i&gt;; ADSI (Analog Display Services Interface) can be enabled on a per-channel&lt;br /&gt;; basis if you have (or may have) ADSI compatible CPE equipment&lt;br /&gt;;&lt;br /&gt;;adsi=yes&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I don't think you need to touch anything in &lt;u&gt;adsi.conf&lt;/u&gt;, the sample configuration file looks as the snippet below:&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;div class="tab"&gt;&lt;i&gt;;&lt;br /&gt;; Sample ADSI Configuration file&lt;br /&gt;;&lt;br /&gt;[intro]&lt;br /&gt;alignment = center; alignment on the screen, valid values are: l(eft), r(ight) i(indent?). All others are recognized as centered.&lt;br /&gt;greeting =&gt; Welcome to the ; Some greeting, don't know when its shown on the phone&lt;br /&gt;greeting =&gt; Asterisk&lt;br /&gt;greeting =&gt; Open Source PBX&lt;br /&gt;maxretries = 3  ; number of times to retry sending to the ADSI phone&lt;br /&gt;[speeddial]&lt;br /&gt;--please look at res_adsi.c&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;For the speeddial option, you will need to look at the res_adsi.c source code, i suppose its name,number or number,name.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;1.5. ADSI scripts&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;Asterisk comes with two ADSI scripts included,&lt;br /&gt;asterisk.adsi&lt;br /&gt;telcordia-1.adsi&lt;br /&gt;&lt;br /&gt;These scripts need to run on the phone, asterisk can upload them to the phone for you.&lt;br /&gt;To do so, you will need to create a specific extension, which will call the ADSIProg application. When you call this extension with your phone, asterisk will upload the script to the phone.&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;div class="tab"&gt;&lt;i&gt;exten =&gt; 1234,1,ADSIProg(telcordia-1.adsi);&lt;br /&gt;exten =&gt; 1234,2,Hangup;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If no parameter is giving to ADSIProg, it will upload the default script, asterisk.adsi.&lt;br /&gt;&lt;br /&gt;Before you upload any scripts, you might need to alter them and change two values for you specific phone:&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;div class="tab"&gt;&lt;i&gt;SECURITY 0X9BDBF7AC                             ; Security code&lt;br /&gt;FDN 0x0000000F                                          ; Descriptor number&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For a list with codes, have a look &lt;a href="http://lists.digium.com/pipermail/asterisk-users/2005-January/083425.html" target="_blank"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If your phone has multiple slots, you can upload one script per slot. (each slot will have a different FDN).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;1.6. Other ADSI related features&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;br /&gt;&lt;u&gt;1.6.1.: Voicemail&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;The comedian mail has some support for ADSI, if you want to use this with your phone, you will need to alter the codes again, but this time in the sources for comedian mail.&lt;br /&gt;static char *adapp = "CoMa"; --&gt; this value is the FDN as seen before&lt;br /&gt;static char *adsec = "_AST"; --&gt; this value is the security code as above.&lt;br /&gt;&lt;br /&gt;This means that if you change the brand of phone, you will need to alter this again and recompile. And you probably will be unable to use different brands of phones at the same time.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;1.6.2.: Send text to an ADSI phone&lt;/u&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;br /&gt;If you have a look at &lt;a href="http://66.249.93.104/search?q=cache:w2w-m1SKgXcJ:www.marko.net/asterisk/archives/0301/0852.html+ADSI+Programming+Guide+phone+-asp+-active&amp;amp;hl=nl" target="_blank"&gt;this&lt;/a&gt;  google cache, you will find an application to send messages to your ADSI phone from the asterisk dialplan.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;1.6.3.: Call Parking&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Asterisk can send some information to your ADSI phone when you park a call, to enable this, edit features.conf and type the line adsipark = yes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;See also:&lt;/u&gt;&lt;br /&gt;- ADSIProg&lt;br /&gt;- zapata.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;References:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://whatis.techtarget.com/definition/0,,sid9_gci214071,00.html" target="_blank"&gt;ADSI definition on techtarget.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lists.digium.com/pipermail/asterisk-users/2004-November/072785.html" target="_blank"&gt;ADSI questions for a 390 ADSI Phone - part 1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lists.digium.com/pipermail/asterisk-users/2004-November/072840.html" target="_blank"&gt;ADSI questions for a 390 ADSI Phone - part 2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.hackcanada.com/canadian/phreaking/vista350.txt" target="_blank"&gt;some more info on ADSI&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gladsis.com/faqs.htm" target="_blank"&gt;ADSI FAQ&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lists.digium.com/pipermail/asterisk-users/2004-March/040559.html" target="_blank"&gt;Another mail archive &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cabling-design.com/forums/Re-I-found-ADSI-unlock-codes--now-what-article1363-14.htm" target="_blank"&gt;ADSI unlock codes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://66.249.93.104/search?q=cache:w2w-m1SKgXcJ:www.marko.net/asterisk/archives/0301/0852.html+ADSI+Programming+Guide+phone+-asp+-active&amp;amp;hl=nl" target="_blank"&gt;Application to send text to the ADSI Phone&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.elink.ibmlink.ibm.com/public/applications/publications/cgibin/pbi.cgi?CTY=US&amp;amp;FNC=SRX&amp;amp;PBL=SC34-5380-04#" target="_blank"&gt;ADSI programming guide - WebSphere Voice Response for AIX V3.1 Programming for the ADSI feature&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lists.digium.com/pipermail/asterisk-dev/2004-January/002632.html" target="_blank"&gt;thread with some more info on locking codes&lt;/a&gt;&lt;br /&gt;       &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-1513911838994129076?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xV5Ws-rWA4tYwkxUFWH4Xwnsknw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xV5Ws-rWA4tYwkxUFWH4Xwnsknw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xV5Ws-rWA4tYwkxUFWH4Xwnsknw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xV5Ws-rWA4tYwkxUFWH4Xwnsknw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/TxiUxZt-ixE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/1513911838994129076?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/1513911838994129076?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/TxiUxZt-ixE/adsiconf.html" title="adsi.conf" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/05/adsiconf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQDSXszfip7ImA9WxJRFUk.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-8059333178298595982</id><published>2009-05-16T23:03:00.000-07:00</published><updated>2009-05-16T23:06:18.586-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-16T23:06:18.586-07:00</app:edited><title>extensions.conf</title><content type="html">&lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html"&gt;&lt;i&gt;extensions.conf&lt;/i&gt;&lt;/a&gt; - this is the configuration file, where have to make your dial plans&lt;br /&gt;&lt;br /&gt;The &lt;i&gt;extensions.conf&lt;/i&gt; file is one of the most used and most important configuration file in Asterisk PBX - it contains the dialplan. What is a dialplan? The dialplan , or we can say "the heart of the Asterisk System", defines how Asterisk PBX will handle incoming and outgoing calls, it also contains all extension numbers. The dialplan is divided in sections called contexts. Every context consists from more than one extensions. What is an extension? The extension is the telephone number, it can be numbers, letters or both. Every extension has a priority and an application. With the help of contexts we can organize our dialplan.&lt;br /&gt;&lt;br /&gt;In general a dialplan looks like this:&lt;br /&gt;&lt;br /&gt;[general]&lt;br /&gt;--&gt; some settings go here&lt;br /&gt;&lt;br /&gt;[globals]&lt;br /&gt;--&gt;  definition of some global variables go here&lt;br /&gt;&lt;br /&gt;[context1]&lt;br /&gt;--&gt;extension 1, priority 1, application&lt;br /&gt;--&gt;extension 1, priority 2, application&lt;br /&gt;&lt;br /&gt;--&gt; extension helpdesk, priority 1, application&lt;br /&gt;...&lt;br /&gt;[context2]&lt;br /&gt;--&gt; extension 999, priority 1, application&lt;br /&gt;--&gt; extension 999, priority 1, application&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;2. Contexts&lt;/u&gt;&lt;/b&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;2.1 [general]&lt;/b&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;br /&gt;The first context in the &lt;i&gt;extensions.conf&lt;/i&gt; file is &lt;u&gt;[general]&lt;/u&gt;, 3 configuration options can be set here:&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;static= yes | no&lt;/b&gt; - For now &lt;b&gt;only&lt;/b&gt; the option &lt;b&gt;yes&lt;/b&gt; is implemented, (so setting it to no won't have any effect) and if &lt;i&gt;static=yes &lt;/i&gt;and &lt;i&gt;writeprotect=no&lt;/i&gt; , then you can save dialplan from the CLI command '&lt;i&gt;save dialplan&lt;/i&gt;'.&lt;br /&gt;&lt;br /&gt;More on this in the (upcoming) tutorial on the CLI commands. (The CLI is the interactive asterisk shell, where you could a.o. change your dialplan and save it without altering the extensions.conf file.)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;writeprotect = yes | no&lt;/b&gt; - This option is require if you want to have ability to save dialplan changes from the CLI command.&lt;br /&gt;&lt;b&gt;autofallthrough=yes|no&lt;/b&gt; - If this option is set, after finishing with things to do, Asterisk will hang up the call. If not set, Asterisk will wait for another extension to be dialed. It is &lt;b&gt;highly&lt;/b&gt; recommended this option to be set to yes.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.2 [globals]&lt;/b&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;br /&gt;In context &lt;u&gt;[globals]&lt;/u&gt; you can specify your own variables,&lt;br /&gt;that can be used later in extensions. Note that a global variable&lt;br /&gt;name is not case sensitive, so &lt;i&gt;${MYVAR}&lt;/i&gt; and &lt;i&gt;${mYvaR}&lt;/i&gt; are the same.&lt;br /&gt;The way to write global variable in section [globals] is:&lt;br /&gt;&lt;div class="tab"&gt;&lt;br /&gt;&lt;i&gt;The_name_of_my_variable =&gt; The_variable's_value&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;[general]&lt;br /&gt;static=yes&lt;br /&gt;writeprotect=no&lt;br /&gt;&lt;br /&gt;[globals]&lt;br /&gt;MyMusicOnHold =&gt; /mp3/Mozart.mp3&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;2.3 "Real" call contexts&lt;/b&gt;&lt;div class="tab"&gt;&lt;br /&gt;With the exception of  &lt;u&gt;[general]&lt;/u&gt; and &lt;u&gt;[globals]&lt;/u&gt; everything else is consider as call contexts. The basic look of contexts is:&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;[context_name]&lt;br /&gt;exten =&gt; some_exten_number,priority,application(arg1,arg2,...)&lt;br /&gt;exten =&gt; some_exten_number,priority,application,arg1|arg2...&lt;br /&gt;exten =&gt; some_pattern,priority,application(arg1,arg2,...)&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;But what is the purpose of the 'context' ? Inside a context, you could build an IVR menus (Interactive Voice Response) using extensions, you could define a specific context for every department of you company (Accounting, Support, etc)&lt;br /&gt;&lt;br /&gt;Using different contexts, the Accounting team would call to their supervisor john when hitting 123, and the support team would call head of support 'alice' when pressing 123.&lt;br /&gt;&lt;br /&gt;The support team might be able to do outgoing calls, but the account team could be restricted to only internal calls.&lt;br /&gt;&lt;br /&gt;Or incoming calls from clients could be all sent to a waiting Queue, while internal calls between collegues will go straight to the collegue without queing.&lt;br /&gt;&lt;br /&gt;So with the help of the contexts it's very easy to manage all assigned telephone numbers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;[general]&lt;br /&gt;; ...skip...&lt;br /&gt;&lt;br /&gt;[globals]&lt;br /&gt;; ...skip...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[Helpdesk]&lt;br /&gt;exten =&gt; 323206,1,Dial(SIP/Helpdesk_agent01)&lt;br /&gt;; ...skip...&lt;br /&gt;&lt;br /&gt;[Accounting]&lt;br /&gt;exten =&gt; 443307,1,Dial(IAX2/Accounting_agent01)&lt;br /&gt;; ...skip...&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;IVR menu example:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;[default]&lt;br /&gt;exten =&gt; steve,1,Dial(SIP/steve);&lt;br /&gt;exten =&gt; mark,2,Dial(SIP/mark);&lt;br /&gt;&lt;br /&gt;&lt;i&gt;[mainmenu]&lt;br /&gt;exten =&gt; s,1,Answer&lt;br /&gt;exten =&gt; s,n,Background(thanks)  ; "Thanks for calling press 1 for sales, 2 for support, ..."&lt;br /&gt;exten =&gt; s,n,WaitExten&lt;br /&gt;exten =&gt; 1,1,Goto(submenu,s,1)&lt;br /&gt;exten =&gt; 2,1,Hangup&lt;br /&gt;&lt;br /&gt;[submenu]&lt;br /&gt;exten =&gt; s,1,Ringing ; Make them comfortable with 2 seconds of ringback&lt;br /&gt;exten =&gt; s,n,Wait,2&lt;br /&gt;exten =&gt; s,n,Background(submenuopts) ; "Thanks for calling the sales ;department.  Press 1 for steve, 2 for..."&lt;br /&gt;exten =&gt; s,n,WaitExten&lt;br /&gt;exten =&gt; 1,1,Goto(default,steve,1)&lt;br /&gt;exten =&gt; 2,1,Goto(default,mark,2)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Lets have a closer look at what the lines above do exactly.&lt;br /&gt;&lt;br /&gt;Any call arriving in the mainmenu context, will first go to the s extension. (why ? Read on and you will find the answer below in the predefined extensions section)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;exten =&gt; s,1,Ringing:&lt;/i&gt;&lt;br /&gt;&lt;div class="tab"&gt;The first priority in this s extension is extension 1, this will just provide some ringing sound to the caller.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;exten =&gt; s,n,Wait,2:&lt;/i&gt;&lt;br /&gt;&lt;div class="tab"&gt;The second priority in extension s, is the wait application with parameter 2, which would just wait for 2 seconds, and as a result give ringing for 2 seconds before playing the audio file "submenuopts" to the caller as defined in the 3rd priority. (exten =&gt; s,n,Background(submenuopts))&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;exten =&gt; s,n,WaitExten:&lt;/i&gt;&lt;br /&gt;&lt;div class="tab"&gt;The 4th priority will wait for the caller to enter some digits, (such as press 1 for steve, press 2 for mark), the keys pressed by the caller will be the new extension. (if the person presses 1, the call will go to extension 1, priority 1, if the person presses 2, the call would go to extension 2, priority 2)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Lets assume the caller pressed 2:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;exten =&gt; 2,1,Goto(default,mark,2):&lt;/i&gt;&lt;br /&gt;&lt;div class="tab"&gt;The caller pressed 2 and the call flow will now go to the default context, extension mark, priority 2.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;exten =&gt; mark,2,Dial(SIP/mark);&lt;br /&gt;In this last step, it would dial the sip user mark. (as defined in sip.conf)&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;3. Extension&lt;/b&gt;&lt;/u&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;Extension = telephone number? Yes, in general it is true.There are three types of extensions : litteral, predifined and pattern.&lt;br /&gt;&lt;br /&gt;The &lt;b&gt;litteral&lt;/b&gt; extensions can contain in their name: numbers (0-9), letters A,B,C,D (some hardphones have these letters) or all letters (a-z). Are extension names case sensitive? Yes and no. They are case sensitive when Asterisk have to match a user dialed extension to the extensions that are defined in a context. Extension names are not case sensitive when you try define two extensions (in one context) with same name but different case (you can not do this).&lt;br /&gt;&lt;br /&gt;There are several &lt;b&gt;predefined&lt;/b&gt; extension names:&lt;br /&gt;&lt;div class="tab"&gt;- &lt;b&gt;i&lt;/b&gt; - Invalid&lt;br /&gt;- &lt;b&gt;s&lt;/b&gt; - Start&lt;br /&gt;- &lt;b&gt;h&lt;/b&gt; - Hangup&lt;br /&gt;- &lt;b&gt;t&lt;/b&gt; - Timeout&lt;br /&gt;- &lt;b&gt;T&lt;/b&gt; - AbsoluteTimeout&lt;br /&gt;- &lt;b&gt;o&lt;/b&gt; - Operator&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;some example&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If extension name starts with '&lt;b&gt;_&lt;/b&gt;', it is consider as &lt;b&gt;pattern&lt;/b&gt;.&lt;br /&gt;For the extension that use pattern, some characters have special meaning:&lt;br /&gt;&lt;div class="tab"&gt;- &lt;b&gt;X&lt;/b&gt; - any digit from 0-9&lt;br /&gt;- &lt;b&gt;Z&lt;/b&gt; - any digit from 1-9&lt;br /&gt;- &lt;b&gt;N&lt;/b&gt; - any digit from 2-9&lt;br /&gt;- &lt;b&gt;[&lt;/b&gt;12679&lt;b&gt;]&lt;/b&gt; - any digit in the brakets (in the example: 1,2,6,7,9)&lt;br /&gt;- &lt;b&gt;.&lt;/b&gt; - (dot) wildcard, matches everything remaining&lt;br /&gt;( _1234. - matches anything strating with 1234 excluding 1234 itself).&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; Do &lt;b&gt;not&lt;/b&gt; use '&lt;b&gt;_.&lt;/b&gt;', because it will match everything even the predefined extensions!!!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;_359ZXXXXXX - This will match all dilaed extensions that start with 359, and are 10 digits long( including 359)&lt;br /&gt;_0XXX. - This will match all dialed extensions that begin with 0 and are minimum 5 digits long (including 0)&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So you can see that with help of patterns you can group calls as national, international or local, the only thing you must do is to write the pattern.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;4. Other very useful stuff included in extensions.conf&lt;/u&gt;&lt;/b&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;4.1 ignorepad&lt;/b&gt;&lt;div class="tab"&gt;&lt;br /&gt;Another option that can be set is ignorepat. This option instructs drivers&lt;br /&gt;to not cancel dialtone upon receipt specified pattern:&lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;ignorepat =&gt; 8 - dialtone will remain after pressing 8&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;4.2 switch&lt;/b&gt;&lt;br /&gt;&lt;div class="tab"&gt;Switch option permits a server to share his dialplan with&lt;br /&gt;another server (ServerA&gt;ServerB). Note that reciprocal switch&lt;br /&gt;statements are not allowed (ServerA&gt;ServerB and ServerB&gt;ServerA).&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;switch =&gt; IAX2/&lt;username&gt;:[&lt;password&gt;]@&lt;myserver&gt;/&lt;mycontext&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Note that &lt;username&gt; and &lt;password&gt; need to be declared in iax.conf&lt;br /&gt;of the remote server (&lt;myserver&gt;).&lt;/div&gt;&lt;br /&gt;&lt;b&gt;4.3 include&lt;/b&gt;&lt;div class="tab"&gt;&lt;br /&gt;You can include all numbers from one context to another context. To do that use:&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;include =&gt; some_context_to_be_included&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Except context you can include another configuration file. To do this you have to use '&lt;b&gt;#include&lt;/b&gt;':&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;i&gt;#include "some_file_to_be_included.conf"&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-8059333178298595982?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EPQrl3V5YeWw8AtDJSp6oLr3dMw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EPQrl3V5YeWw8AtDJSp6oLr3dMw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EPQrl3V5YeWw8AtDJSp6oLr3dMw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EPQrl3V5YeWw8AtDJSp6oLr3dMw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/ZgpqIC4u8z4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8059333178298595982?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8059333178298595982?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/ZgpqIC4u8z4/extensionsconf.html" title="extensions.conf" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2009/05/extensionsconf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04BRH4yeip7ImA9WxVTEU4.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-8802974823003643009</id><published>2008-12-24T09:27:00.000-08:00</published><updated>2008-12-24T09:32:35.092-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-24T09:32:35.092-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Dial Plan" /><title>Dial Plan</title><content type="html">&lt;h2 style="margin:0in;margin-bottom:.0001pt;background:white"&gt;&lt;a name="wbp11chapter5p5"&gt;&lt;/a&gt;&lt;a name="176"&gt;&lt;/a&gt;&lt;span style=" ;font-family:Arial;font-size:13.5pt;color:navy;"&gt;Starting with a Basic Dialplan&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p class="first-para"&gt;Dialplans define the exact parameters of how a call is processed. When someone calls you, do you want the call to go to your extension first and then your voice mail? Or, do you want the caller to receive a recording asking him to enter an extension first? You can also establish an order in which calls reach you. You can build a dialplan that attempts to reach you on your office line, your cellphone, and the VoIP softphone on your computer, and then send the call to your voice mail . . . now that's being connected!&lt;a name="BEGINPAGE.7FFF22CB-B481-45B8-801E-3AABFA"&gt;&lt;/a&gt;&lt;a name="177"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="para"&gt;You build the dialplans in the &lt;span class="fixed1"&gt;extensions.conf&lt;/span&gt; file that is usually located in the following directory: &lt;/p&gt;  &lt;pre&gt;/etc/asterisk&lt;/pre&gt;  &lt;p class="para"&gt;The &lt;span class="fixed1"&gt;extensions.conf&lt;/span&gt; file is one long string of dialplans, separated only by the individual contexts within brackets. All configurations beneath one context and above another apply to the upper context.&lt;/p&gt;  &lt;p class="para"&gt;This is an example of a simple dialplan:&lt;/p&gt;  &lt;pre&gt;[incoming]&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;exten =&gt; 2565551212,1,Answer()&lt;/pre&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Remember &lt;/span&gt;&lt;/b&gt;  This simple dialplan doesn't look like much now, but from these humble beginnings, great things are made.&lt;/p&gt;  &lt;p class="para"&gt;&lt;a href="http://www.books24x7.com/book/id_18070/viewer_r.asp?bookid=18070&amp;amp;chunkid=731146910#wbp11Chapter5P17#wbp11Chapter5P17"&gt;Figure 5-1&lt;/a&gt; identifies the four elements of a basic dialplan. Each element of the dialplan acts as shorthand for a set of rules, processes, or locations that are applied to all calls that fall within the dialplan parameters. The dialplan in &lt;a href="http://www.books24x7.com/book/id_18070/viewer_r.asp?bookid=18070&amp;amp;chunkid=731146910#wbp11Chapter5P17#wbp11Chapter5P17"&gt;Figure 5-1&lt;/a&gt; is for an incoming call that is being directed to phone number 9495551212. This scheme doesn't play a greeting to the caller, nor does it offer voice mail or a list of extensions; it simply sends the caller to the extension for phone number 949-555-1212, where the caller remains until someone picks up the line or he hangs up the phone.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;span class="Apple-style-span"   style="  ;font-family:Arial;font-size:48px;"&gt;&lt;span class="Apple-style-span"   style="  font-weight: bold; font-family:Georgia;font-size:19px;"&gt;Understanding the context&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;pre&gt;&lt;b&gt;[incoming]&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;exten =&gt;9495551212,1,Answer()&lt;a name="BEGINPAGE.CAB18963-A3D2-46BE-954A-395A3C"&gt;&lt;/a&gt;&lt;a name="180"&gt;&lt;/a&gt;&lt;/pre&gt;  &lt;p class="para"&gt;The &lt;i&gt;context &lt;/i&gt;is the first line of code and it correlates to the context you defined when configuring the individual VoIP, analog, digital, and/or IAX devices. (If you're wondering how to program the context to these devices, check out &lt;a href="http://www.books24x7.com/viewer.asp?bkid=18070&amp;amp;destid=104#104" target="_parent"&gt;Chapter 4&lt;/a&gt;.)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;When a call comes in to the server, Asterisk looks for the device sending the call (SIP/0001, for instance) for registration. If Asterisk can't find the registration, it looks for a default context for the channel type (VoIP, analog, or IAX connection, for example).&lt;/p&gt;  &lt;p class="para"&gt;You should group devices with the same functions and that belong to the same financial entity into contexts for ease of programming. The contexts we cover in this chapter are as follows:&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l4 level1 lfo1;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;[incoming]&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; Use this context to configure Asterisk for inbound calls.&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l4 level1 lfo1;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;[internal]&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; Use this context to configure Asterisk for calls that are transferred between two endpoints within the Asterisk network.&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l4 level1 lfo1;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;[outgoing]&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; This context is for outbound calls through analog, digital,VoIP, or wireless connections.&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l4 level1 lfo1;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;[globals]&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; This is a special context in which you build dialplan universals that you apply to all contexts. Your home area code would be listed here, for example, and used as a telecom point of reference for all local calls. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;These contexts are actually configuration contexts assigned to devices connecting to the Asterisk system. The device parameters and abilities are linked to the dialplan, which allows you to process the incoming and outgoing calls from the device. The &lt;span class="fixed1"&gt;[globals]&lt;/span&gt; context is the only special context because the relationships established in this context are used in every other context in your dialplan. These relationships are generally coding expedients whereby a common name is used to replace a complex device ID, such as &lt;/p&gt;  &lt;pre&gt;TRUNK=SIP/111.222.333.444/&lt;/pre&gt;  &lt;p class="para"&gt;This programming shorthand, called a &lt;i&gt;variable,&lt;/i&gt; allows you to write the word TRUNK instead of typing the VoIP port and IP address of SIP/111.222.333.444.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Remember &lt;/span&gt;&lt;/b&gt;  You don't have to use all these specific context names. Only the &lt;span class="fixed1"&gt;[globals]&lt;/span&gt; context is preset in Asterisk. You can use any naming convention you want for the other contexts. Context names can include letters, numbers, and hyphens. You can make your life easier if you do name your dialplans something descriptive. Context names such as &lt;span class="fixed1"&gt;[inbound]&lt;/span&gt;, &lt;span class="fixed1"&gt;[outbound]&lt;/span&gt;, &lt;span class="fixed1"&gt;[longdistance]&lt;/span&gt;, &lt;span class="fixed1"&gt;[local]&lt;/span&gt;, &lt;span class="fixed1"&gt;[international]&lt;/span&gt;, and &lt;span class="fixed1"&gt;[extensiononly]&lt;/span&gt; are easier to work with, and you can more easily remember their purpose.&lt;a name="BEGINPAGE.6AD1DF8E-4EDD-4042-906C-DB54B7"&gt;&lt;/a&gt;&lt;a name="181"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:maroon;color:white;"&gt; Warning &lt;/span&gt;&lt;/b&gt;  Okay, you can also use underscores in context names, but they can be problematic. Underscores are also used in other aspects of Asterisk, and mistyping a context with an underscore can complicate your dialplan. We recommend not using them for contexts; stick with hyphens instead.&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Tip &lt;/span&gt;&lt;/b&gt;  If you're using Asterisk for internal company use as well as for external customers, create context names that reflect the different entities. For instance, you can split the &lt;span class="fixed1"&gt;[incoming]&lt;/span&gt; context into the following: &lt;/p&gt;  &lt;pre&gt;[incoming-mine]&lt;/pre&gt;&lt;pre&gt;[incoming-customer]&lt;/pre&gt;  &lt;p class="para"&gt;Splitting contexts reduces confusion and allows you to handle internal calls differently. If you dial 0 in your office, you probably want to speak to your receptionist. If your customer has the option of dialing 0, you can have him sent to your customer service queue instead.&lt;/p&gt;  &lt;p class="last-para"&gt;Asterisk does have one context that isn't really a context as we understand them in the dialplan. The &lt;span class="fixed1"&gt;[general]&lt;/span&gt; context is located in the &lt;span class="fixed1"&gt;extensions.conf&lt;/span&gt; file, but is actually a general holding place for information in the &lt;span class="fixed1"&gt;extensions.conf&lt;/span&gt; file and not a traditional context like &lt;span class="fixed1"&gt;[incoming]&lt;/span&gt; or &lt;span class="fixed1"&gt;[outgoing]&lt;/span&gt;. It holds information that pertains to all contexts, like the &lt;span class="fixed1"&gt;autofallthrough&lt;/span&gt; option that acts like a security net to handle calls that may have inadvertently have no real destination due to a gap in your dialplan programming&lt;/p&gt;  &lt;p class="last-para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a name="wbp11chapter5p42"&gt;&lt;/a&gt;&lt;a name="182"&gt;&lt;/a&gt;Identifying extensions&lt;span style="font-size:13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;  &lt;pre&gt;[incoming]&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;b&gt;exten =&gt;9495551212&lt;/b&gt;,1,Answer()&lt;/pre&gt;  &lt;p class="para"&gt;In the most traditional sense, &lt;i&gt;extensions&lt;/i&gt; refer to the number you dial to call someone within your company. Asterisk takes extensions to a whole new level. It views not only the physical phone on a desk or channel driver (SIP/ZAP, IAX) as an extension, but it also provides intelligence to the extension allowing it to play a message while sending the call to various places, in this order:&lt;/p&gt;  &lt;p class="first-para1" style="margin-left:31.2pt;text-indent:-.25in;mso-list: l3 level1 lfo2;tab-stops:list .5in"&gt;&lt;span style="mso-fareast-;font-family:Arial;"&gt;&lt;span style="mso-list:Ignore"&gt;1.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;The phone on your desk.&lt;/p&gt;  &lt;p class="first-para1" style="margin-left:31.2pt;text-indent:-.25in;mso-list: l3 level1 lfo2;tab-stops:list .5in"&gt;&lt;span style="mso-fareast-;font-family:Arial;"&gt;&lt;span style="mso-list:Ignore"&gt;2.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Your cellphone, if you don't answer your desk phone in a preset number of seconds.&lt;/p&gt;  &lt;p class="first-para1" style="margin-left:31.2pt;text-indent:-.25in;mso-list: l3 level1 lfo2;tab-stops:list .5in"&gt;&lt;a name="BEGINPAGE.DA9474B8-D4CD-47C7-92F5-A86A22"&gt;&lt;/a&gt;&lt;a name="183"&gt;&lt;/a&gt;&lt;span style="mso-fareast-;font-family:Arial;"&gt;&lt;span style="mso-list:Ignore"&gt;3.&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Your voice mail, if you don't answer your cellphone.&lt;/p&gt;  &lt;p class="last-para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt;Remember &lt;/span&gt;&lt;/b&gt;  The new era of VoIP also expands how you identify extensions. You are no longer restricted to simply using numbers to identify Asterisk extensions. You can use e-mail addresses as valid extension names if you build them into the system, as well as employee names (for use in dial-by-name directories).&lt;/p&gt;  &lt;p class="para"&gt;The extensions you build can be as complex and dynamic as you need. The automated systems that prompt you for your essential and nonessential information when you call customer service are one example of the intelligence you can build into an extension, or a set of extensions. Every response &lt;a name="OLE_LINK1"&gt;the caller keys into the system either sends her to another extension within the system in a different context, or simply further along in the dialplan&lt;/a&gt;. As long as you remember that an &lt;a name="OLE_LINK2"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;extension can be a virtual destination within a device used to qualify responses of the caller, and not just a phone on a desk, you are ready to unlock the potential of Asterisk extensions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;  &lt;span style="mso-bookmark:OLE_LINK2"&gt;&lt;/span&gt;  &lt;p class="last-para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt;Technical Stuff &lt;/span&gt;&lt;/b&gt;  Devices are physical hardware and can contain and facilitate extensions, but aren't extensions themselves. The only way you can reach a device is through an extension, which must be dialed to route a call to a specific device. The rub is the fact that extensions are not defined on a one-for-one basis with devices.&lt;/p&gt;  &lt;p class="para"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;Extensions can have a multitude of possible destinations, of which only some are devices.&lt;/b&gt; Samples of nondevices into which an extension can terminate are as follows:&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l0 level1 lfo3;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Applications&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l0 level1 lfo3;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Direct voice mail servers&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l0 level1 lfo3;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Calling card applications&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l0 level1 lfo3;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Conference rooms&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l0 level1 lfo3;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Fax servers&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;If you want to call the physical analog phone in your customer service department from the VoIP softphone on your desk, you simply dial the Asterisk internal extension that directs your call to a device connected to the Zaptel card, and the remote phone rings. If you want to call &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Papua&lt;/st1:city&gt;, &lt;st1:country-region st="on"&gt;New Guinea&lt;/st1:country-region&gt;&lt;/st1:place&gt;, over your outbound VoIP carrier, your Asterisk actually connects your call to an extension that terminates in an outbound device, such as SIP/1.&lt;/p&gt;  &lt;p class="para"&gt;Extensions are identified in the &lt;span class="fixed1"&gt;extensions.conf&lt;/span&gt; file with the following line of code: &lt;/p&gt;  &lt;pre&gt;&lt;b&gt;exten =&gt; 133&lt;/b&gt;,1,Answer()&lt;/pre&gt;  &lt;p class="para"&gt;The &lt;span class="fixed1"&gt;exten&lt;b&gt; =&gt;&lt;/b&gt;&lt;/span&gt; part identifies the extension, and the number or letters after the &lt;span class="fixed1"&gt;&lt;b&gt;=&gt;&lt;/b&gt;&lt;/span&gt; indicate the specific extension you're defining. In this example, 133 is the extension.&lt;a name="BEGINPAGE.624D3CA2-9458-4648-97B3-3BBA97"&gt;&lt;/a&gt;&lt;a name="184"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="para"&gt;Just like the context names, you can design most of your own extension names. The default extensions with Asterisk are as follows:&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l2 level1 lfo4;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;exten =&gt; s&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; This extension is the start extension. It receives calls and plays an automated greeting prompt as long as it is configured in your device configuration.&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:2.4pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l2 level1 lfo4;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;exten =&gt; i&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; This is the invalid extension. If you prompt a caller to input a 3-digit extension number and he presses three digits that aren't listed as a legitimate extension, he's sent to &lt;span class="fixed1"&gt;exten=&gt; i&lt;/span&gt;.&lt;/p&gt;  &lt;p class="first-para2"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:2.4pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l2 level1 lfo4;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;exten =&gt; t&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; This is the timeout extension. You set time limits on some extensions in your dialplan, and if the caller doesn't choose a prompt within your time limit, the call is sent to the &lt;span class="fixed1"&gt;exten =&gt; t&lt;/span&gt; extension.&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:2.4pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l2 level1 lfo4;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;exten =&gt; T&lt;/span&gt;&lt;b&gt;:&lt;/b&gt; This is an &lt;i&gt;absolute&lt;/i&gt; timeout identifying the maximum duration Asterisk allows for an active phone call before it's sent to the &lt;span class="fixed1"&gt;T &lt;/span&gt;extension or hung up. Carriers use a feature like this to prevent calls that have failed to completely hang up (called a &lt;i&gt;hung call&lt;/i&gt;) from remaining active in their switch.&lt;/p&gt;  &lt;p class="first-para2"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:2.4pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l2 level1 lfo4;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fixed1"&gt;exten =&gt; #&lt;/span&gt;: This functions like a command more than an extension.It's normally used to hang up a call in a dialplan with many layers of recordings prompting you to "press 1" for this and "press 2" for that. These Interactive Voice Response (IVR) systems use the extension as an expedient to disconnect a call, in spite of it not being a traditional "pre-defined" extension destination.&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Remember &lt;/span&gt;&lt;/b&gt;  These extensions are case-sensitive. Confusing a &lt;span class="fixed1"&gt;t&lt;/span&gt; extension with a &lt;span class="fixed1"&gt;T&lt;/span&gt; extension could result in calls being disconnected that simply can't find their extension. Pay attention when using them in your dialplan to avoid headaches later.&lt;/p&gt;  &lt;p class="para"&gt;These extensions allow you to build a solid dialplan. Asterisk does have a safety net to prevent calls from being sent to limbo and left hanging. The &lt;span class="fixed1"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;autofallthrough&lt;/b&gt;&lt;/span&gt; option in the &lt;span class="fixed1"&gt;[general]&lt;/span&gt; section of the extension configuration prevents forgotten calls from lingering in the system.&lt;/p&gt;  &lt;p class="para"&gt;The default extensions in the previous bulleted list are predefined destinations in Asterisk. You must still define them in your context so that Asterisk knows what you want it to do when someone must be routed to the extension. Do you want to hang up on people that exceed your timeout limit, or send them back to the main recorded greeting for a second chance? Failing to program for these little eventualities can cause the call to congest the system and automatically be hung up.&lt;a name="BEGINPAGE.86DC42D6-002B-4602-8CC0-AB2CF8"&gt;&lt;/a&gt;&lt;a name="185"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:maroon;color:white;"&gt;Warning &lt;/span&gt;&lt;/b&gt;  It is very important to identify and process calls that time out. Someone could call you on Friday at 5:00 p.m. on your toll-free number, connect to your phone system, and fail to hang up correctly (honest, it happens). In this case, you would have a billable phone call that lasts until Monday morning, when the person calling you realizes his phone line has no dial tone because it is still connected to your system.&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a name="wbp11chapter5p79"&gt;&lt;/a&gt;&lt;a name="186"&gt;&lt;/a&gt;Utilizing priorities&lt;span style="font-size:13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;  &lt;pre&gt;[incoming]&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;exten =&gt;9495551212,&lt;b&gt;1&lt;/b&gt;,Answer()&lt;/pre&gt;  &lt;p class="para"&gt;The second parameter of the extension code is the &lt;i&gt;priority;&lt;/i&gt; it controls the sequence of events in the dialplan. Each priority contains a call to a single application in Asterisk. It can also forward information to that application, if necessary, to provide additional features to the call. The priorities increase in value as each step in the dialplan is executed. A dialplan with several steps would look like this:&lt;/p&gt;  &lt;pre&gt;exten =&gt; 133,1,EatPizza()&lt;/pre&gt;&lt;pre&gt;exten =&gt; 133,2,DrinkSoda()&lt;/pre&gt;&lt;pre&gt;exten =&gt; 133,3,WathchTV()&lt;/pre&gt;&lt;pre&gt;exten =&gt; 133,4,TakeNap()&lt;/pre&gt;  &lt;p class="para"&gt;This is, of course, a bogus Asterisk extension with non-existent applications, but it does demonstrate how the priority increases sequentially as progressive actions are taken in sequence.&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt;Tip &lt;/span&gt;&lt;/b&gt;  If you don't want to remember the last priority you used in an extension, you can replace the priority number with &lt;span class="fixed1"&gt;n&lt;/span&gt; (which is referred to as an &lt;i&gt;unnumbered priority&lt;/i&gt;). The &lt;span class="fixed1"&gt;n&lt;/span&gt; represents the previous priority plus 1. You write an unnumbered priority in a dialplan like the following: &lt;/p&gt;  &lt;pre&gt;exten =&gt; 133,1,EatPizza()&lt;/pre&gt;&lt;pre&gt;exten =&gt; 133,n,DrinkSoda()&lt;/pre&gt;&lt;pre&gt;exten =&gt; 133,n,WathchTV()&lt;/pre&gt;&lt;pre&gt;exten =&gt; 133,n,TakeNap()&lt;/pre&gt;  &lt;h3&gt;&lt;a name="wbp11chapter5p94"&gt;&lt;/a&gt;&lt;a name="187"&gt;&lt;/a&gt;Engaging an application&lt;span style="font-size:13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;  &lt;pre&gt;[Incoming]&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;exten =&gt;9495551212,1,&lt;b&gt;Answer()&lt;/b&gt;&lt;a name="beginpage.e5507f80-5e83-4e3c-80d2-f07d69"&gt;&lt;/a&gt;&lt;a name="188"&gt;&lt;/a&gt;&lt;/pre&gt;  &lt;p class="para"&gt;The &lt;i&gt;application&lt;/i&gt; is the last element of code in the extension line. Even though it is only one element, it is actually constructed of two distinct sections: the application and the argument:&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l1 level1 lfo5;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Application:&lt;/b&gt; The application represents the action being taken at this step (priority) of the extension. In &lt;a href="http://www.books24x7.com/book/id_18070/viewer_r.asp?bookid=18070&amp;amp;chunkid=731146910#wbp11Chapter5P10316591799-7C4B-4F22-8B96-98ECC314C816#wbp11Chapter5P10316591799-7C4B-4F22-8B96-98ECC314C816"&gt;Figure 5-2&lt;/a&gt;, the application being used is &lt;span class="fixed1"&gt;dial&lt;/span&gt;. The first channel on the Zap card from extension 9495551212 is being dialed.&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:2.4pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="figure" style="margin-top:0in;margin-right:0in;margin-bottom:12.0pt; margin-left:38.4pt"&gt;&lt;a name="IMG_3"&gt;&lt;/a&gt;&lt;a name="wbp11chapter5p10316591799-7C4B-4F22-8B96"&gt;&lt;/a&gt;&lt;a name="189"&gt;&lt;/a&gt;&lt;span style="mso-bookmark:IMG_3"&gt;&lt;/span&gt;&lt;a href="javascript:PopImage('IMG_3','http://images.books24x7.com/bookimages/id_18070/fig05_02_0.jpg','564','163')" target="_self"&gt;&lt;span style="mso-bookmark:IMG_3"&gt;&lt;span style=" ;font-family:Arial;font-size:10.0pt;"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="IMG_3" spid="_x0000_i1026" type="#_x0000_t75" alt="Image from book" style="'width:267.75pt;height:81pt'" button="t"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\Admin\LOCALS~1\Temp\msohtml1\01\clip_image002.jpg" href="http://images.books24x7.com/bookimages/id_18070/fig05_02.jpg"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;img border="0" width="357" height="108" src="file:///C:/DOCUME~1/Admin/LOCALS~1/Temp/msohtml1/01/clip_image003.jpg" alt="Image from book" shapes="IMG_3" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark:IMG_3"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark:IMG_3"&gt;&lt;/span&gt;&lt;a name="OLE_LINK3"&gt;&lt;/a&gt;&lt;span style="mso-bookmark:OLE_LINK3"&gt;&lt;span style="font-family:Arial;font-size:10.0pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="figure" style="margin-top:0in;margin-right:0in;margin-bottom:12.0pt; margin-left:38.4pt"&gt;&lt;span class="figure-titlelabel1"&gt;&lt;span style=" ;font-family:Arial;font-size:10.0pt;"&gt;Figure 5-2: &lt;/span&gt;&lt;/span&gt;&lt;span class="figure-title1"&gt;&lt;span style="font-family:Arial;font-size:10.0pt;"&gt;An application schematic.&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="figure" style="margin-top:0in;margin-right:0in;margin-bottom:12.0pt; margin-left:38.4pt"&gt;Many different applications are available with Asterisk; &lt;span class="fixed1"&gt;answer&lt;/span&gt;, &lt;span class="fixed1"&gt;hangup&lt;/span&gt;, &lt;span class="fixed1"&gt;background&lt;/span&gt;, &lt;span class="fixed1"&gt;dial&lt;/span&gt;, and G&lt;span class="fixed1"&gt;oto&lt;/span&gt; are the most important to know, so we discuss those in the following sections.&lt;span style="font-family:Arial;font-size:10.0pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:20.4pt;text-indent:-.25in;mso-list: l1 level1 lfo5;tab-stops:list .5in"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore"&gt;§&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Argument: &lt;/b&gt;The argument includes three unique parameters, separated by commas. In &lt;a href="http://www.books24x7.com/book/id_18070/viewer_r.asp?bookid=18070&amp;amp;chunkid=731146910#wbp11Chapter5P103#wbp11Chapter5P103"&gt;Figure 5-2&lt;/a&gt; the arguments are as follows:&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:2.4pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:44.4pt;text-indent:-.25in;mso-list: l1 level2 lfo5;tab-stops:list 1.0in"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-Courier New&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Parameter 1:&lt;/b&gt; The syntax of the first parameter of the code specifies the channel technology/resource. Our example identifies the channel technology as &lt;span class="fixed1"&gt;ZAP&lt;/span&gt;, indicating the Zapata time-division multiplexing (TDM) (analog) card. The resource, listed after the backslash is &lt;span class="fixed1"&gt;1&lt;/span&gt;, indicating port 1 as the channel device using this application. It could have just as easily been a device with a VoIP port, a digital card, or a Wi-Fi port.&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:44.4pt;text-indent:-.25in;mso-list: l1 level2 lfo5;tab-stops:list 1.0in"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-Courier New&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Parameter 2:&lt;/b&gt; The &lt;span class="fixed1"&gt;20&lt;/span&gt; identifies that you're requiring Asterisk to maintain this application for 20 seconds. If the dialed device answers the call before the 20 seconds are up, the call is bridged through it. If the dialed device doesn't answer in 20 seconds, the extension proceeds to the next priority. You can configure it to send the call to voice mail, return to the main operator for the system, or disconnect the call. Each of these available fallback destinations is an additional priority and is located in the current context, or in another context.&lt;/p&gt;  &lt;p class="first-para2" style="margin-left:44.4pt;text-indent:-.25in;mso-list: l1 level2 lfo5;tab-stops:list 1.0in"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-Courier New&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;o&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;                           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Parameter 3:&lt;/b&gt; The &lt;span class="fixed1"&gt;r&lt;/span&gt; parameter allows the person originating the call to hear the phone ringing.&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Remember &lt;/span&gt;&lt;/b&gt;  You can omit any of the parameters within the argument if you don't want to restrict the call or enable the ringing. An extension without a specified duration looks like this:&lt;a name="beginpage.feb8bba8-6cab-4538-b610-c31e36"&gt;&lt;/a&gt;&lt;a name="190"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;pre&gt;exten=&gt; 9495551212,1,Dial(Zap/1,,r)&lt;/pre&gt;  &lt;p class="para"&gt;If you want to keep the 20-second time limit on the application, but don't want to the person making the call to hear a ringing tone, the code is as follows:&lt;/p&gt;  &lt;pre&gt;exten=&gt; 9495551212,1,Dial(Zap/1,20)&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;h4 style="margin-top:.15in;margin-right:0in;margin-bottom:0in;margin-left: 0in;margin-bottom:.0001pt;background:white"&gt;&lt;a name="WBP11CHAPTER5P11316591799-7C4B-4F22-8B96"&gt;&lt;/a&gt;&lt;a name="191"&gt;&lt;/a&gt;&lt;span style="font-family:Arial;color:#010100;"&gt;Answering calls&lt;/span&gt;&lt;span style="font-family:Arial;font-size:12.0pt;color:#010100;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;  &lt;p class="first-para"&gt;The &lt;span class="fixed1"&gt;answer()&lt;/span&gt; application doesn't use arguments; because the parentheses are always blank, you can omit them if you want. The &lt;span class="fixed1"&gt;answer()&lt;/span&gt; application receives a call from the outside world and sends a connect signal back through the device that originated the call.&lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Technical Stuff &lt;/span&gt;&lt;/b&gt;  The parentheses in applications aren't essential if they don't hold any information. You can even replace the parentheses with a single comma between the application and the arguments. For example, you can write the application &lt;span class="fixed1"&gt;Dial(Zap/1,,r)&lt;/span&gt; as &lt;span class="fixed1"&gt;Dial,Zap/1,,r&lt;/span&gt;.&lt;/p&gt;  &lt;p class="para"&gt;The Asterisk environment is very dynamic, so don't be linked to the idea that whenever we mention a call that it is coming from someplace beyond your network. A wealth of calls is flying through Asterisk networks from SIP phones to voice mail, or analog phones linking up on a teleconference. A whole world of traffic is rolling through your Asterisk phone; this traffic is referred to as &lt;i&gt;calls.&lt;/i&gt; &lt;/p&gt;  &lt;p class="para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Remember &lt;/span&gt;&lt;/b&gt;  The &lt;i&gt;connect &lt;/i&gt;signal sent back to an incoming carrier happens regardless of the device that delivers the incoming call. The &lt;span class="fixed1"&gt;answer()&lt;/span&gt; application also receives inbound VoIP calls or internal calls into your Asterisk phone. The &lt;span class="fixed1"&gt;answer()&lt;/span&gt; application is only necessary when immediately connecting you to a system that plays a message, such as "Please enter the extension of the person you wish to dial," before connecting you to a second device.&lt;/p&gt;  &lt;p class="para"&gt;The application doesn't play a recorded message or anything else, aside from establishing a connection on the call. The code for a call sent to a default start extension (&lt;span class="fixed1"&gt;s&lt;/span&gt;) and answered appears like this in a dialplan: &lt;/p&gt;  &lt;pre&gt;exten=&gt; s,1,Answer()&lt;/pre&gt;&lt;pre&gt;exten=&gt; s,2,Background(enter-&lt;i&gt;ext-of-person&lt;/i&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;p class="last-para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Remember &lt;/span&gt;&lt;/b&gt;  Only use the &lt;span class="fixed1"&gt;answer()&lt;/span&gt; application when it is inside your IVR system (you know, the thing asking you for the extension you wish to dial). You don't have to use this application if you are using the &lt;span class="fixed1"&gt;dial&lt;/span&gt; application directly because it automatically answers the call when the destination channel picks up the call.&lt;a name="BEGINPAGE.418A1640-9A58-4FE1-9B87-B16F48"&gt;&lt;/a&gt;&lt;a name="192"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;h4 style="margin-top:.15in;margin-right:0in;margin-bottom:0in;margin-left: 0in;margin-bottom:.0001pt;background:white"&gt;&lt;a name="wbp11chapter5p121"&gt;&lt;/a&gt;&lt;a name="193"&gt;&lt;/a&gt;&lt;span style="font-family:Arial;color:#010100;"&gt;Hanging up calls&lt;/span&gt;&lt;span style="font-family:Arial;font-size:12.0pt;color:#010100;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;  &lt;p class="first-para"&gt;The &lt;i&gt;hangup&lt;/i&gt; is the logical conclusion to every call. As such, this command doesn't appear with a priority of 1. Common courtesy dictates that you at least answer the phone before hanging up on someone. The code for a call to be answered and then hung up is as follows:&lt;/p&gt;  &lt;pre&gt;exten=&gt; s,1,Answer()&lt;/pre&gt;&lt;pre&gt;exten=&gt; s,2,Hangup()&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;h4 style="margin-top:.15in;margin-right:0in;margin-bottom:0in;margin-left: 0in;margin-bottom:.0001pt;background:white"&gt;&lt;a name="wbp11chapter5p125"&gt;&lt;/a&gt;&lt;a name="194"&gt;&lt;/a&gt;&lt;span style="font-family:Arial;color:#010100;"&gt;Responding to touch tones&lt;/span&gt;&lt;span style="font-family:Arial;font-size:12.0pt;color:#010100;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;  &lt;p class="first-para"&gt;We have all called a large company and received the voice-mail prompt of "Please enter your party's 3-digit extension." You also notice that if you dial the 3-digit extension while the recording is playing, it stops the recording and immediately sends you to the extension you dialed. Asterisk has the same feature, and because it is waiting in the background for you to dial the extension, the application is called &lt;span class="fixed1"&gt;background()&lt;/span&gt;. It looks like this in the dialplan: &lt;/p&gt;  &lt;pre&gt;exten=&gt; s,1,Answer()&lt;/pre&gt;&lt;pre&gt;exten=&gt; s,2,Background(enter-&lt;i&gt;ext-of-person&lt;/i&gt;)&lt;/pre&gt;  &lt;h4 style="margin-top:.15in;margin-right:0in;margin-bottom:0in;margin-left: 0in;margin-bottom:.0001pt;background:white"&gt;&lt;a name="wbp11chapter5p129"&gt;&lt;/a&gt;&lt;a name="195"&gt;&lt;/a&gt;&lt;span style="font-family:Arial;color:#010100;"&gt;Dialing the new-fashioned way&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;  &lt;p class="first-para"&gt;Every inbound call includes at least two segments. The &lt;span class="fixed1"&gt;[incoming]&lt;/span&gt; context receives the call into the Asterisk, but after it has arrived there, the call must still be sent to a desired channel device, voice mailbox, or external carrier. The &lt;span class="fixed1"&gt;dial()&lt;/span&gt; application allows you to forward the call to its next destination. The following example demonstrates a simple dialplan using &lt;span class="fixed1"&gt;dial()&lt;/span&gt;: &lt;/p&gt;  &lt;pre&gt;[internal]&lt;/pre&gt;&lt;pre&gt;&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;exten =&gt; 0,1,Dial(Zap/1,20,r)&lt;/pre&gt;  &lt;p class="last-para"&gt;This code allows internal customers to dial 0 and receive the operator that is connected to the Zap/1 card.&lt;/p&gt;  &lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;h4 style="margin-top:.15in;margin-right:0in;margin-bottom:0in;margin-left: 0in;margin-bottom:.0001pt;background:white"&gt;&lt;a name="wbp11chapter5p134"&gt;&lt;/a&gt;&lt;a name="196"&gt;&lt;/a&gt;&lt;span style="font-family:Arial;color:#010100;"&gt;Moving with a Goto&lt;/span&gt;&lt;span style="font-family:Arial;font-size:12.0pt;color:#010100;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;  &lt;p class="first-para"&gt;The &lt;span class="fixed1"&gt;Goto&lt;/span&gt; application allows you to do wonderful things because it allows you to send a call from one context to another. A simple dialplan that allows an incoming customer call to reach your internal operator looks like the following: &lt;/p&gt;  &lt;pre&gt;[internal]&lt;/pre&gt;&lt;pre&gt;&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;exten =&gt; 0,1,Dial(Zap/1,20,r)&lt;/pre&gt;&lt;pre&gt;[incoming-customers]&lt;/pre&gt;&lt;pre&gt;&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;exten =&gt; 7,1,Goto(internal,0,1)&lt;a name="beginpage.e75e1fb0-7acd-4d8e-8098-0a5e98"&gt;&lt;/a&gt;&lt;a name="197"&gt;&lt;/a&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;p class="first-para"&gt;&lt;b&gt;&lt;span style="background:navy;color:white;"&gt; Tip &lt;/span&gt;&lt;/b&gt;  If you want a complete list of the applications available on your Asterisk, you can type the &lt;span class="fixed1"&gt;show applications&lt;/span&gt; command in the Asterisk command-line interface (CLI). When you find an application you are interested in, you can read a detailed document on the application by querying Asterisk for it with the following command:&lt;/p&gt;  &lt;p class="para"&gt;&lt;span class="fixed1"&gt;Show application&lt;/span&gt; &lt;span class="fixed1"&gt;&lt;i&gt;name&lt;/i&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p class="para"&gt;Simply replace name with the &lt;i&gt;name&lt;/i&gt; of the application you are interested in, and a document appears with all the application's pertinent information. You can also find the documentation by scanning the /docs/ directory of the Asterisk source code.&lt;/p&gt;  &lt;p class="para"&gt;For a general list of applications available on Asterisk, check out the following Web site:&lt;/p&gt;  &lt;p class="last-para"&gt;&lt;span class="fixed1"&gt;&lt;a href="http://www.voip-info.org/wiki-Asterisk+-+documentation+of+application+commands" target="_top"&gt;www.voip-info.org/wiki-Asterisk+-+documentation+of+application+commands&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;  &lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;p class="last-para"&gt;This simple bit of code shows how the call in the &lt;span class="fixed1"&gt;[incoming-customers]&lt;/span&gt; context, when pressing extension 7, is routed to the new &lt;span class="fixed1"&gt;[internal]&lt;/span&gt; context, extension 0 and priority 1. The &lt;span class="fixed1"&gt;[internal]&lt;/span&gt; context identifies where extension 0 is sent.&lt;/p&gt;  &lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;p class="para"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-8802974823003643009?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uUJB-pnQcnymzo-x8VRJL-78ubc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uUJB-pnQcnymzo-x8VRJL-78ubc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uUJB-pnQcnymzo-x8VRJL-78ubc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uUJB-pnQcnymzo-x8VRJL-78ubc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/CJpqS1_T2W4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8802974823003643009?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8802974823003643009?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/CJpqS1_T2W4/dial-plan.html" title="Dial Plan" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2008/12/dial-plan.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cDQHg6fyp7ImA9WxVTEEU.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-8868772330945207340</id><published>2008-12-23T18:55:00.000-08:00</published><updated>2008-12-23T19:24:31.617-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-23T19:24:31.617-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cool Applications of Asterisk" /><title>How to create a Callback option</title><content type="html">&lt;span class="Apple-style-span"   style="  ;font-family:Arial;font-size:12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 153, 0);"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 102, 0);"&gt;Overview&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;This tutorial will show you how to create a queue, where your incoming calls to arrive. Noting so special, but we are also going to show you how to give a choice to the callers - they will be able to leave the queue at any time and in our example they will have the &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;choice to leave a number at which you could callback them later. &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;The best part is that the number will be nicely emailed to your email box with details not only about the left number, but also the CallerID, the queue at which the caller was initially placed and the date and time at which he has left his number.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  font-style: italic; font-family:Arial;font-size:12px;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 102, 0);"&gt;Prerequisites&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  font-style: italic; font-weight: bold;font-family:Arial;font-size:12px;"&gt;&lt;span class="Apple-style-span" style="font-style: normal; font-weight: normal; "&gt;Before we start we will assume that you have &lt;a href="http://asteriskguru.com/tutorials/general_asterisk_installation_compilation.html" style=""&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;a working Asterisk PBX&lt;/span&gt;&lt;/a&gt; with registered users in &lt;a href="http://asteriskguru.com/tutorials/iax_conf.html" style=""&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;iax.conf&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;, &lt;a href="http://asteriskguru.com/tutorials/sip_conf.html" style=""&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;sip.conf&lt;/span&gt;&lt;/i&gt;&lt;/a&gt; or &lt;a href="http://asteriskguru.com/tutorials/mgcp_conf.html" style=""&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;mgcp.conf&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;(It depends on which protocol you would like to use)&lt;br /&gt;&lt;br /&gt;We will show you how to create your extensions in &lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html" style=""&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;extensions.conf&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:Arial;font-size:12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 204, 51);"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;For the sending of the emails you will need to install the &lt;b&gt;mime-construct&lt;/b&gt; package. &lt;b&gt;apt-get install mime-construct&lt;/b&gt; (in Debian) should do the trick. Of course you will need a SMTP server too.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:Arial;font-size:12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:Arial;font-size:12px;"&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Asterisk PBX configurations&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="color: rgb(255, 102, 0);   font-style: italic; font-weight: bold;font-family:Arial;font-size:12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="color: rgb(255, 102, 0);   font-style: italic; font-weight: bold;font-family:Arial;font-size:12px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-style: normal; font-weight: normal; "&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;We need to create one user in the &lt;a href="http://asteriskguru.com/tutorials/iax_conf.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;iax.conf&lt;/i&gt;&lt;/a&gt; file. This is because we are going to use Idefisk and its &lt;b&gt;IAX2&lt;/b&gt; support. Idefisk supports the &lt;b&gt;SIP&lt;/b&gt; protocol too. So if you want to use it, you have to do the configurations below respectively in &lt;a href="http://asteriskguru.com/tutorials/sip_conf.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;sip.conf&lt;/i&gt;&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;Here is the configuration.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;[general]&lt;br /&gt;trunkmtu = 4000&lt;br /&gt;bandwidth=low&lt;br /&gt;disallow=lpc10&lt;br /&gt;jitterbuffer=no&lt;br /&gt;forcejitterbuffer=no&lt;br /&gt;tos=lowdelay&lt;br /&gt;autokill=yes&lt;br /&gt;&lt;br /&gt;[caller1]&lt;br /&gt;secret=caller1&lt;br /&gt;type=friend&lt;br /&gt;host=dynamic&lt;br /&gt;context=incoming_calls&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;So, we now we have the user &lt;i&gt;caller1&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Type=friend&lt;/i&gt; means that this user can make and receive calls. &lt;i&gt;Host=dynamic&lt;/i&gt; means that the IP is not statically assigned but dynamically through a DHCP server. &lt;i&gt;Allow=all&lt;/i&gt;means that the line which this user will use, support all available audio codecs, supported by Asterisk. &lt;i&gt;Context=test&lt;/i&gt; - this shows that the user is allowed to work with the extensions in the context with this name in the configuration file &lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html" style="color: rgb(0, 0, 0); "&gt;extensions.conf&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;Our &lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html" style="color: rgb(0, 0, 0); "&gt;extensions.conf&lt;/a&gt; looks like:&lt;/div&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;The configuration is below:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;[incoming_calls]&lt;br /&gt;&lt;br /&gt;exten =&gt; 100100,1,Set(CALLERID(name)=queue1)&lt;br /&gt;exten =&gt; 100100,n,Queue(queue1)&lt;br /&gt;exten =&gt; 100100,n,Hangup()&lt;br /&gt;&lt;br /&gt;exten =&gt; 200200,1,Set(CALLERID(name)=queue2)&lt;br /&gt;exten =&gt; 200200,n,Queue(queue2)&lt;br /&gt;exten =&gt; 200200,n,Hangup()&lt;br /&gt;&lt;br /&gt;exten =&gt; 300300,1,Set(CALLERID(name)=queue3)&lt;br /&gt;exten =&gt; 300300,n,Queue(queue3)&lt;br /&gt;exten =&gt; 300300,n,Hangup()&lt;br /&gt;&lt;br /&gt;[queue1out]&lt;br /&gt;&lt;br /&gt;exten =&gt; 1,1,Set(FLAG=1)&lt;br /&gt;exten =&gt; 1,n,Playback(CallBack)&lt;br /&gt;exten =&gt; 1,n,Read(NUMBER|beep|10|||5)&lt;br /&gt;exten =&gt; 1,n,Wait(1)&lt;br /&gt;exten =&gt; 1,n,Set(FLAG=2)&lt;br /&gt;exten =&gt; 1,n,GoToIf($[${NUMBER} = ""]?empty:full)&lt;br /&gt;exten =&gt; 1,n(empty),System(/usr/bin/call/mailnonumber.sh callback@test.org ${CALLERID(num)} Queue1)&lt;br /&gt;exten =&gt; 1,n,Hangup()&lt;br /&gt;exten =&gt; 1,n(full),System(/usr/bin/call/mailnumber.sh ${NUMBER} callback@test.org ${CALLERID(num)} Queue1)&lt;br /&gt;exten =&gt; 1,n,Hangup()&lt;br /&gt;&lt;br /&gt;exten =&gt; h,1,NoOp(${FLAG})&lt;br /&gt;exten =&gt; h,2,GoToIf($[${FLAG} = 1]?h|3:h|4)&lt;br /&gt;exten =&gt; h,3,System(/usr/bin/call/mailnonumber.sh callback@test.org ${CALLERID(num)} Queue1)&lt;br /&gt;exten =&gt; h,4,Hangup()&lt;br /&gt;&lt;br /&gt;[queue2out]&lt;br /&gt;&lt;br /&gt;exten =&gt; 1,1,Set(FLAG=1)&lt;br /&gt;exten =&gt; 1,n,Playback(CallBack)&lt;br /&gt;exten =&gt; 1,n,Read(NUMBER|beep|10|||5)&lt;br /&gt;exten =&gt; 1,n,Wait(1)&lt;br /&gt;exten =&gt; 1,n,Set(FLAG=2)&lt;br /&gt;exten =&gt; 1,n,GoToIf($[${NUMBER} = ""]?empty:full)&lt;br /&gt;exten =&gt; 1,n(empty),System(/usr/bin/call/mailnonumber.sh callback@test.org ${CALLERID(num)} Queue2)&lt;br /&gt;exten =&gt; 1,n,Hangup()&lt;br /&gt;exten =&gt; 1,n(full),System(/usr/bin/call/mailnumber.sh ${NUMBER} callback@test.org ${CALLERID(num)} Queue2)&lt;br /&gt;exten =&gt; 1,n,Hangup()&lt;br /&gt;&lt;br /&gt;exten =&gt; h,1,NoOp(${FLAG})&lt;br /&gt;exten =&gt; h,2,GoToIf($[${FLAG} = 1]?h|3:h|4)&lt;br /&gt;exten =&gt; h,3,System(/usr/bin/call/mailnonumber.sh callback@test.org ${CALLERID(num)} Queue2)&lt;br /&gt;exten =&gt; h,4,Hangup()&lt;br /&gt;&lt;br /&gt;[queue3out]&lt;br /&gt;&lt;br /&gt;exten =&gt; 1,1,Set(FLAG=1)&lt;br /&gt;exten =&gt; 1,n,Playback(CallBack)&lt;br /&gt;exten =&gt; 1,n,Read(NUMBER|beep|10|||5)&lt;br /&gt;exten =&gt; 1,n,Wait(1)&lt;br /&gt;exten =&gt; 1,n,Set(FLAG=2)&lt;br /&gt;exten =&gt; 1,n,GoToIf($[${NUMBER} = ""]?empty:full)&lt;br /&gt;exten =&gt; 1,n(empty),System(/usr/bin/call/mailnonumber.sh callback@test.org ${CALLERID(num)} Queue3)&lt;br /&gt;exten =&gt; 1,n,Hangup()&lt;br /&gt;exten =&gt; 1,n(full),System(/usr/bin/call/mailnumber.sh ${NUMBER} callback@test.org ${CALLERID(num)} Queue3)&lt;br /&gt;exten =&gt; 1,n,Hangup()&lt;br /&gt;&lt;br /&gt;exten =&gt; h,1,NoOp(${FLAG})&lt;br /&gt;exten =&gt; h,2,GoToIf($[${FLAG} = 1]?h|3:h|4)&lt;br /&gt;exten =&gt; h,3,System(/usr/bin/call/mailnonumber.sh callback@test.org ${CALLERID(num)} Queue3)&lt;br /&gt;exten =&gt; h,4,Hangup()&lt;/i&gt;&lt;/div&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;As we are talking about queues, we are going to create three different queues in the&lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;&lt;b&gt;queues.conf&lt;/b&gt;&lt;/a&gt; configuration file&lt;/div&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;The configuration:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;[general]&lt;br /&gt;&lt;br /&gt;[default]&lt;br /&gt;&lt;br /&gt;[queue1]&lt;br /&gt;&lt;br /&gt;music = default&lt;br /&gt;strategy = ringall&lt;br /&gt;timeout=15&lt;br /&gt;retry = 5&lt;br /&gt;context = queue1out&lt;br /&gt;periodic-announce-frequency = 60&lt;br /&gt;periodic-announce = Call_Back_1&lt;br /&gt;&lt;br /&gt;member =&gt; IAX2/user1&lt;br /&gt;member =&gt; IAX2/user2&lt;br /&gt;member =&gt; IAX2/user3&lt;br /&gt;member =&gt; IAX2/user4&lt;br /&gt;member =&gt; IAX2/user5&lt;br /&gt;member =&gt; IAX2/user6&lt;br /&gt;member =&gt; IAX2/user7&lt;br /&gt;member =&gt; IAX2/user8&lt;br /&gt;member =&gt; IAX2/user9&lt;br /&gt;&lt;br /&gt;[queue2]&lt;br /&gt;&lt;br /&gt;music = default&lt;br /&gt;strategy = ringall&lt;br /&gt;timeout=15&lt;br /&gt;retry = 5&lt;br /&gt;context = queue2out&lt;br /&gt;periodic-announce-frequency = 60&lt;br /&gt;periodic-announce = Call_Back_1&lt;br /&gt;&lt;br /&gt;member =&gt; IAX2/user1&lt;br /&gt;member =&gt; IAX2/user2&lt;br /&gt;member =&gt; IAX2/user3&lt;br /&gt;member =&gt; IAX2/user4&lt;br /&gt;member =&gt; IAX2/user5&lt;br /&gt;member =&gt; IAX2/user6&lt;br /&gt;member =&gt; IAX2/user7&lt;br /&gt;member =&gt; IAX2/user8&lt;br /&gt;member =&gt; IAX2/user9&lt;br /&gt;&lt;br /&gt;[queue3]&lt;br /&gt;&lt;br /&gt;music = default&lt;br /&gt;strategy = ringall&lt;br /&gt;timeout=15&lt;br /&gt;retry = 5&lt;br /&gt;context = queue3out&lt;br /&gt;periodic-announce-frequency = 60&lt;br /&gt;periodic-announce = Call_Back_1&lt;br /&gt;&lt;br /&gt;member =&gt; IAX2/user1&lt;br /&gt;member =&gt; IAX2/user2&lt;br /&gt;member =&gt; IAX2/user3&lt;br /&gt;member =&gt; IAX2/user4&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;Now let’s take a look at the shell script you will need if you want to send emails with the left number. The script will use the &lt;b&gt;mime-construct&lt;/b&gt; program to create the email message and send it to the desired recipient. The second script has the same purpose and the only change is in the body of the email message.&lt;/div&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;Here are the configurations:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Script 1:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;NUMBER=$1&lt;br /&gt;RECIPIENT=$2&lt;br /&gt;CALLERID=$3&lt;br /&gt;QUEUE=$4&lt;br /&gt;&lt;br /&gt;mime-construct --to $RECIPIENT --subject "You have just missed a call" --string "The number that have been left by the caller: $NUMBER. The CallerID we have received: $CALLERID. The call is coming from the $QUEUE queue. Call was received at `date`"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Script 2:&lt;/u&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;i&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;RECIPIENT=$1&lt;br /&gt;CALLERID=$2&lt;br /&gt;QUEUE=$3&lt;br /&gt;&lt;br /&gt;mime-construct --to $RECIPIENT --subject "You have just missed a call" --string "The caller did not left a telephone number. The CallerID we have received: $CALLERID. The call is coming from the $QUEUE queue. Call was received at `date`"&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="dash" style="border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: rgb(160, 160, 160); "&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;i&gt;4. Explanation&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;Now, we are going to explain you what the configurations about actually means and how it works.&lt;br /&gt;&lt;br /&gt;However, keep in mind that we are going to explain you only the configurations concerning the Callback possibility. If you want to learn more about the used configuration files and their options - take a look at one of our tutorials:&lt;br /&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;&lt;i&gt;&lt;a href="http://asteriskguru.com/tutorials/iax_conf%20internall" target="_blank" style="color: rgb(0, 0, 0); "&gt;iax.conf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html" style="color: rgb(0, 0, 0); "&gt;extensions.conf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;queues.conf&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Let's start with &lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;queues.conf&lt;/i&gt;&lt;/a&gt;&lt;/u&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;In the example above you could see three different queues each one with different number of agents.&lt;br /&gt;&lt;br /&gt;Each queue has its own configuration. Most of the settings are common, unless one option - the &lt;b&gt;context&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;This option is giving you the possibility to define a context, where eventually, by pressing a single digit, the caller will be "transferred". The digit could be pressed at any time while the caller is waiting in the queue. The context we are talking about has to be created in the &lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html" style="color: rgb(0, 0, 0); "&gt;extensions.conf&lt;/a&gt; configuration file. There is one more requirement and it is that you have to create an extension of one digit, in this context - the digit that the caller will press in order to exit the queue.&lt;br /&gt;&lt;br /&gt;Despite of the fact, that for all the queues, the setup for leaving a number and then emailing it to our email address will be pretty much the same, we recommend you to create different contexts for every different queue. That is because we are going to email not only the left number but also some other information such as the queue from which the caller has quitted. Of course you could do it with one common and more complicated context for all the queues, but we think that it will be much easier to manage and change the settings for each queue independently of the other ones.&lt;br /&gt;&lt;br /&gt;So here are all the options in our queue and what they are doing"&lt;br /&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;&lt;i&gt;music = default&lt;/i&gt; - the music class defined in &lt;a href="http://asteriskguru.com/tutorials/musiconhold_conf" target="_blank" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;musiconhold.conf&lt;/i&gt;&lt;/a&gt;, where Asterisk will be looking for mp3 files, which will be played to the caller instead of ringing tone, while he is waiting in the queue. &lt;br /&gt;&lt;i&gt;strategy = ringall&lt;/i&gt; - one of six ringing strategies that you could choose. This one means the phone of each agent, assigned to the queue, will start ringing in case of incoming call. For details about the other strategies take a look at our tutorial about &lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;queues.conf&lt;/a&gt; &lt;br /&gt;&lt;i&gt;timeout=15&lt;/i&gt; - a timeout in seconds. It defines after how many seconds with no answer the agent phone to stop ringing. For more information about refer to our tutorial about &lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;queues.conf&lt;/a&gt; .&lt;br /&gt;&lt;i&gt;retry = 5&lt;/i&gt; - after how many seconds to try to ring all the agents again. For more information about refer to our tutorial about &lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;queues.conf&lt;/a&gt;.&lt;br /&gt;&lt;i&gt;context = queue3out&lt;/i&gt; - we have already explained this above.&lt;br /&gt;&lt;i&gt;periodic-announce-frequency = 60&lt;/i&gt; - define in seconds an interval of time after which the caller, waiting in the queue, will hear a prerecorded message. It could be a message with instructions or something else. It is up to you. For more information about refer to our tutorial about &lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;queues.conf&lt;/a&gt;.&lt;br /&gt;&lt;i&gt;periodic-announce = Call_Back_1&lt;/i&gt; - that is the name of the prerecorded message that should be played after the periodic announce timeout expires. For more information about refer to our tutorial about &lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;queues.conf&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;member =&gt; IAX2/user1&lt;/i&gt; - there are two different ways to assign agents to a specific queue. We have picked up the easies one. Whenever a phone with username &lt;b&gt;user1&lt;/b&gt; is registered successfully to the Asterisk system, the incoming calls in the queue will be send to this phone. You could have as many as you want agents assigned to the queue in this way and the incoming call will be send to all of them according to the chosen strategy. For more information about refer to our tutorial about &lt;a href="http://asteriskguru.com/tutorials/queues_conf.html" style="color: rgb(0, 0, 0); "&gt;queues.conf&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Now let's take a look at the configurations in &lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html" style="color: rgb(0, 0, 0); "&gt;extensions.conf&lt;/a&gt;.&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;First of all we have three extensions for the incoming calls. They are all put in the&lt;b&gt;[incoming_calls]&lt;/b&gt; context. Their purpose is to put the incoming calls in the corresponding queue.&lt;br /&gt;&lt;br /&gt;When we have an incoming call, the first thing we are doing is to change the Callerid name to the name of the queue where the caller will be put. Thus the agent who is answering the call will know from which queue exactly the call is coming. It is not absolutely necessary, but the idea is that one agent could be assigned to many different queues. In order to do the change we are using the &lt;i&gt;&lt;a href="http://asteriskguru.com/tutorials/set.html" style="color: rgb(0, 0, 0); "&gt;Set application - More information about it in our tutorial&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The next step is to actually send the call in the queue - pretty easy one. There is an application called &lt;a href="http://asteriskguru.com/tutorials/queue.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Queue&lt;/i&gt;&lt;/a&gt; to which you just have to pass the name of the desired queue as an argument. We are not going to use any extra options. You could &lt;a href="http://asteriskguru.com/tutorials/queue.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;find more information about how to use the QUEUE application in our tutorial&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You could notice and the usage of the &lt;a href="http://asteriskguru.com/tutorials/hangup.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Hangup application&lt;/i&gt;&lt;/a&gt;. It is always a good idea to use it as last application for all of your extensions. Thus, you will always be sure that the used channel will be released when the conversation is over. &lt;a href="http://asteriskguru.com/tutorials/hangup.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Refer to our tutorial for more information on this application&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next step is to create the contexts, where the callers should be "transferred" in case they have decided to exit the queue. As we have mentioned above we have different context for each of the queue. &lt;br /&gt;&lt;br /&gt;Before we continue - a few words about the idea behind. We are running queues with a callback option. In other words, when we have a caller waiting in the queue, we will play him a message every 60 seconds. The message will saying: &lt;i&gt;"All of our lines are busy. You could leave your number by pressing one and we will call you back as soon as possible or you could stay in the queue and wait to be served."&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;If the caller decides to exit the queue, he will be asked to leave his number after the "beep" signal. At this stage, you have to keep in mind that the caller might not leave his number for some reason. So what we will have a check and if the number is not left we will send an email message that the caller has decided not to leave his number.&lt;br /&gt;&lt;br /&gt;So what do we need as extensions? The first thing we are doing is to set a flag. Why? In case the caller hangs up at some point before leaving his number, we need to send a message that we did not received the number. For the purpose we are using the so called &lt;b&gt;predefined&lt;/b&gt; extension - &lt;b&gt;&lt;i&gt;h&lt;/i&gt;&lt;/b&gt;, which allows you to execute something in case of hang up. &lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Refer to our tutorial for more information&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However, there is a slight chance that the caller might wait for the timeout to expires without leaving his number or to have a problem with the sending of DTMF tone, that we will have an email saying that the caller has left his number but the number field will be empty and because we have a hang up event even if the caller has left his number, we need the flag to determine whether the hang up is before the application that will store the number or after it and on that basis we will know whether we need to send an email message on hang up or not. In this way we omit the sending of one message twice.&lt;br /&gt;&lt;br /&gt;On the next step we have the &lt;a href="http://asteriskguru.com/tutorials/playback.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Playback application&lt;/i&gt;&lt;/a&gt;. Its simple purpose is to play a sound files. We have a sound message, which instructs the caller to type his number after the beep tone and to press the pound key (#) when he is ready. For more information &lt;a href="http://asteriskguru.com/tutorials/playback.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;refer to our tutorial about the Playback application&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next, comes the &lt;a href="http://asteriskguru.com/tutorials/read.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Read application&lt;/i&gt;&lt;/a&gt;. It’s the one used to store the number typed by the caller. It has many options. &lt;br /&gt;&lt;br /&gt;There is a small limitation in the application we are going to use to save the number typed by the caller. We need to know, when he has finished with the typing. So there are two ways. &lt;br /&gt;&lt;br /&gt;The first one is to ask him to press the pound key (#) once he is ready and the second one is to limit the length of the number the caller could type plus a timeout.&lt;br /&gt;In our example we are going to limit the length of the number to 10 digits and we are going to put a timeout of 5 seconds. We are going to store the number typed by the caller in the &lt;b&gt;NUMBER&lt;/b&gt; variable. The &lt;a href="http://asteriskguru.com/tutorials/read.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Read application&lt;/i&gt;&lt;/a&gt; gives you the possibility to play a sound file before the typing of the number. In our case we will are going to play a&lt;b&gt;beep&lt;/b&gt; tone&lt;br /&gt;&lt;br /&gt;&lt;a href="http://asteriskguru.com/tutorials/read.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Refer to our tutorial for more information and details about the Read application&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next steps - we have the &lt;a href="http://asteriskguru.com/tutorials/wait.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Wait application&lt;/i&gt;&lt;/a&gt;, which is not absolutely necessary and then we set the flag variable to &lt;b&gt;2&lt;/b&gt;. This, as we have already described above will be used to omit the sending of one and the same email message twice. For more information about the Wait application, &lt;a href="http://asteriskguru.com/tutorials/wait.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;refer to our tutorial&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We now have to check whether the caller has actually left his number or not. For the purpose we can use the &lt;a href="http://asteriskguru.com/tutorials/gotoif.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;GoToIf application&lt;/i&gt;&lt;/a&gt;. It has a very specific syntax, but its idea is simple to verify whether one condition is true or false. So, in our case we are just checking whether the &lt;b&gt;NUMBER&lt;/b&gt; variable is empty or not. If it is empty then the execution of the dialplan will continue with the next step, marked as &lt;b&gt;n(empty)&lt;/b&gt;. &lt;b&gt;n&lt;/b&gt;makes your life easier as you do not have to write and follow the steps (priorities) - &lt;b&gt;n&lt;/b&gt;means that you take the previous priority and increase it with 1. &lt;b&gt;(empty)&lt;/b&gt; is a label showing to you and the system to which &lt;b&gt;n&lt;/b&gt; you will be send.&lt;br /&gt;&lt;br /&gt;If the &lt;b&gt;NUMBER&lt;/b&gt; variable contains even one digit then we assume that we have the number of the caller so the execution of the dialplan will be send to the step with label &lt;b&gt;(full)&lt;/b&gt;. Refer to our &lt;a href="http://asteriskguru.com/tutorials/gotoif.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Tutorial for more information, details and option about the GoToIf application&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Both steps &lt;b&gt;(empty)&lt;/b&gt; and &lt;b&gt;(full)&lt;/b&gt; have one and the same task - to execute the shell script, which will form the email message and send it. The only difference would be in the body of the email message. The application, which we have to use is called&lt;a href="http://asteriskguru.com/tutorials/system.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;System&lt;/i&gt;&lt;/a&gt;. It just executes system commands as you will do it in your Linux CLI. Refer to our &lt;a href="http://asteriskguru.com/tutorials/system.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Tutorial for more information about the System application&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In our case we are executing our own scripts called &lt;b&gt;mailnumber&lt;/b&gt; and&lt;b&gt;mailnonumber&lt;/b&gt;. They are written in such way that we have to pass them a few parameters. You could see them above as screenshots and in pure text&lt;br /&gt;&lt;br /&gt;If we do not have the caller's number, we will execute the script called&lt;b&gt;mailnonumber&lt;/b&gt;. We need to add, as first parameter, the email address of the recipient. The second parameter is the CallerId number as we have received it in our system. The last parameter is the name of the queue from which the caller has exited.&lt;br /&gt;&lt;br /&gt;If we have the caller's number we will have executed another shell script called&lt;b&gt;mailnumber&lt;/b&gt; which has a different body, but the same parameters plus one more, which of course is the number left by the caller.&lt;br /&gt;&lt;br /&gt;The sending of the email is the last step we need to do and that is why after it we have to hang up the channel. For the purpose we will use once again the &lt;a href="http://asteriskguru.com/tutorials/hangup.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;Hangup application&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In the &lt;a href="http://asteriskguru.com/tutorials/extensions_conf.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;predefined extensions&lt;/i&gt;&lt;/a&gt; starting with &lt;b&gt;h&lt;/b&gt; we have a simple check of the &lt;b&gt;FLAG&lt;/b&gt;variable to help use determine whether we have to send an email with saying that we do not have the caller's number. (this step is only needed in case the caller hangs up before the prompt to leave his number)&lt;/div&gt;&lt;br /&gt;&lt;u&gt;A few words about the shell scripts.&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;They are not very complicated. All you need is a basic knowledge of shell scripts and the &lt;b&gt;&lt;i&gt;mime-construct package&lt;/i&gt;&lt;/b&gt;. &lt;b&gt;apt-get install mime-construct&lt;/b&gt; (in Debian) and you will have it. Then its just up to the &lt;b&gt;mime-construct's&lt;/b&gt; syntax&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now all you have to do is to register your &lt;a href="http://www.asteriskguru.com/tools/idefisk_beta.php" target="_blank" style="color: rgb(0, 0, 0); "&gt;IAX2 base softphone Idefisk&lt;/a&gt; to your Asterisk system with the settings, shown above, in &lt;a href="http://asteriskguru.com/tutorials/iax_conf.html" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;iax.conf&lt;/i&gt;&lt;/a&gt; and dial one of the extensions created in the &lt;b&gt;[incoming_calls]&lt;/b&gt; context.&lt;br /&gt;&lt;br /&gt;What will happen (if you have followed our setup) is that you will be put in a queue and on every 60 seconds you will hear a message saying that you could exit the queue and leave your number by pressing 1. If you press one you will hear a prompt to leave you number after the signal. Then you will hear beep and if you leave your number followed by the pound key (#), the number will be emailed to the desired email address and you will probably receive a callback.&lt;/div&gt;&lt;br /&gt;&lt;div class="dash" style="border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: rgb(160, 160, 160); "&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;4. Uploaded files&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab" style="margin-left: 20px; "&gt;&lt;a href="http://asteriskguru.com/tutorials/274673/extensions.conf" style="color: rgb(0, 0, 0); "&gt;extensions.conf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://asteriskguru.com/tutorials/274674/iax.conf" style="color: rgb(0, 0, 0); "&gt;iax.conf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://asteriskguru.com/tutorials/274675/queues.conf" style="color: rgb(0, 0, 0); "&gt;queues.conf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://asteriskguru.com/tutorials/274676/mailnumber.sh" style="color: rgb(0, 0, 0); "&gt;mailnumber.sh&lt;/a&gt;&lt;br /&gt;&lt;a href="http://asteriskguru.com/tutorials/274677/mailnonumber.sh" style="color: rgb(0, 0, 0); "&gt;mailnonumber.sh&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="dash" style="border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: rgb(160, 160, 160); "&gt; &lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:Arial;font-size:12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-8868772330945207340?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u0lx_XAjc2t3DVaeivjjVueHH1I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u0lx_XAjc2t3DVaeivjjVueHH1I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u0lx_XAjc2t3DVaeivjjVueHH1I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u0lx_XAjc2t3DVaeivjjVueHH1I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/peu1MhZ6OBA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8868772330945207340?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/8868772330945207340?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/peu1MhZ6OBA/how-to-create-callback-option.html" title="How to create a Callback option" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2008/12/how-to-create-callback-option.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HQn86fyp7ImA9WxVTEE0.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-1989910324838924812</id><published>2008-12-22T21:04:00.000-08:00</published><updated>2008-12-22T21:25:33.117-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-22T21:25:33.117-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Clocking Fundamentals" /><title>Clocking - Fundamentals</title><content type="html">&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5vACvIS4_c/SVBx6HA9LyI/AAAAAAAAAAw/q-40Bz412pw/s1600-h/figure1.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_Y5vACvIS4_c/SVBx6HA9LyI/AAAAAAAAAAw/q-40Bz412pw/s320/figure1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5282847606035001122" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 143px; height: 105px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;General Importance of Timing&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Clocking (or timing) is essential because digital signals are evaluated or read by the voltage on the line.&lt;/p&gt;&lt;p&gt;Each piece of equipment needs to know exactly when to read the voltage. Figure 1 depicts an ideal digital signal. (The 0 reading equates to binary 0, while a V value equates to binary one.) If your clock told you to read the signal when the signal was at time t1, you would record that signal as a 0. While reading the signal at time t2 means you record the signal as a 1. If all devices are synchronized, they will transmit and receive the signal correctly. If two clocks are out of synchronization, you can end up with one person reading the signal at what it thinks is the correct time (t1), but is actually time t2, giving an incorrect value.&lt;/p&gt;&lt;p&gt;You would like every device in your network timed by the same clock source. Either timed directly or timing derived from the same device that provides clocking for the entire network. Since you derive timing from a "Master" clock, all the devices in the network will be synchronized.&lt;/p&gt;&lt;p&gt;Traditionally the wide area carrier provides a Stratum 1 clock source. &lt;/p&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5vACvIS4_c/SVByqPNxbAI/AAAAAAAAAA4/SaqccpM0x-g/s1600-h/figure2.gif" style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img style="text-decoration: underline;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 318px; height: 79px; " src="http://4.bp.blogspot.com/_Y5vACvIS4_c/SVByqPNxbAI/AAAAAAAAAA4/SaqccpM0x-g/s320/figure2.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5282848432869960706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5vACvIS4_c/SVBx6HA9LyI/AAAAAAAAAAw/q-40Bz412pw/s1600-h/figure1.jpg"&gt;&lt;/a&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-1989910324838924812?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a6-vzd49054XQ5KnkjlBJq75LoI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a6-vzd49054XQ5KnkjlBJq75LoI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a6-vzd49054XQ5KnkjlBJq75LoI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a6-vzd49054XQ5KnkjlBJq75LoI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/_2inavPuAY4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/1989910324838924812?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/1989910324838924812?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/_2inavPuAY4/clocking-fundamentals.html" title="Clocking - Fundamentals" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Y5vACvIS4_c/SVBx6HA9LyI/AAAAAAAAAAw/q-40Bz412pw/s72-c/figure1.jpg" height="72" width="72" /><feedburner:origLink>http://asteriskglobe.blogspot.com/2008/12/clocking-fundamentals.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UMQXk4eSp7ImA9WxdVFks.&quot;"><id>tag:blogger.com,1999:blog-8854428204948572427.post-6809184142477918072</id><published>2008-07-21T11:31:00.000-07:00</published><updated>2008-07-21T11:34:40.731-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-21T11:34:40.731-07:00</app:edited><title>Asterisk CLI Commands</title><content type="html">&lt;span style="font-weight: bold;"&gt;Most Frequently General CLI Commands :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;!&lt;/b&gt; - Execute a shell command&lt;br /&gt;&lt;b&gt;abort halt&lt;/b&gt; - Cancel a running halt&lt;br /&gt;&lt;b&gt;cdr status&lt;/b&gt; - Display the CDR status&lt;br /&gt;&lt;b&gt;feature show&lt;/b&gt; - Lists configured features&lt;br /&gt;&lt;b&gt;feature show channels&lt;/b&gt; - List status of feature channels&lt;br /&gt;&lt;b&gt;file convert&lt;/b&gt; - Convert audio file&lt;br /&gt;&lt;b&gt;group show channels&lt;/b&gt; - Display active channels with group(s)&lt;br /&gt;&lt;b&gt;help&lt;/b&gt; - Display help list, or specific help on a command&lt;br /&gt;&lt;b&gt;indication add&lt;/b&gt; - Add the given indication to the country&lt;br /&gt;&lt;b&gt;indication remove&lt;/b&gt; - Remove the given indication from the country&lt;br /&gt;&lt;b&gt;indication show&lt;/b&gt; - Display a list of all countries/indications&lt;br /&gt;&lt;b&gt;keys init&lt;/b&gt; - Initialize RSA key passcodes&lt;br /&gt;&lt;b&gt;keys show&lt;/b&gt; - Displays RSA key information&lt;br /&gt;&lt;b&gt;local show channels&lt;/b&gt; - List status of local channels&lt;br /&gt;&lt;b&gt;logger mute&lt;/b&gt; - Toggle logging output to a console&lt;br /&gt;&lt;b&gt;logger reload&lt;/b&gt; - Reopens the log files&lt;br /&gt;&lt;b&gt;logger rotate&lt;/b&gt; - Rotates and reopens the log files&lt;br /&gt;&lt;b&gt;logger show channels&lt;/b&gt; - List configured log channels&lt;br /&gt;&lt;b&gt;meetme&lt;/b&gt; - Execute a command on a conference or conferee&lt;br /&gt;&lt;b&gt;mixmonitor&lt;/b&gt; - Execute a MixMonitor command.&lt;br /&gt;&lt;b&gt;moh reload&lt;/b&gt; - Music On Hold&lt;br /&gt;&lt;b&gt;moh show classes&lt;/b&gt; - List MOH classes&lt;br /&gt;&lt;b&gt;moh show files&lt;/b&gt; - List MOH file-based classes&lt;br /&gt;&lt;b&gt;no debug channel (null)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;originate&lt;/b&gt; - Originate a call&lt;br /&gt;&lt;b&gt;realtime load&lt;/b&gt; - Used to print out RealTime variables.&lt;br /&gt;&lt;b&gt;realtime update&lt;/b&gt; - Used to update RealTime variables.&lt;br /&gt;&lt;b&gt;restart gracefully&lt;/b&gt; - Restart Asterisk gracefully&lt;br /&gt;&lt;b&gt;restart now&lt;/b&gt; - Restart Asterisk immediately&lt;br /&gt;&lt;b&gt;restart when convenient&lt;/b&gt; - Restart Asterisk at empty call volume&lt;br /&gt;&lt;b&gt;sla show&lt;/b&gt; - Show status of Shared Line Appearances&lt;br /&gt;&lt;b&gt;soft hangup&lt;/b&gt; - Request a hangup on a given channel&lt;br /&gt;&lt;b&gt;stop gracefully&lt;/b&gt; - Gracefully shut down Asterisk&lt;br /&gt;&lt;b&gt;stop now&lt;/b&gt; - Shut down Asterisk immediately&lt;br /&gt;&lt;b&gt;stop when convenient&lt;/b&gt; - Shut down Asterisk at empty call volume&lt;br /&gt;&lt;b&gt;stun debug&lt;/b&gt; - Enable STUN debugging&lt;br /&gt;&lt;b&gt;stun debug off&lt;/b&gt; - Disable STUN debugging&lt;br /&gt;&lt;b&gt;udptl debug&lt;/b&gt; - Enable UDPTL debugging&lt;br /&gt;&lt;b&gt;udptl debug ip&lt;/b&gt; - Enable UDPTL debugging on IP&lt;br /&gt;&lt;b&gt;udptl debug off&lt;/b&gt; - Disable UDPTL debugging&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;AEL commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;ael debug contexts&lt;/b&gt; - Enable AEL contexts debug (does nothing)&lt;br /&gt;&lt;b&gt;ael debug macros&lt;/b&gt; - Enable AEL macros debug (does nothing)&lt;br /&gt;&lt;b&gt;ael debug read&lt;/b&gt; - Enable AEL read debug (does nothing)&lt;br /&gt;&lt;b&gt;ael debug tokens&lt;/b&gt; - Enable AEL tokens debug (does nothing)&lt;br /&gt;&lt;b&gt;ael nodebug&lt;/b&gt; - Disable AEL debug messages&lt;br /&gt;&lt;b&gt;ael reload&lt;/b&gt; - Reload AEL configuration&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Agents commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;agent logoff&lt;/b&gt; - Sets an agent offline&lt;br /&gt;&lt;b&gt;agent show&lt;/b&gt; - Show status of agents&lt;br /&gt;&lt;b&gt;agent show online&lt;/b&gt; - Show all online agents&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;AGI commands&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;agi debug&lt;/b&gt; - Enable AGI debugging&lt;br /&gt;&lt;b&gt;agi debug off&lt;/b&gt; - Disable AGI debugging&lt;br /&gt;&lt;b&gt;agi dumphtml&lt;/b&gt; - Dumps a list of agi commands in html format&lt;br /&gt;&lt;b&gt;agi show&lt;/b&gt;- List AGI commands or specific help&lt;br /&gt;&lt;b&gt;dnsmgr reload&lt;/b&gt; - Reloads the DNS manager configuration&lt;br /&gt;&lt;b&gt;dnsmgr status&lt;/b&gt; - Display the DNS manager status&lt;br /&gt;&lt;b&gt;http show status&lt;/b&gt; - Display HTTP server status&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Console commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;console active&lt;/b&gt; - Sets/displays active console&lt;br /&gt;&lt;b&gt;console answer&lt;/b&gt; - Answer an incoming console call&lt;br /&gt;&lt;b&gt;console autoanswer&lt;/b&gt; - Sets/displays autoanswer&lt;br /&gt;&lt;b&gt;console boost&lt;/b&gt; - Sets/displays mic boost in dB&lt;br /&gt;&lt;b&gt;console dial&lt;/b&gt; - Dial an extension on the console&lt;br /&gt;&lt;b&gt;console flash&lt;/b&gt; - Flash a call on the console&lt;br /&gt;&lt;b&gt;console hangup&lt;/b&gt; - Hangup a call on the console&lt;br /&gt;&lt;b&gt;console mute&lt;/b&gt; - Disable mic input&lt;br /&gt;&lt;b&gt;console send text&lt;/b&gt; - Send text to the remote device&lt;br /&gt;&lt;b&gt;console transfer&lt;/b&gt; - Transfer a call to a different extension&lt;br /&gt;&lt;b&gt;console unmute&lt;/b&gt; - Enable mic input&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Core related commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;core clear profile&lt;/b&gt; - Clear profiling info&lt;br /&gt;&lt;b&gt;core set debug channel&lt;/b&gt; - Enable/disable debugging on a channel&lt;br /&gt;&lt;b&gt;core set debug&lt;/b&gt; - Set level of debug chattiness&lt;br /&gt;&lt;b&gt;core set debug off&lt;/b&gt; - Turns off debug chattiness&lt;br /&gt;&lt;b&gt;core set global&lt;/b&gt; - Set global dialplan variable&lt;br /&gt;&lt;b&gt;core set verbose&lt;/b&gt; - Set level of verboseness&lt;br /&gt;&lt;b&gt;core show applications&lt;/b&gt; - Shows registered dialplan applications&lt;br /&gt;&lt;b&gt;core show application&lt;/b&gt; - Describe a specific dialplan application&lt;br /&gt;&lt;b&gt;core show audio codecs&lt;/b&gt; - Displays a list of audio codecs&lt;br /&gt;&lt;b&gt;core show channels&lt;/b&gt; - Display information on channels&lt;br /&gt;&lt;b&gt;core show channel&lt;/b&gt; - Display information on a specific channel&lt;br /&gt;&lt;b&gt;core show channeltypes&lt;/b&gt; - List available channel types&lt;br /&gt;&lt;b&gt;core show channeltype&lt;/b&gt; - Give more details on that channel type&lt;br /&gt;&lt;b&gt;core show codecs&lt;/b&gt; - Displays a list of codecs&lt;br /&gt;&lt;b&gt;core show codec&lt;/b&gt; - Shows a specific codec&lt;br /&gt;&lt;b&gt;core show config mappings&lt;/b&gt; - Display config mappings (file names to config engines)&lt;br /&gt;&lt;b&gt;core show file formats&lt;/b&gt; - Displays file formats&lt;br /&gt;&lt;b&gt;core show file version&lt;/b&gt; - List versions of files used to build Asterisk&lt;br /&gt;&lt;b&gt;core show functions&lt;/b&gt; - Shows registered dialplan functions&lt;br /&gt;&lt;b&gt;core show function&lt;/b&gt; - Describe a specific dialplan function&lt;br /&gt;&lt;b&gt;core show globals&lt;/b&gt; - Show global dialplan variables&lt;br /&gt;&lt;b&gt;core show hints&lt;/b&gt; - Show dialplan hints&lt;br /&gt;&lt;b&gt;core show image codecs&lt;/b&gt; - Displays a list of image codecs&lt;br /&gt;&lt;b&gt;core show image formats&lt;/b&gt; - Displays image formats&lt;br /&gt;&lt;b&gt;core show license&lt;/b&gt; - Show the license(s) for this copy of Asterisk&lt;br /&gt;&lt;b&gt;core show profile&lt;/b&gt; - Display profiling info&lt;br /&gt;&lt;b&gt;core show switches&lt;/b&gt; - Show alternative switches&lt;br /&gt;&lt;b&gt;core show threads&lt;/b&gt; - Show running threads&lt;br /&gt;&lt;b&gt;core show translation&lt;/b&gt; - Display translation matrix&lt;br /&gt;&lt;b&gt;core show uptime&lt;/b&gt; - Show uptime information&lt;br /&gt;&lt;b&gt;core show version&lt;/b&gt; - Display version info&lt;br /&gt;&lt;b&gt;core show video codecs&lt;/b&gt; - Displays a list of video codecs&lt;br /&gt;&lt;b&gt;core show warranty&lt;/b&gt; - Show the warranty (if any) for this copy of Asterisk&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Database commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;database del&lt;/b&gt; - Removes database key/value&lt;br /&gt;&lt;b&gt;database deltree&lt;/b&gt; - Removes database keytree/values&lt;br /&gt;&lt;b&gt;database get&lt;/b&gt; - Gets database value&lt;br /&gt;&lt;b&gt;database put&lt;/b&gt; - Adds/updates database value&lt;br /&gt;&lt;b&gt;database show&lt;/b&gt; - Shows database contents&lt;br /&gt;&lt;b&gt;database showkey&lt;/b&gt; - Shows database contents&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Dialplan commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;dialplan add extension&lt;/b&gt; - Add new extension into context&lt;br /&gt;&lt;b&gt;dialplan add ignorepat&lt;/b&gt; - Add new ignore pattern&lt;br /&gt;&lt;b&gt;dialplan add include&lt;/b&gt; - Include context in other context&lt;br /&gt;&lt;b&gt;dialplan reload&lt;/b&gt; - Reload extensions and *only* extensions&lt;br /&gt;&lt;b&gt;dialplan remove extension&lt;/b&gt; - Remove a specified extension&lt;br /&gt;&lt;b&gt;dialplan remove ignorepat&lt;/b&gt; - Remove ignore pattern from context&lt;br /&gt;&lt;b&gt;dialplan remove include&lt;/b&gt; - Remove a specified include from context&lt;br /&gt;&lt;b&gt;dialplan save&lt;/b&gt; - Save dialplan&lt;br /&gt;&lt;b&gt;dialplan show&lt;/b&gt; - Show dialplan&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;DUNDI commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;dundi debug&lt;/b&gt; - Enable DUNDi debugging&lt;br /&gt;&lt;b&gt;dundi flush&lt;/b&gt; - Flush DUNDi cache&lt;br /&gt;&lt;b&gt;dundi lookup&lt;/b&gt; - Lookup a number in DUNDi&lt;br /&gt;&lt;b&gt;dundi no debug&lt;/b&gt; - Disable DUNDi debugging&lt;br /&gt;&lt;b&gt;dundi no store history&lt;/b&gt; - Disable DUNDi historic records&lt;br /&gt;&lt;b&gt;dundi precache&lt;/b&gt; - Precache a number in DUNDi&lt;br /&gt;&lt;b&gt;dundi query&lt;/b&gt; - Query a DUNDi EID&lt;br /&gt;&lt;b&gt;dundi show entityid&lt;/b&gt; - Display Global Entity ID&lt;br /&gt;&lt;b&gt;dundi show mappings&lt;/b&gt; - Show DUNDi mappings&lt;br /&gt;&lt;b&gt;dundi show peers&lt;/b&gt; - Show defined DUNDi peers&lt;br /&gt;&lt;b&gt;dundi show peer&lt;/b&gt; - Show info on a specific DUNDi peer&lt;br /&gt;&lt;b&gt;dundi show precache&lt;/b&gt; - Show DUNDi precache&lt;br /&gt;&lt;b&gt;dundi show requests&lt;/b&gt; - Show DUNDi requests&lt;br /&gt;&lt;b&gt;dundi show trans&lt;/b&gt; - Show active DUNDi transactions&lt;br /&gt;&lt;b&gt;dundi store history&lt;/b&gt; - Enable DUNDi historic records&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;GTalk &amp;amp; Jabber commands&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;gtalk reload&lt;/b&gt; - Enable Jabber debugging&lt;br /&gt;&lt;b&gt;gtalk show channels&lt;/b&gt; - Show GoogleTalk Channels&lt;br /&gt;&lt;b&gt;jabber debug&lt;/b&gt; - Enable Jabber debugging&lt;br /&gt;&lt;b&gt;jabber debug off&lt;/b&gt; - Disable Jabber debug&lt;br /&gt;&lt;b&gt;jabber reload&lt;/b&gt; - Enable Jabber debugging&lt;br /&gt;&lt;b&gt;jabber show connected&lt;/b&gt; - Show state of clients and components&lt;br /&gt;&lt;b&gt;jabber test&lt;/b&gt; - Shows roster, but is generally used for mog's debugging.&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;IAX2 commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;iax2 provision&lt;/b&gt; - Provision an IAX device&lt;br /&gt;&lt;b&gt;iax2 prune realtime&lt;/b&gt; - Prune a cached realtime lookup&lt;br /&gt;&lt;b&gt;iax2 reload&lt;/b&gt; - Reload IAX configuration&lt;br /&gt;&lt;b&gt;iax2 set debug&lt;/b&gt; - Enable IAX debugging&lt;br /&gt;&lt;b&gt;iax2 set debug jb&lt;/b&gt; - Enable IAX jitterbuffer debugging&lt;br /&gt;&lt;b&gt;iax2 set debug jb off&lt;/b&gt; - Disable IAX jitterbuffer debugging&lt;br /&gt;&lt;b&gt;iax2 set debug off&lt;/b&gt; - Disable IAX debugging&lt;br /&gt;&lt;b&gt;iax2 set debug trunk&lt;/b&gt; - Enable IAX trunk debugging&lt;br /&gt;&lt;b&gt;iax2 set debug trunk off&lt;/b&gt; - Disable IAX trunk debugging&lt;br /&gt;&lt;b&gt;iax2 show cache&lt;/b&gt; - Display IAX cached dialplan&lt;br /&gt;&lt;b&gt;iax2 show channels&lt;/b&gt; - List active IAX channels&lt;br /&gt;&lt;b&gt;iax2 show firmware&lt;/b&gt; - List available IAX firmwares&lt;br /&gt;&lt;b&gt;iax2 show netstats&lt;/b&gt; - List active IAX channel netstats&lt;br /&gt;&lt;b&gt;iax2 show peers&lt;/b&gt; - List defined IAX peers&lt;br /&gt;&lt;b&gt;iax2 show peer&lt;/b&gt; - Show details on specific IAX peer&lt;br /&gt;&lt;b&gt;iax2 show provisioning&lt;/b&gt; - Display iax provisioning&lt;br /&gt;&lt;b&gt;iax2 show registry&lt;/b&gt; - Display IAX registration status&lt;br /&gt;&lt;b&gt;iax2 show stats&lt;/b&gt; - Display IAX statistics&lt;br /&gt;&lt;b&gt;iax2 show threads&lt;/b&gt; - Display IAX helper thread info&lt;br /&gt;&lt;b&gt;iax2 show users&lt;/b&gt; - List defined IAX users&lt;br /&gt;&lt;b&gt;iax2 test losspct&lt;/b&gt; - Set IAX2 incoming frame loss percentage&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Manager commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;manager show command&lt;/b&gt; - Show a manager interface command&lt;br /&gt;&lt;b&gt;manager show commands&lt;/b&gt; - List manager interface commands&lt;br /&gt;&lt;b&gt;manager show connected&lt;/b&gt; - List connected manager interface users&lt;br /&gt;&lt;b&gt;manager show eventq&lt;/b&gt; - List manager interface queued events&lt;br /&gt;&lt;b&gt;manager show users&lt;/b&gt; - List configured manager users&lt;br /&gt;&lt;b&gt;manager show user&lt;/b&gt; - Display information on a specific manager user&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;MGCP commands&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;mgcp audit endpoint&lt;/b&gt; - Audit specified MGCP endpoint&lt;br /&gt;&lt;b&gt;mgcp reload&lt;/b&gt; - Reload MGCP configuration&lt;br /&gt;&lt;b&gt;mgcp set debug&lt;/b&gt; - Enable MGCP debugging&lt;br /&gt;&lt;b&gt;mgcp set debug off&lt;/b&gt; - Disable MGCP debugging&lt;br /&gt;&lt;b&gt;mgcp show endpoints&lt;/b&gt; - List defined MGCP endpoints&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Module management&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;module load&lt;/b&gt; - Load a module by name&lt;br /&gt;&lt;b&gt;module reload&lt;/b&gt; - Reload configuration&lt;br /&gt;&lt;b&gt;module show&lt;/b&gt; - List modules and info&lt;br /&gt;&lt;b&gt;module show like&lt;/b&gt; - List modules and info&lt;br /&gt;&lt;b&gt;module unload&lt;/b&gt; - Unload a module by name&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;PRI commands&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;pri debug span&lt;/b&gt; - Enables PRI debugging on a span&lt;br /&gt;&lt;b&gt;pri intense debug span&lt;/b&gt; - Enables REALLY INTENSE PRI debugging&lt;br /&gt;&lt;b&gt;pri no debug span&lt;/b&gt; - Disables PRI debugging on a span&lt;br /&gt;&lt;b&gt;pri set debug file&lt;/b&gt; - Sends PRI debug output to the specified file&lt;br /&gt;&lt;b&gt;pri show debug&lt;/b&gt; - Displays current PRI debug settings&lt;br /&gt;&lt;b&gt;pri show spans&lt;/b&gt; - Displays PRI Information&lt;br /&gt;&lt;b&gt;pri show span&lt;/b&gt; - Displays PRI Information&lt;br /&gt;&lt;b&gt;pri unset debug file&lt;/b&gt; - Ends PRI debug output to file&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Queue commands&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;queue add member&lt;/b&gt; - Add a channel to a specified queue&lt;br /&gt;&lt;b&gt;queue remove member&lt;/b&gt; - Removes a channel from a specified queue&lt;br /&gt;&lt;b&gt;queue show&lt;/b&gt; - Show status of a specified queue&lt;br /&gt;&lt;b&gt;rtcp debug ip&lt;/b&gt; - Enable RTCP debugging on IP&lt;br /&gt;&lt;b&gt;rtcp debug&lt;/b&gt; - Enable RTCP debugging&lt;br /&gt;&lt;b&gt;rtcp debug off&lt;/b&gt; - Disable RTCP debugging&lt;br /&gt;&lt;b&gt;rtcp stats&lt;/b&gt; - Enable RTCP stats&lt;br /&gt;&lt;b&gt;rtcp stats off&lt;/b&gt; - Disable RTCP stats&lt;br /&gt;&lt;b&gt;rtp debug ip&lt;/b&gt; - Enable RTP debugging on IP&lt;br /&gt;&lt;b&gt;rtp debug&lt;/b&gt; - Enable RTP debugging&lt;br /&gt;&lt;b&gt;rtp debug off&lt;/b&gt; - Disable RTP debugging&lt;br /&gt;&lt;b&gt;say load&lt;/b&gt; - Set/show the say mode&lt;br /&gt;&lt;b&gt;show parkedcalls&lt;/b&gt; - Lists parked calls&lt;br /&gt;&lt;b&gt;show queue&lt;/b&gt; - Show information for target queue&lt;br /&gt;&lt;b&gt;show queues&lt;/b&gt; - Show the queues&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;SIP commands&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;sip history&lt;/b&gt; - Enable SIP history&lt;br /&gt;&lt;b&gt;sip history off&lt;/b&gt; - Disable SIP history&lt;br /&gt;&lt;b&gt;sip notify&lt;/b&gt; - Send a notify packet to a SIP peer&lt;br /&gt;&lt;b&gt;sip prune realtime&lt;/b&gt; - Prune cached Realtime object(s)&lt;br /&gt;&lt;b&gt;sip prune realtime peer&lt;/b&gt; - Prune cached Realtime peer(s)&lt;br /&gt;&lt;b&gt;sip prune realtime user&lt;/b&gt; - Prune cached Realtime user(s)&lt;br /&gt;&lt;b&gt;sip reload&lt;/b&gt; - Reload SIP configuration&lt;br /&gt;&lt;b&gt;sip set debug&lt;/b&gt; - Enable SIP debugging&lt;br /&gt;&lt;b&gt;sip set debug ip&lt;/b&gt; - Enable SIP debugging on IP&lt;br /&gt;&lt;b&gt;sip set debug off&lt;/b&gt; - Disable SIP debugging&lt;br /&gt;&lt;b&gt;sip set debug peer&lt;/b&gt; - Enable SIP debugging on Peername&lt;br /&gt;&lt;b&gt;sip show channels&lt;/b&gt; - List active SIP channels&lt;br /&gt;&lt;b&gt;sip show channel&lt;/b&gt; - Show detailed SIP channel info&lt;br /&gt;&lt;b&gt;sip show domains&lt;/b&gt; - List our local SIP domains.&lt;br /&gt;&lt;b&gt;sip show history&lt;/b&gt; - Show SIP dialog history&lt;br /&gt;&lt;b&gt;sip show inuse&lt;/b&gt; - List all inuse/limits&lt;br /&gt;&lt;b&gt;sip show objects&lt;/b&gt; - List all SIP object allocations&lt;br /&gt;&lt;b&gt;sip show peers&lt;/b&gt; - List defined SIP peers&lt;br /&gt;&lt;b&gt;sip show peer&lt;/b&gt; - Show details on specific SIP peer&lt;br /&gt;&lt;b&gt;sip show registry&lt;/b&gt; - List SIP registration status&lt;br /&gt;&lt;b&gt;sip show settings&lt;/b&gt; - Show SIP global settings&lt;br /&gt;&lt;b&gt;sip show subscriptions&lt;/b&gt; - List active SIP subscriptions&lt;br /&gt;&lt;b&gt;sip show users&lt;/b&gt; - List defined SIP users&lt;br /&gt;&lt;b&gt;sip show user&lt;/b&gt; - Show details on specific SIP user&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Skinny commands&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;skinny reset&lt;/b&gt; - Reset Skinny device(s)&lt;br /&gt;&lt;b&gt;skinny set debug&lt;/b&gt; - Enable Skinny debugging&lt;br /&gt;&lt;b&gt;skinny set debug off&lt;/b&gt; - Disable Skinny debugging&lt;br /&gt;&lt;b&gt;skinny show devices&lt;/b&gt; - List defined Skinny devices&lt;br /&gt;&lt;b&gt;skinny show lines&lt;/b&gt; - List defined Skinny lines per device&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Voicemail commands&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;voicemail show users&lt;/b&gt; - List defined voicemail boxes&lt;br /&gt;&lt;b&gt;voicemail show users for&lt;/b&gt; - List defined voicemail boxes for target context&lt;br /&gt;&lt;b&gt;voicemail show zones&lt;/b&gt; - List zone message formats&lt;/div&gt;&lt;br /&gt;&lt;div class="dash"&gt; &lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Zaptel commands&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tab"&gt;&lt;b&gt;zap destroy channel&lt;/b&gt; - Destroys a channel&lt;br /&gt;&lt;b&gt;zap restart&lt;/b&gt; - Fully restart zaptel channels&lt;br /&gt;&lt;b&gt;zap show cadences&lt;/b&gt; - List cadences&lt;br /&gt;&lt;b&gt;zap show channels&lt;/b&gt; - Show active zapata channels&lt;br /&gt;&lt;b&gt;zap show channel&lt;/b&gt; - Show information on a channel&lt;br /&gt;&lt;b&gt;zap show status&lt;/b&gt; - Show all Zaptel cards status&lt;/div&gt;&lt;br /&gt;       &lt;br /&gt;             &lt;script type="text/javascript"&gt;  &lt;!--  google_ad_client = "pub-7828584342582181";  google_ad_width = 300;  google_ad_height = 250;  google_ad_format = "300x250_as";  google_ad_type = "text_image";  google_ad_channel = "";  google_color_border = "e7e7ef";  google_color_bg = "e7e7ef";  google_color_link = "ee7000";  google_color_url = "919aaa";  google_color_text = "000000";  //--&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8854428204948572427-6809184142477918072?l=asteriskglobe.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hIHzdM1nruxJpJEdVWN09vpBZSU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hIHzdM1nruxJpJEdVWN09vpBZSU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hIHzdM1nruxJpJEdVWN09vpBZSU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hIHzdM1nruxJpJEdVWN09vpBZSU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Asterisk-Freedom/~4/byz6yXemjP4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/6809184142477918072?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8854428204948572427/posts/default/6809184142477918072?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Asterisk-Freedom/~3/byz6yXemjP4/asterisk-cli-commands.html" title="Asterisk CLI Commands" /><author><name>Dipkumar Mehta</name><uri>http://www.blogger.com/profile/12308315719141653102</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://asteriskglobe.blogspot.com/2008/07/asterisk-cli-commands.html</feedburner:origLink></entry></feed>

