From VoiSmart Open Source Wiki

Jump to: navigation, search



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 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


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 ( 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 is correctly loaded on Asterisk's startup.

How do I obtain an overview of the modules' status?

*CLI> show vgsm modules
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
  Operator Selection: Automatic
  Current network: 22201 (Telecom Italia Mobile - Italy - GSM 900/1800)

Serving cell
  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)
  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

  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:

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 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 by adding a load => in modules.conf configuration file (before any load => or load => 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.

Personal tools