\section{src/sccp\+\_\+vty.c File Reference}
\label{sccp__vty_8c}\index{src/sccp\+\_\+vty.\+c@{src/sccp\+\_\+vty.\+c}}
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$arpa/inet.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/vty.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/command.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/logging.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/telnet\+\_\+interface.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/misc.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/mtp.\+h$>$}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}sccp\+\_\+internal.\+h\char`\"{}}\newline
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static void \textbf{ show\+\_\+user} (struct vty $\ast$vty, struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$user)
\item 
\textbf{ D\+E\+F\+UN} (show\+\_\+sccp\+\_\+users, show\+\_\+sccp\+\_\+users\+\_\+cmd, \char`\"{}show cs7 instance $<$0-\/15$>$ sccp users\char`\"{}, S\+H\+O\+W\+\_\+\+S\+TR \textbf{ C\+S7\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ S\+C\+C\+P\+\_\+\+S\+TR} \char`\"{}Show List of S\+C\+CP Users registered\textbackslash{})
\item 
\textbf{ D\+E\+F\+UN} (show\+\_\+sccp\+\_\+user\+\_\+ssn, show\+\_\+sccp\+\_\+user\+\_\+ssn\+\_\+cmd, \char`\"{}show cs7 instance $<$0-\/15$>$ sccp ssn $<$0-\/65535$>$\char`\"{}, S\+H\+O\+W\+\_\+\+S\+TR \textbf{ C\+S7\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ S\+C\+C\+P\+\_\+\+S\+TR} \char`\"{}Find an S\+C\+CP User registered for the given S\+S\+N\textbackslash{} \char`\"{}Subsystem Number(S\+SN)\textbackslash{}\char`\"{})
\item 
\textbf{ D\+E\+F\+UN} (show\+\_\+sccp\+\_\+connections, show\+\_\+sccp\+\_\+connections\+\_\+cmd, \char`\"{}show cs7 instance $<$0-\/15$>$ sccp connections\char`\"{}, S\+H\+O\+W\+\_\+\+S\+TR \textbf{ C\+S7\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ S\+C\+C\+P\+\_\+\+S\+TR} \char`\"{}Show List of active S\+C\+CP connections\textbackslash{})
\item 
\textbf{ D\+E\+F\+U\+N\+\_\+\+A\+T\+TR} (sccp\+\_\+timer, sccp\+\_\+timer\+\_\+cmd, N\+U\+LL, N\+U\+LL, C\+M\+D\+\_\+\+A\+T\+T\+R\+\_\+\+I\+M\+M\+E\+D\+I\+A\+TE)
\item 
static const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name} (const struct \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+val} $\ast$val)
\item 
static void \textbf{ gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs} (struct cmd\+\_\+element $\ast$cmd)
\item 
static void \textbf{ write\+\_\+sccp\+\_\+timers} (struct vty $\ast$vty, const char $\ast$indent, struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, bool default\+\_\+if\+\_\+unset)
\item 
void \textbf{ osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node} (struct vty $\ast$vty, const char $\ast$indent, struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\item 
\textbf{ D\+E\+F\+UN} (show\+\_\+sccp\+\_\+timers, show\+\_\+sccp\+\_\+timers\+\_\+cmd, \char`\"{}show cs7 instance $<$0-\/15$>$ sccp timers\char`\"{}, S\+H\+O\+W\+\_\+\+S\+TR \textbf{ C\+S7\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \char`\"{}Signaling Connection Control Part\textbackslash{} \char`\"{}Show List of S\+C\+CP timers\textbackslash{}\char`\"{})
\item 
void \textbf{ osmo\+\_\+sccp\+\_\+vty\+\_\+init} (void)
\end{DoxyCompactItemize}


\subsection{Function Documentation}
\mbox{\label{sccp__vty_8c_abd47dd93d84750f2928a78025c8bf4cc}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!D\+E\+F\+UN@{D\+E\+F\+UN}}
\index{D\+E\+F\+UN@{D\+E\+F\+UN}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{D\+E\+F\+U\+N()\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily D\+E\+F\+UN (\begin{DoxyParamCaption}\item[{show\+\_\+sccp\+\_\+users}]{,  }\item[{show\+\_\+sccp\+\_\+users\+\_\+cmd}]{,  }\item[{\char`\"{}show cs7 instance $<$0-\/15$>$ sccp users\char`\"{}}]{,  }\item[{S\+H\+O\+W\+\_\+\+S\+TR \textbf{ C\+S7\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ S\+C\+C\+P\+\_\+\+S\+TR} \char`\"{}Show List of S\+C\+CP Users registered\textbackslash{}}]{ }\end{DoxyParamCaption})}



References osmo\+\_\+sccp\+\_\+user\+::list, osmo\+\_\+ss7\+\_\+instance\+\_\+find(), osmo\+\_\+ss7\+\_\+instance\+::sccp, show\+\_\+user(), and osmo\+\_\+sccp\+\_\+instance\+::users.

\mbox{\label{sccp__vty_8c_a223ea96ca8889c9091a869edd2eac961}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!D\+E\+F\+UN@{D\+E\+F\+UN}}
\index{D\+E\+F\+UN@{D\+E\+F\+UN}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{D\+E\+F\+U\+N()\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily D\+E\+F\+UN (\begin{DoxyParamCaption}\item[{show\+\_\+sccp\+\_\+user\+\_\+ssn}]{,  }\item[{show\+\_\+sccp\+\_\+user\+\_\+ssn\+\_\+cmd}]{,  }\item[{\char`\"{}show cs7 instance $<$0-\/15$>$ sccp ssn $<$0-\/65535$>$\char`\"{}}]{,  }\item[{S\+H\+O\+W\+\_\+\+S\+TR \textbf{ C\+S7\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ S\+C\+C\+P\+\_\+\+S\+TR} \char`\"{}Find an S\+C\+CP User registered for the given S\+S\+N\textbackslash{} \char`\"{}Subsystem Number(S\+SN)\textbackslash{}\char`\"{}}]{ }\end{DoxyParamCaption})}



References osmo\+\_\+ss7\+\_\+instance\+\_\+find(), osmo\+\_\+ss7\+\_\+instance\+::sccp, sccp\+\_\+user\+\_\+find(), show\+\_\+user(), and osmo\+\_\+sccp\+\_\+user\+::ssn.

\mbox{\label{sccp__vty_8c_a2faea712a703a5ddd9436e09b0827032}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!D\+E\+F\+UN@{D\+E\+F\+UN}}
\index{D\+E\+F\+UN@{D\+E\+F\+UN}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{D\+E\+F\+U\+N()\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily D\+E\+F\+UN (\begin{DoxyParamCaption}\item[{show\+\_\+sccp\+\_\+connections}]{,  }\item[{show\+\_\+sccp\+\_\+connections\+\_\+cmd}]{,  }\item[{\char`\"{}show cs7 instance $<$0-\/15$>$ sccp connections\char`\"{}}]{,  }\item[{S\+H\+O\+W\+\_\+\+S\+TR \textbf{ C\+S7\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ S\+C\+C\+P\+\_\+\+S\+TR} \char`\"{}Show List of active S\+C\+CP connections\textbackslash{}}]{ }\end{DoxyParamCaption})}



References osmo\+\_\+ss7\+\_\+instance\+\_\+find(), osmo\+\_\+ss7\+\_\+instance\+::sccp, and sccp\+\_\+scoc\+\_\+show\+\_\+connections().

\mbox{\label{sccp__vty_8c_ad41562b272f60528e3f1266bb2b2c74e}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!D\+E\+F\+UN@{D\+E\+F\+UN}}
\index{D\+E\+F\+UN@{D\+E\+F\+UN}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{D\+E\+F\+U\+N()\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily D\+E\+F\+UN (\begin{DoxyParamCaption}\item[{show\+\_\+sccp\+\_\+timers}]{,  }\item[{show\+\_\+sccp\+\_\+timers\+\_\+cmd}]{,  }\item[{\char`\"{}show cs7 instance $<$0-\/15$>$ sccp timers\char`\"{}}]{,  }\item[{S\+H\+O\+W\+\_\+\+S\+TR \textbf{ C\+S7\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \textbf{ I\+N\+S\+T\+\_\+\+S\+TR} \char`\"{}Signaling Connection Control Part\textbackslash{} \char`\"{}Show List of S\+C\+CP timers\textbackslash{}\char`\"{}}]{ }\end{DoxyParamCaption})}



References osmo\+\_\+ss7\+\_\+instance\+\_\+find(), osmo\+\_\+ss7\+\_\+instance\+::sccp, and write\+\_\+sccp\+\_\+timers().

\mbox{\label{sccp__vty_8c_a0c914ef5757459cb9ab098bedf64fa08}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!D\+E\+F\+U\+N\+\_\+\+A\+T\+TR@{D\+E\+F\+U\+N\+\_\+\+A\+T\+TR}}
\index{D\+E\+F\+U\+N\+\_\+\+A\+T\+TR@{D\+E\+F\+U\+N\+\_\+\+A\+T\+TR}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R()}
{\footnotesize\ttfamily D\+E\+F\+U\+N\+\_\+\+A\+T\+TR (\begin{DoxyParamCaption}\item[{sccp\+\_\+timer}]{,  }\item[{sccp\+\_\+timer\+\_\+cmd}]{,  }\item[{N\+U\+LL}]{,  }\item[{N\+U\+LL}]{,  }\item[{C\+M\+D\+\_\+\+A\+T\+T\+R\+\_\+\+I\+M\+M\+E\+D\+I\+A\+TE}]{ }\end{DoxyParamCaption})}



References osmo\+\_\+sccp\+\_\+timer\+\_\+names, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+C\+O\+U\+NT, osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp(), osmo\+\_\+sccp\+\_\+timer\+\_\+val\+::s, osmo\+\_\+ss7\+\_\+instance\+::sccp, and osmo\+\_\+sccp\+\_\+instance\+::timers.

\mbox{\label{sccp__vty_8c_af01dd1c42be7e714ed61c2fc1f1102ca}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs@{gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs}}
\index{gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs@{gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs()}
{\footnotesize\ttfamily static void gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs (\begin{DoxyParamCaption}\item[{struct cmd\+\_\+element $\ast$}]{cmd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References osmo\+\_\+sccp\+\_\+timer\+\_\+defaults, osmo\+\_\+sccp\+\_\+timer\+\_\+description(), osmo\+\_\+sccp\+\_\+timer\+\_\+name(), osmo\+\_\+sccp\+\_\+timer\+\_\+names, osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name(), and O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+C\+O\+U\+NT.



Referenced by osmo\+\_\+sccp\+\_\+vty\+\_\+init().

\mbox{\label{sccp__vty_8c_a14082f88a05a1562e7cc9df62e5ab82e}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name@{osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name}}
\index{osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name@{osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name()}
{\footnotesize\ttfamily static const char$\ast$ osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+val} $\ast$}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References osmo\+\_\+sccp\+\_\+timer\+\_\+val\+::s.



Referenced by gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs(), and write\+\_\+sccp\+\_\+timers().

\mbox{\label{sccp__vty_8c_a6d4d5f16593e9d3f087228dd064dc3ef}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!osmo\+\_\+sccp\+\_\+vty\+\_\+init@{osmo\+\_\+sccp\+\_\+vty\+\_\+init}}
\index{osmo\+\_\+sccp\+\_\+vty\+\_\+init@{osmo\+\_\+sccp\+\_\+vty\+\_\+init}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{osmo\+\_\+sccp\+\_\+vty\+\_\+init()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+vty\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



References gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs().

\mbox{\label{sccp__vty_8c_a03d33d5b19ae71529da0ac0984de2794}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node@{osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node}}
\index{osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node@{osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{const char $\ast$}]{indent,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References write\+\_\+sccp\+\_\+timers().



Referenced by write\+\_\+one\+\_\+cs7().

\mbox{\label{sccp__vty_8c_a021ce75d068f12ebf0856fab8df4380c}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!show\+\_\+user@{show\+\_\+user}}
\index{show\+\_\+user@{show\+\_\+user}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{show\+\_\+user()}
{\footnotesize\ttfamily static void show\+\_\+user (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{user }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References osmo\+\_\+sccp\+\_\+user\+::inst, osmo\+\_\+sccp\+\_\+user\+::name, osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+valid(), osmo\+\_\+ss7\+\_\+pointcode\+\_\+print(), osmo\+\_\+sccp\+\_\+user\+::pc, osmo\+\_\+sccp\+\_\+instance\+::ss7, and osmo\+\_\+sccp\+\_\+user\+::ssn.



Referenced by D\+E\+F\+U\+N().

\mbox{\label{sccp__vty_8c_ad2accb3b7294d5a38b243f08bd3cfa97}} 
\index{sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}!write\+\_\+sccp\+\_\+timers@{write\+\_\+sccp\+\_\+timers}}
\index{write\+\_\+sccp\+\_\+timers@{write\+\_\+sccp\+\_\+timers}!sccp\+\_\+vty.\+c@{sccp\+\_\+vty.\+c}}
\subsubsection{write\+\_\+sccp\+\_\+timers()}
{\footnotesize\ttfamily static void write\+\_\+sccp\+\_\+timers (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{const char $\ast$}]{indent,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{bool}]{default\+\_\+if\+\_\+unset }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References osmo\+\_\+sccp\+\_\+timer\+\_\+get(), osmo\+\_\+sccp\+\_\+timer\+\_\+name(), osmo\+\_\+sccp\+\_\+timer\+\_\+val\+\_\+name(), and osmo\+\_\+sccp\+\_\+instance\+::timers.



Referenced by D\+E\+F\+U\+N(), and osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node().

