El siguiente código muestra como aprovechar para las llamadas salientes los 8 canales de nuestro portech mv-378; el código original aquí:
en el extensions.conf, definimos:
[globals]
TRY1=SIP/GSMtrunk
TRY2=SIP/GSMtrunk1
TRY3=SIP/GSMtrunk2
TRY4=SIP/GSMtrunk3
TRY5=SIP/GSMtrunk4
TRY6=SIP/GSMtrunk5
TRY7=SIP/GSMtrunk6
TRY8=SIP/GSMtrunk7
;////////////////////////////////////////////
; ////// moviles ///////////////////////////
;////////////////////////////////////////////
[macro-encuentra-linea]
exten => s,1,set(TRIES=0) ; inicializamos la variable
exten => s,n(nextone),set(TRIES=$[${TRIES} + 1]) ; incrementa 1 a TRIES
exten => s,n,set(DIALSTRING=${TRY${TRIES}}) ; asignamos el valor de TRYn al DIALSTRING
exten => s,n,gotoif($[«${DIALSTRING}» = «»]?donehere) ; vemos si la variable = «» entonces no hay canales
exten => s,n,ChanIsAvail(${DIALSTRING}) ; para ver si el canal esta activo
exten => s,n,gotoif($[${AVAILSTATUS} = 0]?:nextone)
exten => s,n,gotoif($[${GROUP_COUNT(${DIALSTRING})} >= 1]?nextone) ; el canal esta ocupado
exten => s,n,set(GROUP()=${DIALSTRING}) ; Encontramos linea !!!!
exten => s,n,Dial(${DIALSTRING}/${ARG1}) ; Marcamos
exten => s,n,GotoIf($[«${DIALSTATUS}» = «BUSY»]?donehere) ; no podemos llamar 🙁
exten => s,n,NoOp(«Vamos al siguiente canal»);
exten => s,n,goto(nextone) ; TEMP
exten => s,n(donehere),MacroExit() ; finalizamos, no hay canales
[moviles]
exten => _6XXXXXXXX,1,Macro(encuentra-linea,${EXTEN})
exten => _6XXXXXXXX,n,hangup()
Hola. como este dispositivo envia sms, esto se lo puede realizar desde asterisk?? como en el caso cuando se conecta un telefono celular a asterisk y
exten => 123,1,MobileSendSMS(nokia,12345678,Hola mundo) algo asi??
Aquà tienes el php de ejemplo:
#!/usr/bin/php -q
n»;
die;
}
sleep(2);
$cmd = «$usernamer»;
fputs($fp, $cmd, strlen($cmd));
if ($debug)
echo fread($fp, 128);
sleep(1);
$cmd = «$passwordr»;
fputs($fp, $cmd, strlen($cmd));
if ($debug)
echo fread($fp, 128);
sleep(1);
$cmd = «moduler»;
fputs($fp, $cmd, strlen($cmd));
if ($debug)
echo fread($fp, 128);
sleep(2);
$cmd = «ate1r»;
fputs($fp, $cmd, strlen($cmd));
if ($debug)
echo fread($fp, 128);
sleep(1);
//Select SMS Message Format… (0=PDU Mode, 1=Text Mode)
$cmd = «at+cmgf=1r»;
fputs($fp, $cmd, strlen($cmd));
sleep(1);
if ($debug)
echo fread($fp, 128);
sleep(1);
//List SMS Messages…
$cmd = «AT+CMGL=»REC UNREAD»r»;
//$cmd = «AT+CMGL=»ALL»r»;
fputs($fp, $cmd, strlen($cmd));
sleep(1);
$res = » «;
$ttlres = «»;
stream_set_timeout($fp, 5); //5 seconds read timeout
while ($res != «»)
{
$res = fread($fp, 256);
if ($debug)
echo $res;
$ttlres .= $res;
}
echo «SMS Read Finished!n»;
$sms_list = explode(‘+CMGL: ‘, $ttlres);
//print_r($sms_list);
foreach($sms_list as $sms)
{
$sms_hdr = explode(«n», $sms, 2);
$arr_sms = parse_csv($sms_hdr[0]);
//print_r($arr_sms);
if ((count($arr_sms) > 2))
{
add_sms($arr_sms[2], $arr_sms[4], trim($sms_hdr[1]));
if ($delete_read)
{
//Delete Message…
$cmd = «at+cmgd={$arr_sms[0]}r»;
fputs($fp, $cmd, strlen($cmd));
sleep(1);
}
}
if ($debug)
echo fread($fp, 128);
}
fclose($fp);
?>
The only problem is when you setup this fertaue and you press the RED led button, you are inmediatly calling to the specify device and if you press any number from your phone, you can see the digits you are pressing Imagine you setup the BLF to when you press the led, call a Trunk, and that trunk give you tone, you can’t see what numbers your are pressing Setup and check and you will see.I mean thisI press the LED button > In my screen have to be someting saying: Please enter number: