Nachrichten auf dem AB per ISDN werden als von anonym angezeigt

Bug #553544 reported by Philipp Kempgen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Gemeinschaft (by Amooma)
Fix Released
Low
Unassigned
Gemeinschaft (ph.)
Confirmed
Low
Unassigned

Bug Description

 affects gemeinschaft
 affects gemeinschaft-amooma
 status confirmed
 importance low
 tag isdn ab anrufbeantworter
 summary "Nachrichten auf dem AB per ISDN werden als von anonym angezeigt"
 done

Problem: Nachrichten auf dem Anrufbeantworter die von extern per
ISDN reinkommen werden im Web-Interface als von "anonym" angezeigt.

... den Code durchgelesen um zu verstehen wie es auf
der Home-Seite zu einer Anzeige von "anonym" in kursiv kommen kann:
( opt/gemeinschaft/htdocs/gui/mod/home_home.php )
Wenn `cidnum` der entsprechenden Nachrichteninformation in `vm_msgs`
leer ist.
Wie kann es dazu kommen?
( opt/gemeinschaft/dialplan-scripts/vm-postexec )
Wenn in der /var/spool/asterisk/voicemail/default/${user}/INBOX/msg*.txt
(Beispiel: callerid="name" <nummer>) keine Nummer steht oder wenn
die Zeile callerid=... gar nicht vorhanden ist.
Wie kann es dazu kommen?

Nach Lesen von Asterisk-Code scheint es so zu sein daß
Asterisk wenn Name und Nummer vorliegen das Format:
 callerid="Name" <Nummer>
verwendet, wenn nur ein Name vorliegt:
 callerid=Name
wenn nur eine Nummer vorliegt:
 callerid=Nummer
wenn beides unbekannt ist:
 callerid=Unknown

Höchst wahrscheinlich hat man bei Anrufen über ISDN aber nur die
Nummer.

Wir parsen aber nur das erste Format.
Die anderen Formate sind eh Unsinn, denn da läßt sich ja nicht mehr
erkennen was ein Name und was eine Rufnummer ist. Der gesunde
Menschenverstand sagt daß Asterisk bei nur Name das Format
 callerid="Name" <>
bzw. bei nur Nummer das Format
 callerid=<Nummer>
verwenden sollte.
Da scheint wohl jemand nicht nachgedacht zu haben. :-(

Man könnte wenn kein "<" vorkommt das ganze Ding immer als Name
ansehen.
Hm, das machen wir schon.

Wir gehen nur bei der Anzeige davon aus daß wenn keine Nummer
vorhanden ist dann auch kein Name vorhanden ist (was ja auch
irgendwie sinnvoll ist) und zeigen den also nicht an.

Patch für 2.3.1 etwa so (weiß nicht ob es so applied, aber auch
manuell ist es ja keine große Änderung):

============================================================
--- opt/gemeinschaft/htdocs/gui/mod/home_home.php
+++ opt/gemeinschaft/htdocs/gui/mod/home_home.php
@@ -111,8 +111,8 @@
     echo '<tr class="', ($i%2?'even':'odd') ,'">' ,"\n";
     echo '<td style="width:30%;"><nobr>', htmlEnt(date_human($r['orig_time'])) ,'</nobr></td>' ,"\n";
     echo '<td style="width:70%;">';
- if (@$r['cidnum'] != '') {
+ if (@$r['cidnum'] != '' || @$r['cidname'] != '') {
- echo htmlEnt($r['cidnum']);
+ echo htmlEnt(@$r['cidnum']);
      if ($r['cidname'] != '') echo ' (', htmlEnt($r['cidname']) ,')';
     } else {
      echo '<i>', __('anonym'), '</i>';
--- opt/gemeinschaft/htdocs/gui/mod/voicemail_messages.php
+++ opt/gemeinschaft/htdocs/gui/mod/voicemail_messages.php
@@ -407,8 +407,8 @@
   echo '</td>', "\n";

   echo '<td>';
- if (@$msg['cidnum'] != '') {
+ if (@$msg['cidnum'] != '' || @$r['cidname'] != '') {
- echo htmlEnt( $msg['cidnum'] );
+ echo htmlEnt( @$msg['cidnum'] );
    if (@$msg['cidname'] != '')
     echo ' &nbsp; (', htmlEnt( $msg['cidname'] ), ')';
   } else {
============================================================

(Sorry, ist eine Weiterleitung, deshalb kein richtiger Patch.)
Sollte natürlich nicht in 2.3.1 geändert werden sondern im Trunk.

Changed in gemeinschaft:
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
Philipp Kempgen (philipp-kempgen) wrote :

Gefixt in dbec1f4f2c3231fe713032686689fc8d052b62a6

Changed in gemeinschaft-amooma:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.