\doxysection{Short Message Service (SMS)}
\label{group__sms}\index{Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ gsm0341.\+h}
\item 
file \textbf{ gsm0411\+\_\+smc.\+h}
\item 
file \textbf{ gsm0411\+\_\+smr.\+h}
\item 
file \textbf{ gsm0411\+\_\+utils.\+h}
\item 
file \textbf{ gsm0341.\+c}
\item 
file \textbf{ gsm0411\+\_\+smc.\+c}
\begin{DoxyCompactList}\small\item\em Point-\/to-\/\+Point (PP) Short Message Service (SMS) as per TS 04.\+11. \end{DoxyCompactList}\item 
file \textbf{ gsm0411\+\_\+smr.\+c}
\item 
file \textbf{ gsm0411\+\_\+utils.\+c}
\end{DoxyCompactItemize}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ gsm411\+\_\+smc\+\_\+inst}
\item 
struct \textbf{ gsm411\+\_\+smr\+\_\+inst}
\item 
struct \textbf{ smcdownstate}
\item 
struct \textbf{ smcdatastate}
\item 
struct \textbf{ smrdownstate}
\item 
struct \textbf{ smrdatastate}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+EST\+\_\+\+REQ}~0x310
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+EST\+\_\+\+IND}~0x312
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+EST\+\_\+\+CNF}~0x311
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+REQ}~0x320
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+IND}~0x322
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+REQ}~0x330
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+IND}~0x332
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+REQ}~0x340
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+IND}~0x342
\item 
\#define \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+ERR\+\_\+\+IND}~0x372
\item 
\#define \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+ABORT\+\_\+\+REQ}~0x101
\item 
\#define \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+DATA\+\_\+\+REQ}~0x102
\item 
\#define \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+DATA\+\_\+\+IND}~0x103
\item 
\#define \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+EST\+\_\+\+REQ}~0x104
\item 
\#define \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+EST\+\_\+\+IND}~0x105
\item 
\#define \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+ERROR\+\_\+\+IND}~0x106
\item 
\#define \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+REL\+\_\+\+REQ}~0x107
\item 
\#define \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+DATA\+\_\+\+REQ}~0x401
\item 
\#define \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+DATA\+\_\+\+IND}~0x402
\item 
\#define \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+MEM\+\_\+\+AVAIL\+\_\+\+REQ}~0x403
\item 
\#define \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+MEM\+\_\+\+AVAIL\+\_\+\+IND}~0x404
\item 
\#define \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+REPORT\+\_\+\+REQ}~0x405
\item 
\#define \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+REPORT\+\_\+\+IND}~0x406
\item 
\#define \textbf{ MAX\+\_\+\+SMS\+\_\+\+RETRY}~2
\item 
\#define \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}~\char`\"{}SMC(\%\char`\"{} PRIu64 \char`\"{}) \char`\"{}
\item 
\#define \textbf{ SMCDOWNSLLEN}~ (sizeof(\textbf{ smcdownstatelist}) / sizeof(struct \textbf{ smcdownstate}))
\item 
\#define \textbf{ SMCDATASLLEN}~ (sizeof(\textbf{ smcdatastatelist}) / sizeof(struct \textbf{ smcdatastate}))
\item 
\#define \textbf{ SMRDOWNSLLEN}~ (sizeof(\textbf{ smrdownstatelist}) / sizeof(struct \textbf{ smrdownstate}))
\item 
\#define \textbf{ SMRDATASLLEN}~ (sizeof(\textbf{ smrdatastatelist}) / sizeof(struct \textbf{ smrdatastate}))
\item 
\#define \textbf{ GSM411\+\_\+\+ALLOC\+\_\+\+SIZE}~1024
\item 
\#define \textbf{ GSM411\+\_\+\+ALLOC\+\_\+\+HEADROOM}~128
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ gsm341\+\_\+ms\+\_\+message} $\ast$ \textbf{ gsm0341\+\_\+build\+\_\+msg} (void $\ast$ctx, uint8\+\_\+t geo\+\_\+scope, uint8\+\_\+t msg\+\_\+code, uint8\+\_\+t update, uint16\+\_\+t \textbf{ msg\+\_\+id}, uint8\+\_\+t \textbf{ dcs}, uint8\+\_\+t page\+\_\+total, uint8\+\_\+t page\+\_\+cur, uint8\+\_\+t $\ast$\textbf{ data}, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Encode a 3GPP TS 03.\+41 SMS-\/\+CB message. \end{DoxyCompactList}\item 
void \textbf{ gsm411\+\_\+smc\+\_\+init} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, uint64\+\_\+t id, int \textbf{ network}, int($\ast$mn\+\_\+recv)(struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg}), int($\ast$mm\+\_\+send)(struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg}, int cp\+\_\+msg\+\_\+type))
\item 
void \textbf{ gsm411\+\_\+smc\+\_\+clear} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst)
\item 
int \textbf{ gsm411\+\_\+smc\+\_\+send} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
int \textbf{ gsm411\+\_\+smc\+\_\+recv} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg}, int cp\+\_\+msg\+\_\+type)
\item 
static const char $\ast$ \textbf{ gsm411\+\_\+cp\+\_\+state\+\_\+name} (enum \textbf{ gsm411\+\_\+cp\+\_\+state} cp\+\_\+state)
\item 
void \textbf{ gsm411\+\_\+smr\+\_\+init} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, uint64\+\_\+t id, int \textbf{ network}, int($\ast$rl\+\_\+recv)(struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg}), int($\ast$mn\+\_\+send)(struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg}))
\item 
void \textbf{ gsm411\+\_\+smr\+\_\+clear} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst)
\item 
int \textbf{ gsm411\+\_\+smr\+\_\+send} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
int \textbf{ gsm411\+\_\+smr\+\_\+recv} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static const char $\ast$ \textbf{ gsm411\+\_\+rp\+\_\+state\+\_\+name} (enum \textbf{ gsm411\+\_\+rp\+\_\+state} rp\+\_\+state)
\item 
uint8\+\_\+t \textbf{ gsm411\+\_\+bcdify} (uint8\+\_\+t value)
\begin{DoxyCompactList}\small\item\em Turn int into semi-\/octet representation\+: 98 =$>$ 0x89. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm411\+\_\+unbcdify} (uint8\+\_\+t value)
\begin{DoxyCompactList}\small\item\em Turn semi-\/octet representation into int\+: 0x89 =$>$ 98. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm411\+\_\+msgb\+\_\+alloc} (void)
\begin{DoxyCompactList}\small\item\em Allocate a message buffer for use as TS 04.\+11 message. \end{DoxyCompactList}\item 
void \textbf{ gsm340\+\_\+gen\+\_\+scts} (uint8\+\_\+t $\ast$scts, time\+\_\+t \textbf{ time})
\begin{DoxyCompactList}\small\item\em Generate 03.\+40 TP-\/\+SCTS. \end{DoxyCompactList}\item 
time\+\_\+t \textbf{ gsm340\+\_\+scts} (uint8\+\_\+t $\ast$scts)
\begin{DoxyCompactList}\small\item\em Decode 03.\+40 TP-\/\+SCTS (into utc/gmt timestamp) \end{DoxyCompactList}\item 
unsigned long \textbf{ gsm340\+\_\+validity\+\_\+period} (uint8\+\_\+t sms\+\_\+vpf, uint8\+\_\+t $\ast$sms\+\_\+vp)
\begin{DoxyCompactList}\small\item\em decode validity period. \end{DoxyCompactList}\item 
enum \textbf{ sms\+\_\+alphabet} \textbf{ gsm338\+\_\+get\+\_\+sms\+\_\+alphabet} (uint8\+\_\+t \textbf{ dcs})
\begin{DoxyCompactList}\small\item\em determine coding alphabet dependent on GSM 03.\+38 Section 4 DCS \end{DoxyCompactList}\item 
int \textbf{ gsm340\+\_\+gen\+\_\+oa} (uint8\+\_\+t $\ast$oa, unsigned int oa\+\_\+len, uint8\+\_\+t \textbf{ type}, uint8\+\_\+t plan, const char $\ast$number)
\begin{DoxyCompactList}\small\item\em generate a TPDU address field compliant with 03.\+40 sec. \end{DoxyCompactList}\item 
int \textbf{ gsm411\+\_\+push\+\_\+rp\+\_\+header} (struct \textbf{ msgb} $\ast$\textbf{ msg}, uint8\+\_\+t rp\+\_\+msg\+\_\+type, uint8\+\_\+t rp\+\_\+msg\+\_\+ref)
\begin{DoxyCompactList}\small\item\em Prefix \textbf{ Message buffers} with a RP header. \end{DoxyCompactList}\item 
int \textbf{ gsm411\+\_\+push\+\_\+cp\+\_\+header} (struct \textbf{ msgb} $\ast$\textbf{ msg}, uint8\+\_\+t \textbf{ proto}, uint8\+\_\+t trans, uint8\+\_\+t \textbf{ msg\+\_\+type})
\begin{DoxyCompactList}\small\item\em Prefix \textbf{ Message buffers} with a 04.\+08/04.11 CP header. \end{DoxyCompactList}\item 
static void \textbf{ cp\+\_\+timer\+\_\+expired} (void $\ast$\textbf{ data})
\item 
static void \textbf{ new\+\_\+cp\+\_\+state} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, enum \textbf{ gsm411\+\_\+cp\+\_\+state} state)
\item 
static int \textbf{ gsm411\+\_\+tx\+\_\+cp\+\_\+error} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, uint8\+\_\+t \textbf{ cause})
\item 
static int \textbf{ gsm411\+\_\+mnsms\+\_\+est\+\_\+req} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mmsms\+\_\+send\+\_\+msg} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst)
\item 
static int \textbf{ gsm411\+\_\+mmsms\+\_\+est\+\_\+cnf} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+ack} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+data} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mnsms\+\_\+data\+\_\+req} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mnsms\+\_\+rel\+\_\+req} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+error} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mmsms\+\_\+rel\+\_\+ind} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mnsms\+\_\+abort\+\_\+req} (struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static void \textbf{ rp\+\_\+timer\+\_\+expired} (void $\ast$\textbf{ data})
\item 
static void \textbf{ new\+\_\+rp\+\_\+state} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, enum \textbf{ gsm411\+\_\+rp\+\_\+state} state)
\item 
static int \textbf{ gsm411\+\_\+rp\+\_\+sendmsg} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg}, uint8\+\_\+t rp\+\_\+msg\+\_\+type, uint8\+\_\+t rp\+\_\+msg\+\_\+ref, int mnsms\+\_\+msg\+\_\+type)
\item 
static int \textbf{ gsm411\+\_\+send\+\_\+rp\+\_\+error} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, uint8\+\_\+t \textbf{ msg\+\_\+ref}, uint8\+\_\+t \textbf{ cause})
\item 
static int \textbf{ gsm411\+\_\+send\+\_\+release} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst)
\item 
static int \textbf{ gsm411\+\_\+send\+\_\+abort} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst)
\item 
static int \textbf{ gsm411\+\_\+send\+\_\+report} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst)
\item 
static int \textbf{ gsm411\+\_\+rl\+\_\+data\+\_\+req} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+rl\+\_\+report\+\_\+req} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mnsms\+\_\+est\+\_\+ind} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mnsms\+\_\+data\+\_\+ind\+\_\+tx} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mnsms\+\_\+error\+\_\+ind\+\_\+tx} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ gsm411\+\_\+mnsms\+\_\+error\+\_\+ind\+\_\+rx} (struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static unsigned long \textbf{ gsm340\+\_\+vp\+\_\+default} (void)
\item 
static unsigned long \textbf{ gsm340\+\_\+vp\+\_\+relative} (uint8\+\_\+t $\ast$sms\+\_\+vp)
\item 
static unsigned long \textbf{ gsm340\+\_\+vp\+\_\+absolute} (uint8\+\_\+t $\ast$sms\+\_\+vp)
\item 
static unsigned long \textbf{ gsm340\+\_\+vp\+\_\+relative\+\_\+integer} (uint8\+\_\+t $\ast$sms\+\_\+vp)
\item 
static unsigned long \textbf{ gsm340\+\_\+vp\+\_\+relative\+\_\+semioctet} (uint8\+\_\+t $\ast$sms\+\_\+vp)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm411\+\_\+cp\+\_\+cause\+\_\+strs} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm411\+\_\+cp\+\_\+state\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm411\+\_\+rp\+\_\+cause\+\_\+strs} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm411\+\_\+rp\+\_\+state\+\_\+names} [$\,$]
\item 
const char $\ast$ \textbf{ smc\+\_\+state\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm411\+\_\+cp\+\_\+cause\+\_\+strs} [$\,$]
\item 
static const struct \textbf{ smcdownstate} \textbf{ smcdownstatelist} [$\,$]
\item 
static const struct \textbf{ smcdatastate} \textbf{ smcdatastatelist} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm411\+\_\+cp\+\_\+state\+\_\+names} [$\,$]
\item 
static const char $\ast$ \textbf{ smr\+\_\+state\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm411\+\_\+rp\+\_\+cause\+\_\+strs} [$\,$]
\item 
static const struct \textbf{ smrdownstate} \textbf{ smrdownstatelist} [$\,$]
\item 
static const struct \textbf{ smrdatastate} \textbf{ smrdatastatelist} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm411\+\_\+rp\+\_\+state\+\_\+names} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{group__sms_ga6cd9f811bc1b8176448b8c311a34b3a2}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_ALLOC\_HEADROOM@{GSM411\_ALLOC\_HEADROOM}}
\index{GSM411\_ALLOC\_HEADROOM@{GSM411\_ALLOC\_HEADROOM}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_ALLOC\_HEADROOM}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+ALLOC\+\_\+\+HEADROOM~128}

\mbox{\label{group__sms_ga9244da5aaad8ccb4f5895c7afa227e0e}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_ALLOC\_SIZE@{GSM411\_ALLOC\_SIZE}}
\index{GSM411\_ALLOC\_SIZE@{GSM411\_ALLOC\_SIZE}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_ALLOC\_SIZE}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+ALLOC\+\_\+\+SIZE~1024}

\mbox{\label{group__sms_gad4c88f6c0d2a1c96061b5f75ca41aa15}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_DATA\_IND@{GSM411\_MMSMS\_DATA\_IND}}
\index{GSM411\_MMSMS\_DATA\_IND@{GSM411\_MMSMS\_DATA\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_DATA\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+IND~0x332}

\mbox{\label{group__sms_ga738b3f7bc63806a203ebda8a6b4e0493}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_DATA\_REQ@{GSM411\_MMSMS\_DATA\_REQ}}
\index{GSM411\_MMSMS\_DATA\_REQ@{GSM411\_MMSMS\_DATA\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_DATA\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+REQ~0x330}

\mbox{\label{group__sms_ga88c751ded1b5248cdf5fde5b436c63d9}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_ERR\_IND@{GSM411\_MMSMS\_ERR\_IND}}
\index{GSM411\_MMSMS\_ERR\_IND@{GSM411\_MMSMS\_ERR\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_ERR\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+ERR\+\_\+\+IND~0x372}

\mbox{\label{group__sms_ga40f25bcb8282b928d2d7afdac837c7b6}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_EST\_CNF@{GSM411\_MMSMS\_EST\_CNF}}
\index{GSM411\_MMSMS\_EST\_CNF@{GSM411\_MMSMS\_EST\_CNF}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_EST\_CNF}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+EST\+\_\+\+CNF~0x311}

\mbox{\label{group__sms_ga44527ac3e453dcfe62cbc09f52608a91}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_EST\_IND@{GSM411\_MMSMS\_EST\_IND}}
\index{GSM411\_MMSMS\_EST\_IND@{GSM411\_MMSMS\_EST\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_EST\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+EST\+\_\+\+IND~0x312}

\mbox{\label{group__sms_ga281f02e11b0a24770da683a0dc0239f7}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_EST\_REQ@{GSM411\_MMSMS\_EST\_REQ}}
\index{GSM411\_MMSMS\_EST\_REQ@{GSM411\_MMSMS\_EST\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_EST\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+EST\+\_\+\+REQ~0x310}

\mbox{\label{group__sms_ga2000486804947469d29cbd453cb737bf}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_REL\_IND@{GSM411\_MMSMS\_REL\_IND}}
\index{GSM411\_MMSMS\_REL\_IND@{GSM411\_MMSMS\_REL\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_REL\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+IND~0x322}

\mbox{\label{group__sms_ga317ea16f47afaf72f0a84573690745d5}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_REL\_REQ@{GSM411\_MMSMS\_REL\_REQ}}
\index{GSM411\_MMSMS\_REL\_REQ@{GSM411\_MMSMS\_REL\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_REL\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+REQ~0x320}

\mbox{\label{group__sms_gaff28b3d8415ec08654da2fed1cf22bef}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_UNIT\_DATA\_IND@{GSM411\_MMSMS\_UNIT\_DATA\_IND}}
\index{GSM411\_MMSMS\_UNIT\_DATA\_IND@{GSM411\_MMSMS\_UNIT\_DATA\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_UNIT\_DATA\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+IND~0x342}

\mbox{\label{group__sms_gaf9549ef0541431efe86158afb7e4c426}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MMSMS\_UNIT\_DATA\_REQ@{GSM411\_MMSMS\_UNIT\_DATA\_REQ}}
\index{GSM411\_MMSMS\_UNIT\_DATA\_REQ@{GSM411\_MMSMS\_UNIT\_DATA\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MMSMS\_UNIT\_DATA\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MMSMS\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+REQ~0x340}

\mbox{\label{group__sms_ga8e25311263793644cadf74c7a8a1ebf4}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MNSMS\_ABORT\_REQ@{GSM411\_MNSMS\_ABORT\_REQ}}
\index{GSM411\_MNSMS\_ABORT\_REQ@{GSM411\_MNSMS\_ABORT\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MNSMS\_ABORT\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MNSMS\+\_\+\+ABORT\+\_\+\+REQ~0x101}

\mbox{\label{group__sms_ga4d70377e79960061d5b192ebe8ff3502}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MNSMS\_DATA\_IND@{GSM411\_MNSMS\_DATA\_IND}}
\index{GSM411\_MNSMS\_DATA\_IND@{GSM411\_MNSMS\_DATA\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MNSMS\_DATA\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MNSMS\+\_\+\+DATA\+\_\+\+IND~0x103}

\mbox{\label{group__sms_ga6dd518fcfee31c86266c438dbacb35e9}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MNSMS\_DATA\_REQ@{GSM411\_MNSMS\_DATA\_REQ}}
\index{GSM411\_MNSMS\_DATA\_REQ@{GSM411\_MNSMS\_DATA\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MNSMS\_DATA\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MNSMS\+\_\+\+DATA\+\_\+\+REQ~0x102}

\mbox{\label{group__sms_gada2fb33807ce79db2c59cf32fca05a42}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MNSMS\_ERROR\_IND@{GSM411\_MNSMS\_ERROR\_IND}}
\index{GSM411\_MNSMS\_ERROR\_IND@{GSM411\_MNSMS\_ERROR\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MNSMS\_ERROR\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MNSMS\+\_\+\+ERROR\+\_\+\+IND~0x106}

\mbox{\label{group__sms_ga99dae86872be62910843a6211d7c4be2}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MNSMS\_EST\_IND@{GSM411\_MNSMS\_EST\_IND}}
\index{GSM411\_MNSMS\_EST\_IND@{GSM411\_MNSMS\_EST\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MNSMS\_EST\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MNSMS\+\_\+\+EST\+\_\+\+IND~0x105}

\mbox{\label{group__sms_ga1213ad4e68618d71acbc3e051b42f6ac}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MNSMS\_EST\_REQ@{GSM411\_MNSMS\_EST\_REQ}}
\index{GSM411\_MNSMS\_EST\_REQ@{GSM411\_MNSMS\_EST\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MNSMS\_EST\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MNSMS\+\_\+\+EST\+\_\+\+REQ~0x104}

\mbox{\label{group__sms_gaeb2164690f8a9b004a4933868797a224}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_MNSMS\_REL\_REQ@{GSM411\_MNSMS\_REL\_REQ}}
\index{GSM411\_MNSMS\_REL\_REQ@{GSM411\_MNSMS\_REL\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_MNSMS\_REL\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+MNSMS\+\_\+\+REL\+\_\+\+REQ~0x107}

\mbox{\label{group__sms_ga6adc2c84c0f68316503f0f9cc760dc50}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_SM\_RL\_DATA\_IND@{GSM411\_SM\_RL\_DATA\_IND}}
\index{GSM411\_SM\_RL\_DATA\_IND@{GSM411\_SM\_RL\_DATA\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_SM\_RL\_DATA\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+DATA\+\_\+\+IND~0x402}

\mbox{\label{group__sms_gabc7c64ffaeaa1d359343e17b0110284d}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_SM\_RL\_DATA\_REQ@{GSM411\_SM\_RL\_DATA\_REQ}}
\index{GSM411\_SM\_RL\_DATA\_REQ@{GSM411\_SM\_RL\_DATA\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_SM\_RL\_DATA\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+DATA\+\_\+\+REQ~0x401}

\mbox{\label{group__sms_ga7003c2890a4c2512cb0131df531f1618}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_SM\_RL\_MEM\_AVAIL\_IND@{GSM411\_SM\_RL\_MEM\_AVAIL\_IND}}
\index{GSM411\_SM\_RL\_MEM\_AVAIL\_IND@{GSM411\_SM\_RL\_MEM\_AVAIL\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_SM\_RL\_MEM\_AVAIL\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+MEM\+\_\+\+AVAIL\+\_\+\+IND~0x404}

\mbox{\label{group__sms_ga705095349072a6bf79979cdb0b1bc076}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_SM\_RL\_MEM\_AVAIL\_REQ@{GSM411\_SM\_RL\_MEM\_AVAIL\_REQ}}
\index{GSM411\_SM\_RL\_MEM\_AVAIL\_REQ@{GSM411\_SM\_RL\_MEM\_AVAIL\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_SM\_RL\_MEM\_AVAIL\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+MEM\+\_\+\+AVAIL\+\_\+\+REQ~0x403}

\mbox{\label{group__sms_ga1364bd58ffeb0d5aaa603511281a80b1}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_SM\_RL\_REPORT\_IND@{GSM411\_SM\_RL\_REPORT\_IND}}
\index{GSM411\_SM\_RL\_REPORT\_IND@{GSM411\_SM\_RL\_REPORT\_IND}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_SM\_RL\_REPORT\_IND}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+REPORT\+\_\+\+IND~0x406}

\mbox{\label{group__sms_ga966091a7cdc3227191d5443d99eca712}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!GSM411\_SM\_RL\_REPORT\_REQ@{GSM411\_SM\_RL\_REPORT\_REQ}}
\index{GSM411\_SM\_RL\_REPORT\_REQ@{GSM411\_SM\_RL\_REPORT\_REQ}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{GSM411\_SM\_RL\_REPORT\_REQ}
{\footnotesize\ttfamily \#define GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+REPORT\+\_\+\+REQ~0x405}

\mbox{\label{group__sms_gadd07af4d51806ac19bbd6740f88a0d80}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!MAX\_SMS\_RETRY@{MAX\_SMS\_RETRY}}
\index{MAX\_SMS\_RETRY@{MAX\_SMS\_RETRY}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{MAX\_SMS\_RETRY}
{\footnotesize\ttfamily \#define MAX\+\_\+\+SMS\+\_\+\+RETRY~2}

\mbox{\label{group__sms_gac2d829ba0e845d42fedadcb87660f7de}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!SMC\_LOG\_STR@{SMC\_LOG\_STR}}
\index{SMC\_LOG\_STR@{SMC\_LOG\_STR}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{SMC\_LOG\_STR}
{\footnotesize\ttfamily \#define SMC\+\_\+\+LOG\+\_\+\+STR~\char`\"{}SMC(\%\char`\"{} PRIu64 \char`\"{}) \char`\"{}}

\mbox{\label{group__sms_ga86e8691d261412e77b1cb78f6e9769b1}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!SMCDATASLLEN@{SMCDATASLLEN}}
\index{SMCDATASLLEN@{SMCDATASLLEN}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{SMCDATASLLEN}
{\footnotesize\ttfamily \#define SMCDATASLLEN~ (sizeof(\textbf{ smcdatastatelist}) / sizeof(struct \textbf{ smcdatastate}))}

\mbox{\label{group__sms_gae86578f395721734a5f4e38b0b5cd6fc}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!SMCDOWNSLLEN@{SMCDOWNSLLEN}}
\index{SMCDOWNSLLEN@{SMCDOWNSLLEN}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{SMCDOWNSLLEN}
{\footnotesize\ttfamily \#define SMCDOWNSLLEN~ (sizeof(\textbf{ smcdownstatelist}) / sizeof(struct \textbf{ smcdownstate}))}

\mbox{\label{group__sms_ga4b9547a3b9f5fd7860f7d0dbcc198d78}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!SMRDATASLLEN@{SMRDATASLLEN}}
\index{SMRDATASLLEN@{SMRDATASLLEN}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{SMRDATASLLEN}
{\footnotesize\ttfamily \#define SMRDATASLLEN~ (sizeof(\textbf{ smrdatastatelist}) / sizeof(struct \textbf{ smrdatastate}))}

\mbox{\label{group__sms_gab830ca4a4cf4b63aceaa0286a458a658}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!SMRDOWNSLLEN@{SMRDOWNSLLEN}}
\index{SMRDOWNSLLEN@{SMRDOWNSLLEN}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{SMRDOWNSLLEN}
{\footnotesize\ttfamily \#define SMRDOWNSLLEN~ (sizeof(\textbf{ smrdownstatelist}) / sizeof(struct \textbf{ smrdownstate}))}



\doxysubsection{Function Documentation}
\mbox{\label{group__sms_gaab738d67d2ce920617875fa5e1422c0b}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!cp\_timer\_expired@{cp\_timer\_expired}}
\index{cp\_timer\_expired@{cp\_timer\_expired}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{cp\_timer\_expired()}
{\footnotesize\ttfamily static void cp\+\_\+timer\+\_\+expired (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+max\+\_\+retr}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+retx}, \textbf{ data}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ gsm411\+\_\+mmsms\+\_\+est\+\_\+cnf()}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+REQ}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+ERROR\+\_\+\+IND}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mn\+\_\+recv}, \textbf{ msgb\+\_\+free()}, \textbf{ new\+\_\+cp\+\_\+state()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ gsm411\+\_\+mmsms\+\_\+send\+\_\+msg()}.

\mbox{\label{group__sms_gae08ed7bd8c0f42206607660a6b62ec92}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm0341\_build\_msg@{gsm0341\_build\_msg}}
\index{gsm0341\_build\_msg@{gsm0341\_build\_msg}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm0341\_build\_msg()}
{\footnotesize\ttfamily struct \textbf{ gsm341\+\_\+ms\+\_\+message} $\ast$ gsm0341\+\_\+build\+\_\+msg (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{uint8\+\_\+t}]{geo\+\_\+scope,  }\item[{uint8\+\_\+t}]{msg\+\_\+code,  }\item[{uint8\+\_\+t}]{update,  }\item[{uint16\+\_\+t}]{msg\+\_\+id,  }\item[{uint8\+\_\+t}]{dcs,  }\item[{uint8\+\_\+t}]{page\+\_\+total,  }\item[{uint8\+\_\+t}]{page\+\_\+cur,  }\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Encode a 3GPP TS 03.\+41 SMS-\/\+CB message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ctx} & talloc allocation context \\
\hline
\mbox{\texttt{ in}}  & {\em geo\+\_\+scope} & Geographic Scope \\
\hline
\mbox{\texttt{ in}}  & {\em msg\+\_\+code} & Message Code \\
\hline
\mbox{\texttt{ in}}  & {\em update} & Is this an update? \\
\hline
\mbox{\texttt{ in}}  & {\em msg\+\_\+id} & Message ID \\
\hline
\mbox{\texttt{ in}}  & {\em dcs} & Data Coding Scheme \\
\hline
\mbox{\texttt{ in}}  & {\em page\+\_\+total} & Total number of pages \\
\hline
\mbox{\texttt{ in}}  & {\em page\+\_\+cur} & Current Page (up to {\itshape page\+\_\+total}) \\
\hline
\mbox{\texttt{ in}}  & {\em data} & Message data (copied 1\+:1) \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape data} in bytes (up to 88) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated TS 03.\+41 message with encoded data 
\end{DoxyReturn}


References \textbf{ data}, \textbf{ gsm341\+\_\+ms\+\_\+message\+::data}, \textbf{ dcs}, \textbf{ gsm341\+\_\+ms\+\_\+message\+::dcs}, \textbf{ len}, \textbf{ msg\+\_\+id}, \textbf{ gsm341\+\_\+ms\+\_\+message\+::msg\+\_\+id}, \textbf{ osmo\+\_\+htons}, \textbf{ gsm341\+\_\+ms\+\_\+message\+::page}, and \textbf{ gsm341\+\_\+ms\+\_\+message\+::serial}.

\mbox{\label{group__sms_ga7dbbfde6f83ebbbeea501f57acad5abf}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm338\_get\_sms\_alphabet@{gsm338\_get\_sms\_alphabet}}
\index{gsm338\_get\_sms\_alphabet@{gsm338\_get\_sms\_alphabet}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm338\_get\_sms\_alphabet()}
{\footnotesize\ttfamily enum \textbf{ sms\+\_\+alphabet} gsm338\+\_\+get\+\_\+sms\+\_\+alphabet (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{dcs }\end{DoxyParamCaption})}



determine coding alphabet dependent on GSM 03.\+38 Section 4 DCS 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em dcs} & Data Coding Scheme in 03.\+38 encoding \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
libosmogsm internal enum \doxyref{sms\+\_\+alphabet}{p.}{gsm__04__11_8h_ad89494022cc7f13a1b76c0417f8d78c2} 
\end{DoxyReturn}


References \textbf{ dcs}, \textbf{ DCS\+\_\+7\+BIT\+\_\+\+DEFAULT}, \textbf{ DCS\+\_\+8\+BIT\+\_\+\+DATA}, \textbf{ DCS\+\_\+\+NONE}, \textbf{ DCS\+\_\+\+UCS2}, \textbf{ DLSMS}, \textbf{ LOGL\+\_\+\+NOTICE}, and \textbf{ LOGP}.

\mbox{\label{group__sms_ga0ede94f6574f25a868451b5bb443b047}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_gen\_oa@{gsm340\_gen\_oa}}
\index{gsm340\_gen\_oa@{gsm340\_gen\_oa}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_gen\_oa()}
{\footnotesize\ttfamily int gsm340\+\_\+gen\+\_\+oa (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{oa,  }\item[{unsigned int}]{oa\+\_\+len,  }\item[{uint8\+\_\+t}]{type,  }\item[{uint8\+\_\+t}]{plan,  }\item[{const char $\ast$}]{number }\end{DoxyParamCaption})}



generate a TPDU address field compliant with 03.\+40 sec. 

9.\+1.\+2.\+5 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em oa} & caller-\/provided output buffer \\
\hline
\mbox{\texttt{ in}}  & {\em oa\+\_\+len} & caller-\/specified length of {\itshape oa} in bytes \\
\hline
\mbox{\texttt{ in}}  & {\em type} & GSM340\+\_\+\+TYPE\+\_\+$\ast$ \\
\hline
\mbox{\texttt{ in}}  & {\em plan} & Numbering Plan \\
\hline
\mbox{\texttt{ in}}  & {\em number} & string containing number \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes of {\itshape oa} that have been used 
\end{DoxyReturn}


References \textbf{ GSM340\+\_\+\+TYPE\+\_\+\+ALPHA\+\_\+\+NUMERIC}, \textbf{ gsm48\+\_\+encode\+\_\+bcd\+\_\+number()}, \textbf{ gsm\+\_\+7bit\+\_\+encode\+\_\+n()}, and \textbf{ type}.

\mbox{\label{group__sms_ga635f9ed572f9833d2132602c8bc5b6b2}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_gen\_scts@{gsm340\_gen\_scts}}
\index{gsm340\_gen\_scts@{gsm340\_gen\_scts}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_gen\_scts()}
{\footnotesize\ttfamily void gsm340\+\_\+gen\+\_\+scts (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{scts,  }\item[{time\+\_\+t}]{time }\end{DoxyParamCaption})}



Generate 03.\+40 TP-\/\+SCTS. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em scts} & Caller-\/provided buffer to store SCTS (7 octets) \\
\hline
\mbox{\texttt{ in}}  & {\em time} & to encode \\
\hline
\end{DoxyParams}


References \textbf{ gsm411\+\_\+bcdify()}, and \textbf{ time}.

\mbox{\label{group__sms_ga89e11ef0ae5dace9864f04c10010e236}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_scts@{gsm340\_scts}}
\index{gsm340\_scts@{gsm340\_scts}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_scts()}
{\footnotesize\ttfamily time\+\_\+t gsm340\+\_\+scts (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{scts }\end{DoxyParamCaption})}



Decode 03.\+40 TP-\/\+SCTS (into utc/gmt timestamp) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scts} & SMS Center Time Stamp \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
time in UTC time\+\_\+t format 
\end{DoxyReturn}


References \textbf{ gsm411\+\_\+unbcdify()}.



Referenced by \textbf{ gsm340\+\_\+vp\+\_\+absolute()}.

\mbox{\label{group__sms_ga2da605169b08795f16929bbd5dbedafd}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_validity\_period@{gsm340\_validity\_period}}
\index{gsm340\_validity\_period@{gsm340\_validity\_period}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_validity\_period()}
{\footnotesize\ttfamily unsigned long gsm340\+\_\+validity\+\_\+period (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{sms\+\_\+vpf,  }\item[{uint8\+\_\+t $\ast$}]{sms\+\_\+vp }\end{DoxyParamCaption})}



decode validity period. 

return minutes 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em sms\+\_\+vpf} & Validity Period Format in 03.\+40 encoding \\
\hline
\mbox{\texttt{ in}}  & {\em sms\+\_\+vp} & Validity Period Information Element \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
validity period in minutes 
\end{DoxyReturn}


References \textbf{ DLSMS}, \textbf{ GSM340\+\_\+\+TP\+\_\+\+VPF\+\_\+\+ABSOLUTE}, \textbf{ GSM340\+\_\+\+TP\+\_\+\+VPF\+\_\+\+ENHANCED}, \textbf{ GSM340\+\_\+\+TP\+\_\+\+VPF\+\_\+\+NONE}, \textbf{ GSM340\+\_\+\+TP\+\_\+\+VPF\+\_\+\+RELATIVE}, \textbf{ gsm340\+\_\+vp\+\_\+absolute()}, \textbf{ gsm340\+\_\+vp\+\_\+default()}, \textbf{ gsm340\+\_\+vp\+\_\+relative()}, \textbf{ gsm340\+\_\+vp\+\_\+relative\+\_\+integer()}, \textbf{ gsm340\+\_\+vp\+\_\+relative\+\_\+semioctet()}, \textbf{ LOGL\+\_\+\+ERROR}, and \textbf{ LOGP}.

\mbox{\label{group__sms_ga94471b97e890ab76d47928a5fa0c828e}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_vp\_absolute@{gsm340\_vp\_absolute}}
\index{gsm340\_vp\_absolute@{gsm340\_vp\_absolute}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_vp\_absolute()}
{\footnotesize\ttfamily static unsigned long gsm340\+\_\+vp\+\_\+absolute (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{sms\+\_\+vp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm340\+\_\+scts()}, and \textbf{ time}.



Referenced by \textbf{ gsm340\+\_\+validity\+\_\+period()}.

\mbox{\label{group__sms_ga182fb5d41d6f13f40d72e32c125af823}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_vp\_default@{gsm340\_vp\_default}}
\index{gsm340\_vp\_default@{gsm340\_vp\_default}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_vp\_default()}
{\footnotesize\ttfamily static unsigned long gsm340\+\_\+vp\+\_\+default (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ gsm340\+\_\+validity\+\_\+period()}, and \textbf{ gsm340\+\_\+vp\+\_\+relative\+\_\+integer()}.

\mbox{\label{group__sms_ga61e337c944f7424005b8641da87b5ff5}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_vp\_relative@{gsm340\_vp\_relative}}
\index{gsm340\_vp\_relative@{gsm340\_vp\_relative}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_vp\_relative()}
{\footnotesize\ttfamily static unsigned long gsm340\+\_\+vp\+\_\+relative (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{sms\+\_\+vp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ gsm340\+\_\+validity\+\_\+period()}.

\mbox{\label{group__sms_ga1b54df67d6103e184a80f15d83a1ac5e}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_vp\_relative\_integer@{gsm340\_vp\_relative\_integer}}
\index{gsm340\_vp\_relative\_integer@{gsm340\_vp\_relative\_integer}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_vp\_relative\_integer()}
{\footnotesize\ttfamily static unsigned long gsm340\+\_\+vp\+\_\+relative\+\_\+integer (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{sms\+\_\+vp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ gsm340\+\_\+vp\+\_\+default()}, \textbf{ LOGL\+\_\+\+ERROR}, and \textbf{ LOGP}.



Referenced by \textbf{ gsm340\+\_\+validity\+\_\+period()}.

\mbox{\label{group__sms_ga417a20c0f56785809ad01fc5b2ee9934}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm340\_vp\_relative\_semioctet@{gsm340\_vp\_relative\_semioctet}}
\index{gsm340\_vp\_relative\_semioctet@{gsm340\_vp\_relative\_semioctet}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm340\_vp\_relative\_semioctet()}
{\footnotesize\ttfamily static unsigned long gsm340\+\_\+vp\+\_\+relative\+\_\+semioctet (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{sms\+\_\+vp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+unbcdify()}.



Referenced by \textbf{ gsm340\+\_\+validity\+\_\+period()}.

\mbox{\label{group__sms_ga46c7638c492db03baea43777e826e0b3}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_bcdify@{gsm411\_bcdify}}
\index{gsm411\_bcdify@{gsm411\_bcdify}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_bcdify()}
{\footnotesize\ttfamily uint8\+\_\+t gsm411\+\_\+bcdify (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{value }\end{DoxyParamCaption})}



Turn int into semi-\/octet representation\+: 98 =$>$ 0x89. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em integer} & value representing decimal number 0..99 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
BSC encoded as nibbles, swapped 
\end{DoxyReturn}


Referenced by \textbf{ gsm340\+\_\+gen\+\_\+scts()}.

\mbox{\label{group__sms_ga9b4769cbe6eb4f40cf84acb835ee3997}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_cp\_state\_name@{gsm411\_cp\_state\_name}}
\index{gsm411\_cp\_state\_name@{gsm411\_cp\_state\_name}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_cp\_state\_name()}
{\footnotesize\ttfamily static const char $\ast$ gsm411\+\_\+cp\+\_\+state\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm411\+\_\+cp\+\_\+state}}]{cp\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ gsm411\+\_\+cp\+\_\+state\+\_\+names}.

\mbox{\label{group__sms_gac5f01aba03a01b5237ce6ae093f23fe7}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mmsms\_cp\_ack@{gsm411\_mmsms\_cp\_ack}}
\index{gsm411\_mmsms\_cp\_ack@{gsm411\_mmsms\_cp\_ack}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mmsms\_cp\_ack()}
{\footnotesize\ttfamily static int gsm411\+\_\+mmsms\+\_\+cp\+\_\+ack (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+rel}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+timer}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+MM\+\_\+\+ESTABLISHED}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ msgb\+\_\+free()}, \textbf{ new\+\_\+cp\+\_\+state()}, \textbf{ osmo\+\_\+timer\+\_\+del()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_gafd2f85ebaabd340601906c9ea1141e5b}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mmsms\_cp\_data@{gsm411\_mmsms\_cp\_data}}
\index{gsm411\_mmsms\_cp\_data@{gsm411\_mmsms\_cp\_data}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mmsms\_cp\_data()}
{\footnotesize\ttfamily static int gsm411\+\_\+mmsms\+\_\+cp\+\_\+data (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+rel}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+state}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+MM\+\_\+\+ESTABLISHED}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+DATA\+\_\+\+IND}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+EST\+\_\+\+IND}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+CP\+\_\+\+ACK}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mn\+\_\+recv}, \textbf{ msg}, \textbf{ new\+\_\+cp\+\_\+state()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga4d670e7388a54adc400a8a35f88ef0eb}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mmsms\_cp\_error@{gsm411\_mmsms\_cp\_error}}
\index{gsm411\_mmsms\_cp\_error@{gsm411\_mmsms\_cp\_error}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mmsms\_cp\_error()}
{\footnotesize\ttfamily static int gsm411\+\_\+mmsms\+\_\+cp\+\_\+error (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+REQ}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+ERROR\+\_\+\+IND}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mn\+\_\+recv}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ new\+\_\+cp\+\_\+state()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga5e3af9b915227ef88aa608455119c834}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mmsms\_est\_cnf@{gsm411\_mmsms\_est\_cnf}}
\index{gsm411\_mmsms\_est\_cnf@{gsm411\_mmsms\_est\_cnf}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mmsms\_est\_cnf()}
{\footnotesize\ttfamily static int gsm411\+\_\+mmsms\+\_\+est\+\_\+cnf (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ DLSMS}, \textbf{ gsm411\+\_\+mmsms\+\_\+send\+\_\+msg()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+FATAL}, \textbf{ LOGP}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ cp\+\_\+timer\+\_\+expired()}.

\mbox{\label{group__sms_gaa186329d13f7cf8cf9014e8ed932500c}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mmsms\_rel\_ind@{gsm411\_mmsms\_rel\_ind}}
\index{gsm411\_mmsms\_rel\_ind@{gsm411\_mmsms\_rel\_ind}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mmsms\_rel\_ind()}
{\footnotesize\ttfamily static int gsm411\+\_\+mmsms\+\_\+rel\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+ERROR\+\_\+\+IND}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mn\+\_\+recv}, \textbf{ msgb\+\_\+free()}, \textbf{ new\+\_\+cp\+\_\+state()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga72c1e9957ae728259dadf941aeaf1df6}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mmsms\_send\_msg@{gsm411\_mmsms\_send\_msg}}
\index{gsm411\_mmsms\_send\_msg@{gsm411\_mmsms\_send\_msg}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mmsms\_send\_msg()}
{\footnotesize\ttfamily static int gsm411\+\_\+mmsms\+\_\+send\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+retx}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+state}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+tc1}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+timer}, \textbf{ cp\+\_\+timer\+\_\+expired()}, \textbf{ msgb\+::data}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+WAIT\+\_\+\+CP\+\_\+\+ACK}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+CP\+\_\+\+DATA}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ msgb\+::len}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ msgb\+\_\+put()}, \textbf{ new\+\_\+cp\+\_\+state()}, \textbf{ osmo\+\_\+timer\+\_\+schedule()}, \textbf{ osmo\+\_\+timer\+\_\+setup()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ gsm411\+\_\+mmsms\+\_\+est\+\_\+cnf()}, and \textbf{ gsm411\+\_\+mnsms\+\_\+data\+\_\+req()}.

\mbox{\label{group__sms_gacea8075d787884bc61ed11d255141cb5}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mnsms\_abort\_req@{gsm411\_mnsms\_abort\_req}}
\index{gsm411\_mnsms\_abort\_req@{gsm411\_mnsms\_abort\_req}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mnsms\_abort\_req()}
{\footnotesize\ttfamily static int gsm411\+\_\+mnsms\+\_\+abort\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+CP\+\_\+\+ERROR}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, and \textbf{ new\+\_\+cp\+\_\+state()}.

\mbox{\label{group__sms_ga302f3a7d80e8d04aea7c1bbbbae8300a}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mnsms\_data\_ind\_tx@{gsm411\_mnsms\_data\_ind\_tx}}
\index{gsm411\_mnsms\_data\_ind\_tx@{gsm411\_mnsms\_data\_ind\_tx}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mnsms\_data\_ind\_tx()}
{\footnotesize\ttfamily static int gsm411\+\_\+mnsms\+\_\+data\+\_\+ind\+\_\+tx (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm48\+\_\+hdr\+::data}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+ACK\+\_\+\+MO}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+ACK\+\_\+\+MT}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+ERROR\+\_\+\+MO}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+ERROR\+\_\+\+MT}, \textbf{ GSM411\+\_\+\+RP\+\_\+\+CAUSE\+\_\+\+MSG\+\_\+\+INCOMP\+\_\+\+STATE}, \textbf{ GSM411\+\_\+\+RP\+\_\+\+CAUSE\+\_\+\+MSGTYPE\+\_\+\+NOTEXIST}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+IDLE}, \textbf{ gsm411\+\_\+send\+\_\+release()}, \textbf{ gsm411\+\_\+send\+\_\+rp\+\_\+error()}, \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+REPORT\+\_\+\+IND}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::network}, \textbf{ new\+\_\+rp\+\_\+state()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rl\+\_\+recv}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga01596e8cc009fb5a43c771e917331ab0}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mnsms\_data\_req@{gsm411\_mnsms\_data\_req}}
\index{gsm411\_mnsms\_data\_req@{gsm411\_mnsms\_data\_req}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mnsms\_data\_req()}
{\footnotesize\ttfamily static int gsm411\+\_\+mnsms\+\_\+data\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ DLSMS}, \textbf{ gsm411\+\_\+mmsms\+\_\+send\+\_\+msg()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+FATAL}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga9d55f0dda1394adbe4f574ca27357b2a}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mnsms\_error\_ind\_rx@{gsm411\_mnsms\_error\_ind\_rx}}
\index{gsm411\_mnsms\_error\_ind\_rx@{gsm411\_mnsms\_error\_ind\_rx}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mnsms\_error\_ind\_rx()}
{\footnotesize\ttfamily static int gsm411\+\_\+mnsms\+\_\+error\+\_\+ind\+\_\+rx (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+REPORT\+\_\+\+IND}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ new\+\_\+rp\+\_\+state()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rl\+\_\+recv}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_gab6c54cf0b7c50abe9937fee8c4fcd2eb}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mnsms\_error\_ind\_tx@{gsm411\_mnsms\_error\_ind\_tx}}
\index{gsm411\_mnsms\_error\_ind\_tx@{gsm411\_mnsms\_error\_ind\_tx}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mnsms\_error\_ind\_tx()}
{\footnotesize\ttfamily static int gsm411\+\_\+mnsms\+\_\+error\+\_\+ind\+\_\+tx (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+IDLE}, \textbf{ gsm411\+\_\+send\+\_\+release()}, \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+REPORT\+\_\+\+IND}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ new\+\_\+rp\+\_\+state()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rl\+\_\+recv}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga3ad06897c8decfc15e8c2bc817b419c8}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mnsms\_est\_ind@{gsm411\_mnsms\_est\_ind}}
\index{gsm411\_mnsms\_est\_ind@{gsm411\_mnsms\_est\_ind}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mnsms\_est\_ind()}
{\footnotesize\ttfamily static int gsm411\+\_\+mnsms\+\_\+est\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm48\+\_\+hdr\+::data}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+DATA\+\_\+\+MO}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+DATA\+\_\+\+MT}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+SMMA\+\_\+\+MO}, \textbf{ GSM411\+\_\+\+RP\+\_\+\+CAUSE\+\_\+\+MSG\+\_\+\+INCOMP\+\_\+\+STATE}, \textbf{ GSM411\+\_\+\+RP\+\_\+\+CAUSE\+\_\+\+MSGTYPE\+\_\+\+NOTEXIST}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+WAIT\+\_\+\+TO\+\_\+\+TX\+\_\+\+RP\+\_\+\+ACK}, \textbf{ gsm411\+\_\+send\+\_\+release()}, \textbf{ gsm411\+\_\+send\+\_\+rp\+\_\+error()}, \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+DATA\+\_\+\+IND}, \textbf{ GSM411\+\_\+\+TMR\+\_\+\+TR2M}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::network}, \textbf{ new\+\_\+rp\+\_\+state()}, \textbf{ osmo\+\_\+timer\+\_\+schedule()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rl\+\_\+recv}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+timer}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_gaadea1ad8d6b9a4053f71de678deb575b}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mnsms\_est\_req@{gsm411\_mnsms\_est\_req}}
\index{gsm411\_mnsms\_est\_req@{gsm411\_mnsms\_est\_req}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mnsms\_est\_req()}
{\footnotesize\ttfamily static int gsm411\+\_\+mnsms\+\_\+est\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+rel}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+MM\+\_\+\+CONN\+\_\+\+PENDING}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+EST\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+FATAL}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ new\+\_\+cp\+\_\+state()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_gac1729d47d720b2b0575eaa696f1165b4}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_mnsms\_rel\_req@{gsm411\_mnsms\_rel\_req}}
\index{gsm411\_mnsms\_rel\_req@{gsm411\_mnsms\_rel\_req}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_mnsms\_rel\_req()}
{\footnotesize\ttfamily static int gsm411\+\_\+mnsms\+\_\+rel\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+rel}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+state}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+MM\+\_\+\+ESTABLISHED}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ new\+\_\+cp\+\_\+state()}, \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}, and \textbf{ smc\+\_\+state\+\_\+names}.

\mbox{\label{group__sms_ga289c2bf54f2f92387e4011bd8f29362d}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_msgb\_alloc@{gsm411\_msgb\_alloc}}
\index{gsm411\_msgb\_alloc@{gsm411\_msgb\_alloc}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_msgb\_alloc()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm411\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Allocate a message buffer for use as TS 04.\+11 message. 

\begin{DoxyReturn}{Returns}
allocated message buffer 
\end{DoxyReturn}


References \textbf{ GSM411\+\_\+\+ALLOC\+\_\+\+HEADROOM}, \textbf{ GSM411\+\_\+\+ALLOC\+\_\+\+SIZE}, and \textbf{ msgb\+\_\+alloc\+\_\+headroom()}.



Referenced by \textbf{ cp\+\_\+timer\+\_\+expired()}, \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+ack()}, \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+data()}, \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+error()}, \textbf{ gsm411\+\_\+mmsms\+\_\+rel\+\_\+ind()}, \textbf{ gsm411\+\_\+mmsms\+\_\+send\+\_\+msg()}, \textbf{ gsm411\+\_\+mnsms\+\_\+abort\+\_\+req()}, \textbf{ gsm411\+\_\+mnsms\+\_\+est\+\_\+req()}, \textbf{ gsm411\+\_\+mnsms\+\_\+rel\+\_\+req()}, \textbf{ gsm411\+\_\+send\+\_\+abort()}, \textbf{ gsm411\+\_\+send\+\_\+release()}, \textbf{ gsm411\+\_\+send\+\_\+report()}, \textbf{ gsm411\+\_\+send\+\_\+rp\+\_\+error()}, \textbf{ gsm411\+\_\+smc\+\_\+recv()}, and \textbf{ gsm411\+\_\+tx\+\_\+cp\+\_\+error()}.

\mbox{\label{group__sms_ga10f8d980dcfa698eb5bbdb925473645a}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_push\_cp\_header@{gsm411\_push\_cp\_header}}
\index{gsm411\_push\_cp\_header@{gsm411\_push\_cp\_header}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_push\_cp\_header()}
{\footnotesize\ttfamily int gsm411\+\_\+push\+\_\+cp\+\_\+header (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{proto,  }\item[{uint8\+\_\+t}]{trans,  }\item[{uint8\+\_\+t}]{msg\+\_\+type }\end{DoxyParamCaption})}



Prefix \textbf{ Message buffers} with a 04.\+08/04.11 CP header. 


\begin{DoxyParams}[1]{Parameters}
 & {\em msg} & Message Buffer containing message \\
\hline
\mbox{\texttt{ in}}  & {\em proto} & Protocol \\
\hline
\mbox{\texttt{ in}}  & {\em trans} & Transaction \\
\hline
\mbox{\texttt{ in}}  & {\em msg\+\_\+type} & Message Type \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 
\end{DoxyReturn}


References \textbf{ gsm48\+\_\+push\+\_\+l3hdr\+\_\+tid}, \textbf{ msg}, \textbf{ msg\+\_\+type}, and \textbf{ proto}.

\mbox{\label{group__sms_gad652c5d97b7e86fa7a4b26925209a530}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_push\_rp\_header@{gsm411\_push\_rp\_header}}
\index{gsm411\_push\_rp\_header@{gsm411\_push\_rp\_header}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_push\_rp\_header()}
{\footnotesize\ttfamily int gsm411\+\_\+push\+\_\+rp\+\_\+header (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{rp\+\_\+msg\+\_\+type,  }\item[{uint8\+\_\+t}]{rp\+\_\+msg\+\_\+ref }\end{DoxyParamCaption})}



Prefix \textbf{ Message buffers} with a RP header. 


\begin{DoxyParams}[1]{Parameters}
 & {\em msg} & Message Buffer containing message \\
\hline
\mbox{\texttt{ in}}  & {\em rp\+\_\+msg\+\_\+type} & RP Message Type \\
\hline
\mbox{\texttt{ in}}  & {\em rp\+\_\+msg\+\_\+ref} & RP Message Reference \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 
\end{DoxyReturn}


References \textbf{ len}, \textbf{ gsm411\+\_\+rp\+\_\+hdr\+::len}, \textbf{ msg}, \textbf{ gsm411\+\_\+rp\+\_\+hdr\+::msg\+\_\+ref}, \textbf{ gsm411\+\_\+rp\+\_\+hdr\+::msg\+\_\+type}, and \textbf{ msgb\+\_\+push()}.

\mbox{\label{group__sms_gaffdbb178c3fa20397ba6854a73425d77}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_rl\_data\_req@{gsm411\_rl\_data\_req}}
\index{gsm411\_rl\_data\_req@{gsm411\_rl\_data\_req}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_rl\_data\_req()}
{\footnotesize\ttfamily static int gsm411\+\_\+rl\+\_\+data\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+EST\+\_\+\+REQ}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+WAIT\+\_\+\+FOR\+\_\+\+RP\+\_\+\+ACK}, \textbf{ GSM411\+\_\+\+TMR\+\_\+\+TR1M}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::mn\+\_\+send}, \textbf{ msg}, \textbf{ new\+\_\+rp\+\_\+state()}, \textbf{ osmo\+\_\+timer\+\_\+schedule()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+timer}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga2dcc4bb424b882913936f6959f906323}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_rl\_report\_req@{gsm411\_rl\_report\_req}}
\index{gsm411\_rl\_report\_req@{gsm411\_rl\_report\_req}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_rl\_report\_req()}
{\footnotesize\ttfamily static int gsm411\+\_\+rl\+\_\+report\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+IDLE}, \textbf{ gsm411\+\_\+send\+\_\+release()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::mn\+\_\+send}, \textbf{ msg}, \textbf{ new\+\_\+rp\+\_\+state()}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga8d075a13b7c15d24d73003c956dda914}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_rp\_sendmsg@{gsm411\_rp\_sendmsg}}
\index{gsm411\_rp\_sendmsg@{gsm411\_rp\_sendmsg}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_rp\_sendmsg()}
{\footnotesize\ttfamily static int gsm411\+\_\+rp\+\_\+sendmsg (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{rp\+\_\+msg\+\_\+type,  }\item[{uint8\+\_\+t}]{rp\+\_\+msg\+\_\+ref,  }\item[{int}]{mnsms\+\_\+msg\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ len}, \textbf{ gsm411\+\_\+rp\+\_\+hdr\+::len}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::mn\+\_\+send}, \textbf{ msg}, \textbf{ gsm411\+\_\+rp\+\_\+hdr\+::msg\+\_\+ref}, \textbf{ gsm411\+\_\+rp\+\_\+hdr\+::msg\+\_\+type}, and \textbf{ msgb\+\_\+push()}.



Referenced by \textbf{ gsm411\+\_\+send\+\_\+rp\+\_\+error()}.

\mbox{\label{group__sms_ga6072807b86120d2a346a73f6a4fc42d6}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_rp\_state\_name@{gsm411\_rp\_state\_name}}
\index{gsm411\_rp\_state\_name@{gsm411\_rp\_state\_name}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_rp\_state\_name()}
{\footnotesize\ttfamily static const char $\ast$ gsm411\+\_\+rp\+\_\+state\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm411\+\_\+rp\+\_\+state}}]{rp\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ gsm411\+\_\+rp\+\_\+state\+\_\+names}.

\mbox{\label{group__sms_ga45429cfd5cf25d484b8c32f028781710}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_send\_abort@{gsm411\_send\_abort}}
\index{gsm411\_send\_abort@{gsm411\_send\_abort}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_send\_abort()}
{\footnotesize\ttfamily static int gsm411\+\_\+send\+\_\+abort (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+ABORT\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::mn\+\_\+send}, \textbf{ msg}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ rp\+\_\+timer\+\_\+expired()}.

\mbox{\label{group__sms_gad6cbac911d0f435d381d2dfdedaf67ad}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_send\_release@{gsm411\_send\_release}}
\index{gsm411\_send\_release@{gsm411\_send\_release}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_send\_release()}
{\footnotesize\ttfamily static int gsm411\+\_\+send\+\_\+release (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+REL\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::mn\+\_\+send}, \textbf{ msg}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ gsm411\+\_\+mnsms\+\_\+data\+\_\+ind\+\_\+tx()}, \textbf{ gsm411\+\_\+mnsms\+\_\+error\+\_\+ind\+\_\+tx()}, \textbf{ gsm411\+\_\+mnsms\+\_\+est\+\_\+ind()}, and \textbf{ gsm411\+\_\+rl\+\_\+report\+\_\+req()}.

\mbox{\label{group__sms_gac60e53b8cd244c26f42c08afab602d48}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_send\_report@{gsm411\_send\_report}}
\index{gsm411\_send\_report@{gsm411\_send\_report}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_send\_report()}
{\footnotesize\ttfamily static int gsm411\+\_\+send\+\_\+report (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ GSM411\+\_\+\+SM\+\_\+\+RL\+\_\+\+REPORT\+\_\+\+IND}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rl\+\_\+recv}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ rp\+\_\+timer\+\_\+expired()}.

\mbox{\label{group__sms_gadd0af321062b52e48fc01d5eb6905a7f}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_send\_rp\_error@{gsm411\_send\_rp\_error}}
\index{gsm411\_send\_rp\_error@{gsm411\_send\_rp\_error}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_send\_rp\_error()}
{\footnotesize\ttfamily static int gsm411\+\_\+send\+\_\+rp\+\_\+error (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{uint8\+\_\+t}]{msg\+\_\+ref,  }\item[{uint8\+\_\+t}]{cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ cause}, \textbf{ DLSMS}, \textbf{ get\+\_\+value\+\_\+string()}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+ERROR\+\_\+\+MO}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+RP\+\_\+\+ERROR\+\_\+\+MT}, \textbf{ gsm411\+\_\+rp\+\_\+cause\+\_\+strs}, \textbf{ gsm411\+\_\+rp\+\_\+sendmsg()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msg\+\_\+ref}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::network}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ gsm411\+\_\+mnsms\+\_\+data\+\_\+ind\+\_\+tx()}, and \textbf{ gsm411\+\_\+mnsms\+\_\+est\+\_\+ind()}.

\mbox{\label{group__sms_ga88ae2e588314fafa63a181af3c326f80}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_smc\_clear@{gsm411\_smc\_clear}}
\index{gsm411\_smc\_clear@{gsm411\_smc\_clear}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_smc\_clear()}
{\footnotesize\ttfamily void gsm411\+\_\+smc\+\_\+clear (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+msg}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+timer}, \textbf{ DLSMS}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ msgb\+\_\+free()}, \textbf{ osmo\+\_\+timer\+\_\+del()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga0c8efcc3111e42ac6379048d7e3c682d}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_smc\_init@{gsm411\_smc\_init}}
\index{gsm411\_smc\_init@{gsm411\_smc\_init}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_smc\_init()}
{\footnotesize\ttfamily void gsm411\+\_\+smc\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{uint64\+\_\+t}]{id,  }\item[{int}]{network,  }\item[{int($\ast$)(struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg})}]{mn\+\_\+recv,  }\item[{int($\ast$)(struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg}, int cp\+\_\+msg\+\_\+type)}]{mm\+\_\+send }\end{DoxyParamCaption})}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+max\+\_\+retr}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+state}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+tc1}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+TMR\+\_\+\+TC1\+A\+\_\+\+SEC}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ MAX\+\_\+\+SMS\+\_\+\+RETRY}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mn\+\_\+recv}, \textbf{ network}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::network}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga0dedb122c8d26215d3e6eab70767f50d}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_smc\_recv@{gsm411\_smc\_recv}}
\index{gsm411\_smc\_recv@{gsm411\_smc\_recv}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_smc\_recv()}
{\footnotesize\ttfamily int gsm411\+\_\+smc\+\_\+recv (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{int}]{msg\+\_\+type,  }\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{int}]{cp\+\_\+msg\+\_\+type }\end{DoxyParamCaption})}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+state}, \textbf{ smcdatastate\+::cp\+\_\+type}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+CP\+\_\+\+CAUSE\+\_\+\+MSGTYPE\+\_\+\+NOTEXIST}, \textbf{ GSM411\+\_\+\+CPS\+\_\+\+IDLE}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+IND}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+EST\+\_\+\+IND}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+REL\+\_\+\+REQ}, \textbf{ GSM411\+\_\+\+MNSMS\+\_\+\+ERROR\+\_\+\+IND}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ gsm411\+\_\+tx\+\_\+cp\+\_\+error()}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mn\+\_\+recv}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ msgb\+\_\+free()}, \textbf{ smcdatastate\+::name}, \textbf{ new\+\_\+cp\+\_\+state()}, \textbf{ smcdatastate\+::rout}, \textbf{ SBIT}, \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}, \textbf{ smc\+\_\+state\+\_\+names}, \textbf{ SMCDATASLLEN}, \textbf{ smcdatastatelist}, \textbf{ smcdatastate\+::states}, and \textbf{ type}.

\mbox{\label{group__sms_gaf970ee7862d47d6348c4a55e583b9cbd}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_smc\_send@{gsm411\_smc\_send}}
\index{gsm411\_smc\_send@{gsm411\_smc\_send}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_smc\_send()}
{\footnotesize\ttfamily int gsm411\+\_\+smc\+\_\+send (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{int}]{msg\+\_\+type,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+state}, \textbf{ DLSMS}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ msgb\+\_\+free()}, \textbf{ smcdownstate\+::name}, \textbf{ smcdownstate\+::rout}, \textbf{ SBIT}, \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}, \textbf{ smc\+\_\+state\+\_\+names}, \textbf{ SMCDOWNSLLEN}, \textbf{ smcdownstatelist}, \textbf{ smcdownstate\+::states}, and \textbf{ type}.

\mbox{\label{group__sms_gaae8b7f58b532a4c42aec9aa4a6bee8ab}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_smr\_clear@{gsm411\_smr\_clear}}
\index{gsm411\_smr\_clear@{gsm411\_smr\_clear}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_smr\_clear()}
{\footnotesize\ttfamily void gsm411\+\_\+smr\+\_\+clear (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ DLSMS}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ osmo\+\_\+timer\+\_\+del()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+timer}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga7625a47ea482bba1077dfccb7cf943f4}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_smr\_init@{gsm411\_smr\_init}}
\index{gsm411\_smr\_init@{gsm411\_smr\_init}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_smr\_init()}
{\footnotesize\ttfamily void gsm411\+\_\+smr\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{uint64\+\_\+t}]{id,  }\item[{int}]{network,  }\item[{int($\ast$)(struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg})}]{rl\+\_\+recv,  }\item[{int($\ast$)(struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$inst, int \textbf{ msg\+\_\+type}, struct \textbf{ msgb} $\ast$\textbf{ msg})}]{mn\+\_\+send }\end{DoxyParamCaption})}



References \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+IDLE}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::mn\+\_\+send}, \textbf{ network}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::network}, \textbf{ osmo\+\_\+timer\+\_\+setup()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rl\+\_\+recv}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+state}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+timer}, \textbf{ rp\+\_\+timer\+\_\+expired()}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.

\mbox{\label{group__sms_ga2fbd77b6f5c655229b43602780166970}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_smr\_recv@{gsm411\_smr\_recv}}
\index{gsm411\_smr\_recv@{gsm411\_smr\_recv}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_smr\_recv()}
{\footnotesize\ttfamily int gsm411\+\_\+smr\+\_\+recv (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{int}]{msg\+\_\+type,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})}



References \textbf{ DLSMS}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ smrdatastate\+::name}, \textbf{ smrdatastate\+::rout}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+state}, \textbf{ SBIT}, \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}, \textbf{ smr\+\_\+state\+\_\+names}, \textbf{ SMRDATASLLEN}, \textbf{ smrdatastatelist}, \textbf{ smrdatastate\+::states}, and \textbf{ type}.

\mbox{\label{group__sms_gab052521c86f6e7db25687b297379fd31}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_smr\_send@{gsm411\_smr\_send}}
\index{gsm411\_smr\_send@{gsm411\_smr\_send}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_smr\_send()}
{\footnotesize\ttfamily int gsm411\+\_\+smr\+\_\+send (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{int}]{msg\+\_\+type,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})}



References \textbf{ DLSMS}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ msgb\+\_\+free()}, \textbf{ smrdownstate\+::name}, \textbf{ smrdownstate\+::rout}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+state}, \textbf{ SBIT}, \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}, \textbf{ smr\+\_\+state\+\_\+names}, \textbf{ SMRDOWNSLLEN}, \textbf{ smrdownstatelist}, \textbf{ smrdownstate\+::states}, and \textbf{ type}.

\mbox{\label{group__sms_gafd0852fbeaabe42a22c49500cd50e8b6}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_tx\_cp\_error@{gsm411\_tx\_cp\_error}}
\index{gsm411\_tx\_cp\_error@{gsm411\_tx\_cp\_error}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_tx\_cp\_error()}
{\footnotesize\ttfamily static int gsm411\+\_\+tx\+\_\+cp\+\_\+error (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{uint8\+\_\+t}]{cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ cause}, \textbf{ DLSMS}, \textbf{ get\+\_\+value\+\_\+string()}, \textbf{ gsm411\+\_\+cp\+\_\+cause\+\_\+strs}, \textbf{ GSM411\+\_\+\+MMSMS\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ gsm411\+\_\+msgb\+\_\+alloc()}, \textbf{ GSM411\+\_\+\+MT\+\_\+\+CP\+\_\+\+ERROR}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::mm\+\_\+send}, \textbf{ msgb\+\_\+put()}, and \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ gsm411\+\_\+smc\+\_\+recv()}.

\mbox{\label{group__sms_ga413e2e55a3ef57e86c220fe84cee1fd4}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_unbcdify@{gsm411\_unbcdify}}
\index{gsm411\_unbcdify@{gsm411\_unbcdify}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_unbcdify()}
{\footnotesize\ttfamily uint8\+\_\+t gsm411\+\_\+unbcdify (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{value }\end{DoxyParamCaption})}



Turn semi-\/octet representation into int\+: 0x89 =$>$ 98. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value} & byte containing two BCD nibbles in revere order \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
integer representing decoded, re-\/ordered nibbles 
\end{DoxyReturn}


References \textbf{ DLSMS}, \textbf{ LOGL\+\_\+\+ERROR}, and \textbf{ LOGP}.



Referenced by \textbf{ gsm340\+\_\+scts()}, and \textbf{ gsm340\+\_\+vp\+\_\+relative\+\_\+semioctet()}.

\mbox{\label{group__sms_gad7e2b8e181c1a641def6f9f8a8c96d8a}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!new\_cp\_state@{new\_cp\_state}}
\index{new\_cp\_state@{new\_cp\_state}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{new\_cp\_state()}
{\footnotesize\ttfamily static void new\+\_\+cp\+\_\+state (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smc\+\_\+inst} $\ast$}]{inst,  }\item[{enum \textbf{ gsm411\+\_\+cp\+\_\+state}}]{state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm411\+\_\+smc\+\_\+inst\+::cp\+\_\+state}, \textbf{ DLSMS}, \textbf{ gsm411\+\_\+smc\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ SMC\+\_\+\+LOG\+\_\+\+STR}, and \textbf{ smc\+\_\+state\+\_\+names}.



Referenced by \textbf{ cp\+\_\+timer\+\_\+expired()}, \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+ack()}, \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+data()}, \textbf{ gsm411\+\_\+mmsms\+\_\+cp\+\_\+error()}, \textbf{ gsm411\+\_\+mmsms\+\_\+rel\+\_\+ind()}, \textbf{ gsm411\+\_\+mmsms\+\_\+send\+\_\+msg()}, \textbf{ gsm411\+\_\+mnsms\+\_\+abort\+\_\+req()}, \textbf{ gsm411\+\_\+mnsms\+\_\+est\+\_\+req()}, \textbf{ gsm411\+\_\+mnsms\+\_\+rel\+\_\+req()}, and \textbf{ gsm411\+\_\+smc\+\_\+recv()}.

\mbox{\label{group__sms_gaa9547df6fede2fde85f549733b6a461a}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!new\_rp\_state@{new\_rp\_state}}
\index{new\_rp\_state@{new\_rp\_state}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{new\_rp\_state()}
{\footnotesize\ttfamily static void new\+\_\+rp\+\_\+state (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm411\+\_\+smr\+\_\+inst} $\ast$}]{inst,  }\item[{enum \textbf{ gsm411\+\_\+rp\+\_\+state}}]{state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+IDLE}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGP}, \textbf{ osmo\+\_\+timer\+\_\+del()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+state}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+timer}, \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}, and \textbf{ smr\+\_\+state\+\_\+names}.



Referenced by \textbf{ gsm411\+\_\+mnsms\+\_\+data\+\_\+ind\+\_\+tx()}, \textbf{ gsm411\+\_\+mnsms\+\_\+error\+\_\+ind\+\_\+rx()}, \textbf{ gsm411\+\_\+mnsms\+\_\+error\+\_\+ind\+\_\+tx()}, \textbf{ gsm411\+\_\+mnsms\+\_\+est\+\_\+ind()}, \textbf{ gsm411\+\_\+rl\+\_\+data\+\_\+req()}, and \textbf{ gsm411\+\_\+rl\+\_\+report\+\_\+req()}.

\mbox{\label{group__sms_ga61b7e507b4273a570dac3a3cf7d59fbf}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!rp\_timer\_expired@{rp\_timer\_expired}}
\index{rp\_timer\_expired@{rp\_timer\_expired}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{rp\_timer\_expired()}
{\footnotesize\ttfamily static void rp\+\_\+timer\+\_\+expired (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ DLSMS}, \textbf{ GSM411\+\_\+\+RPS\+\_\+\+WAIT\+\_\+\+TO\+\_\+\+TX\+\_\+\+RP\+\_\+\+ACK}, \textbf{ gsm411\+\_\+send\+\_\+abort()}, \textbf{ gsm411\+\_\+send\+\_\+report()}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::id}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ gsm411\+\_\+smr\+\_\+inst\+::rp\+\_\+state}, and \textbf{ SMR\+\_\+\+LOG\+\_\+\+STR}.



Referenced by \textbf{ gsm411\+\_\+smr\+\_\+init()}.



\doxysubsection{Variable Documentation}
\mbox{\label{group__sms_ga11682741fcfb64febabcb8d529d67bb3}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_cp\_cause\_strs@{gsm411\_cp\_cause\_strs}}
\index{gsm411\_cp\_cause\_strs@{gsm411\_cp\_cause\_strs}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_cp\_cause\_strs\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm411\+\_\+cp\+\_\+cause\+\_\+strs[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gsm411\+\_\+tx\+\_\+cp\+\_\+error()}.

\mbox{\label{group__sms_ga11682741fcfb64febabcb8d529d67bb3}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_cp\_cause\_strs@{gsm411\_cp\_cause\_strs}}
\index{gsm411\_cp\_cause\_strs@{gsm411\_cp\_cause\_strs}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_cp\_cause\_strs\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm411\+\_\+cp\+\_\+cause\+\_\+strs[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_NET\_FAIL,     \textcolor{stringliteral}{"{}Network Failure"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_CONGESTION, \textcolor{stringliteral}{"{}Congestion"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_INV\_TRANS\_ID,     \textcolor{stringliteral}{"{}Invalid Transaction ID"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_SEMANT\_INC\_MSG, \textcolor{stringliteral}{"{}Semantically Incorrect Message"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_INV\_MAND\_INF,     \textcolor{stringliteral}{"{}Invalid Mandatory Information"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_MSGTYPE\_NOTEXIST, \textcolor{stringliteral}{"{}Message Type doesn't exist"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_MSG\_INCOMP\_STATE,}
\DoxyCodeLine{                                \textcolor{stringliteral}{"{}Message incompatible with protocol state"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_IE\_NOTEXIST,       \textcolor{stringliteral}{"{}IE does not exist"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CP\_CAUSE\_PROTOCOL\_ERR,     \textcolor{stringliteral}{"{}Protocol Error"{}} \},}
\DoxyCodeLine{        \{ 0, 0 \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+tx\+\_\+cp\+\_\+error()}.

\mbox{\label{group__sms_ga6267b0487b994fc3ee49d6d5666586c9}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_cp\_state\_names@{gsm411\_cp\_state\_names}}
\index{gsm411\_cp\_state\_names@{gsm411\_cp\_state\_names}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_cp\_state\_names\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm411\+\_\+cp\+\_\+state\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gsm411\+\_\+cp\+\_\+state\+\_\+name()}.

\mbox{\label{group__sms_ga6267b0487b994fc3ee49d6d5666586c9}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_cp\_state\_names@{gsm411\_cp\_state\_names}}
\index{gsm411\_cp\_state\_names@{gsm411\_cp\_state\_names}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_cp\_state\_names\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm411\+\_\+cp\+\_\+state\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM411\_CPS\_IDLE,               \textcolor{stringliteral}{"{}IDLE"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CPS\_MM\_CONN\_PENDING, \textcolor{stringliteral}{"{}MM\_CONN\_PENDING"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CPS\_WAIT\_CP\_ACK, \textcolor{stringliteral}{"{}WAIT\_CP\_ACK"{}} \},}
\DoxyCodeLine{        \{ GSM411\_CPS\_MM\_ESTABLISHED,   \textcolor{stringliteral}{"{}ESTABLISHD"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+cp\+\_\+state\+\_\+name()}.

\mbox{\label{group__sms_gac44e9d3e5d2048774c8a3e89a8b72641}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_rp\_cause\_strs@{gsm411\_rp\_cause\_strs}}
\index{gsm411\_rp\_cause\_strs@{gsm411\_rp\_cause\_strs}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_rp\_cause\_strs\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm411\+\_\+rp\+\_\+cause\+\_\+strs[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gsm411\+\_\+send\+\_\+rp\+\_\+error()}.

\mbox{\label{group__sms_gac44e9d3e5d2048774c8a3e89a8b72641}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_rp\_cause\_strs@{gsm411\_rp\_cause\_strs}}
\index{gsm411\_rp\_cause\_strs@{gsm411\_rp\_cause\_strs}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_rp\_cause\_strs\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm411\+\_\+rp\+\_\+cause\+\_\+strs[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_NUM\_UNASSIGNED, \textcolor{stringliteral}{"{}(MO) Number not assigned"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_OP\_DET\_BARR, \textcolor{stringliteral}{"{}(MO) Operator determined barring"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_CALL\_BARRED, \textcolor{stringliteral}{"{}(MO) Call barred"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_SMS\_REJECTED, \textcolor{stringliteral}{"{}(MO) SMS rejected"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_DEST\_OUT\_OF\_ORDER, \textcolor{stringliteral}{"{}(MO) Destination out of order"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_UNIDENTIFIED\_SUBSCR, \textcolor{stringliteral}{"{}(MO) Unidentified subscriber"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_FACILITY\_REJ, \textcolor{stringliteral}{"{}(MO) Facility reject"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_UNKNOWN\_SUBSCR, \textcolor{stringliteral}{"{}(MO) Unknown subscriber"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_NET\_OUT\_OF\_ORDER, \textcolor{stringliteral}{"{}(MO) Network out of order"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_TEMP\_FAIL, \textcolor{stringliteral}{"{}(MO) Temporary failure"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_CONGESTION, \textcolor{stringliteral}{"{}(MO) Congestion"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_RES\_UNAVAIL, \textcolor{stringliteral}{"{}(MO) Resource unavailable"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_REQ\_FAC\_NOTSUBSCR, \textcolor{stringliteral}{"{}(MO) Requested facility not subscribed"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_REQ\_FAC\_NOTIMPL, \textcolor{stringliteral}{"{}(MO) Requested facility not implemented"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MO\_INTERWORKING, \textcolor{stringliteral}{"{}(MO) Interworking"{}} \},}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MT\_MEM\_EXCEEDED, \textcolor{stringliteral}{"{}(MT) Memory Exceeded"{}} \},}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_INV\_TRANS\_REF, \textcolor{stringliteral}{"{}Invalid Transaction Reference"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_SEMANT\_INC\_MSG, \textcolor{stringliteral}{"{}Semantically Incorrect Message"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_INV\_MAND\_INF, \textcolor{stringliteral}{"{}Invalid Mandatory Information"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MSGTYPE\_NOTEXIST, \textcolor{stringliteral}{"{}Message Type non-\/existent"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_MSG\_INCOMP\_STATE, \textcolor{stringliteral}{"{}Message incompatible with protocol state"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_IE\_NOTEXIST, \textcolor{stringliteral}{"{}Information Element not existing"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RP\_CAUSE\_PROTOCOL\_ERR, \textcolor{stringliteral}{"{}Protocol Error"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+send\+\_\+rp\+\_\+error()}.

\mbox{\label{group__sms_gae818ea93a5004782a9d6df4bd731af38}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_rp\_state\_names@{gsm411\_rp\_state\_names}}
\index{gsm411\_rp\_state\_names@{gsm411\_rp\_state\_names}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_rp\_state\_names\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm411\+\_\+rp\+\_\+state\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gsm411\+\_\+rp\+\_\+state\+\_\+name()}.

\mbox{\label{group__sms_gae818ea93a5004782a9d6df4bd731af38}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!gsm411\_rp\_state\_names@{gsm411\_rp\_state\_names}}
\index{gsm411\_rp\_state\_names@{gsm411\_rp\_state\_names}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{gsm411\_rp\_state\_names\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm411\+\_\+rp\+\_\+state\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM411\_RPS\_IDLE,               \textcolor{stringliteral}{"{}IDLE"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RPS\_WAIT\_FOR\_RP\_ACK, \textcolor{stringliteral}{"{}WAIT\_FOR\_RP\_ACK"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RPS\_WAIT\_TO\_TX\_RP\_ACK,     \textcolor{stringliteral}{"{}WAIT\_TO\_TX\_RP\_ACK"{}} \},}
\DoxyCodeLine{        \{ GSM411\_RPS\_WAIT\_FOR\_RETRANS\_T,\textcolor{stringliteral}{"{}WAIT\_FOR\_RETRANS\_T"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+rp\+\_\+state\+\_\+name()}.

\mbox{\label{group__sms_ga54809a72d6aa0a74b0cc391e782fdf7b}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!smc\_state\_names@{smc\_state\_names}}
\index{smc\_state\_names@{smc\_state\_names}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{smc\_state\_names}
{\footnotesize\ttfamily const char$\ast$ smc\+\_\+state\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}IDLE"{}},}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}MM\_CONN\_PENDING"{}},}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}WAIT\_CP\_ACK"{}},}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}MM\_ESTABLISHED"{}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+mnsms\+\_\+rel\+\_\+req()}, \textbf{ gsm411\+\_\+smc\+\_\+recv()}, \textbf{ gsm411\+\_\+smc\+\_\+send()}, and \textbf{ new\+\_\+cp\+\_\+state()}.

\mbox{\label{group__sms_ga134644913781a6e65b1891fecbd2f5d4}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!smcdatastatelist@{smcdatastatelist}}
\index{smcdatastatelist@{smcdatastatelist}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{smcdatastatelist}
{\footnotesize\ttfamily const struct \textbf{ smcdatastate} smcdatastatelist[$\,$]\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ gsm411\+\_\+smc\+\_\+recv()}.

\mbox{\label{group__sms_ga1ec381d42a621255a3e76265324bd4af}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!smcdownstatelist@{smcdownstatelist}}
\index{smcdownstatelist@{smcdownstatelist}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{smcdownstatelist}
{\footnotesize\ttfamily const struct \textbf{ smcdownstate} smcdownstatelist[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{SBIT(GSM411\_CPS\_IDLE),}
\DoxyCodeLine{        GSM411\_MNSMS\_EST\_REQ,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}MNSMS-\/EST-\/REQ"{}}, gsm411\_mnsms\_est\_req\},}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{ALL\_STATES,}
\DoxyCodeLine{        GSM411\_MNSMS\_REL\_REQ,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}MNSMS-\/REL-\/REQ"{}}, gsm411\_mnsms\_rel\_req\},}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{SBIT(GSM411\_CPS\_MM\_ESTABLISHED),}
\DoxyCodeLine{        GSM411\_MNSMS\_DATA\_REQ,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}MNSMS-\/DATA-\/REQ"{}}, gsm411\_mnsms\_data\_req\},}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{ALL\_STATES -\/ SBIT(GSM411\_CPS\_IDLE),}
\DoxyCodeLine{        GSM411\_MNSMS\_ABORT\_REQ,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}MNSMS-\/ABORT-\/REQ"{}}, gsm411\_mnsms\_abort\_req\},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+smc\+\_\+send()}.

\mbox{\label{group__sms_gad5034a6673825cae01058f8718c6c064}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!smr\_state\_names@{smr\_state\_names}}
\index{smr\_state\_names@{smr\_state\_names}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{smr\_state\_names}
{\footnotesize\ttfamily const char$\ast$ smr\+\_\+state\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}IDLE"{}},}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}WAIT\_FOR\_RP\_ACK"{}},}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}illegal state 2"{}},}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}WAIT\_TO\_TX\_RP\_ACK"{}},}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}WAIT\_FOR\_RETRANS\_T"{}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+smr\+\_\+recv()}, \textbf{ gsm411\+\_\+smr\+\_\+send()}, and \textbf{ new\+\_\+rp\+\_\+state()}.

\mbox{\label{group__sms_ga210ea02d9cd6498d1760af5afb82864d}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!smrdatastatelist@{smrdatastatelist}}
\index{smrdatastatelist@{smrdatastatelist}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{smrdatastatelist}
{\footnotesize\ttfamily const struct \textbf{ smrdatastate} smrdatastatelist[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{SBIT(GSM411\_RPS\_IDLE),}
\DoxyCodeLine{         GSM411\_MNSMS\_EST\_IND,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}MNSMS-\/EST-\/IND"{}}, gsm411\_mnsms\_est\_ind\},}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{SBIT(GSM411\_RPS\_WAIT\_FOR\_RP\_ACK),}
\DoxyCodeLine{         GSM411\_MNSMS\_DATA\_IND,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}MNSMS-\/DATA-\/IND"{}}, gsm411\_mnsms\_data\_ind\_tx\},}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{SBIT(GSM411\_RPS\_WAIT\_FOR\_RP\_ACK),}
\DoxyCodeLine{         GSM411\_MNSMS\_ERROR\_IND,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}MNSMS-\/ERROR-\/IND"{}}, gsm411\_mnsms\_error\_ind\_tx\},}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{SBIT(GSM411\_RPS\_WAIT\_TO\_TX\_RP\_ACK),}
\DoxyCodeLine{         GSM411\_MNSMS\_ERROR\_IND,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}MNSMS-\/ERROR-\/IND"{}}, gsm411\_mnsms\_error\_ind\_rx\},}
\DoxyCodeLine{}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+smr\+\_\+recv()}.

\mbox{\label{group__sms_gae800c6cbcd716297cdd7346cf2965d51}} 
\index{Short Message Service (SMS)@{Short Message Service (SMS)}!smrdownstatelist@{smrdownstatelist}}
\index{smrdownstatelist@{smrdownstatelist}!Short Message Service (SMS)@{Short Message Service (SMS)}}
\doxysubsubsection{smrdownstatelist}
{\footnotesize\ttfamily const struct \textbf{ smrdownstate} smrdownstatelist[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{SBIT(GSM411\_RPS\_IDLE),}
\DoxyCodeLine{        GSM411\_SM\_RL\_DATA\_REQ,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}SM-\/RL-\/DATA\_REQ"{}}, gsm411\_rl\_data\_req\},}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{SBIT(GSM411\_RPS\_WAIT\_TO\_TX\_RP\_ACK),}
\DoxyCodeLine{        GSM411\_SM\_RL\_REPORT\_REQ,}
\DoxyCodeLine{         \textcolor{stringliteral}{"{}SM-\/RL-\/REPORT\_REQ"{}}, gsm411\_rl\_report\_req\},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm411\+\_\+smr\+\_\+send()}.

