Summary:ASTERISK-00387: [patch?] README.channels
Reporter:John Todd (jtodd)Labels:
Date Opened:2003-10-15 03:32:22Date Closed:2011-06-07 14:11:59
Versions:Frequency of
Description:This is an attempt to start documenting the different syntaxes and features of each channel type.  At the end of October (or earlier, if it seems useful) I will collect your notes on each channel type and compile it into a README.channels to be added to Asterisk.


see bugnotes for the channel types that we need defined and described.  Please restrict your edits and updates to a single channel type per bugnote, so I don't have to reassemble everything from partial sentences.
Comments:By: John Todd (jtodd) 2003-10-15 03:33:18


Channels are named methods by which a leg of a call can be received or transmitted.  Specifying a different channel name in a Dial statement allows one to transparently link two calls from different drivers together, without knowing the specifics of the inbound or outbound call handler.  While channels are fairly generic in their syntax, there are special arguments for each channel type depending on what variables need to be handed to the channel in order to have a successful setup, or to specify unique characteristics of that channel type.  Below is a list of the channel types, and the dialing syntaxes and special methods for each channel.  

Most channels have specific configuration files that can be found in /etc/asterisk/[CHANNELNAME].conf files.  Some of the values in the .conf file may not be accessible from the dialplan, and vice versa.  


Syntax: SIP/extension[@hostname[:port]]

The full length of a sip peer name or username combination is 256 bytes.

- Special variable ${VXML_URL} can be used to add additional items to the To: header
- Special variable ${ALERT_INFO} can be used to create a new header called Alert-Info: which can be used to create distinctive ringing on the Cisco SIP-enabled phone devices.

 chan_local is a pseudo-channel.  Use of this channel simply loops calls back into the dialplan in a different context.  Useful for recursive routing.

Syntax: Local/extension@context[/n]

Notes: Adding "/n" at the end of the string will make the Local channel not do a native transfer (the "n" stands for "n"o release) upon the remote end answering the line.  This is an esoteric, but important feature if you expect the Local channel to handle calls _exactly_ like a normal channel.  If you do not have the "no release" feature set, then as soon as the destination (inside of the Local channel0 answers the line, the variables and dial plan will revert back to that of the original call, and the Local channel will become a zombie and be removed from the active channels list.  This is desirable in some circumstances, but can result in unexpected dialplan behavior if you are doing fancy things with variables in your call handling.

 chan_h323 is the default H.323 channel driver

 chan_mgcp is the Media Gateway Control Protocol driver

 chan_oss is the OSS audio drivers (some systems use this for soundcards)

Syntax: oss/console

 chan_modem is the analog voice modem channel driver (yuck!)

 chan_modem_i4l is the ISDN for Linux modem driver

 chan_modem_aopen is the A/Open (Rockwell) analog voice modem driver (yuck!)

 chan_phone is the Linux Telephony API channel driver

 chan_zap is the Zapata analog card channel driver

Syntax: Zap/[group]|[port]|[span-port]/extension
  Examples: Zap/g1/12394     : dial 12394 on first available channel on group1
            Zap/1-1/12394    : dial 12394 on span 1, port 1
            Zap/1/12394      : dial 12394 on port1

  Notes: special dial modifier "c" allows for clear channel connections between PRI ports

 chan_vofr is the Voice Over Frame Relay channel driver



 chan_iax is the IAX (Inter-Asterisk eXchange) version 1 channel driver

 chan_iax2 is the IAX (Inter-Asterisk eXchange) version 2 channel driver
Syntax: IAX2/user[:password]@host/extension

 chan_skinny is the SCCP (Skinny Client Control Protocol) channel driver

 chan_nbs is the Network Broadcast Sound driver.  No information available.

- cvs co nbs    [to get the other parts of this driver?]
- works in conjunction with xmms?

 chan_vpb is the Voicetronix card driver.  Rumored to work with 6 and 12 port cards.

- Perhaps this is the same syntax as Zap drivers?   No idea.
Syntax: VPB/[card]/[port]

By: Olle Johansson (oej) 2003-10-15 15:10:06

John, I've tried to find this information for the WIki... See http://www.voip-info.org/tiki-index.php?page=Asterisk%20channels - I'll update as you find new information.

By: Olle Johansson (oej) 2003-10-15 15:12:10

On SIP channels you write:
- Special variable ${VXML_URL} can be used to add additional items to the To: header
- Special variable ${ALERT_INFO} can be used to create a new header called Alert-Info: which can be used to create distinctive ringing on the Cisco SIP-enabled phone devices.

Do I understand correctly if this has to be set before dialing in extensions.conf? Examples would be nice.

By: Mark Spencer (markster) 2003-10-16 05:10:30

Can you please attach the document (updated if you like) instead of posting it as a bug note?  Thanks!

By: John Todd (jtodd) 2003-10-16 05:18:04

Eventually the whole document will be posted as an attachment, but I don't want to have 50 versions of the document where I can't tell what changes were made/added.  When everyone has given their $.02 on things, then I'll compile and add as a full document for CVS inclusion.

I will note that the response for volunteers has been underwhelming.

edited on: 10-16-03 05:17

By: otmar (otmar) 2003-10-17 07:36:22

Addendum to the SIP entry:

In order to be able to call any valid SIP address you might encounter, you have to enable SRV lookups in sip.conf. To do this, include a line with "srvlookup = yes".

By: John Todd (jtodd) 2003-12-21 09:30:32.000-0600

looks like this bug has met with resounding failure on getting anything but a few comments from helpful people.  I will close unless I see some activity in the next week or so.

By: Olle Johansson (oej) 2003-12-21 12:31:48.000-0600

JT, I've added some on the Wiki. Let's merge your text there and create a text file we can submit from that. Even though it's not complete, I still think it's an important file in the source distribution. We can mark sections 'to be written' or something.

By: zoa (zoa) 2004-01-11 21:04:14.000-0600

jtodd, is this ready for CVS ?

By: Brian West (bkw918) 2004-01-26 21:47:13.000-0600

Submit a unified diff/file for inclusion in CVS.