GSM
Overview
GSM (Global System for Mobile Communications, originally Groupe Spécial Mobile), is a standard developed by the European Telecommunications Standards Institute (ETSI) to describe protocols for second generation (2G) digital cellular networks used by mobile phones. It is the de facto global standard for mobile communications with over 90% market share, and is available in over 219 countries and territories.
The GSM standard was developed as a replacement for first generation (1G) analog cellular networks, and originally described a digital, circuit-switched network optimized for full duplex voice telephony. This was expanded over time to include data communications, first by circuit-switched transport, then packet data transport via GPRS (General Packet Radio Services) and EDGE (Enhanced Data rates for GSM Evolution or EGPRS).
Subsequently, the 3GPP developed third generation (3G) UMTS standards followed by fourth generation (4G) LTE Advanced standards, which are not part of the ETSI GSM standard.
"GSM" is a trademark owned by the GSM Association. It may also refer to the initially most common voice codec used, Full Rate.
Sangoma SDK allows us to use this technology using Sangoma GSM card (W400).
Sangoma SDK allows a user to execute GSM commands like:
Place GSM Call
Send SMS
View GSM port statistics and status
Â
Operation
One can perform following gsm operations using Sangoma SDK:
Sample GSM application mainly monitors events received on span configured by user and take appropriate action as shown in the diagram below:
Â
 Once UP/START event is received this application mainly answer the call and launch a media thread that will perform I/O operation.
 NOTE: Media thread mainly read raw data from the channel on which call is being received and write the same on to the channel for transmitting to other end.
Application also provides user with a menu in order to perform following operations:
Place a GSM call.
Send SMS.
View GSM port statistics and status.
Exit from application.
Â
Build and Run sample GSM application
  For WINDOWS
Change directory to applications\sample_gsm\sample_gsm\.
Open sample_gsm 2010 Visual Studio Solution File.
Run:Â Rebuild Project
Note do not try to run gsm application from Visual Studio
It needs a console.
Exe file is located:Â Debug\sample_gsm.exe
Open cmd shell in Administrator mode.
Run:Â applications\sample_gsm\sample_gsm\Debug\sample_gsm.exe
Â
  For LINUX
Change directory to applications/sample_gsm/
Run following commands:
./configure
make
./run_sample_gsm
Â
NOTE: For much information w.r.t. gsm application and its configuration please go through the README file as present in applications\sample_gsm\README.