oh, what nice day: the Junghanns.net quad GSM PCI arrived!

No, i'm not swimming in money, my company bought it, not me personally ;) It's ~ 2k EUR, a little expensive for a toy - but worth it's money in a production environment (or so i hope - time will tell).

The moment i heard the package arrived at the office, i went to the mobile phone store right around the corner of where i live and asked for a GSM antenna - ha, ha, like they sell those. "Damn!" i thought, knowing that running the device without an antenna will most likely not work, and may even break it. So i went to the office without a GSM antenna, and opened up the box:

Tadaa! 4 small, but sufficient antennas were included in the package! The card is robust and well-manufactured, the SIM card holders are on the back, the topmost one being connected to the topmost antenna connector, as can be seen in the jumper settings sheet.

For the ztgsm module to work, you'll need a bristuffed asterisk, forget about the stable 0.2 branch (it's asterisk 1.0, yuck!), get the latest version of 0.3 instead, it's asterisk and zaptel 1.2.6, so it's up-to-date. It's a little uncomfortable to be forced to switch to the bristuffed asterisk, but maybe the ztgsm driver will find it's way into mainline zaptel. Trying to use the ztgsm with mainline asterisk and zaptel failed for me because of a missing libgsm-like library inlcuded in bristuff... ztcfg already failed to load it's configuration.

once ./install.sh of bristuff finished, copy over the ztgsm/zaptel.conf.unoGSM, ztgsm/zaptel.conf.duoGSM or ztgsm/zaptel.conf.quadGSM to /etc/zaptel.conf (assuming you didn't already have device configs in there, then just append them, of course...), depending on which model you own. If you have multiple GSM card with only part of the sims installed, you don't need to alter the settings here, you can do that in zapata.conf, which is also located in ztgsm, again in the zapata.conf.unoGSM, zapata.conf.duoGSM and zapata.conf.quadGSM versions. Copy the according one to /etc/asterisk/zapata.conf (again, don't overwrite if you already configured a Zap device, stupid!) and edit the file. Enable as many sections as you have sim cards installed for (or less ;), assuming you installed them from slot A-D in row - I didn't test other configurations, it's pretty time-consuming un-screwing all the antennas to get the PCI card out again to swap sim cards, you know, and it's very dusty down there under my desk... oh well, back on topic. Make sure the pin codes are correct...

With /etc/zaptel.conf and /etc/asterisk/zapata.conf configured, it's time to modprobe ztgsm. this took about 30 - 40 seconds here...

ztgsm: iomem at d5204000 size 8192
ztgsm: ioport size 256
ztgsm: Junghanns.NET quadGSM card configured at io port a000 IRQ 17 io mem f8ae8000 HZ 250 CardID 0
ztgsm: Powering up all spans... done.
ztgsm: VERSION aa32
ztgsm: 1 multiGSM card(s) in this box, 4 GSM spans total.

the leds on the rear of the card finally light up and show some of their colors! then, ztcfg -v and asterisk -vvvvvvvc. If you entered a wrong PIN code in zapata.conf, you will pay for your education now. On the console you should note some debug messages about the GSM spans connecting to the network. If you now issue a Dial(Zap/(#channelr from zapata.conf)/012345) the device should call the phone nr.

In my case, though, it said it "unregistered from the network" instead, and i heard a blipblipblip sound on the snom phone i placed the call with - after call termination, the following error was displayed:

chan_zap.c: GSM: 1 !+CME ERROR: operation not allowed!

Oh jesus, i thought, how am i going to debug this? After some digging and googling for the CME Error codes, i found out that the answer is easy: screw out the card again, and insert the SIM card into a usual cellphone. voila - the card was not valid anymore, because someone at my company re-ordered the same card and didn't tell me. "Network registration failed" was what the Nokia cellphone told me after it accepted the PIN code. So i tried another SIM card, and dialing out and in worked!

Unfortunately it's not possible to suffix extensions to the telephone number on gsm calls, so it seems you'll always have to use either the "s" extension or the individual telephone number of the SIM card recieving the call on incoming calls in the from-gsm context (if you left the default in zapata.conf, that is).

I'm still a bit puzzled about how smsq, the queuing tool for app_sms works, but i'll figure that out once i have the correct SIM card.