| 68 | | |
|---|
| 69 | | $engine_info = engine_getinfo(); |
|---|
| 70 | | $version = $engine_info['version']; |
|---|
| 71 | | $routes=lanugage_incoming_get(); |
|---|
| 72 | | foreach($routes as $current => $route){ |
|---|
| 73 | | if($route['extension']=='' && $route['cidnum']){//callerID only |
|---|
| 74 | | $extension='s/'.$route['cidnum']; |
|---|
| 75 | | $context=$route['pricid']?'ext-did-0001':'ext-did-0002'; |
|---|
| 76 | | }else{ |
|---|
| 77 | | if(($route['extension'] && $route['cidnum'])||($route['extension']=='' && $route['cidnum']=='')){//callerid+did / any/any |
|---|
| 78 | | $context='ext-did-0001'; |
|---|
| 79 | | }else{//did only |
|---|
| 80 | | $context='ext-did-0002'; |
|---|
| 81 | | } |
|---|
| 82 | | $extension=($route['extension']!=''?$route['extension']:'s').($route['cidnum']==''?'':'/'.$route['cidnum']); |
|---|
| 83 | | } |
|---|
| 84 | | if(version_compare($version, "1.4", "ge")){ |
|---|
| 85 | | $ext->splice($context, $extension, 1, new ext_setvar('CHANNEL(language)',$route['language'])); |
|---|
| 86 | | }else{ |
|---|
| 87 | | $ext->splice($context, $extension, 1, new ext_setvar('LANGUAGE',$route['language'])); |
|---|
| 88 | | } |
|---|
| 89 | | } |
|---|
| 245 | | //inbound route langauge settings |
|---|
| 246 | | function languages_hook_core($viewing_itemid, $target_menuid){ |
|---|
| 247 | | //if were editing, get save parms |
|---|
| 248 | | if(isset($_REQUEST['pricid']) && $_REQUEST['pricid'] == 'CHECKED'){$pricid=true;}else{$pricid=false;} |
|---|
| 249 | | if(!isset($_REQUEST['extension']) && !isset($_REQUEST['cidnum'])){//set $extension,$cidnum if we dont already have them |
|---|
| 250 | | $opts=explode('/', $_REQUEST['extdisplay']);$extension=$opts['0'];$cidnum=$opts['1']; |
|---|
| 251 | | }else{ |
|---|
| 252 | | $extension=$_REQUEST['extension'];$cidnum=$_REQUEST['cidnum']; |
|---|
| 253 | | } |
|---|
| 254 | | if((isset($_REQUEST['action']) && $_REQUEST['action'] == 'edtIncoming') || ( isset($extension) || isset($cidnum )) && isset($_REQUEST['language']) ){ |
|---|
| 255 | | laguages_incoming_update($language=$_REQUEST['language'],$extension,$cidnum,$pricid); |
|---|
| 256 | | } |
|---|
| 257 | | if(isset($_REQUEST['action']) && $_REQUEST['action']=='delIncoming'){ |
|---|
| 258 | | laguages_incoming_delete($extension,$cidnum); |
|---|
| 259 | | } |
|---|
| 260 | | $html = ''; |
|---|
| 261 | | if ($target_menuid == 'did'){ |
|---|
| 262 | | $html.='<tr><td colspan="2"><h5>'._("Language").'<hr></h5></td></tr>'; |
|---|
| 263 | | $html.='<tr><td><a href="#" class="info">'._('Langauge').'<span>'._("Allowes you to set the language for this DID.").'</span></a>:</td>'; |
|---|
| 264 | | $html.='<td><input type="text" name="language" value="'.lanugage_incoming_get($extension,$cidnum).'"></td></tr>'; |
|---|
| 265 | | } |
|---|
| 266 | | return $html; |
|---|
| 267 | | } |
|---|
| 268 | | |
|---|
| 269 | | function lanugage_incoming_get($extension=null,$cidnum=null){ |
|---|
| 270 | | global $db; |
|---|
| 271 | | if($extension || $cidnum || $_REQUEST['extdisplay']=='/' || $_REQUEST['display']=='did'){ |
|---|
| 272 | | $sql='SELECT language FROM language_incoming WHERE extension = ? AND cidnum = ?'; |
|---|
| 273 | | $lang=$db->getOne($sql, array($extension, $cidnum)); |
|---|
| 274 | | }else{ |
|---|
| 275 | | $sql="SELECT * FROM language_incoming"; |
|---|
| 276 | | $lang=$db->getAll($sql, DB_FETCHMODE_ASSOC); |
|---|
| 277 | | } |
|---|
| 278 | | return $lang; |
|---|
| 279 | | } |
|---|
| 280 | | |
|---|
| 281 | | function laguages_incoming_update($language=null,$extension=null,$cidnum=null,$pricid){ |
|---|
| 282 | | global $db; |
|---|
| 283 | | $sql='DELETE FROM language_incoming WHERE extension = ? AND cidnum = ?'; |
|---|
| 284 | | $db->query($sql,array($extension,$cidnum)); |
|---|
| 285 | | if(isset($language) && $language!=''){//no need to keep a record if were not setting the language |
|---|
| 286 | | $sql='INSERT INTO language_incoming (extension,cidnum,language,pricid) VALUES (?, ?, ?, ?)'; |
|---|
| 287 | | $db->query($sql,array($extension,$cidnum,$language,$pricid)); |
|---|
| 288 | | } |
|---|
| 289 | | } |
|---|
| 290 | | |
|---|
| 291 | | function laguages_incoming_delete($extension=null,$cidnum=null){ |
|---|
| 292 | | global $db; |
|---|
| 293 | | $sql='DELETE FROM language_incoming WHERE extension = ? AND cidnum = ?'; |
|---|
| 294 | | $foo=$db->query($sql,array($extension,$cidnum)); |
|---|
| 295 | | } |
|---|
| 296 | | |
|---|