| 2082 | | $ext->add($context, $exten, 'end', new ext_noop('Exiting macro-dialout-enum')); |
|---|
| 2083 | | $ext->add($context, 's-BUSY', '', new ext_noop('Trunk is reporting BUSY')); |
|---|
| 2084 | | $ext->add($context, 's-BUSY', '', new ext_busy(20)); |
|---|
| 2085 | | $ext->add($context, '_s-.', '', new ext_noop('Dial failed due to ${DIALSTATUS}')); |
|---|
| | 2095 | |
|---|
| | 2096 | $exten = 's-BUSY'; |
|---|
| | 2097 | /* |
|---|
| | 2098 | * HANGUPCAUSE 17 = Busy, or SIP 486 Busy everywhere |
|---|
| | 2099 | */ |
|---|
| | 2100 | $ext->add($context, $exten, '', new ext_noop('Dial failed due to trunk reporting BUSY - giving up')); |
|---|
| | 2101 | $ext->add($context, $exten, '', new ext_playtones('busy')); |
|---|
| | 2102 | $ext->add($context, $exten, '', new ext_busy(20)); |
|---|
| | 2103 | |
|---|
| | 2104 | /* |
|---|
| | 2105 | * There are reported bugs in Asterisk Blind Trasfers that result in Dial() returning and continuing |
|---|
| | 2106 | * execution with a status of ANSWER. So we hangup at this point |
|---|
| | 2107 | */ |
|---|
| | 2108 | $exten = 's-ANSWER'; |
|---|
| | 2109 | $ext->add($context, $exten, '', new ext_noop('Call successfully answered - Hanging up now')); |
|---|
| | 2110 | $ext->add($context, $exten, '', new ext_macro('hangupcall')); |
|---|
| | 2111 | |
|---|
| | 2112 | $exten = 's-NOANSWER'; |
|---|
| | 2113 | /* |
|---|
| | 2114 | * HANGUPCAUSE 18 = No User Responding, or SIP 408 Request Timeout |
|---|
| | 2115 | * HANGUPCAUSE 19 = No Answer From The User, or SIP 480 Temporarily unavailable, SIP 483 To many hops |
|---|
| | 2116 | */ |
|---|
| | 2117 | $ext->add($context, $exten, '', new ext_noop('Dial failed due to trunk reporting NOANSWER - giving up')); |
|---|
| | 2118 | $ext->add($context, $exten, '', new ext_progress()); |
|---|
| | 2119 | switch ($trunkreportmsg_ids['no_answer_msg_id']) { |
|---|
| | 2120 | case DEFAULT_MSG: |
|---|
| | 2121 | $ext->add($context, $exten, '', new ext_playback('number-not-answering,noanswer')); |
|---|
| | 2122 | break; |
|---|
| | 2123 | case CONGESTION_TONE: |
|---|
| | 2124 | $ext->add($context, $exten, '', new ext_playtones('congestion')); |
|---|
| | 2125 | break; |
|---|
| | 2126 | default: |
|---|
| | 2127 | $message = recordings_get_file($trunkreportmsg_ids['no_answer_msg_id']); |
|---|
| | 2128 | $message = ($message != "") ? $message : "number-not-answering"; |
|---|
| | 2129 | $ext->add($context, $exten, '', new ext_playback("$message, noanswer")); |
|---|
| | 2130 | } |
|---|
| | 2131 | $ext->add($context, $exten, '', new ext_congestion(20)); |
|---|
| | 2132 | |
|---|
| | 2133 | $exten = 's-INVALIDNMBR'; |
|---|
| | 2134 | /* |
|---|
| | 2135 | * HANGUPCAUSE 28 = Address Incomplete, or SIP 484 Address Incomplete |
|---|
| | 2136 | */ |
|---|
| | 2137 | $ext->add($context, $exten, '', new ext_noop('Dial failed due to trunk reporting Address Incomplete - giving up')); |
|---|
| | 2138 | $ext->add($context, $exten, '', new ext_progress()); |
|---|
| | 2139 | switch ($trunkreportmsg_ids['invalidnmbr_msg_id']) { |
|---|
| | 2140 | case DEFAULT_MSG: |
|---|
| | 2141 | $ext->add($context, $exten, '', new ext_playback('ss-noservice,noanswer')); |
|---|
| | 2142 | break; |
|---|
| | 2143 | case CONGESTION_TONE: |
|---|
| | 2144 | $ext->add($context, $exten, '', new ext_playtones('congestion')); |
|---|
| | 2145 | break; |
|---|
| | 2146 | default: |
|---|
| | 2147 | $message = recordings_get_file($trunkreportmsg_ids['invalidnmbr_msg_id']); |
|---|
| | 2148 | $message = ($message != "") ? $message : "ss-noservice"; |
|---|
| | 2149 | $ext->add($context, $exten, '', new ext_playback("$message, noanswer")); |
|---|
| | 2150 | } |
|---|
| | 2151 | $ext->add($context, $exten, '', new ext_busy(20)); |
|---|
| | 2152 | |
|---|
| | 2153 | $exten = "s-CHANGED"; |
|---|
| | 2154 | $ext->add($context, $exten, '', new ext_noop('Dial failed due to trunk reporting Number Changed - giving up')); |
|---|
| | 2155 | $ext->add($context, $exten, '', new ext_playtones('busy')); |
|---|
| | 2156 | $ext->add($context, $exten, '', new ext_busy(20)); |
|---|
| | 2157 | |
|---|
| | 2158 | $exten = '_s-.'; |
|---|
| | 2159 | $ext->add($context, $exten, '', new ext_set('RC', '${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})}')); |
|---|
| | 2160 | $ext->add($context, $exten, '', new ext_goto('1','${RC}')); |
|---|
| | 2161 | |
|---|
| | 2162 | $ext->add($context, '17', '', new ext_goto('1','s-BUSY')); |
|---|
| | 2163 | $ext->add($context, '18', '', new ext_goto('1','s-NOANSWER')); |
|---|
| | 2164 | $ext->add($context, '22', '', new ext_goto('1','s-CHANGED')); |
|---|
| | 2165 | $ext->add($context, '23', '', new ext_goto('1','s-CHANGED')); |
|---|
| | 2166 | $ext->add($context, '28', '', new ext_goto('1','s-INVALIDNMBR')); |
|---|
| | 2167 | $ext->add($context, '_X.', '', new ext_goto('1','continue')); |
|---|
| | 2168 | |
|---|
| | 2169 | $exten = 'continue'; |
|---|
| | 2170 | $ext->add($context, $exten, '', new ext_gotoif('$["${OUTFAIL_${ARG1}}" = ""]', 'noreport')); |
|---|
| | 2171 | $ext->add($context, $exten, '', new ext_agi('${OUTFAIL_${ARG1}}')); |
|---|
| | 2172 | $ext->add($context, $exten, 'noreport', new ext_noop('TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks')); |
|---|
| | 2173 | |
|---|
| | 2174 | $ext->add($context, 'disabletrunk', '', new ext_noop('TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling through to next trunk')); |
|---|
| | 2175 | $ext->add($context, 'bypass', '', new ext_noop('TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialout-trunk-predial-hook')); |
|---|
| | 2176 | |
|---|
| | 2177 | $ext->add($context, 'h', '', new ext_macro('hangupcall')); |
|---|
| | 2178 | |
|---|