Nach Callerid(name) ändern, höre ich die Gegenstelle nicht.

strikegun

Neuer User
Mitglied seit
18 Apr 2007
Beiträge
34
Punkte für Reaktionen
0
Punkte
6
Hi,
ich habe ein Script in php gebaut um mir die Telefon Nummer des Anrufers
anzeigen zu lassen.

im extensions.ael
macro incoming () {
NoOp(Received incoming SIP to ${EXTEN} - ${CALLERID(all)});
agi(caller_lookup_egw.php|${CALLERID(num)});
NoOp(Anrufer ist ${name});
set(CALLERID(name)=${name});
&nachschaltung(${vip});
}

caller_lookup_egw.php
.....
$result=$db->query($sql);
$vip="no";
if ($result->num_rows>0) {
$row=$result->fetch_array(MYSQLI_BOTH);
$name=utf8_decode($row['n_fn']);
$name = str_replace (array("ä", "ö", "ü", "ß", "Ä", "Ö", "Ü"), array("ae", "oe", "ue", "ss", "Ae", "Oe", "Ue"), $name);
if ($row['tel_work']==$nummer) $name=$name."-Buero";
else if ($row['tel_cell']==$nummer || $row['tel_cell_private']==$nummer) $name=$name."-Mobil";
else if ($row['tel_fax']==$nummer || $row['tel_fax_home']==$nummer) $name=$name."-Fax";
else if ($row['tel_home']==$nummer) $name=$name."-Home";
$cats=explode(",",$row['cat_id']);
foreach($cats as $cat) {
if ($cat == $cat_id_vip) {
$vip="yes";
}
}
} else {
$name=$nummeralt;
}
echo 'SEND TEXT "'.$name.'"'."\n";
echo 'SET VARIABLE NAME '."\"$name\"\n";
.....
nur wenn so ein Anruf reinkommt, kann ich den Anrufer nicht hören, aber er mich.
Sobald ich den AGI Kommand auskommentiere geht es.
Hat jemand eine Idee was ich falsch mache?

Es läuft auf Asterisk 1.4.19
Danke

Strikegun
 
[gelöst]Nach Callerid(name) ändern, höre ich die Gegenstelle nicht.

ich habe es erstmal anders gemacht.

caller_lookup_egw.php
.....
if ($result->num_rows>0) {
$row=$result->fetch_array(MYSQLI_BOTH);
$name=utf8_decode($row['n_fn']);
$name = str_replace (array("ä", "ö", "ü", "ß", "Ä", "Ö", "Ü"), array("ae", "oe", "ue", "ss", "Ae", "Oe", "Ue"), $name);
if ($row['tel_work']==$nummer) $name=$name."-Buero";
else if ($row['tel_cell']==$nummer || $row['tel_cell_private']==$nummer) $name=$name."-Mobil";
else if ($row['tel_fax']==$nummer || $row['tel_fax_home']==$nummer) $name=$name."-Fax";
else if ($row['tel_home']==$nummer) $name=$name."-Home";
$cats=explode(",",$row['cat_id']);
foreach($cats as $cat) {
if ($cat == $cat_id_vip) {
$vip="yes";
}
}
} else {
$name="";
}
$s_out = fopen("php://stdout", "w");
$number=cid_build( $name, $nummeralt );
fputs($s_out,"SET CALLERID $number\n");
fputs($s_out,"SET VARIABLE VIP \"$vip\"\n");

function cid_build( $name, $number )
{ if( $name == "" )
{ return trim( substr( str_replace( " ", "", $number ), 0, 24 ) ); }
else
{ return "\"" . trim( substr( trim( $name ), 0, 24 ) )
. "\"<" . trim( substr( str_replace( " ", "", $number ), 0, 24 ) )
.">";
}
}
.....
Damit wird direkt aus dem AGI script die CallerID gesetzt. Aber gleich mit Name und Nummer.
Anscheint mag er es nicht nur den Namen zu ändern. Aber ganz schlüssig bin ich mir nicht warum es nur so geht.
Jedenfalls bekomm ich nun endlich meine Namen aus dem Egroupware Adressbuch.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.