VGSM FAQ
From VoiSmart Open Source Wiki
General
What is the difference between visdn and vstuff?
The development of vGSM and vDSP boards started during the development of vISDN. Since at that time much of the functionality needed for channel routing had already been implemented in vISDN, the support for this hardware was included in vISDN distribution.
The common code between vISDN and the other drivers has been separated and became an independent subsystem, called kstreamer.
The software distribution package has thus been named vSTUFF in order to better represent the architecture of several drivers and subsystems based on kstreamer.
What is kstreamer?
Kstreamer is a kernel subsystem whose purpose is to handle streams, channels and routing through hardware or software devices along with an application interface to control such architecture. It is the framework on which vISDN, vGSM and vDSP are all based.
Where do I find vSTUFF?
vSTUFF is available at the former vISDN distribution site.
Development snapshots are also available in the snapshots directory.
A Bazaar repository is also available at http://repo.visdn.org/ with an online browser.
How do I install vstuff?
Detailed instructions are available in the INSTALL file distributed in the package.
Which Linux kernels are supported?
At the time of this writing (2007-11-16), vstuff supports kernel from 2.6.9 to 2.6.23. Support for newer kernels may or may not require a new release depending on the modifications made to the API. An automated procedure compiles the code against all the supported kernels in order to spot API incompatibilities, but this is very far from being a comprehensive test.
Which Linux distributions are supported?
We actively develop our code on Ubuntu, SuSE, Fedora and CentOS. The code is as distribution-agnostic as possible but it is very hard to predict on which distribution it will work fine until you actually compile and test the code on it. Unfortunately, by involving hardware, an automated testing procedure is not easy to set up.
Asterisk driver
What versions of Asterisk are supported?
Normally I would say: "All the releases in the 1.2.x and 1.4.x trains". Unfortunately the nice guys at Digium decided it is okay to make incompatible API changes within the same minor release, so, at the time of this writing, the supported versions are:
1.2.0 to 1.2.7 1.2.10 to 1.2.18 1.2.0 to 1.4.2
1.2.8 and 1.2.9 are not supported due to this code being inserted in asterisk/version.h
#define ASTERISK_VERSION_NUM 010208
So, being 010208 an invalid octal constant, every attempt to use it to distinguish between versions results in a compilation error.
vgsm me show or any other vGSM-related command are not working. What can it be?
This means that the channel driver (chan_vgsm.so) has not been installed in the proper Aterisk's modules directory or the module has been deactivated in /etc/asterisk/modules.conf
Please check that chan_vgsm.so is correctly loaded on Asterisk's startup.
How do I obtain an overview of the modules' status?
*CLI> show vgsm modules tim : READY REGISTERED_HOME "I TIM" wind : READY REGISTERED_HOME "I WIND" vodafone : READY REGISTERED_HOME "vodafone IT" vodafone2 : READY REGISTERED_HOME "vodafone IT"
If any module is not in READY state, a reason leading to that state may be appended after the status name.
How do I obtain more details about a module?
Append the module name to the vgsm me show command:
*CLI> show vgsm modules tim ---- Module 'tim' ---- Device : /dev/vgsm_me0 Context: vgsm_tim_in RX-gain: 255 TX-gain: 255 Set clock: YES Power off on exit: YES Status: CLOSED Route to sim: default Reason: Error opening device: open(/dev/vgsm0): No such file or directory
The output shown above highlights that the device filename specified in vgsm.conf has not been found in /dev, thus, the module will remain in CLOSED state until the device file appears or vgsm.conf is changed and reloaded into Asterisk with vgsm reload.
Are there other informations available?
With help vgsm me show you will see a list of additional categories of informations:
*CLI> help vgsm me show
Usage: show vgsm mes [<me> [<category>]]
Display informations on vGSM MEs
<category> may be one of the following:
forwarding show current status of call forwarding
supplementary service
callwaiting show current status of call waiting
supplementary service
sim show informations related to the SIM card
inserted in <me>
network show informations regarding the GSM network
received by the me
statistics show call statistics: inbound/outbound
counters, release codes and duration
calls show active calls on selected me
details show detailed informations about me
For example vgsm me show <me> network has the following output:
*CLI> vgsm me show tim network Network: Operator Selection: Automatic Status: REGISTERED_HOME Current network: 22201 (Telecom Italia Mobile - Italy - GSM 900/1800) Serving cell MCC MNC LAC ID BSIC ARFCN RxLev 222 01 d6b1 1649 25 13 -95 dBm RxLev Sub: -19 dBm RxLev Full: -12 dBm RxQual: 0 (BER less than 0.1%) RxQual Sub: 7 (BER greater than 15%) RxQual Full: 0 (BER less than 0.1%) Timeslot: 0 TA: 3 RSSI: -93 dBm BER: 99 (N/A) Adjacent cells (6) # MCC MNC LAC ID BSIC ARFCN RxLev 1: 222 01 d6b1 1173 23 18 -98 dBm 2: 222 01 6181 9647 20 702 -88 dBm 3: 222 01 d6b1 9649 20 681 -98 dBm 4: 222 01 0000 1647 20 12 -99 dBm 5: 222 01 6181 1647 22 58 -99 dBm 6: 222 01 6181 9646 20 671 -101 dBm
Several informations are available from the SIM with vgsm me <me> sim
*CLI> vgsm me show vodafone2 sim SIM: Card ID: 8939100700003728495 IMSI: 222107300979691 PIN remaining attempts: 3 Services center: ISDN telephony/International/+393492000200 Operator name: Vodafone Phase: 2 with profile download PLMN Selector: 20810 SFR - France 26202 Vodafone - Germany 21401 Vodafone - Spain 23415 Vodafone - Guernsey (UK) 22801 Swisscom - Switzerland 23207 Telering - Austria 60202 Vodafone - Egypt 20205 Vodafone - Greece 22601 MobiFon - Romania 20404 Vodafone - Netherlands 20601 Belgacom Mobile (Proximus) - Belgium 26001 Plus GSM (Polkomtel) - Poland 21670 Vodafone - Hungary 26801 Vodafone - Portugal 27201 Vodafone - Ireland 24008 Vodafone - Sweden 27602 Vodafone - Albania 27801 Vodafone - Malta 23801 TDC Mobil - Denmark 24405 Radiolinja - Finland 46000 China Telecom - China 53001 Vodafone - New Zealand 65501 Vodacom - South Africa 63902 Safaricom - Kenya 40441 RPG Cellular Services - India 54201 Vodafone - Fiji 41902 Mobile Telecom (K.S.C.) - Kuwait 24802 Radiolinja Eesti AS - Estonia 50503 Vodafone - Australia Forbidden PLMNs: 22201 Telecom Italia Mobile - Italy 22288 Wind Telecomunicazioni - Italy Preferred languages: italian english german french swedish
How do I place a call?
vGSM registers a VGSM technology that can be used by the Dial() application in Asterisk.
exten => _33.,1,Dial(VGSM/tim/${EXTEN})
How do I send an SMS?
Refer to VGSM SMS page for a description of the interfaces.
I receive a "undefined symbol: ks_conn" warning starting asterisk, should I worry?
In a word no, not much. Here is why:
The ks_conn symbol is provided by res_kstreamer.so module. Unfortunately Asterisk is not able to compute modules' dependencies and it thus unable to preload res_kstreamer before chan_vgsm and chan_visdn. Asterisk also does not load the res_* modules before the chan_* modules even if that would be a sensible workaround.
What is happening is that Asterisk is loading chan_vgsm and/or chan_visdn before res_kstreamer because they come before while listing files in modules/ and it complains. The symbol is however resolved immediately after and before it is used res_kstreamer should have completed its initialization.
To properly fix this situation you have to preload res_kstreamer.so by adding a load => res_kstreamer.so in modules.conf configuration file (before any load => chan_vgsm.so or load => chan_visdn.so if present).
I sometimes receive a "Serial lost synchronization in state <STATE>" notice under Asterisk, should I worry?
Siemens' GSM modules have some bug in properly locking unsolicited response codes, thus, when such violation is encountered the channel driver complains. However, the channel driver is also able to quickly recover from such situation. If the message persists it may indicate that the ME isn't responding and should be investigated.
I sometimes receive a "Unexpected response +CIEV: call,0 to AT^SLCC" error in Asterisk, should I worry?
See the previous answer.
Why does my ME remain in UNCONFIGURED state?
The ME remains in the UNCONFIGURED state if the configuration in vgsm.conf cannot be properly parsed. Please look at the Asterisk's initialization messages for errors describing the failure.
Should I worry about 'asterisk sets custom speed on vgsm2_mesim1. This is deprecated.' messages?
No, the ioctl(2) used to set custom speed is deprecated, but the non-deprecated method does not work.
Why does my ME remain READY but UNREGISTERED?
The most probable reason is that your ME can not communicate with the Base Station, are you sure you have the antennas connected to the SMA connector?
SIM servers
This section is still under development
Which vGSM cards support native interfacing to a SIM server?
Only the vGSM-II cards have the hardware support to be natively interfaced to a remote SIM server
What SIM servers are currently supported?
We are currently experimenting with Implementa's SIM servers with good results.
How does the SIM server interface work?
Once you route the GSM module's SIM interface to the respective internal vGSM SIM controller, the module will communicate with an emulated SIM card. The insertion signal will be controlled by the software and the software will be able to access the I/O, reset and supply lines state, thus, responding as a real SIM card would.
A SIM client application will access the SIM controller on the card and the SIM server in order to present the needed data to the GSM module, including the identification and authentication data present on the real SIM installed in the SIM server.

