login | register
Wed 01 of Aug, 2007 [09:16 UTC]

voip-info.org

Search with Google
Search this site with Google. Results may not include recent changes.

Web www.voip-info.org
Shoutbox
  • Aykut, Wed 01 of Aug, 2007 [07:53 UTC]: Hi all, does anybody know about Thomson ST2030 SIP phone. I have upgraded it to latest version (1.56) but "Hold" and "Conf" features are not working after the upgrade ?? Do you know any solution or do you have Ver. 1.52 ?? Where can I find it?
  • Edward J Brown, Tue 31 of Jul, 2007 [23:33 UTC]: Has anybody experienced Choppy voice quality when using a Linksys SPA942 in an Asterisk Conference bridge? It works fine with my polycom and Cisco, but sucks with my Linksys.
  • www.astawerks.com, Fri 27 of Jul, 2007 [18:00 UTC]: does anyone use asterisk on top of clark connect? does it work good?
  • simon, Fri 27 of Jul, 2007 [14:16 UTC]: Hi All, Has anyone here managed to get the Cisco79x1 to successfully fail over to the backup proxy. I have 2 asterisk servers , handsets all register and function, except that backup proxy function doesn't work. Any working example would be very apprecia
  • Matthew Richmond, Thu 26 of Jul, 2007 [03:40 UTC]: using the page() application to page across our building...often the meetme conferences don't disconnect after the caller hangs up. Anyone else having this problem. (using Polycom phones)
  • Matthew Richmond, Wed 25 of Jul, 2007 [02:58 UTC]: thanks Nicholas Blasgen! I haven't worked with AGI before, but there's always a first! Thanks again!
  • Nicholas Blasgen, Tue 24 of Jul, 2007 [19:18 UTC]: Matthew Richmond, AGI will handle all that for you.
  • sam, Mon 23 of Jul, 2007 [16:39 UTC]: need help - certain voicemail extension will stop working and recording voicemail on asterisk - anyone know why and how to fix it? Thanks
  • john haji, Mon 23 of Jul, 2007 [14:55 UTC]: free calls to pakistan
  • bong, Sat 21 of Jul, 2007 [19:09 UTC]: hi good day to all can anyone help me how to configured the nortel sip to the signaling server and how to activate in mobile w/ sip compatible without mcs
Server Stats
  • Execution time: 0.29s
  • Memory usage: 2.25MB
  • Database queries: 30
  • GZIP: Disabled
  • Server load: 2.72

Asterisk TDMoE

TDMoE


TDMoE is for a situation where you need TDM reliability without traditional TDM hardware.

Most modern computer people naturally think of taking digital voice and dividing it into packets to be sent over a network. Telephony people didn't do it that way for a number of reasons (latency, virtual circuit guarantees, etc). Instead, they invented TDM (Time Division Multiplexing).

Network packets can transfer data very flexibly because each stream is broken into small chunks that each get sent with their own header describing their contents. Telephony people didn't like this because:

  • Packets can be out of order
  • More space for data is wasted by headers
  • There is no guarantee that every channel will be sent reliably.

TDM still takes the digital data in chunks, but they are spaced out with a very tiny header (really only there to mark the beginning of the packets) and then the channels data is concatenated in a specific order. It's called TDM, because the channels are differentiated not by some header bits, but by when they come over the wire (that is, the signal is multiplexed by dividing up the signal in increments of time). This is roughly what happens on a T1. This seemed much more natural to them because it kept everything really simple and still preserved the idea of a circuit in that digital lines were still broken into a certain number of "channels" that can be "switched" much like a physical phone line. This was also done during an age before packet networks had proven themselves and its still useful today when a synchronous serial links needs to be cleanly divided in terms of usage.

TDMoE is useful because it allows the above familiarity, flexibility, and reliability of TDM but over inexpensive Ethernet instead of T1s or E1s.

The easiest way to picture its use is to envision the scenario of connecting two departmental PBXs. Often, in larger businesses, multiple PBXs are needed for different departments. It is not desirable to have them call each other via outside phone lines. With traditional equipment, someone might run a 25-pair trunk or T1 line between them. TDMoE emulates a T1, but wraps the T1-encoded data in a small header inside of an Ethernet frame. This permits just hooking them up to the same switch.

Note that this does NOT allow routing the data over the internet, it only functions on a single Ethernet segment.

Once the TDMoE link is up, Asterisk just sees 24-lines that appear to be a T1 instead of having to deal with all of the complexities of VoIP. This is useful, since probably 75% of the utility of VoIP is really just the fact that it can run over a network. It's also handy because it unifies the flexibility and cost-savings of a Ethernet with the telephony-friendly aspects of a T1 (alarm codes, bundling trunks, channelization).

TDMoE Mini-HOWTO

January 16, 2002 - <wasim@convergence.com.pk>

For those of us wishing to explore Asterisk further, there is this little TDMoE thing, which Mark was kind enough to explain how to configure on the one condition that we write it up for future record...

To use TDMoE you MUST have a zaptel interface configured somewhere on the network. It can be any zaptel interface, doesn't have to be a E400P, an X100P will do. Why? Timing. Samples. Something like that. Just do it.
See Asterisk timer

The configuration to define a dynamic span (TDMoX) basically entails FOUR parameters. Look at the sample config from zaptel. Its got an example in it, ala:

 # Next come the dynamic span definitions, in the form:
 # dynamic=<driver>,<address>,<numchans>,<timing>
 #
 # Where <driver> is the name of the driver (e.g. eth), <address> is the
 # driver specific address (like a MAC for eth), <numchans> is the number
 # of channels, and <timing> is a timing priority, like for a normal span.
 # use "0" to not use this as a timing source, or prioritize them as
 # primary, secondard, etc.  Note that you MUST have a REAL zaptel device
 # if you are not using external timing.
 #
 # dynamic=eth,eth0/00:02:b3:35:43:9c,24,0

  1. ) First you define the driver
  2. ) Second is the driver dependent address (REMOTE nic mac address)
  3. ) Third is the number of channels to be configured
  4. ) And, lastly, what sort of timing to provide

Timing Notes: 0 for no timing, 1 for primary, 2 for secondary, the difference is that it uses the primary to turn the zaptel gears unless it's in alarm, in which case it will take from the secondary and so on.

  • The driver is generally "eth" since currently we don't have any other TDMoX drivers, although FireWire would be very very nice. kram
  • The address is <eth interface>/<macaddress>/subaddr: The sub address is optional, and allows you to define more than one span on a single eth interface / macaddress pair

By configuring this, you end up with a new span, similar to the T1/E1 spans configured for the E/Tx00P cards. Access to the channels configured above is via /etc/zaptel.conf and /etc/asterisk/zapata.conf.

You can configure signalling and all just as though they were T1's or E1's, so you can run RBS or you can run PRI or whatever, they even generate RED and YELLOW alarm just like real T1's and E1's. We're still debating whether you can run ccs on it.
 
You do NOT need to configure a specific span=blah,blah in zaptel.conf for this, the dynamic span will take care of that for you.

Remember that TDMoE works at the ethernet layer, all you need to configure is MAC addresses and ethernet interfaces.... so in theory you could TDMoE over 802.11 (low-cost last mile) or cipe (encrypted PRI), the possibilites are limitless (well as limitless as csmacd can get)... IP does not come into play here at all...

SIMPLE 2 MINUTE EXAMPLE #105


so, if i have two * boxen running... lets say merry and pippin...

  • merry has an X100P in it and a nic, pippin just has a nic

merry zaptel.conf:


 fxsls=1 # this be the FXO
 dynamic=eth,eth0/00:D0:B7:89:E3:86,30,0 # put the mac of pippin here
 e&m=2-31 # you can use ANY signalling

pippin zaptel.conf:



  dynamic=eth,eth0/00:50:FC:65:33:A1,30,1 # note the timing "1", merry's mac
  e&m=1-30 # same signalling as merry 


from this point on its like any of the friendly zaptel channels we're already used to....

merry zapata.conf


 signalling=em
 channel=>2-31

pippin zapata.conf


 signalling=em
 channel=>1-30

load the appropriate modules, ztcfg on merry, zttool, you should have RED in the alarms.... and a dynamic span configured (not up, but configured)

do the same on pippin, bingo, the alarms should turn to OK, and you have the zap channels available for use....

 [root@pippin ~]$ lsmod
 Module                  Size  Used by    Tainted: P
 ztd-eth                 4032   0  (autoclean) (unused)
 ztdynamic               8544  30  (autoclean) ztd-eth
 zaptel                177088  60  ztdynamic
 ppp_generic            27392   0  zaptel
 slhc                    6844   0  ppp_generic

This listing is with asterisk running, and zapata using the channels. If you got this far, you're good to go.

Enjoy... and mail any samples, suggestions, improvements... always welcome

Hail * !

Todo: multiple ethernet cards (local and remote), other signalling
examples, dummy eth driver to loopback test, caveats, benefits of TDMoE,
comparision of various signalling, cook dinner (Solo: Whos cooking dinner you or asterisk :P )


Written by wasim

Sample configs for setting up TDMoE between 2 servers without TDM hardware, using ztdummy

I figured this working combo out while trying to do 4 x SPANS of T1 traffic between two Asterisk boxes. One was running Debian Sarge (2.6.8) and the other FC4 (2.6.11)
The key is to setup one box as timing source and load ztdummy and configure the other asterisk server as timing slave.
Sample configs follow;

Asterisk-One (with ztdummy)
dynamic=eth,eth0/00:XX:XX:XX:XX:XX/0,24,0
dynamic=eth,eth0/00:XX:XX:XX:XX:XX/1,24,0
dynamic=eth,eth0/00:XX:XX:XX:XX:XX/2,24,0
dynamic=eth,eth0/00:XX:XX:XX:XX:XX/3,24,0

Load zaptel modules and parse zaptel.conf in the following order;
  1. modprobe zaptel
  2. ztcfg (you may have to do this twice)
  3. load ztdummy

Asterisk-Two (no ztdummy)
dynamic=eth,eth0/00:XX:XX:XX:XX:XX/0,24,1
dynamic=eth,eth0/00:XX:XX:XX:XX:XX/1,24,2
dynamic=eth,eth0/00:XX:XX:XX:XX:XX/2,24,3
dynamic=eth,eth0/00:XX:XX:XX:XX:XX/3,24,4

Load only the following;
  1. modprobe zaptel
  2. ztcfg (you may have to do this twice)

All other configs in zaptel.conf/zapata.conf follow the normal rules as with regular TDM hardware.




TDMoE and Subaddress field to create multiple dynamic spans

A little known option in TDMoE is the subaddress field which allows us to specify multiple spans just like TDM cards (ex. Quad T1/E1) and specify the number of channels for each:
Breakdown is as follows: dynamic=<driver>,<driver interface>,<mac address of opposite machine>/<sub address>,<numchans>,<timing>
Sample config:

dynamic=eth,eth0/00:D0:B7:89:E3:86/0,24,1
dynamic=eth,eth0/00:D0:B7:89:E3:86/1,24,2
dynamic=eth,eth0/00:D0:B7:89:E3:86/2,24,3
dynamic=eth,eth0/00:D0:B7:89:E3:86/3,24,4

This will create 4 spans listening on eth0 to destination mac address of 00:D0:B7:89:E3:86, 24 channels each with timing of 1,2,3,4 respectively.
Additionally, you may build on the above config with more spans by simply repeating the same pattern:

dynamic=eth,eth0/00:D0:B7:89:E3:86/0,24,1
dynamic=eth,eth0/00:D0:B7:89:E3:86/1,24,2
dynamic=eth,eth0/00:D0:B7:89:E3:86/2,24,3
dynamic=eth,eth0/00:D0:B7:89:E3:86/3,24,4
dynamic=eth,eth0/00:D0:B7:89:E3:86/4,24,5
dynamic=eth,eth0/00:D0:B7:89:E3:86/5,24,6
dynamic=eth,eth0/00:D0:B7:89:E3:86/6,24,7
dynamic=eth,eth0/00:D0:B7:89:E3:86/7,24,8

With this you have created the equivalent of 8 T1 spans.
Also, you should be able to use ztdummy as a timing device provided it is running on both boxes.

TDMoE is a solid/reliable mechanism for trunking Asterisk together or to emulate T1/E1 connectivity




Created by oej, Last modification by subcom on Tue 26 of Sep, 2006 [01:52 UTC]

Comments Filter

TDMoE Timing Requires Zaptel -Newsgroup article reference-

by Mitchell S. Sharp on Friday 09 of June, 2006 [05:35:09 UTC]
Here's a link to a news posting regarding the use of ztdummy as a timing source for TDMoE:

http://lists.digium.com/pipermail/asterisk-dev/2006-February/018951.html

Relevant excerpt:

As the one who added 2.6 RTC support to ztdummy, I'm qualified to comment!
The primary reason for ztdummy is to support SIP, IAX and MeetMe in a
system with no Zaptel cards. It is quite adequate for that, although
there is a patch on the bugtracker that aims to address a perceived
weakness in it.

However, I don't think ztdummy as it stands is quite accurate enough
for governing TDMoE, because it doesn't maintain a 1ms spacing. Since
the RTC can only do power-of-2 subdivisions of a second, it is set to
1/1024 sec (0.9765625ms), but then 3 interrupts out of every 128 are
skipped (evenly spaced) to give an average of 1000 per second. This
is ok for VoIP with a 20ms or 30ms frame size, but not for TDMoE with
a packet every 1ms. I would probably try making ztdummy use 4096 RTC
interrupts per second and skip 3096 of them. This would make the
interval between two consecutive packets either 0.9765625ms or
1.220703125ms.

by Mikhail on Friday 14 of April, 2006 [06:42:20 UTC]
The problem has not been solved yet in official drivers, probably intentionally, but we've ran successfully TDMoE with Fabio Ferrari's patch on zaptel-1.2.5. Big thanks to Fabio Ferrari :)

TDMoE 2.6.x Badness Solved

by Fabio Ferrari on Thursday 10 of November, 2005 [00:36:46 UTC]
Here is a patch for the zaptel drivers:

http://permalink.gmane.org/gmane.comp.telephony.pbx.asterisk.devel/14061

by Franz Wu on Monday 24 of October, 2005 [17:52:05 UTC]
Yesterday I contacted Digium via email. I told them I have problem with using TE110P and TDMoE at the same time. kernel dumps lots of garbage on console complaining about irq and hangs. And Digium replied with saying:

TDMoE is not supported freely by Digium.

Of course, I replied again:

I think it's not about support for TDMoE. Instead, it's about driver for TE110P.
This particular driver makes Linux 2.6 kernel hang when enabling one feature of a software, which the vendor claims FULLY SUPPORTED BY ITS HARDWARE.

This bug is reported many times in the mailing list.

And all I ask is please fix your driver, not your technical staff's helping
setting up. Or did you mistake, this requires special set-ups?

So I ask here. If anybody know of this?

TDMoE 2.6.x Issues Persist

by subcom on Wednesday 19 of October, 2005 [11:07:37 UTC]
According to the Digium bug report this is a " Please pursue this issue through Digium Technical Support. "
I'm still seeing this 'kernel/softirq.c badness' issue on newer 2.6 kernels, particularly Redhat enterprise and it's variants such as FC 4, CentOS 4.1.
Anybody know a work-around? Thanks.

TDMoE 2.6.x Issues Persist

by subcom on Wednesday 19 of October, 2005 [11:04:49 UTC]
According to the Digium bug report this is a " Please pursue this issue through Digium Technical Support. "
I'm still seeing this 'kernel/softirq.c badness' issue on newer 2.6 kernels, particularly Redhat enterprise and it's variants such as FC 4, CentOS 4.1.
Anybody know a work-around? Thanks.

by jdbalogh on Sunday 16 of October, 2005 [02:47:10 UTC]

TDMoE 2.6 kernel issue resolved

by jdbalogh on Sunday 16 of October, 2005 [02:45:07 UTC]
According to [http://bugs.digium.com/view.php?id=5126] bug ID 0005126] (kernel/softirq.c badness) was fixed on Sept. 5, 2005 in CVS HEAD dated 5.9.2005.

Problems with 2.6 kernels

by helo on Monday 28 of February, 2005 [04:59:58 UTC]
There are reported problems with 2.6 kernels. Google "tdmoe 2.6" for more information.

Bartek Bulzak

Please update this page with new information, just login and click on the "Edit" or "Add Comment" button above. Get a free login here: Register Thanks! - support@voip-info.org

Page Changes | Comments

Sponsored by:

Terms of Service Privacy Policy
© 2003-2007 Arte Marketing, Inc.

Powered by bitweaver