[asterisk-dev] [Code Review] dial by name in chan_dahdi

Tzafrir Cohen tzafrir.cohen at xorcom.com
Tue Jun 8 12:06:45 CDT 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/535/
-----------------------------------------------------------

(Updated 2010-06-08 12:06:45.671958)


Review request for Asterisk Developers.


Changes
-------

* Fixed dial-string manipulation in my_pri_make_cc_dialstring - make it only change a call to a group.
* CodingGuidelines

This should address rmugget's comments.


Summary (updated)
-------

Currently a name of a channel in chan_dahdi must (with some exception of trunk-groups syntax) rely on DAHDI channel numbers. Sadly channel numbers depend on the specific order of registration. Changing that seems to be quite difficult.

Thus we try to use the original open-by-device-file (rather than indirect open through /dev/dahdi/channel), and allow files to reside in sub-directories of /dev/dahdi .

Specifically, the file name must still be a number (to allow using the same ranges syntax). However it should be preceded with the string '<dirname>!' .

For instance we have: /dev/dahdi/work/dir/1 and /dev/dahdi/work/dir/2 that are symlinks to /dev/dahdi/9 and /dev/dahdi/10 (DAHDI channels 9 and 10), I can refer to them in chan_dahdi.conf as:

  channel => work!dir!1
  channel => work!dir!2

Or:
  channel => work!dir!1-2

And likewise can dial through them using:

  Dial(DAHDI/work!dir!1/123456)

Now that we have a naming scheme that does not depend on the specific load order of DAHDI devices, it should be safe to allow a configuration to continue even if some channels have failed. For this we allow setting

  ignore_failed_channels = true

in chan_dahdi.conf (it only makes sense to set it in the beginning of the [channels] section). This tells chan_dahdi not to fail even if a channel has failed to configure.

See also:
http://svn.asterisk.org/dahdi/linux/team/tzafrir/sysfs
http://svn.asterisk.org/dahdi/tools/team/tzafrir/sysfs
https://reviewboard.asterisk.org/r/677

Current status: 

* Tested to basically work. 

TODO:
* Can the original path be exposed to the dialplan?
  The equivalent of:
  Set(DAHDI_CHAN=${CUT(-,${CHANNEL}))}


Diffs (updated)
-----

  /trunk/channels/chan_dahdi.c 269082 
  /trunk/configs/chan_dahdi.conf.sample 269082 

Diff: https://reviewboard.asterisk.org/r/535/diff


Testing
-------


Thanks,

Tzafrir




More information about the asterisk-dev mailing list