IAD 3221 in modem mode – no Internet during phone calls

The article is concerning a device specifically used with Germany’s network provider “Alice” (now O2/Alice), called “Alice IAD 3221”.

The problem

A (really) small site with a VPN connection to the central office reported problems with their Internet connection: Whenever a phone call was made, no new sessions (ssh to central server through VPN) could be established, web pages wouldn’t load.

The setup

That site in question is connected to the world via O2/Alice on an NGN line (“next-generation network”, where voice and Internet go through a single DSL line via pure IP). The provider box (“IAD 3221”, build by Spairon) contains a VoIP-to-analog converter plus “DSL modem” and optional router pus Ethernet switch).

The provider box wasn’t configured as a router, leaving it as a bridge to the separate VPN router. The “phone” part of the IAD was activated, an analog phone attached.

Trouble-shooting

This setup ran trouble-free for about half a year, but then the problems somehow manifested. During a stay at the location I could trouble-shoot the networking devices and indeed, as soon as the analog phone had established a call, the Internet connecting was majorly degraded. Irritatingly, while ssh, http and anything else using TCP didn’t work at all, ICMP requests went through just fine – I could “ping” remote systems, but got no ssh nor http connection. As soon as the call was over, the ssh calls came back alive and finished their connect.

A quick check on the Internet gave hints about drops in line quality, where the phone call would use up most of the bandwidth – but the Internet connection was rather quick, there ought to be plenty of room for a VoIP call in parallel. So I decided to give the support line a call (which in itself would justify an article – I won’t elaborate on getting the correct number and getting through to a person, since that’s no technological problem 😉 ), where a friendly technician made me configure the IAD 3221 as a modem and gave proof that the problem wouldn’t exist then. Fine – but now our router won’t work… at least I had proof that the DSL line itself is ok.

I’ve found no documented way to un-set the router mode, short of resetting the device to factory defaults. Luckily, in this case, all that was required to reconfigure was the PIN to re-register the VoIP part of the device.

Of course, the problem still persisted.

Further tracing only revealed excessive “Async event (0x20) timer epxired” output from “ip xfrm monitor” on the VPN router, rather than the usual “Async event (0x10) replay update” overhead.

The solution

Then I came across the ATM mode settings for the IAD 3221 (reachable via i.e. http://192.168.1.1/web.cgi?controller=Internet&action=IndexAccessMode, once you’re logged in to the
device).

A word of warning: Changing any of those settings can seriously damage your connections – you might find yourself doing a factory reset plus a full reconfiguration of the IAD to recover!

Well, in our case, it was set to “Router (1VC), Voice over PPPoE”. I changed this to “Modem (1VC), Voice over PPPoE” and immediately, the problems were gone.

I don’t know what changed in the first place, to cause the problems. Whether that setting got somehow unset or some new firmware got installed via the provider path (and the previous version worked without changing that Modem/Router setting), I cannot tell. Just for reference: The IAD now reports a firmware version “2.21-2.49.6b”.

A short summary for our German readers

Ein als Modem genutztes IAD 3221 beeinträchtigte die Internet-Verbindungen des externen Router immer dann, wenn über den analogen Telefonie-Anschluss das IAD telefoniert wurde. Ein “factory reset” des IAD brachte keine Abhilfe, erst die Konfiguration des Modus “Modem (1VC)…” anstelle von “Router (1VC)…” ermöglichte die Internet-Nutzung auch während telefoniert wird.

Posted in Uncategorized | Tagged , , | 2 Comments

Sending fax transmissions via LibreOffice

As we were upgrading a Linux fax server machine, we noticed that sending facsimiles directly from LibreOffice wasn’t available for the client machines. But unlike with earlier versions of the Office suites, this time it seemed more complicated to get things up & running.

The requirements

The list of requirements isn’t too long:

  • As quite often within these articles, this again is about Linux clients – OpenSUSE 12.1 64bit, running inside a Xen VM (although that doesn’t matter at all ;)). LibreOffice is at the 3.5.4 level, which is what is coming with the distribution.
  • It’s a corporate setup, the users can log in to any client machine and will have access to their personal profile. Their e-mail address is not “username@clientmachine” – “username@domain.com” seems to work, but exceptions were possible, as always.
  • Users are to be notified via email about retransmission attempts as well as successful transmissions.
  • There’s a single central Hylafax server, to be used by everyone.
  • Facsimiles shouldn’t use Hylafax-generated cover pages

Creating the Fax “target”

There’s no default “fax” entry in the LibreOffice menues. The usual way to handle this is by adding a “virtual printer” by invoking a special administration program that comes with LibreOffice.

Usually, one would add a single printer definition for all users on a machine. Unfortunately, this was no option in our case, as we had no way to automatically detect the e-mail address of the current user. (Wouldn’t it be nice if LibeOffice would make the user’s e-mail address available during its command substition, like “NUMBER” or the PostScript file name (“TMP”)?).

So as a user, run the “spadmin” command (in our case found as “/usr/lib64/libreoffice/program/spadmin”) and add a new (fax) printer. The command line we used for the printing program can be seen in the configuration file created by “spadmin”, found in the user’s home directory (“~/.config/libreoffice/3-suse/user/psprint/psprint.conf”):

[__Global_Printer_Defaults__]
DisableCUPS=false

[HylaFax]
Printer=SGENPRT/HylaFax
DefaultPrinter=0
Location=server room
Comment=HylaFAX server
Command=/usr/bin/sendfax -h faxserver.client.com -f "Our User <user@client.com>" -n -R -s a4 -d "(PHONE)" (TMP)
QuickCommand=
Features=fax=
Copies=1
Orientation=Portrait
PSLevel=0
PDFDevice=0
ColorDevice=0
ColorDepth=24
MarginAdjust=0,0,0,0
PPD_PageSize=A4
PerformFontSubstitution=false
SubstFont_Helmet=Helvetica
SubstFont_Thorndale=Times
SubstFont_Arial=Helvetica
SubstFont_Times New Roman=Times
SubstFont_Timmons=Times
SubstFont_Albany=Helvetica
SubstFont_Courier New=Courier
SubstFont_Cumberland=Courier

The string “(PHONE)” will be replaced by the phone number that can be entered after “printing” your document to the “fax printer”. “(TMP)” will be replaced by the name of a temporary file generated by LibreOffice, containing the document to be faxed.

Please note the setting “PDFDevice=0” – when just adding the printer, this would be set to “1”, so you either change that within “spadmin” (by selecting and changing the newly created “printer”, within its device settings altering “printer language” from “PDF” to Postscript) or by manually editing the created configuration file.

Weren’t it for the e-mail notifications, we could have created a common printer definition for all users by invoking “spadmin” as user “root”. The corresponding configuration file would have been “/usr/lib64/libreoffice/share/psprint/psprint.conf” and a possible command line might have been “/usr/bin/sendfax -h faxserver.client.com -n -N -s a4 -d “(PHONE)” (TMP)”.

Some difficulties

When we first created the fax printer and tried to “print” a test facsimile, we saw no means of entering the destination number. Granted, the usual entry popup is quite small and can go by unnoticed easily – but no matter how close we looked, there was no such window ;).

This was caused by a wrong default setting for the “language” of the new printer – when set to “PDF”, you get no window, but when set to “PostScript”, all is well.

The setting can be changed via “spadmin”, in “spadmin.conf” (both described above) or with each print job in the printer device settings.

Sending the document

It’s as easy a printing – actually, you *do* print the document to the “fax printer”. All you have to do on top is to specify the destination number:

  • print the document
  • while the “printing page x of y” message box is visible, another popup will allow you to enter the destination number in any format understood by your fax server
  • done.

The nifties

You can customize the LibreOffice menues – i.e., you can add a “print to standard fax” entry to the “File” – “Send” menu:

  • Extras – Customize tool bar
  • select the menu, i.e. “File | Send”
  • Press the “Add” button to add an entry
  • Select “document” in the left list
  • select “Send default fax” in the right list and add that entry

In addition, you need to set your new fax printer as the default fax entry in Extras – Options – LibreOffice Writer – Printers.

That’s all – now you can simply send the document per fax by selecting “File – Send – Send to default fax” 🙂

Posted in Linux | Tagged , | 3 Comments

openSuSE 12.1, VoIP via Ekiga and a Bluetooth headset

Amongst many other things, we’re thinking about a video phone/conferencing solution for our traveling users. The project hasn’t had too much attention in the last months, but received much support lately, leading to both progress and demand.

Expectedly, we’re running in all type of problems, mostly caused in front of the keyboard, but sometimes due to bugs or limitations of the components we try to use. And that’s were this blog enters the game: Whenever we master a problem or solve some situation, you’ll get to read another article ;).

The intended design

As we are in an early stage, these are only basic ideas that we have not yet fully verified – and are only mentioned to give you a general idea of what I’m talking about:

  • We want to keep our communications private and protected, so we currently plan to give access to our “road warriors” via VPN, instead of making the central server accessible via Internet.
  • Asterisk, which we’re using as an internal service to our VoIP phones since almost forever, will be used to interconnect all clients and to provide some video conferencing solution, too.
  • Our clients will be mostly Linux-based. This doesn’t rule out “Microsoft Windows” systems (there are many VoIP solutions for those and other systems), it’s just… we don’t have many of those 😉
  • The users are to be equipped with Bluetooth headsets (or cable-based solutions via analog or USB audio, if they prefer), and we want support for that even within our virtual machines: We’re using passively-cooled PCs as “extended X-stations”, providing all I/O (keyboard, video, mouse, audio, USB) for our server-hosted “desktop VMs”.

Very first step

For a starter, we’ve set up an existing “Netbook computer” (an older EeePC, equipped with in-system Bluetooth and webcam) with the latest version of openSuSE (12.2), including KDE 4.8.5 and the software VoIP-phone Ekiga (version 3.3.2). Add a Bluetooth headset (Samsung WEP450) and you get what we had in front of us.

(Yes, we have other systems available, too – at least one which could be used as a second peer to test the video connections ;). Assume these to have similar software setups, just for simplicity’s sake.)

Getting Ekiga to log in to our Asterisk server was a no-brainer, and  running video calls was easy, too. (Side note: This is one of the few clients I dare to say this about… unlike Linphone)

PulseAudio trouble

The real trouble started when we tried to use the Bluetooth headset. With openSuSE 12.1, this was a simple “pair & use” action, but with 12.2, this took a lot of searching on the net.

One general problem is the PulseAudio configuration, or probably lack thereof. As we noticed after turning many stones, there are entries in the syslog indicating that PulseAudio segfaults as soon as the headset has connected:

kernel: [  144.558576] pulseaudio[2025]: segfault at 8000000 ip b70b16a6 sp bfe605ac error 4 in libc-2.15.so[b6f6e000+19f000]

The rescue…

When you know the trick, it’s easy to fix. But setting up audio is a bit complex with Linux, so it took some time and searching to spot the following solution from RedHat’s Bugzilla:

create /etc/bluetooth/audio.conf containing the lines

[General]
Disable=Media
Enable=Source,Sink,Gateway,Control,Socket

When we created that file on our openSuSE 12.2 system, we finally were able to see and select the entry in KDE’s “systems settings” – “Multimedia” – Phonon – “device priority”. We moved it to the top of the list for both input and output.

Within Ekiga, we went to the audio settings and selected “PTLIB/ALSA” both for audio input and output (but not for the ring tone) – and were operational.

…at least for now.

Unfortunately, after several successful calls and plenty of disconnects of the headset because the headset got carried out of the office, something broke and the Phonon device selection page in KDE’s Multimedia settings left us with a simple “PulseAudio” entry, instead of the earlier list of connected devices. But I’ll leave that to another blog article.

Posted in Linux, Video conferencing | Tagged , , | Leave a comment