return self._get_channels("SELECT * FROM channels \
WHERE (direction = %s AND cid_num = %s) OR \
(direction = %s AND (callee_num = %s OR callee_num = ANY(%s))) \
- ORDER BY created_epoch",
+ AND callstate != %s ORDER BY created_epoch",
"inbound", account.sip_id, "outbound", account.sip_id,
- account._all_telephone_numbers)
+ account._all_telephone_numbers, "DOWN")
def get_cdr_by_account(self, account, date=None, limit=None):
res = self.db.query("SELECT * FROM cdr \
def called_number(self):
return self.data.dest
+ @property
+ def state(self):
+ return self.data.callstate
+
@property
def application(self):
return self.data.application
def format_codec(name, bit_rate, bandwidth):
+ if not name:
+ return
+
s = [
name,
]
</td>
<td class="text-right">
+ {% if chan.state == "ACTIVE" %}
+ {# Don't show anything #}
+ {% elif chan.state == "HELD" %}
+ <span class="badge badge-warning mr-2">{{ _("On Hold") }}</span>
+ {% elif chan.state == "RINGING" %}
+ <span class="badge badge-info mr-2">{{ _("Ringing") }}</span>
+ {% else %}
+ {{ _("Unknown State: %s") % chan.state }}
+ {% end %}
+
{{ format_time(chan.duration) }}
</td>
</tr>