Changeset 8581

Show
Ignore:
Timestamp:
01/10/10 17:50:15 (3 years ago)
Author:
mbrevda
Message:

re #4004; proper dialplan generation for language - inbound routes hooks

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/branches/2.7/languages/functions.inc.php

    r8580 r8581  
    5050          $ext->add('app-languages',$row['language_id'], '', new ext_goto($row['dest'])); 
    5151      } 
     52     
     53    break; 
     54  } 
     55} 
     56 
     57function languages_hookGet_config($engine) { 
     58  global $ext; 
     59  global $version; 
     60  switch($engine) { 
     61    case "asterisk": 
     62      $priority = 'report'; 
     63      if (version_compare($version, "1.4", "ge")) {  
     64        $ext->splice('macro-user-callerid', 's', $priority,new ext_execif('$["${DB(AMPUSER/${AMPUSER}/language)}" != ""]', 'Set', 'CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)}')); 
     65      } else { 
     66        $ext->splice('macro-user-callerid', 's', $priority,new ext_execif('$["${DB(AMPUSER/${AMPUSER}/language)}" != ""]', 'Set', 'LANGUAGE()=${DB(AMPUSER/${AMPUSER}/language)}')); 
     67      } 
    5268       
    5369      $engine_info = engine_getinfo(); 
    5470      $version = $engine_info['version'];      
    5571      $routes=lanugage_incoming_get(); 
     72      dbug($routes); 
    5673      foreach($routes as $current => $route){ 
    5774        if($route['extension']&&!$route['cidnum']){ 
     
    6683          $extension=$route['extension']; 
    6784        }else{//catchall 
    68           $context='ext-did-catchall'; 
     85          $context='ext-did-0001'; 
     86          $extension='s'; 
    6987        } 
    70         if (version_compare($version, "1.4", "ge")) {  
    71           $ext->splice($context, $extension, '2', new ext_setvar('CHANNEL(language)',$routes['language'])); 
     88        if (version_compare($version, "1.4", "ge")){  
     89          dbug($context.' '.$extension); 
     90          $ext->splice($context, $extension, 1, new ext_setvar('CHANNEL(language)',$route['language'])); 
    7291        }else{ 
    73           $ext->splice($context, $extension, '2', new ext_setvar('LANGUAGE',$routes['language'])); 
     92          dbug('foo'); 
     93          $ext->splice($context, $extension, 1, new ext_setvar('LANGUAGE',$route['language'])); 
    7494        } 
    7595    } 
    76     break; 
    77   } 
    78 } 
    79  
    80 function languages_hookGet_config($engine) { 
    81   global $ext; 
    82   global $version; 
    83   switch($engine) { 
    84     case "asterisk": 
    85       $priority = 'report'; 
    86       if (version_compare($version, "1.4", "ge")) {  
    87         $ext->splice('macro-user-callerid', 's', $priority,new ext_execif('$["${DB(AMPUSER/${AMPUSER}/language)}" != ""]', 'Set', 'CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)}')); 
    88       } else { 
    89         $ext->splice('macro-user-callerid', 's', $priority,new ext_execif('$["${DB(AMPUSER/${AMPUSER}/language)}" != ""]', 'Set', 'LANGUAGE()=${DB(AMPUSER/${AMPUSER}/language)}')); 
    90       } 
    91  
    9296    break; 
    9397  } 
     
    261265    $html.='<tr><td colspan="2"><h5>'._("Language").'<hr></h5></td></tr>'; 
    262266    $html.='<tr><td><a href="#" class="info">'._('Langauge').'<span>'._("Allowes you to set the language for this DID.").'</span></a>:</td>'; 
    263     $html.='<td><input type="text" name="language" value="'.lanugage_incoming_get($extension,$cidnum).'"></td></tr>'; 
     267    $html.='<td><input type="text" name="language" value="'.lanugage_incoming_get($extension,$cidnum,$_REQUEST['extdisplay']).'"></td></tr>'; 
    264268  } 
    265269  return $html; 
    266270} 
    267271 
    268 function lanugage_incoming_get($extension=null,$cidnum=null){ 
    269   global $db; 
    270   if($extension || $cidnum){ 
     272function lanugage_incoming_get($extension=null,$cidnum=null,$extdisplay=null){ 
     273  global $db; 
     274  if($extension || $cidnum || $extdisplay=='/'){ 
    271275    $sql='SELECT language FROM language_incoming WHERE extension = ? AND cidnum = ?'; 
    272276    $lang=$db->getOne($sql, array($extension, $cidnum));