\doxysection{gsm0808\+\_\+handover\+\_\+request Struct Reference}
\label{structgsm0808__handover__request}\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}}


3GPP TS 48.\+008 §3.2.\+1.\+8 HANDOVER REQUEST  




{\ttfamily \#include $<$gsm0808.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ gsm0808\+\_\+channel\+\_\+type} \textbf{ channel\+\_\+type}
\item 
struct \textbf{ gsm0808\+\_\+encrypt\+\_\+info} \textbf{ encryption\+\_\+information}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+classmark} \textbf{ classmark\+\_\+information}
\item 
struct \textbf{ gsm0808\+\_\+cell\+\_\+id} \textbf{ cell\+\_\+identifier\+\_\+serving}
\item 
struct \textbf{ gsm0808\+\_\+cell\+\_\+id} \textbf{ cell\+\_\+identifier\+\_\+target}
\item 
enum \textbf{ gsm0808\+\_\+cause} \textbf{ cause}
\item 
bool \textbf{ current\+\_\+channel\+\_\+type\+\_\+1\+\_\+present}
\item 
uint8\+\_\+t \textbf{ current\+\_\+channel\+\_\+type\+\_\+1}
\item 
enum \textbf{ gsm0808\+\_\+permitted\+\_\+speech} \textbf{ speech\+\_\+version\+\_\+used}
\item 
uint8\+\_\+t \textbf{ chosen\+\_\+encryption\+\_\+algorithm\+\_\+serving}
\item 
bool \textbf{ old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+present}
\begin{DoxyCompactList}\small\item\em Pass either old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info or old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+raw. \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info} \textbf{ old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info}
\item 
const uint8\+\_\+t $\ast$ \textbf{ old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+raw}
\begin{DoxyCompactList}\small\item\em To feed the Old BSS to New BSS Information IE unchanged from the Handover Required message without having to decode it. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+raw\+\_\+len}
\item 
const char $\ast$ \textbf{ imsi}
\item 
const struct sockaddr\+\_\+storage $\ast$ \textbf{ aoip\+\_\+transport\+\_\+layer}
\item 
const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$ \textbf{ codec\+\_\+list\+\_\+msc\+\_\+preferred}
\item 
bool \textbf{ call\+\_\+id\+\_\+present}
\item 
uint32\+\_\+t \textbf{ call\+\_\+id}
\item 
const uint8\+\_\+t $\ast$ \textbf{ global\+\_\+call\+\_\+reference}
\item 
uint8\+\_\+t \textbf{ global\+\_\+call\+\_\+reference\+\_\+len}
\item 
bool \textbf{ more\+\_\+items}
\begin{DoxyCompactList}\small\item\em set this to true iff any fields below are used \end{DoxyCompactList}\item 
bool \textbf{ kc128\+\_\+present}
\item 
uint8\+\_\+t \textbf{ kc128} [16]
\item 
bool \textbf{ more\+\_\+items2}
\begin{DoxyCompactList}\small\item\em always set this to false \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
3GPP TS 48.\+008 §3.2.\+1.\+8 HANDOVER REQUEST 

\doxysubsection{Field Documentation}
\mbox{\label{structgsm0808__handover__request_a9bdd534bb70b5767d15ca594dd54c136}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!aoip\_transport\_layer@{aoip\_transport\_layer}}
\index{aoip\_transport\_layer@{aoip\_transport\_layer}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{aoip\_transport\_layer}
{\footnotesize\ttfamily const struct sockaddr\+\_\+storage$\ast$ gsm0808\+\_\+handover\+\_\+request\+::aoip\+\_\+transport\+\_\+layer}

\mbox{\label{structgsm0808__handover__request_ad1c443fb0bfc584d854c497ad476247c}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!call\_id@{call\_id}}
\index{call\_id@{call\_id}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{call\_id}
{\footnotesize\ttfamily uint32\+\_\+t gsm0808\+\_\+handover\+\_\+request\+::call\+\_\+id}

\mbox{\label{structgsm0808__handover__request_af6790f7311f74d7180a8112c2cd4febe}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!call\_id\_present@{call\_id\_present}}
\index{call\_id\_present@{call\_id\_present}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{call\_id\_present}
{\footnotesize\ttfamily bool gsm0808\+\_\+handover\+\_\+request\+::call\+\_\+id\+\_\+present}

\mbox{\label{structgsm0808__handover__request_a985342760a85c4e268386d07168efe43}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!cause@{cause}}
\index{cause@{cause}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{cause}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+cause} gsm0808\+\_\+handover\+\_\+request\+::cause}

\mbox{\label{structgsm0808__handover__request_a0ddd909c4dd9e55b0d8d0dd2818e1c55}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!cell\_identifier\_serving@{cell\_identifier\_serving}}
\index{cell\_identifier\_serving@{cell\_identifier\_serving}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{cell\_identifier\_serving}
{\footnotesize\ttfamily struct \textbf{ gsm0808\+\_\+cell\+\_\+id} gsm0808\+\_\+handover\+\_\+request\+::cell\+\_\+identifier\+\_\+serving}

\mbox{\label{structgsm0808__handover__request_a7329a76193c72cb340e109ac87654af9}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!cell\_identifier\_target@{cell\_identifier\_target}}
\index{cell\_identifier\_target@{cell\_identifier\_target}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{cell\_identifier\_target}
{\footnotesize\ttfamily struct \textbf{ gsm0808\+\_\+cell\+\_\+id} gsm0808\+\_\+handover\+\_\+request\+::cell\+\_\+identifier\+\_\+target}

\mbox{\label{structgsm0808__handover__request_aa7bc99bc990e9a74f729270a2a0e1787}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!channel\_type@{channel\_type}}
\index{channel\_type@{channel\_type}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{channel\_type}
{\footnotesize\ttfamily struct \textbf{ gsm0808\+\_\+channel\+\_\+type} gsm0808\+\_\+handover\+\_\+request\+::channel\+\_\+type}

\mbox{\label{structgsm0808__handover__request_a5f46530e73e9fb70230639db4917d957}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!chosen\_encryption\_algorithm\_serving@{chosen\_encryption\_algorithm\_serving}}
\index{chosen\_encryption\_algorithm\_serving@{chosen\_encryption\_algorithm\_serving}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{chosen\_encryption\_algorithm\_serving}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+handover\+\_\+request\+::chosen\+\_\+encryption\+\_\+algorithm\+\_\+serving}

\mbox{\label{structgsm0808__handover__request_ac5f9280bca494427bfdc07a9342b944f}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!classmark\_information@{classmark\_information}}
\index{classmark\_information@{classmark\_information}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{classmark\_information}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+gsm48\+\_\+classmark} gsm0808\+\_\+handover\+\_\+request\+::classmark\+\_\+information}

\mbox{\label{structgsm0808__handover__request_aaac45d986055839b73ab7b6a324147d8}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!codec\_list\_msc\_preferred@{codec\_list\_msc\_preferred}}
\index{codec\_list\_msc\_preferred@{codec\_list\_msc\_preferred}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{codec\_list\_msc\_preferred}
{\footnotesize\ttfamily const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list}$\ast$ gsm0808\+\_\+handover\+\_\+request\+::codec\+\_\+list\+\_\+msc\+\_\+preferred}

\mbox{\label{structgsm0808__handover__request_a098a9e43b5b5f6e294a15ecdf2eddd65}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!current\_channel\_type\_1@{current\_channel\_type\_1}}
\index{current\_channel\_type\_1@{current\_channel\_type\_1}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{current\_channel\_type\_1}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+handover\+\_\+request\+::current\+\_\+channel\+\_\+type\+\_\+1}

\mbox{\label{structgsm0808__handover__request_a3b36abb0309c13ec133cd60a4b3d5016}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!current\_channel\_type\_1\_present@{current\_channel\_type\_1\_present}}
\index{current\_channel\_type\_1\_present@{current\_channel\_type\_1\_present}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{current\_channel\_type\_1\_present}
{\footnotesize\ttfamily bool gsm0808\+\_\+handover\+\_\+request\+::current\+\_\+channel\+\_\+type\+\_\+1\+\_\+present}

\mbox{\label{structgsm0808__handover__request_ab18b85a1f6eaf149ba0a11a6965caa26}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!encryption\_information@{encryption\_information}}
\index{encryption\_information@{encryption\_information}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{encryption\_information}
{\footnotesize\ttfamily struct \textbf{ gsm0808\+\_\+encrypt\+\_\+info} gsm0808\+\_\+handover\+\_\+request\+::encryption\+\_\+information}

\mbox{\label{structgsm0808__handover__request_aa49b99e62a045d1647d5df171a188578}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!global\_call\_reference@{global\_call\_reference}}
\index{global\_call\_reference@{global\_call\_reference}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{global\_call\_reference}
{\footnotesize\ttfamily const uint8\+\_\+t$\ast$ gsm0808\+\_\+handover\+\_\+request\+::global\+\_\+call\+\_\+reference}

\mbox{\label{structgsm0808__handover__request_a489a83459037a2a5b742a8e3321b5011}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!global\_call\_reference\_len@{global\_call\_reference\_len}}
\index{global\_call\_reference\_len@{global\_call\_reference\_len}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{global\_call\_reference\_len}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+handover\+\_\+request\+::global\+\_\+call\+\_\+reference\+\_\+len}

\mbox{\label{structgsm0808__handover__request_a709db97f2e787e803e81038afd4468cf}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!imsi@{imsi}}
\index{imsi@{imsi}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{imsi}
{\footnotesize\ttfamily const char$\ast$ gsm0808\+\_\+handover\+\_\+request\+::imsi}

\mbox{\label{structgsm0808__handover__request_ab5f8d03630e79f41921b11b399fb8306}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!kc128@{kc128}}
\index{kc128@{kc128}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{kc128}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+handover\+\_\+request\+::kc128[16]}

\mbox{\label{structgsm0808__handover__request_acb5ded328d52bbfffcb6e3a44ec81176}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!kc128\_present@{kc128\_present}}
\index{kc128\_present@{kc128\_present}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{kc128\_present}
{\footnotesize\ttfamily bool gsm0808\+\_\+handover\+\_\+request\+::kc128\+\_\+present}

\mbox{\label{structgsm0808__handover__request_adf637749d8ba79bbc15a105ff64e27dc}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!more\_items@{more\_items}}
\index{more\_items@{more\_items}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{more\_items}
{\footnotesize\ttfamily bool gsm0808\+\_\+handover\+\_\+request\+::more\+\_\+items}



set this to true iff any fields below are used 

\mbox{\label{structgsm0808__handover__request_a10257164a378c64dd344dcddd824491d}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!more\_items2@{more\_items2}}
\index{more\_items2@{more\_items2}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{more\_items2}
{\footnotesize\ttfamily bool gsm0808\+\_\+handover\+\_\+request\+::more\+\_\+items2}



always set this to false 

\mbox{\label{structgsm0808__handover__request_abf3ea4c7328f73b01b8308ec2f077cae}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!old\_bss\_to\_new\_bss\_info@{old\_bss\_to\_new\_bss\_info}}
\index{old\_bss\_to\_new\_bss\_info@{old\_bss\_to\_new\_bss\_info}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{old\_bss\_to\_new\_bss\_info}
{\footnotesize\ttfamily struct \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info} gsm0808\+\_\+handover\+\_\+request\+::old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info}

\mbox{\label{structgsm0808__handover__request_a5ad981c9b69d3815ae7d9b7a6316faff}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!old\_bss\_to\_new\_bss\_info\_present@{old\_bss\_to\_new\_bss\_info\_present}}
\index{old\_bss\_to\_new\_bss\_info\_present@{old\_bss\_to\_new\_bss\_info\_present}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{old\_bss\_to\_new\_bss\_info\_present}
{\footnotesize\ttfamily bool gsm0808\+\_\+handover\+\_\+request\+::old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+present}



Pass either old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info or old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+raw. 

\mbox{\label{structgsm0808__handover__request_ab821303d9156460b5d316173611116f7}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!old\_bss\_to\_new\_bss\_info\_raw@{old\_bss\_to\_new\_bss\_info\_raw}}
\index{old\_bss\_to\_new\_bss\_info\_raw@{old\_bss\_to\_new\_bss\_info\_raw}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{old\_bss\_to\_new\_bss\_info\_raw}
{\footnotesize\ttfamily const uint8\+\_\+t$\ast$ gsm0808\+\_\+handover\+\_\+request\+::old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+raw}



To feed the Old BSS to New BSS Information IE unchanged from the Handover Required message without having to decode it. 

Pass either old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info or old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+raw. Omit the TL part. \mbox{\label{structgsm0808__handover__request_a3f7586ce1f82b363f0fa985f8bdf1067}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!old\_bss\_to\_new\_bss\_info\_raw\_len@{old\_bss\_to\_new\_bss\_info\_raw\_len}}
\index{old\_bss\_to\_new\_bss\_info\_raw\_len@{old\_bss\_to\_new\_bss\_info\_raw\_len}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{old\_bss\_to\_new\_bss\_info\_raw\_len}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+handover\+\_\+request\+::old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+raw\+\_\+len}

\mbox{\label{structgsm0808__handover__request_a9ce28cad60b71924549e7cd3875b930a}} 
\index{gsm0808\_handover\_request@{gsm0808\_handover\_request}!speech\_version\_used@{speech\_version\_used}}
\index{speech\_version\_used@{speech\_version\_used}!gsm0808\_handover\_request@{gsm0808\_handover\_request}}
\doxysubsubsection{speech\_version\_used}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+permitted\+\_\+speech} gsm0808\+\_\+handover\+\_\+request\+::speech\+\_\+version\+\_\+used}



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/osmocom/gsm/\textbf{ gsm0808.\+h}\end{DoxyCompactItemize}
