root/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. sngss7_con_ind
  2. sngss7_con_cfm
  3. sngss7_con_sta
  4. sngss7_rel_ind
  5. sngss7_rel_cfm
  6. sngss7_dat_ind
  7. sngss7_fac_ind
  8. sngss7_fac_cfm
  9. sngss7_umsg_ind
  10. sngss7_sta_ind

   1 /*
   2  * Copyright (c) 2009, Konrad Hammel <konrad@sangoma.com>
   3  * All rights reserved.
   4  *
   5  * Redistribution and use in source and binary forms, with or without
   6  * modification, are permitted provided that the following conditions
   7  * are met:
   8  *
   9  * * Redistributions of source code must retain the above copyright
  10  * notice, this list of conditions and the following disclaimer.
  11  *
  12  * * Redistributions in binary form must reproduce the above copyright
  13  * notice, this list of conditions and the following disclaimer in the
  14  * documentation and/or other materials provided with the distribution.
  15  *
  16  * * Neither the name of the original author; nor the names of any contributors
  17  * may be used to endorse or promote products derived from this software
  18  * without specific prior written permission.
  19  *
  20  *
  21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  24  * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER
  25  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  26  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  27  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  28  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  29  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  30  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  31  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32  */
  33 
  34 /* INCLUDE ********************************************************************/
  35 #include "ftmod_sangoma_ss7_main.h"
  36 /******************************************************************************/
  37 
  38 /* DEFINES ********************************************************************/
  39 /******************************************************************************/
  40 
  41 /* GLOBALS ********************************************************************/
  42 /******************************************************************************/
  43 
  44 /* PROTOTYPES *****************************************************************/
  45 void sngss7_sta_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint8_t globalFlg, uint8_t evntType, SiStaEvnt *siStaEvnt);
  46 void sngss7_con_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiConEvnt *siConEvnt);
  47 void sngss7_con_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiConEvnt *siConEvnt);
  48 void sngss7_con_sta(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiCnStEvnt *siCnStEvnt, uint8_t evntType);
  49 void sngss7_rel_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiRelEvnt *siRelEvnt);
  50 void sngss7_rel_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiRelEvnt *siRelEvnt);
  51 void sngss7_dat_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiInfoEvnt *siInfoEvnt);
  52 void sngss7_fac_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint8_t evntType, SiFacEvnt *siFacEvnt);
  53 void sngss7_fac_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint8_t evntType, SiFacEvnt *siFacEvnt);
  54 void sngss7_umsg_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit);
  55 
  56 /******************************************************************************/
  57 
  58 /* FUNCTIONS ******************************************************************/
  59 void sngss7_con_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiConEvnt *siConEvnt)
  60 {
  61         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
  62 
  63         sngss7_chan_data_t      *sngss7_info = NULL;
  64         ftdm_channel_t          *ftdmchan = NULL;
  65         sngss7_event_data_t     *sngss7_event = NULL;
  66 
  67         /* get the ftdmchan and ss7_chan_data from the circuit */
  68         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
  69                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
  70                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
  71                 return;
  72         }
  73 
  74         /* initalize the sngss7_event */
  75         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
  76         if (sngss7_event == NULL) {
  77                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
  78                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
  79                 return;
  80         }
  81         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
  82 
  83         /* fill in the sngss7_event struct */
  84         sngss7_event->spInstId  = spInstId;
  85         sngss7_event->suInstId  = suInstId;
  86         sngss7_event->circuit   = circuit;
  87         sngss7_event->event_id  = SNGSS7_CON_IND_EVENT;
  88         memcpy(&sngss7_event->event.siConEvnt, siConEvnt, sizeof(*siConEvnt));
  89 
  90         /* enqueue this event */
  91         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
  92 
  93         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
  94 }
  95 
  96 /******************************************************************************/
  97 void sngss7_con_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiConEvnt *siConEvnt)
  98 {
  99         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 100 
 101         sngss7_chan_data_t      *sngss7_info = NULL;
 102         ftdm_channel_t          *ftdmchan = NULL;
 103         sngss7_event_data_t     *sngss7_event = NULL;
 104 
 105         /* get the ftdmchan and ss7_chan_data from the circuit */
 106         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 107                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 108                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 109                 return;
 110         }
 111 
 112         /* initalize the sngss7_event */
 113         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 114         if (sngss7_event == NULL) {
 115                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 116                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 117                 return;
 118         }
 119         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 120 
 121         /* fill in the sngss7_event struct */
 122         sngss7_event->spInstId  = spInstId;
 123         sngss7_event->suInstId  = suInstId;
 124         sngss7_event->circuit   = circuit;
 125         sngss7_event->event_id  = SNGSS7_CON_CFM_EVENT;
 126         memcpy(&sngss7_event->event.siConEvnt, siConEvnt, sizeof(*siConEvnt));
 127 
 128         /* enqueue this event */
 129         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 130 
 131         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 132 }
 133 
 134 /******************************************************************************/
 135 void sngss7_con_sta(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiCnStEvnt *siCnStEvnt, uint8_t evntType)
 136 {
 137         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 138 
 139         sngss7_chan_data_t      *sngss7_info = NULL;
 140         ftdm_channel_t          *ftdmchan = NULL;
 141         sngss7_event_data_t     *sngss7_event = NULL;
 142 
 143         /* get the ftdmchan and ss7_chan_data from the circuit */
 144         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 145                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 146                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 147                 return;
 148         }
 149 
 150         /* initalize the sngss7_event */
 151         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 152         if (sngss7_event == NULL) {
 153                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 154                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 155                 return;
 156         }
 157         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 158 
 159         /* fill in the sngss7_event struct */
 160         sngss7_event->spInstId  = spInstId;
 161         sngss7_event->suInstId  = suInstId;
 162         sngss7_event->circuit   = circuit;
 163         sngss7_event->evntType  = evntType;
 164         sngss7_event->event_id  = SNGSS7_CON_STA_EVENT;
 165         memcpy(&sngss7_event->event.siCnStEvnt, siCnStEvnt, sizeof(*siCnStEvnt));
 166 
 167         /* enqueue this event */
 168         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 169 
 170         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 171 }
 172 
 173 /******************************************************************************/
 174 void sngss7_rel_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiRelEvnt *siRelEvnt)
 175 {
 176         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 177 
 178         sngss7_chan_data_t      *sngss7_info = NULL;
 179         ftdm_channel_t          *ftdmchan = NULL;
 180         sngss7_event_data_t     *sngss7_event = NULL;
 181 
 182         /* get the ftdmchan and ss7_chan_data from the circuit */
 183         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 184                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 185                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 186                 return;
 187         }
 188 
 189         /* initalize the sngss7_event */
 190         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 191         if (sngss7_event == NULL) {
 192                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 193                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 194                 return;
 195         }
 196         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 197 
 198         /* fill in the sngss7_event struct */
 199         sngss7_event->spInstId  = spInstId;
 200         sngss7_event->suInstId  = suInstId;
 201         sngss7_event->circuit   = circuit;
 202         sngss7_event->event_id  = SNGSS7_REL_IND_EVENT;
 203         memcpy(&sngss7_event->event.siRelEvnt, siRelEvnt, sizeof(*siRelEvnt));
 204 
 205         /* enqueue this event */
 206         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 207 
 208         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 209 }
 210 
 211 /******************************************************************************/
 212 void sngss7_rel_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiRelEvnt *siRelEvnt)
 213 {
 214         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 215 
 216         sngss7_chan_data_t      *sngss7_info = NULL;
 217         ftdm_channel_t          *ftdmchan = NULL;
 218         sngss7_event_data_t     *sngss7_event = NULL;
 219 
 220         /* get the ftdmchan and ss7_chan_data from the circuit */
 221         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 222                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 223                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 224                 return;
 225         }
 226 
 227         /* initalize the sngss7_event */
 228         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 229         if (sngss7_event == NULL) {
 230                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 231                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 232                 return;
 233         }
 234         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 235 
 236         /* fill in the sngss7_event struct */
 237         sngss7_event->spInstId  = spInstId;
 238         sngss7_event->suInstId  = suInstId;
 239         sngss7_event->circuit   = circuit;
 240         sngss7_event->event_id  = SNGSS7_REL_CFM_EVENT;
 241         memcpy(&sngss7_event->event.siRelEvnt, siRelEvnt, sizeof(*siRelEvnt));
 242 
 243         /* enqueue this event */
 244         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 245 
 246         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 247 }
 248 
 249 /******************************************************************************/
 250 void sngss7_dat_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiInfoEvnt *siInfoEvnt)
 251 {
 252         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 253 
 254         sngss7_chan_data_t      *sngss7_info = NULL;
 255         ftdm_channel_t          *ftdmchan = NULL;
 256         sngss7_event_data_t     *sngss7_event = NULL;
 257 
 258         /* get the ftdmchan and ss7_chan_data from the circuit */
 259         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 260                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 261                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 262                 return;
 263         }
 264 
 265         /* initalize the sngss7_event */
 266         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 267         if (sngss7_event == NULL) {
 268                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 269                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 270                 return;
 271         }
 272         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 273 
 274         /* fill in the sngss7_event struct */
 275         sngss7_event->spInstId  = spInstId;
 276         sngss7_event->suInstId  = suInstId;
 277         sngss7_event->circuit   = circuit;
 278         sngss7_event->event_id  = SNGSS7_DAT_IND_EVENT;
 279         memcpy(&sngss7_event->event.siInfoEvnt, siInfoEvnt, sizeof(*siInfoEvnt));
 280 
 281         /* enqueue this event */
 282         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 283 
 284         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 285 }
 286 
 287 /******************************************************************************/
 288 void sngss7_fac_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint8_t evntType, SiFacEvnt *siFacEvnt)
 289 {
 290         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 291 
 292         sngss7_chan_data_t      *sngss7_info = NULL;
 293         ftdm_channel_t          *ftdmchan = NULL;
 294         sngss7_event_data_t     *sngss7_event = NULL;
 295 
 296         /* get the ftdmchan and ss7_chan_data from the circuit */
 297         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 298                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 299                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 300                 return;
 301         }
 302 
 303         /* initalize the sngss7_event */
 304         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 305         if (sngss7_event == NULL) {
 306                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 307                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 308                 return;
 309         }
 310         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 311 
 312         /* fill in the sngss7_event struct */
 313         sngss7_event->spInstId  = spInstId;
 314         sngss7_event->suInstId  = suInstId;
 315         sngss7_event->circuit   = circuit;
 316         sngss7_event->evntType  = evntType;
 317         sngss7_event->event_id  = SNGSS7_FAC_IND_EVENT;
 318         memcpy(&sngss7_event->event.siFacEvnt, siFacEvnt, sizeof(*siFacEvnt));
 319 
 320         /* enqueue this event */
 321         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 322 
 323         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 324 }
 325 
 326 /******************************************************************************/
 327 void sngss7_fac_cfm(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint8_t evntType, SiFacEvnt *siFacEvnt)
 328 {
 329         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 330 
 331         sngss7_chan_data_t      *sngss7_info = NULL;
 332         ftdm_channel_t          *ftdmchan = NULL;
 333         sngss7_event_data_t     *sngss7_event = NULL;
 334 
 335         /* get the ftdmchan and ss7_chan_data from the circuit */
 336         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 337                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 338                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 339                 return;
 340         }
 341 
 342         /* initalize the sngss7_event */
 343         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 344         if (sngss7_event == NULL) {
 345                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 346                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 347                 return;
 348         }
 349         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 350 
 351         /* fill in the sngss7_event struct */
 352         sngss7_event->spInstId  = spInstId;
 353         sngss7_event->suInstId  = suInstId;
 354         sngss7_event->circuit   = circuit;
 355         sngss7_event->evntType  = evntType;
 356         sngss7_event->event_id  = SNGSS7_FAC_CFM_EVENT;
 357         memcpy(&sngss7_event->event.siFacEvnt, siFacEvnt, sizeof(*siFacEvnt));
 358 
 359         /* enqueue this event */
 360         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 361 
 362         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 363 }
 364 
 365 /******************************************************************************/
 366 void sngss7_umsg_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit)
 367 {
 368         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 369 
 370         sngss7_chan_data_t      *sngss7_info = NULL;
 371         ftdm_channel_t          *ftdmchan = NULL;
 372         sngss7_event_data_t     *sngss7_event = NULL;
 373 
 374         /* get the ftdmchan and ss7_chan_data from the circuit */
 375         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 376                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 377                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 378                 return;
 379         }
 380 
 381         /* initalize the sngss7_event */
 382         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 383         if (sngss7_event == NULL) {
 384                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 385                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 386                 return;
 387         }
 388         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 389 
 390         /* fill in the sngss7_event struct */
 391         sngss7_event->spInstId  = spInstId;
 392         sngss7_event->suInstId  = suInstId;
 393         sngss7_event->circuit   = circuit;
 394         sngss7_event->event_id  = SNGSS7_UMSG_IND_EVENT;
 395 
 396         /* enqueue this event */
 397         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 398 
 399         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 400 
 401 }
 402 /* GENERAL STATUS *************************************************************/
 403 void sngss7_sta_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, uint8_t globalFlg, uint8_t evntType, SiStaEvnt *siStaEvnt)
 404 {
 405         SS7_FUNC_TRACE_ENTER(__FUNCTION__);
 406 
 407         sngss7_chan_data_t      *sngss7_info = NULL;
 408         ftdm_channel_t          *ftdmchan = NULL;
 409         sngss7_event_data_t     *sngss7_event = NULL;
 410 
 411         /* get the ftdmchan and ss7_chan_data from the circuit */
 412         if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
 413                 SS7_ERROR("Failed to extract channel data for circuit = %d!\n", circuit);
 414                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 415                 return;
 416         }
 417 
 418         /* initalize the sngss7_event */
 419         sngss7_event = ftdm_malloc(sizeof(*sngss7_event));
 420         if (sngss7_event == NULL) {
 421                 SS7_ERROR("Failed to allocate memory for sngss7_event!\n");
 422                 SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 423                 return;
 424         }
 425         memset(sngss7_event, 0x0, sizeof(*sngss7_event));
 426 
 427         /* fill in the sngss7_event struct */
 428         sngss7_event->spInstId  = spInstId;
 429         sngss7_event->suInstId  = suInstId;
 430         sngss7_event->circuit   = circuit;
 431         sngss7_event->globalFlg = globalFlg;
 432         sngss7_event->evntType  = evntType;
 433         sngss7_event->event_id  = SNGSS7_STA_IND_EVENT;
 434         if (siStaEvnt != NULL) {
 435                 memcpy(&sngss7_event->event.siStaEvnt, siStaEvnt, sizeof(*siStaEvnt));
 436         }
 437 
 438         /* enqueue this event */
 439         ftdm_queue_enqueue(((sngss7_span_data_t*)sngss7_info->ftdmchan->span->mod_data)->event_queue, sngss7_event);
 440 
 441         SS7_FUNC_TRACE_EXIT(__FUNCTION__);
 442 }
 443 
 444 /******************************************************************************/
 445 
 446 /******************************************************************************/
 447 /* For Emacs:
 448  * Local Variables:
 449  * mode:c
 450  * indent-tabs-mode:t
 451  * tab-width:4
 452  * c-basic-offset:4
 453  * End:
 454  * For VIM:
 455  * vim:set softtabstop=4 shiftwidth=4 tabstop=4:
 456  */
 457 /******************************************************************************/
 458 

/* [<][>][^][v][top][bottom][index][help] */