Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/02/2007, 19:18
LordCat
 
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires, Capital Federal
Mensajes: 43
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: Asterisk PBX y asp.NET

podes conectarte al socket del manager del asterisk y hacer un ORIGINATE

el codigo lo tengo en php pero por la similitud no te costara traducirlo, si es que algo difiere:


abrir el socket
-------------
$errno=0 ;
$errstr=0 ;
if(!($fp = @fsockopen ("localhost", 5038, &$errno, &$errstr, 20))){
print('Error al abrir el socket<br>'.$errstr.' ('.$errno.')<br>');
exit();
}else{
print('El socket esta abierto<br>');
}



loguearte
---------
$comando = "";
$comando .= "Action: login\r\n";
$comando .= "Username: phpagi\r\n";
$comando .= "Secret: phpagi\r\n";
$comando .= "Events: off\r\n\r\n";
// el user phpagi viene por default en el trixbox y esta definido para conecciones locales, sino podes definirte un user en MANAGER.CONF, en la carpeta etc/asterisk

fputs($fp,$comando);






busco el estado de la extension donde quiero meter mi llamada
-----------------------------------------------------------

$comando = "";
$comando .= "Action: ExtensionState\r\n";
$comando .= "Context: default\r\n";
$comando .= "Exten: ".$extension."\r\n";
$comando .= "ActionID: 1\r\n";
$comando .= "Events: off\r\n\r\n";
//$comando .= "";
fputs($fp,$comando);

for($i=0;$i<7;$i++){
$res = fgets($fp);
//print($res.'<br>');
if($i==6){
$status_canal = $res;
}
}// esta ultima parte esta medio rudimentaria porque el php me tira unos errores usando feof


y finalmente si el canal esta libre
-------------------------------

if(strpos($status_canal,'0')){
fputs ($fp, "Action: Originate\r\n");
fputs ($fp, "Channel: SIP/".$extension."\r\n"); //primero que llamo
fputs ($fp, "Context: from-internal\r\n");
fputs ($fp, "Exten: ".$destino."\r\n");
fputs ($fp, "Priority: 1\r\n");
fputs ($fp, "CallerID: ".$destino."\r\n\r\n");
//fputs ($fp, "Timeout: 5000\r\n\r\n");
}

// donde $extension es la cuenta SIP que tendrias al lado del ordenador, y destino es el numero donde te queres contactar




espero que te sirva!!

PD: todo esto lo saque ya hace un tiempo de www.voip-info.org