root/src/ftdm_call_utils.c

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

DEFINITIONS

This source file includes following definitions.
  1. FT_DECLARE
  2. FT_DECLARE
  3. FT_DECLARE
  4. FT_DECLARE
  5. FT_DECLARE
  6. FT_DECLARE
  7. FT_DECLARE
  8. FT_DECLARE

   1 /*
   2  * Copyright (c) 2010, Sangoma Technologies
   3  * David Yat Sin <dyatsin@sangoma.com>
   4  * All rights reserved.
   5  * 
   6  * Redistribution and use in source and binary forms, with or without
   7  * modification, are permitted provided that the following conditions
   8  * are met:
   9  * 
  10  * * Redistributions of source code must retain the above copyright
  11  * notice, this list of conditions and the following disclaimer.
  12  * 
  13  * * Redistributions in binary form must reproduce the above copyright
  14  * notice, this list of conditions and the following disclaimer in the
  15  * documentation and/or other materials provided with the distribution.
  16  * 
  17  * * Neither the name of the original author; nor the names of any contributors
  18  * may be used to endorse or promote products derived from this software
  19  * without specific prior written permission.
  20  * 
  21  * 
  22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  23  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  24  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  25  * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER
  26  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  27  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  28  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  29  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  30  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  31  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  32  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  33  *
  34  * Contributors: 
  35  *
  36  * Moises Silva <moy@sangoma.com>
  37  * Ricardo BarroetaveƱa <rbarroetavena@anura.com.ar>
  38  *
  39  */
  40 
  41 #include "private/ftdm_core.h"
  42 #include <ctype.h>
  43 
  44 
  45 FT_DECLARE(ftdm_status_t) ftdm_set_npi(const char *string, uint8_t *target)
  46 {
  47         uint8_t val;
  48         ftdm_status_t status = FTDM_SUCCESS;
  49 
  50         val = ftdm_str2ftdm_npi(string);
  51         if (val == FTDM_NPI_INVALID) {
  52                 ftdm_log(FTDM_LOG_WARNING, "Invalid NPI string (%s)\n", string);
  53                 status = FTDM_FAIL;
  54                 val = FTDM_NPI_UNKNOWN;
  55         }
  56         *target = val;
  57         return status;
  58 }
  59 
  60 FT_DECLARE(ftdm_status_t) ftdm_set_ton(const char *string, uint8_t *target)
  61 {
  62         uint8_t val;
  63         ftdm_status_t status = FTDM_SUCCESS;
  64 
  65         val = ftdm_str2ftdm_ton(string);
  66         if (val == FTDM_TON_INVALID) {
  67                 ftdm_log(FTDM_LOG_WARNING, "Invalid TON string (%s)\n", string);
  68                 status = FTDM_FAIL;
  69                 val = FTDM_TON_UNKNOWN;
  70         }
  71         *target = val;
  72         return status;
  73 }
  74 
  75 FT_DECLARE(ftdm_status_t) ftdm_set_bearer_capability(const char *string, uint8_t *target)
  76 {
  77         uint8_t val;
  78         ftdm_status_t status = FTDM_SUCCESS;
  79 
  80         val = ftdm_str2ftdm_bearer_cap(string);
  81         if (val == FTDM_NPI_INVALID) {
  82                 ftdm_log(FTDM_LOG_WARNING, "Invalid Bearer-Capability string (%s)\n", string);
  83                 status = FTDM_FAIL;
  84                 val = FTDM_BEARER_CAP_SPEECH;
  85         }
  86 
  87         *target = val;
  88         return status;
  89 }
  90 
  91 FT_DECLARE(ftdm_status_t) ftdm_set_bearer_layer1(const char *string, uint8_t *target)
  92 {
  93         uint8_t val;
  94         ftdm_status_t status = FTDM_SUCCESS;
  95 
  96         val = ftdm_str2ftdm_usr_layer1_prot(string);
  97         if (val == FTDM_USER_LAYER1_PROT_INVALID) {
  98                 ftdm_log(FTDM_LOG_WARNING, "Invalid Bearer Layer 1 Protocol string (%s)\n", string);
  99                 status = FTDM_FAIL;
 100                 val = FTDM_USER_LAYER1_PROT_ULAW;
 101         }
 102 
 103         *target = val;
 104         return status;
 105 }
 106 
 107 FT_DECLARE(ftdm_status_t) ftdm_set_screening_ind(const char *string, uint8_t *target)
 108 {
 109         uint8_t val;
 110         ftdm_status_t status = FTDM_SUCCESS;
 111 
 112         val = ftdm_str2ftdm_screening(string);
 113         if (val == FTDM_SCREENING_INVALID) {
 114                 ftdm_log(FTDM_LOG_WARNING, "Invalid screening indicator string (%s)\n", string);
 115                 status = FTDM_FAIL;
 116                 val = FTDM_SCREENING_NOT_SCREENED;
 117         }
 118 
 119         *target = val;
 120         return status;
 121 }
 122 
 123 FT_DECLARE(ftdm_status_t) ftdm_set_presentation_ind(const char *string, uint8_t *target)
 124 {
 125         uint8_t val;
 126         ftdm_status_t status = FTDM_SUCCESS;
 127 
 128         val = ftdm_str2ftdm_presentation(string);
 129         if (val == FTDM_PRES_INVALID) {
 130                 ftdm_log(FTDM_LOG_WARNING, "Invalid presentation string (%s)\n", string);
 131                 status = FTDM_FAIL;
 132                 val = FTDM_PRES_ALLOWED;
 133         }
 134 
 135         *target = val;
 136         return status;
 137 }
 138 
 139 FT_DECLARE(ftdm_status_t) ftdm_is_number(const char *number)
 140 {
 141         if (!number) {
 142                 return FTDM_FAIL;
 143         }
 144 
 145         for ( ; *number; number++) {
 146                 if (!isdigit(*number)) {
 147                         return FTDM_FAIL;
 148                 }
 149         }
 150         return FTDM_SUCCESS;
 151 }
 152 
 153 
 154 FT_DECLARE(ftdm_status_t) ftdm_set_calling_party_category(const char *string, uint8_t *target)
 155 {
 156         uint8_t val;
 157         ftdm_status_t status = FTDM_SUCCESS;
 158 
 159         val = ftdm_str2ftdm_calling_party_category(string);
 160         if (val == FTDM_CPC_INVALID) {
 161                 ftdm_log(FTDM_LOG_WARNING, "Invalid category string (%s)\n", string);
 162                 val = FTDM_CPC_ORDINARY;
 163                 status = FTDM_FAIL;
 164         }
 165 
 166         *target = val;
 167         return status;
 168 }
 169 

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