\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 $<$osmocom/sccp/sccp\+\_\+types.\+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 \textbf{ D\+E\+F\+U\+N\+\_\+\+A\+T\+TR} (sccp\+\_\+max\+\_\+optional\+\_\+data, sccp\+\_\+max\+\_\+optional\+\_\+data\+\_\+cmd, \char`\"{}sccp max-\/optional-\/\textbf{ data} ($<$0-\/999999$>$$\vert$standard)\char`\"{}, \char`\"{}Configure S\+C\+CP behavior\textbackslash{} \char`\"{}Adjust the upper bound for the optional \textbf{ data} length(the payload) for CR, CC, C\+R\+EF and R\+L\+SD messages.\char`\"{} \char`\"{} For any Optional Data part larger than this value in octets, send CR, CC, C\+R\+EF and R\+L\+SD\char`\"{} \char`\"{} messages without any payload, and send the \textbf{ data} payload in a separate Data Form 1 message.\char`\"{} \char`\"{} I\+TU-\/T Q.\+713 sections 4.\+2 thru 4.\+5 define a limit of 130 bytes for the \textquotesingle{}Data\textquotesingle{} parameter. This limit can be\char`\"{} \char`\"{} adjusted here. May be useful for interop with nonstandard S\+C\+CP peers.\textbackslash{}\char`\"{} \char`\"{}Set a non-\/standard maximum allowed number of bytes\textbackslash{}\char`\"{} \char`\"{}Use the I\+TU-\/T Q.\+713 4.\+2 to 4.\+5 standard value of 130\textbackslash{}\char`\"{}, C\+M\+D\+\_\+\+A\+T\+T\+R\+\_\+\+I\+M\+M\+E\+D\+I\+A\+TE) \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()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\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\+\_\+\+L\+EN, osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp(), osmo\+\_\+ss7\+\_\+instance\+::sccp, and osmo\+\_\+sccp\+\_\+instance\+::tdefs. \mbox{\label{sccp__vty_8c_a6e607d8a66783f831a4e15920f6c0835}} \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()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily D\+E\+F\+U\+N\+\_\+\+A\+T\+TR (\begin{DoxyParamCaption}\item[{sccp\+\_\+max\+\_\+optional\+\_\+data}]{, }\item[{sccp\+\_\+max\+\_\+optional\+\_\+data\+\_\+cmd}]{, }\item[{\char`\"{}sccp max-\/optional-\/\textbf{ data} ($<$0-\/999999$>$$\vert$standard)\char`\"{}}]{, }\item[{\char`\"{}Configure S\+C\+CP behavior\textbackslash{} \char`\"{}Adjust the upper bound for the optional \textbf{ data} length(the payload) for}]{CR, }\item[{CC}]{, }\item[{C\+R\+EF and R\+L\+SD messages.\char`\"{} \char`\"{} For any Optional Data part larger than this value in}]{octets, }\item[{send}]{CR, }\item[{CC}]{, }\item[{C\+R\+EF and R\+L\+SD\char`\"{} \char`\"{} messages without any}]{payload, }\item[{and send the \textbf{ data} payload in a separate Data Form 1 message.\char`\"{} \char`\"{} I\+TU-\/T Q.\+713 sections 4.\+2 thru 4.\+5 define a limit of 130 bytes for the \textquotesingle{}Data\textquotesingle{} parameter. This limit can be\char`\"{} \char`\"{} adjusted here. May be useful for interop with nonstandard S\+C\+CP peers.\textbackslash{}n\char`\"{} \char`\"{}Set a non-\/standard maximum allowed number of bytes\textbackslash{}n\char`\"{} \char`\"{}Use the I\+TU-\/T Q.\+713 4.\+2 to 4.\+5 standard value of 130\textbackslash{}n\char`\"{}}]{, }\item[{C\+M\+D\+\_\+\+A\+T\+T\+R\+\_\+\+I\+M\+M\+E\+D\+I\+A\+TE}]{ }\end{DoxyParamCaption})} References osmo\+\_\+sccp\+\_\+set\+\_\+max\+\_\+optional\+\_\+data(), osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp(), and osmo\+\_\+ss7\+\_\+instance\+::sccp. \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, and osmo\+\_\+sccp\+\_\+timer\+\_\+names. Referenced by osmo\+\_\+sccp\+\_\+vty\+\_\+init(). \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(). Referenced by osmo\+\_\+scu\+\_\+prim\+\_\+type\+\_\+name(). \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 osmo\+\_\+sccp\+\_\+instance\+::max\+\_\+optional\+\_\+data, and 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\+\_\+names, and osmo\+\_\+sccp\+\_\+instance\+::tdefs. Referenced by D\+E\+F\+U\+N(), and osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node().